MemTable은 쉽게 말해서 임시 저장소 역할을 하는 메모리 내 데이터 구조입니다. 새로운 데이터가 디스크에 영구적으로 저장되기 전에 MemTable에 먼저 저장됩니다. MemTable이 가득 차면, 그 내용이 디스크의 SST 파일로 플러시되며, 이 과정은 RocksDB에서 데이터의 효율적인 관리와 빠른 액세스를 가능하게 합니다. MemTable은 최신 데이터를 포함하고 있어, 읽기 작업 시 SST 파일보다 우선적으로 조회됩니다.
use rocksdb::{Options, DB};
fn main() {
// RocksDB 옵션 설정
let mut opts = Options::default();
opts.create_if_missing(true);
// 데이터베이스 열기
let db = DB::open(&opts, "path/to/db").unwrap();
// 키-값 쌍 삽입 (MemTable에 저장됨)
db.put(b"key1", b"value1").unwrap();
db.put(b"key2", b"value2").unwrap();
// 키-값 쌍 조회 (MemTable에서 먼저 조회)
match db.get(b"key1") {
Ok(Some(value)) => println!("Retrieved value: {:?}", value),
Ok(None) => println!("Value not found"),
Err(e) => println!("Error occurred: {}", e),
}
// Flush MemTable (MemTable의 내용을 SST 파일로 플러시)
db.flush().unwrap();
// 데이터베이스 닫기
drop(db);
}