데이터중심애플리케이션설계

    [데이터 중심 애플리케이션 설계] 6장 파티셔닝

    * 이 글은 [데이터 중심 애플리케이션 설계]를 공부하며 기록을 남긴 것입니다. 파티셔닝==샤딩 샤딩: 데이터셋이 매우 크거나 질의 처리량이 매우 높을 때, 데이터를 파티션으로 쪼개어 저장하는 방법 레코드, 로우, 문서 등을 단위로 삼아 여러 파티션에 나눠 저장한다. 목적: 데이터와 질의 부하를 노드 사이에 고르게 분산시키는 것. 파티셔닝을 하면 대용량 데이터셋이 여러 저장소에 분산되고, 질의 또한 여러 프로세스로 분산되어 병렬 처리까지 가능해진다. 즉, 확장에 용이해진다. 복제와 파티셔닝을 함께 적용 -> 각 파티션의 복사본을 여러 노드에 저장함으로써 내결함성 보장 파티셔닝을 하는 방법 파티셔닝은 데이터와 질의 부하를 고르게 분산시킨다는 목적이 있는데, 그렇지 못하고 특정 파티션에 작업이 몰리면 파티셔..

    [데이터 중심 애플리케이션 설계] 5장 복제

    *이 글은 [데이터 중심 애플리케이션 설계]를 공부하며 기록을 남긴 것입니다. 노드 간 변경을 복제하기 위한 세 가지 알고리즘 복제 : 네트워크로 연결된 여러 장비에 동일한 데이터의 복사본을 유지하는 것 복제 서버(replica) : 데이터베이스의 복사본을 저장하는 각 노드 단일 리더(single-leader) 다중 리더(multi-leader) 리더 없는(leaderless) 리더 기반 복제(master-slave 복제) 리더 기반 복제가 작동하는 방식 클라이언트가 쓰기를 할 때 리더에게 요청을 보냄 리더는 로컬 저장소에 새로운 데이터를 기록함 리더가 새롭게 데이터를 기록할 때마다, 데이터 변경을 복제 로그(replication log)나 변경 스트림(change stream)의 형태로 슬레이브에게 보..