<aside> 💡 이 위키는 2022년 5월에 생긴 DDIA(Designing Data-Intensive Applications) 북클럽에서, DDIA에 대해 기록하고자 해서 만든 것입니다. DDIA에 대해 알고자 하는 분들은 누구나 DDIA를 둘러싼 여러 내용, 궁금증들도 자유롭게 기록해주세요.
기여자: 누구나
</aside>
<aside> 💡 - 특정 목적에 맞는 기술을 결정하고 도구를 조합할 수 있다.
</aside>
분산된 데이터베이스를 필요로 하는 이유
지연 시간
데이터셋이 매우 크거나 질의 처리량이 매우 높다면 복제만으로는 부족하고 데이터를 파티션으로 쪼갤 필요가 있다. ****이 작업을 샤딩이라고도 한다.
파티션을 나눌 때는 보통 각 데이터 단위(레코드, 로우, 문서)가 하나의 파티션에 속하게 한다.
각 파티션은 그 자체로 작은 데이터베이스가 된다. 따라서 대용향 데이터셋이 여러 디스크에 분산될 수 있고 질의 부하는 여러 프로세서에 분산될 수 있다.
보통 복제와 파티셔닝을 함께 적용해 각 파티션의 복사본을 여러 노드에 저장한다. 각 레코드는 정확히 한 파티션에 속하더라도 이를 여러 다른 노드에 저장해서 내결함성을 보장할 수 있다는 의미이다.