Distributed Logic & Storage Physics
물리적으로 떨어진 여러 노드 간의 데이터 동기화, 분산 트랜잭션, 그리고 저장 장치 레벨의 물리적 신뢰성을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
분산 로직 및 저장 물리(Distributed Logic & Storage Physics, DLP)는 데이터가 단일 서버의 한계를 넘어 전 세계 여러 노드에 걸쳐 존재할 때 발생하는 물리적 충돌과 합의 문제를 다룹니다.
데이터는 빛의 속도와 네트워크 지연이라는 물리적 한계에 묶여 있습니다. 학습자는 여러 노드가 하나의 데이터 상태에 합의하는 과정(Raft, Paxos), 데이터 복제의 물리적 방식(Sync vs Async), 그리고 디스크 레이아웃 및 파일 시스템 레벨에서의 장애 복구 메커니즘을 학습합니다. 이를 통해 어떤 물리적 재해 상황에서도 데이터가 유실되지 않는 '불멸의 저장소'를 설계하는 고수준 엔지니어링 역량을 확보합니다.
2. Scope & Boundaries
In-Scope
- Distributed Transactions: 2단계 커밋(2PC), 선분 이력 시스템, 분산 락(Lock) 메커니즘
- Replication Physics: Primary-Replica, Quorum-based 복제 체계 및 지연(Lag) 분석
- Consensus & State: 클러스터 상태 일관성을 위한 합의 알고리즘 기초 및 리더 선출
- Storage Subsystems: LSM-tree vs B-Tree 성능 물리, 파일 시스템의 저널링(Journaling)
Out-of-Scope
- 구체적인 NoSQL 솔루션의 API 사용법 (06-02 NoSQL 영역으로 위임)
- 분산 시스템상의 네트워크 프로토콜 상세 (08. Network 영역으로 위임)
Boundaries
- DLP vs. Distributed Systems: 07-02(Distributed Systems)가 '연산 분산과 일반적인 합의'를 다룬다면, DLP는 '데이터 저장의 정합성과 디스크 적재 물리'라는 저장 플랫폼 관점에 특화됩니다.
3. Counterexample
- 단순히 여러 대의 DB 서버를 띄우는 것은 DLP 학습이 아닙니다. 네트워크 단절(Network Partition) 상황에서 시스템이 CP(Consistency-Partition)를 택할 것인지 AP(Availability-Partition)를 택할 것인지에 따른 물리적 데이터 충돌 시나리오를 설계하고, 스플릿 브레인(Split-brain) 현상을 막기 위한 쿼럼 계산법을 제시할 수 있어야 합니다.
4. Prerequisites
- 관계형 시스템 및 NoSQL 기초 (Basic): 기본적인 데이터 모델링과 SQL/NoSQL 개념이 필요합니다. (06. RS/NPP)
- 네트워크 기초 및 OSI 스택 (Recommended): 패킷 지연과 타임아웃이 분산 합의에 미치는 물리적 영향을 이해해야 합니다. (08. Network)
5. Learning Map
- The Replication Barrier: 노드 간 데이터 복제 시 발생하는 시간 지연과 정합성 차이를 익힙니다.
- Atomic Agreements: 여러 서버가 하나의 결정을 동시에 내리기 위한 분산 합의 논리를 이해합니다.
- Internal Storage Physics: 디스크 쓰기 성능 극대화를 위한 내부 자료 구조(LSM 등)를 배웁니다.
- Reliability Mechanics: 노드 장애나 네트워크 오류에도 중단 없는 저장 서비스를 유지하는 설계를 실습합니다.
6. Learning Topics
Basic
Core: 복제 아키텍처와 물리 (Replication Mechanics)
- Why to Learn: 서버 한 대가 고장 나도 데이터 손실 없이 서비스를 유지하기 위함입니다.
- What to Learn:
- 동기(Synchronous) vs 비동기(Asynchronous) 복제의 응답 속도 트레이드오프
- 복제 지연(Replication Lag) 발생 원인과 읽기 일관성 보장 방법
- 복제 필터링 및 전파(Broadcasting) 방식의 물리적 오버헤드
- How to Learn:
- 로컬 환경에서 Master-Slave DB를 구성하고 강제로 Slave 노드에 네트워크 지연을 부여해 데이터 가시성 테스트
- 복제 로그(Binlog)의 크기와 네트워크 트래픽 간의 상관관계 계산
- Implement: 데이터 유실을 최소화하면서 성능을 유지하는 하이브리드 복제 구성 가이드
Recommended
Core: 분산 합의와 클러스터 관리 (Distributed Consensus)
- Why to Learn: 전체 노드가 데이터의 최신 상태에 대해 하나의 목소리를 내도록 강제하기 위해서입니다.
- What to Learn:
- 합의 알고리즘 개요: Paxos의 복잡성과 Raft의 논리적 구조 이해
- 리더 선출(Leader Election) 과정과 과반수(Majority) 투표의 물리적 필요성
- 분산 락(Distributed Lock)과 공유 상태 동기화 기법
- How to Learn:
- Raft visualizer 등을 통해 노드 장애 시 새로운 리더가 선출되는 과정을 단계별로 관측
- ETCD나 ZooKeeper를 이용해 간단한 서비스 디스커버리 로직 실습
- Implement: 분산 환경에서 특정 자원의 점유권을 안전하게 관리하는 분산 락 라이브러리 연동 코드
Practical
Core: 분산 트랜잭션과 데이터 정합성 (Distributed Transactions)
- Why to Learn: 여러 데이터베이스에 걸친 작업이 '전부 되거나 하나도 안 되거나'를 보장하기 위함입니다.
- What to Learn:
- 2단계 커밋(2PC, Two-Phase Commit)의 원리와 블로킹 문제 물리
- 사가(Saga) 패턴: 오케스트레이션 vs 코레오그래피 모델과 보상 트랜잭션
- 시계 동기화 문제: 논리적 시계(Lamport Clock)와 물리적 시계의 한계
- How to Learn:
- 2PC 수행 중 코디네이터가 다운되었을 때 발생하는 데이터 '잠김' 현상 시나리오 분석
- 벡터 시계(Vector Clock)를 이용해 데이터 버전 충돌을 스스로 해결하는 로직 수기 계산
- Implement: 마이크로서비스 간 데이터 정합성을 맞추는 보상 트랜잭션 기반의 사가 시나리오 설계
Advanced
Core: 저장 엔진 하부 구조 최적화 (Storage Engine Internals)
- Why to Learn: 초당 수백만 건의 쓰기/읽기 요청을 하드웨어 성능 한계까지 처리하기 위해서입니다.
- What to Learn:
- B+ Tree vs LSM-tree (Log-Structured Merge Tree)의 쓰기/읽기 증폭 분석
- 데이터 압축 및 압축 알고리즘이 CPU/IO에 미치는 물리적 영향
- 커널 직접 I/O (Direct I/O)와 페이지 캐시 우회 기술
- How to Learn:
- RocksDB나 LevelDB 벤치마킹을 통해 데이터 크기 증가에 따른 성능 감쇠 곡선 측정
- 스토리지 엔진의 세그먼트 병합(Compaction) 과정이 시스템 지연 시간에 주는 물리적 충크 분석
- Implement: 특정 워크로드(쓰기 집중 vs 읽기 집중)에 최적화된 스토리지 엔진 파라미터 튜닝 시트
7. Terminology
8. References
Primary References
- [P1] CS2023 - DM/Scalable & Distributed Data — Distributed DB principles.
- [P2] SWEBOK - Computing Foundations — Fundamental logic and storage.
Secondary References
- [Designing Data-Intensive Applications (DDIA)] Martin Kleppmann — The modern authority on DLP.
- [Distributed Systems] van Steen & Tanenbaum — Theoretical foundations.
Industry References
- [Spanner: Google's Globally-Distributed Database] — Landmark industry paper.
- [Amazon Dynamo: A Highly Available Key-value Store] — Foundation of AP systems.
9. Final Checklist
Primary Checklist
- 노드 간 데이터 복제 방식을 비동기(Async)로 설정했을 때, 장애 발생 시 '데이터 유실'이 일어나는 물리적 메커니즘을 설명 가능한가? (P1)
- 5대의 노드로 구성된 클러스터에서 쿼럼(Quorum)을 만족하기 위해 필요한 최소 정상 노드 수를 계산할 수 있는가? (P1)
Secondary Checklist
- 쓰기 요청이 폭주하는 로그 시스템에서 B+ Tree 대신 LSM-tree를 선택해야 하는 물리적 성능 근거를 제시할 수 있는가?
- 사가(Saga) 패턴에서 '보상 트랜잭션'이 실제 DB 롤백과 물리적으로 어떻게 다른지(데이터 변경 이력 관점) 이해하는가?
Industry Checklist
- 클라우드 DB 서비스(Aurora, Spanner 등)의 가용 영역(AZ) 간 복제 지연 로그를 보고 네트워크 이슈를 식별 가능한가? (SFIA)
- 전 세계에 배포된 데이터베이스에서 '물리적 시계의 불일치'가 순서 보장(Ordering)에 미치는 치명적 영향을 논할 수 있는가?