#distributed-system
노트 3개
Backend › Architecture
고전 분산 시스템 설계: GFS, MapReduce, Bigtable, Chubby, Dynamo구글의 GFS·MapReduce·Bigtable·Chubby와 아마존의 Dynamo 논문이 남긴 설계 아이디어를 정리했다. 단일 마스터와 큰 청크, 계산을 데이터 쪽으로 보내기, 정렬된 맵과 LSM 저장, 굵은 락과 시퀀서, 일관된 해싱·벡터 시계·느슨한 정족수 같은 기법이 HDFS·Spark·HBase·Cassandra·ZooKeeper 같은 오픈소스로 어떻게 이어졌는지까지 다룬다.
Backend › Architecture
분산 시스템의 시간과 장애: 8가지 착각부터 논리 시계까지분산 시스템이 어려운 이유는 메시지가 늦게 오고(비동기) 부품이 일부만 고장 나기(부분 장애) 때문이다. 분산 컴퓨팅의 8가지 착각, 대규모 클러스터의 실제 장애 빈도, 전역 '지금'이 없다는 사실, Lamport의 happened-before와 논리 시계, 선형화 가능성부터 최종 일관성·세션 보장까지의 일관성 모델, 합의 문제와 비잔티움 장애·BFT, Raft의 리더 선출과 로그 복제, 합의·CRDT로 조율 비용을 다루는 법을 정리한다.
Backend › Architecture
분산 트랜잭션: 2PC와 사가여러 DB·서비스에 걸친 작업을 하나처럼 끝내는 방법을 정리했다. 2단계 커밋(2PC)의 동작과 블로킹·코디네이터 장애 문제, 그 대안인 사가 패턴의 보상 트랜잭션 설계, 보상이 실패할 때의 처리, 격리가 없어 생기는 중간 상태와 대응책(시맨틱 락 등), 코레오그래피·오케스트레이션 구현 비교를 다룬다.