Cassandra는 어떻게 대규모 쓰기를 처리할까
2023. 4. 22. 16:58
논문
이번 포스팅에서는 분산환경에서 대규모 쓰기 처리를 지원하는 Cassandra 데이터베이스에 대해 살펴보겠습니다. Cassandra는 데이터를 저장할 때 SSTable을 활용합니다. SSTable은 상업용 데이터베이스에서 데이터를 저장하기 위해 사용되는 B tree와 성격이 많이 다르기 때문에 Cassandra를 이해하기 위해서는 SSTable에 대한 이해가 필요합니다. SSTable이 궁금하시다면 아래 포스팅을 참고해 주세요. Chapter 3. Storage and Retrieval 이번 챕터에서는 데이터베이스에 저장되는 데이터의 형태와 저장 방식에 따른 장단점에 대해 살펴보겠습니다. 데이터베이스는 데이터를 효율적으로 저장하고 찾기 위해 인덱스를 활용합니다. code-run.tistory.com Abs..
분산 환경의 합의 알고리즘 Paxos
2023. 4. 13. 08:09
논문
이번 포스팅에서는 Paxos 알고리즘에 대해 살펴보겠습니다. 분산 시스템에서 여러 대의 서버가 서로 다른 데이터를 가지고 있을 수 있기 때문에 동시성과 일관성을 보장하는 것은 쉬운 문제가 아닙니다. 이런 문제를 해결하기 위해 분산 환경에서 노드 간 합의를 도출하는 알고리즘인 Paxos가 등장하게 되었습니다. Paxos 알고리즘은 Leslie Lamport가 제안한 알고리즘으로, 분산 시스템에서 노드 간 합의를 도출하는 알고리즘 중 가장 널리 사용되는 알고리즘 중 하나입니다. 이번 포스팅에서는 Leslie Lamport의 "Paxos Made Simple" 논문을 읽고 Paxos가 어떻게 분산 환경에서 노드 간 합의를 도출하는지 살펴보겠습니다. 하지만 논문만으로는 이해가 쉽지 않기 때문에, 논문의 내용을 ..
LSM-Tree는 왜 사용할까
2023. 4. 11. 22:04
논문
이번 포스팅에서는 Patric O'Neil의 "The Log-Structured Merge-Tree" 논문을 읽고 LSM Tree가 등장한 이유, 특징, 그리고 동작 원리에 대해 살펴보겠습니다. Abstract 해당 논문이 발표된 시기에는 "activity flow management system application"의 수요가 증가하고 있었습니다. 이 시스템은 일련의 활동을 관리하고 최적화하기 위해 사용되며 대표적인 기능으로는 task tracking, workflow automation 가 있습니다. 이러한 시스템은 애플리케이션 레벨에서 히스토리성 데이터를 저장하는 동시에 데이터베이스에서 시스템 복구를 위해 해당 데이터가 저장되는 시점에 로그성 데이터를 추가로 저장합니다(Write ahead log)..