분산 시스템 읽기 목록
소개
- 분산 시스템에서 가장 어려운 점은 사고 방식을 바꾸는 것임.
- 이 목록은 그러한 변화를 촉진하는 데 유용한 자료를 모은 것임.
사고를 자극하는 자료
- 대규모 시스템 설계에 대한 새로운 관점을 제공하는 글 모음.
-
Harvest, Yield and Scalable Tolerant Systems: CAP 이론의 실제 응용.
-
On Designing and Deploying Internet Scale Services: 인터넷 규모 서비스 설계 및 배포.
-
The Perils of Good Abstractions: 완벽한 API/인터페이스 구축의 어려움.
-
Chaotic Perspectives: 대규모 시스템의 예측 불가능성과 병렬성.
-
Data on the Outside versus Data on the Inside: 데이터 관리의 두 가지 접근 방식.
-
Memories, Guesses and Apologies: 데이터 처리의 불확실성.
-
SOA and Newton's Universe: 서비스 지향 아키텍처의 철학적 접근.
-
Building on Quicksand: 불안정한 기반 위에 시스템 구축.
-
Why Distributed Computing?: 분산 컴퓨팅의 필요성.
-
A Note on Distributed Computing: 분산 컴퓨팅의 기본 개념.
-
Stevey's Google Platforms Rant: Google의 SOA 플랫폼 경험.
지연 시간
- 지연 시간의 존재와 그에 대한 대처 방법.
-
Latency Exists, Cope!: 지연 시간의 건축적 영향.
-
Latency - the new web performance bottleneck: 웹 성능의 새로운 병목 현상.
-
The Tail At Scale: 대규모 시스템에서의 지연 시간 문제.
Amazon
- 기술보다는 Amazon의 문화와 조직에 대한 흥미로운 내용.
-
A Conversation with Werner Vogels: 서비스 기반 아키텍처로의 전환.
-
Discipline and Focus: Amazon의 아키텍처 전환에 대한 추가 내용.
-
Vogels on Scalability: 확장성에 대한 Vogels의 견해.
Google
- 분산 시스템의 최신 기술.
-
MapReduce: 대규모 데이터 처리 모델.
-
Chubby Lock Manager: 분산 락 관리.
-
Google File System: 대규모 파일 시스템.
-
BigTable: 분산 스토리지 시스템.
-
Data Management for Internet-Scale Single-Sign-On: 대규모 싱글 사인온 데이터 관리.
-
Dremel: 웹 규모 데이터셋의 대화형 분석.
-
Large-scale Incremental Processing Using Distributed Transactions and Notifications: 분산 트랜잭션을 통한 대규모 증분 처리.
-
Megastore: 상호작용 서비스용 확장 가능하고 고가용성 스토리지.
-
Spanner: 글로벌 분산 데이터베이스.
-
Photon: 연속 데이터 스트림의 결합.
-
Mesa: 실시간 데이터 웨어하우징 시스템.
일관성 모델
- 시스템 설계에서 일관성과 가용성 간의 균형 찾기.
-
CAP Conjecture: 일관성, 가용성, 파티션 허용성의 상충 관계.
-
Consistency, Availability, and Convergence: 일관성의 상한선.
-
CAP Twelve Years Later: CAP 이론의 변화.
-
Consistency and Availability: 일관성과 가용성의 관계.
-
Eventual Consistency: 최종적 일관성.
-
Avoiding Two-Phase Commit: 2단계 커밋 회피 방법.
-
2PC or not 2PC, Wherefore Art Thou XA?: 2단계 커밋의 한계.
-
Life Beyond Distributed Transactions: 분산 트랜잭션을 넘어선 데이터 관리.
-
If you have too much data, then 'good enough' is good enough: NoSQL과 데이터 이론의 미래.
-
Starbucks doesn't do two phase commit: 비동기 메커니즘.
-
You Can't Sacrifice Partition Tolerance: 파티션 허용성의 중요성.
-
Optimistic Replication: 느슨한 일관성 접근법.
이론
- 분산 시스템 설계의 중요한 요소를 설명하는 논문.
-
Distributed Computing Economics: 분산 컴퓨팅의 경제성.
-
Rules of Thumb in Data Engineering: 데이터 엔지니어링의 규칙.
-
Fallacies of Distributed Computing: 분산 컴퓨팅의 오류.
-
Impossibility of distributed consensus with one faulty process: FLP 이론.
-
Unreliable Failure Detectors for Reliable Distributed Systems: 신뢰할 수 있는 시스템을 위한 실패 감지기.
-
Lamport Clocks: 분산 시스템에서의 시간 동기화.
-
The Byzantine Generals Problem: 비잔틴 문제.
-
Lazy Replication: 분산 서비스의 의미론 활용.
-
Scalable Agreement: 서비스로서의 순서화.
-
Scalable Eventually Consistent Counters over Unreliable Networks: 불안정한 네트워크에서의 확장 가능한 카운터.
언어와 도구
- 특정 기술을 사용한 분산 시스템 구축 문제.
-
Programming Distributed Erlang Applications: Erlang과 OTP를 사용한 분산 애플리케이션 구축.
인프라
스토리지
-
Consistent Hashing and Random Trees: 일관된 해싱과 랜덤 트리.
-
Amazon's Dynamo Storage Service: Amazon의 스토리지 서비스.
-
Paxos Consensus: Paxos 알고리듬 이해.
-
The Part-Time Parliament: Paxos의 기초.
-
Paxos Made Simple: Paxos의 간단한 설명.
-
Paxos Made Live: Paxos의 엔지니어링 관점.
-
Revisiting the Paxos Algorithm: Paxos 알고리듬 재검토.
-
How to build a highly available system with consensus: 합의를 통한 고가용성 시스템 구축.
-
Reconfiguring a State Machine: 상태 머신의 재구성.
-
Implementing Fault-Tolerant Services Using the State Machine Approach: 상태 머신 접근법을 통한 내결함성 서비스 구현.
기타 합의 논문
-
Mencius: WAN을 위한 효율적인 복제 상태 머신 구축.
-
In Search of an Understandable Consensus Algorithm: RAFT 알고리듬의 확장 버전.
소문 프로토콜 (Epidemic Behaviours)
- 소문 기반 통신 프로토콜의 강력함.
-
Astrolabe: 분산 시스템 모니터링 및 데이터 마이닝 기술.
-
Epidemic Computing at Cornell: 코넬 대학의 전염병 컴퓨팅.
-
Fighting Fire With Fire: 무작위 소문을 사용한 확장성 한계 극복.
-
Bi-Modal Multicast: 이중 모드 멀티캐스트.
-
ACM SIGOPS Operating Systems Review: 소문 기반 네트워킹.
-
SWIM: 확장 가능한 약한 일관성 감염 스타일 프로세스 그룹 멤버십 프로토콜.
P2P
-
Chord: 인터넷 애플리케이션을 위한 확장 가능한 피어 투 피어 조회 프로토콜.
-
Kademlia: XOR 메트릭 기반의 피어 투 피어 정보 시스템.
-
Pastry: 대규모 피어 투 피어 시스템을 위한 분산 객체 위치 및 라우팅.
-
PAST: Pastry 위에 구축된 대규모 지속적 피어 투 피어 스토리지 유틸리티.
-
SCRIBE: Pastry 위에 구축된 대규모 분산 애플리케이션 레벨 멀티캐스트 인프라.
GN⁺의 정리
- 분산 시스템은 복잡한 문제를 해결하기 위해 사고 방식을 변화시켜야 하는 분야임.
- 다양한 자료와 논문을 통해 분산 시스템의 설계와 구현에 대한 깊은 이해를 제공함.
- 이 목록은 분산 시스템의 다양한 측면을 다루며, 특히 일관성 모델과 지연 시간 문제에 대한 통찰을 제공함.
- 분산 시스템에 관심 있는 개발자나 연구자에게 유용한 자료가 될 수 있음.
- 유사한 기능을 가진 프로젝트로는 Apache Kafka, Apache Cassandra 등이 추천됨.