Database/RocksDB
-
RocksDB Leveled Compaction 알아보기Database/RocksDB 2024. 1. 10. 17:11
- 목차 들어가며. Leveled Compaction 은 RocksDB 의 Compaction 종류 중의 하나입니다. RocksDB 는 LSM-Tree 파일 구조를 취하기 때문에 SSTable 의 Compaction 은 중요한 기능 중의 하나입니다. 이번 글에서는 Leveled Compaction 에 대해서 알아보는 시간을 가지려고 합니다. Level 이란 ? RocksDB 는 MemTable 과 SSTable 이라는 In-Memory Structure 와 On-Disk Structure 를 가집니다. Level 이라는 개념은 SSTable 에 적용되는데요. Level 은 SSTable 에 대하여 Merge 가 수행된 정도를 의미합니다. Level 0 부터 시작하여 Level n 까지 Level 의 범위..
-
RocksDB WAL (Write-Ahead Log) 알아보기Database/RocksDB 2024. 1. 10. 16:56
- 목차 들어가며. RocksDB 는 스토리지 엔진으로써 LSM-Tree 를 사용합니다. LSM-tree 는 구조적으로 Write-Ahead log 를 취하게 되는데, Write-Ahead Log (WAL log) 에 의해서 Recovery 가 가능해집니다. 먼저 Write-Ahead Log (WAL log) 에 대해서 간단하게 알아보도록 하겠습니다. 클라이언트는 RocksDB API 를 통해서 데이터를 삽입합니다. ( 참고로 RocksDB 에서 취급하는 데이터의 형태는 Key-Value Pair 모양을 따릅니다. ) 클라이언트의 데이터 생성 요청을 WAL log 에 로그 형태로 삽입됩니다. 그리고 MemTable 과 SSTable 로 생성 요청이 전달되죠. 아래의 이미지처럼 Write Log 가 먼저 ..
-
RocksDB Column Family 알아보기Database/RocksDB 2024. 1. 10. 09:19
- 목차 들어가며. RocksDB 의 Column Family 는 SQL 의 Table, NoSQL 의 Collection 과 유사합니다. 즉, Key-Value Pair 들을 저장하는 논리적인 단위입니다. 즉, RocksDB 의 데이터베이스는 Column Family 라는 단위로 데이터들이 저장될 파티션을 나누게 되구요. 만약 명시적으로 Column Family 를 생성하지 않는다면 default Column Family 를 사용하게 됩니다. Column Family 는 여러가지 장점을 가집니다. 장점들은 SQL Table 과 같이 데이터의 저장 단위를 분리하였기 때문에 파생되는 장점입니다. 첫번째 장점은 Column Family 단위로 MemTable 과 SSTable 그리고 Bloom Filter ..
-
RocksDB Architecture 알아보기 (LSM-tree)Database/RocksDB 2024. 1. 10. 07:45
- 목차 관련된 글. https://westlife0615.tistory.com/566 RocksDB Architecture 알아보기 (LSM-tree) - 목차 들어가며. RocksDB 는 LSM-Tree 형식의 구조를 취합니다. LSM-Tree 를 설명하기 위해서 MemTable, SSTable, WAL Log, Compaction 등의 배경지식이 필요한데요. 이번 글에서 RocksDB 를 구성하는 요소들에 대해 westlife0615.tistory.com https://westlife0615.tistory.com/567 RocksDB Column Family 알아보기 - 목차 들어가며. RocksDB 의 Column Family 는 SQL 의 Table, NoSQL 의 Collection 과 유사합..