]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commit
Hotcold: Changing compaction based on hotness of record.
authorKosie van der Merwe <kosie.vandermerwe@gmail.com>
Fri, 15 Feb 2013 19:51:50 +0000 (11:51 -0800)
committerKosie van der Merwe <kosie.vandermerwe@gmail.com>
Fri, 15 Feb 2013 19:51:50 +0000 (11:51 -0800)
commit2e967a3a5bb830cec4feca02e7d898fadfd59cba
treeb230615aa46955be1dc9c45f0c9209f1b144850c
parent2c17bd9bdaf503c967c88001a23c0a3837f7a9d9
Hotcold: Changing compaction based on hotness of record.

Summary:
Changed `DoCompactionWork()` to output multiple files and imported https://reviews.facebook.net/D8025 (Ideally all issues with version_set.h, version_set.cc and version_set_test.cc should be brought up there so I can keep that patch up to date and we can decide whether to mainline it separately) so we can handle overlapping files in level 1+.

Added code to determine whether a record is hot or cold given the metrics DB and an iterator on the database (which allows us to get all the necessary data in order to lookup the hotness)

Test Plan:
make check

db_bench --benchmarks=readrandomwriterandom --hotcold=1

Reviewers: dhruba, vamsi, chip, heyongqiang

Reviewed By: vamsi

CC: leveldb
Differential Revision: https://reviews.facebook.net/D8163
18 files changed:
db/db_impl.cc
db/db_impl.h
db/db_iter.cc
db/db_test.cc
db/version_set.cc
db/version_set.h
db/version_set_test.cc
include/leveldb/cache.h
include/leveldb/iterator.h
include/leveldb/options.h
table/block.cc
table/block.h
table/merger.cc
table/metrics_info.cc [new file with mode: 0644]
table/metrics_info.h [new file with mode: 0644]
table/table.cc
table/two_level_iterator.cc
util/cache.cc