DEV/System Design

Memory와 Disk의 동기화 (SSTable, Bloom Filter)

행운개발자 2025. 5. 5. 12:17
728x90

SSTable, Bloom Filter

rate limiter와 key-value store의 설계 진행하면서 아래의 개념들을 순서대로 확인해보았다

  1. 고가용성 rate limiter가 필요함
  2. rate limiter에서 사용하는 알고리즘 확인
    • token bucket
    • leaky bucket (queue bucket)
    • fixed window counter (단위 시간당 고정된 갯수)
    • sliding window log (timestamp 기준으로 deprecate)
    • sliding window counter (% 기반으로 count 추정)
  3. counter를 저장하기 위해서 고가용성, 분산 환경의 key-value store가 필요함
  4. 어떤 Node에 저장될지 결정해야 함 : Consistent Hash
  5. 고가용성, 데이터 다중화 : Quorum (N,R,W)
  6. 데이터 다중화 과정에서 동기화를 보장해야 함 : Client Side, Versioning, Vector Clock
  7. 장애를 탐지해야 함 : 가십 프로토콜
  8. 일시적인 장애를 감내해야 함 : Quorum (N,R,M)
  9. 영구적인 장애에서 데이터를 복구해야 함 : HashTable

위 과정까지 진행하면 대부분의 문제를 해결해서 데이터가 메모리 상에서 잘 관리됨을 보장할 수 있다. 다음으로는 메모리와 디스크 사이의 동기화 과정에 대해서 알아보아야 한다.

SSTable

Bloom Filter

728x90