728x90
SSTable, Bloom Filter
rate limiter와 key-value store의 설계 진행하면서 아래의 개념들을 순서대로 확인해보았다
- 고가용성 rate limiter가 필요함
- rate limiter에서 사용하는 알고리즘 확인
- token bucket
- leaky bucket (queue bucket)
- fixed window counter (단위 시간당 고정된 갯수)
- sliding window log (timestamp 기준으로 deprecate)
- sliding window counter (% 기반으로 count 추정)
- counter를 저장하기 위해서 고가용성, 분산 환경의 key-value store가 필요함
- 어떤 Node에 저장될지 결정해야 함 : Consistent Hash
- 고가용성, 데이터 다중화 : Quorum (N,R,W)
- 데이터 다중화 과정에서 동기화를 보장해야 함 : Client Side, Versioning, Vector Clock
- 장애를 탐지해야 함 : 가십 프로토콜
- 일시적인 장애를 감내해야 함 : Quorum (N,R,M)
- 영구적인 장애에서 데이터를 복구해야 함 : HashTable
위 과정까지 진행하면 대부분의 문제를 해결해서 데이터가 메모리 상에서 잘 관리됨을 보장할 수 있다. 다음으로는 메모리와 디스크 사이의 동기화 과정에 대해서 알아보아야 한다.
SSTable
Bloom Filter
728x90
'DEV > System Design' 카테고리의 다른 글
데이터의 효율적인 저장과 조회(SSTable, Bloom Filter, LSM Tree) (0) | 2025.05.05 |
---|---|
키-값 저장소 설계 (0) | 2025.05.05 |
안정 해시 Consistent Hash (0) | 2025.05.04 |
처리율 제한 장치, Rate Limiter (0) | 2025.05.04 |
Google File System 뜯어보기 - Memory Mapped I/O (0) | 2025.04.24 |