# SlateDB - 객체 저장소 기반의 임베디드 스토리지 엔진

> Clean Markdown view of GeekNews topic #17138. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17138](https://news.hada.io/topic?id=17138)
- GeekNews Markdown: [https://news.hada.io/topic/17138.md](https://news.hada.io/topic/17138.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-10-08T11:04:01+09:00
- Updated: 2024-10-08T11:04:01+09:00
- Original source: [github.com/slatedb](https://github.com/slatedb/slatedb)
- Points: 12
- Comments: 0

## Summary

SlateDB는 객체 저장소를 활용하여 무한한 스토리지 용량과 높은 내구성을 제공하며, 기존 LSM-tree 스토리지 엔진과 차별화됩니다. 쓰기와 읽기 지연 시간을 줄이기 위한 다양한 전략을 통해 높은 API 비용과 지연 시간을 완화합니다.

## Topic Body

- 로그 구조화된 병합 트리(Log-Structured Merge-tree)로 구축된 임베디드 스토리지 엔진  
- 기존 LSM-tree 스토리지 엔진과 달리 SlateDB는 데이터를 오브젝트 스토리지(S3, GCS, ABS, MinIO, Tigris 등)에 씀   
- 오브젝트 스토리지를 활용하여 무한한 스토리지 용량, 높은 내구성, 쉬운 복제 기능을 제공함   
- 그러나, 오브젝트 스토리지는 로컬 디스크보다 높은 지연 시간과 API 비용이 발생하는 것이 단점  
### SlateDB의 단점 회피 전략   
- 쓰기를 배치 처리하여 높은 쓰기 API 비용(PUT)을 완화함   
  - 모든 `put()` 호출을 오브젝트 스토리지에 쓰는 대신, MemTable을 주기적으로 문자열 정렬된 테이블(SST)로 오브젝트 스토리지에 플러시  
  - 플러시 간격은 구성 가능  
- 비동기 `put` 메서드를 제공하여 쓰기 지연 시간도 완화  
  - 강력한 내구성을 선호하는 클라이언트는 MemTable이 오브젝트 스토리지에 플러시될 때까지 `put`에서 `await`할 수 있음(지연 시간과 내구성 간의 절충)  
  - 낮은 지연 시간을 선호하는 클라이언트는 `put`에서 반환된 future를 무시할 수 있음  
- 표준 LSM-tree 캐싱 기술을 사용하여 읽기 지연 시간과 읽기 API 비용(GET)을 완화  
  - 인메모리 블록 캐시, 압축, 블룸 필터, 로컬 SST 디스크 캐시

## Comments



_No public comments on this page._
