분산 시스템 독서 목록 (2014)

1 week ago 8

분산 시스템 읽기 목록

소개

  • 분산 시스템에서 가장 어려운 점은 사고 방식을 바꾸는 것임.
  • 이 목록은 그러한 변화를 촉진하는 데 유용한 자료를 모은 것임.

사고를 자극하는 자료

  • 대규모 시스템 설계에 대한 새로운 관점을 제공하는 글 모음.
  • 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 등이 추천됨.

Read Entire Article