1.6-3. Bloom Filter Read
db_bench는 db_bench.cc 파일의 main 함수로 부터 시작되며, 파라미터를 scanf로 읽어들인 뒤 benchmark.Run() 클래스 함수를 실행한다. 해당 함수는 Write 과정을 처리하는 Open() 함수와 Read 과정을 처리하는… 더 보기 »1.6-3. Bloom Filter Read
db_bench는 db_bench.cc 파일의 main 함수로 부터 시작되며, 파라미터를 scanf로 읽어들인 뒤 benchmark.Run() 클래스 함수를 실행한다. 해당 함수는 Write 과정을 처리하는 Open() 함수와 Read 과정을 처리하는… 더 보기 »1.6-3. Bloom Filter Read
1. Workload (Benchmark): YCSB-cpp The goal of the Yahoo Cloud Serving Benchmark (YCSB) project is to develop a framework and common set of workloads for… 더 보기 »3.0. Tuning Contest Guide
(출처:https://en.wikipedia.org/wiki/Bloom_filter) 블룸 필터는 데이터 블록에 특정 key의 데이터가 존재하는지 빠르게 확인할 수 있는 확률적 자료 구조이다. db_bench에선 bloom_bits의 값을 조절하여 자신이 원하는 크기의 블룸 필터를… 더 보기 »2.5. Bloom Filter
LevelDB의 전체 코드엔 약 100개 가량의 메인 함수가 존재한다. 여기서 db_bench의 makefile을 확인해 보면 db_bench의 메인 함수는 db_bench.cc 파일에 존재함을 알 수 있다. 해당 메인… 더 보기 »1.6-2. Bloom Filter Write
SSTable은 key-value pair들을 담는 Data Block, 각 Data Block들에 대한 블룸필터를 갖고 있는 Filter Block 등으로 구성된다. 이 때 LevelDB 핸드북에는 Filter Block과 관련해 다음과… 더 보기 »2.4. SSTable
실험 환경 Key와 Value의 크기가 Compaction에 영향을 주게 된다 생각되어 실험을 하게되었습니다. Various Key Size Various Value Size 16 byte 256 byte 32 byte 1… 더 보기 »2.3. Compaction
(출처:https://en.wikipedia.org/wiki/Bloom_filter) 블룸 필터는 데이터 블록에 특정 key의 데이터가 존재하는지 확인할 수 있는 확률적 자료 구조이다. 블룸 필터는 데이터를 Write를 할 때에, 각각의 key에 k개의 해시… 더 보기 »1.6-1. Bloom Filter
실험환경 주요변경옵션 leveldb 부분 구조 (memtable부분) write_buffer_size = memtable 하나의 최대 크기 default = 4M max_file_size = memtable 안에 들어가 있는 sst파일의 최대 크기 default… 더 보기 »2.2. Memtable
Option – Manual_wal_flush DB::put이 호출되면 데이터는 memtable에 쓰이고 WAL이 켜져 있다면 WAL에도 쓰인다. 애플리케이션 메모리 버퍼에 먼저 기록되고 버퍼는 fwrite syscall을 호출하여 OS 버퍼로 플러시… 더 보기 »2.1-3. WAL-3
Option – Max_total_wal_size Hypothesis column family들은 각각의 ssTable을 갖지만 WAL은 공유한다.하나의 column family가 flush 될 때마다 새 WAL이 생성된다.그리고 모든 column families에 대한 쓰기는 새… 더 보기 »2.1-2. WAL-2