leveldb/db
Sanjay Ghemawat 251ebf5dc7 LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened.
(Based on a suggestion by cmumford.)

"open" benchmark on my workstation speeds up significantly since we
can now avoid three fdatasync calls and a compaction per open:

  Before: ~80000 microseconds
  After:    ~130 microseconds

Details:

(1) Added Options::reuse_logs (currently defaults to false) to control
new behavior.  The intention is to change the default to true after some
baking.

(2) Added Env::NewAppendableFile() whose default implementation returns
a not-supported error.

(3) VersionSet::Recovery attempts to reuse the MANIFEST from which
it is recovering.

(4) DBImpl recovery attempts to reuse the last log file and memtable.

(5) db_test.cc now tests a new configuration that sets reuse_logs to true.

(6) fault_injection_test also tests a reuse_logs==true config.

(7) Added a new recovery_test.
2014-12-11 08:13:18 -08:00
..
autocompact_test.cc LevelDB 1.13 2013-08-21 11:12:47 -07:00
builder.cc A number of fixes: 2011-10-31 17:22:06 +00:00
builder.h A number of fixes: 2011-10-31 17:22:06 +00:00
c_test.c Small fixes. 2012-10-16 16:17:53 -07:00
c.cc Small fixes. 2012-10-16 16:17:53 -07:00
corruption_test.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
db_bench.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
db_impl.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
db_impl.h LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
db_iter.cc Release LevelDB 1.14 2013-09-19 13:49:19 -07:00
db_iter.h LevelDB 1.13 2013-08-21 11:12:47 -07:00
db_test.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
dbformat_test.cc A number of fixes: 2011-10-31 17:22:06 +00:00
dbformat.cc Release leveldb 1.10 2013-05-14 17:03:07 -07:00
dbformat.h Release 1.18 2014-09-16 14:19:52 -07:00
dumpfile.cc Release 1.18 2014-09-16 14:19:52 -07:00
fault_injection_test.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
filename_test.cc Release LevelDB 1.14 2013-09-19 13:49:19 -07:00
filename.cc Release LevelDB 1.14 2013-09-19 13:49:19 -07:00
filename.h Release LevelDB 1.14 2013-09-19 13:49:19 -07:00
leveldb_main.cc Release 1.18 2014-09-16 14:19:52 -07:00
log_format.h Release 1.18 2014-09-16 14:19:52 -07:00
log_reader.cc Release 1.18 2014-09-16 14:19:52 -07:00
log_reader.h Release 1.18 2014-09-16 14:19:52 -07:00
log_test.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
log_writer.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
log_writer.h LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
memtable.cc A number of fixes: 2011-10-31 17:22:06 +00:00
memtable.h A number of fixes: 2011-10-31 17:22:06 +00:00
recovery_test.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
repair.cc Release 1.18 2014-09-16 14:19:52 -07:00
skiplist_test.cc A number of fixes: 2011-10-31 17:22:06 +00:00
skiplist.h Move header guard below copyright banner. 2014-12-11 08:04:40 -08:00
snapshot.h Clean up layering of storage/leveldb/... 2014-12-11 08:02:45 -08:00
table_cache.cc Release LevelDB 1.14 2013-09-19 13:49:19 -07:00
table_cache.h Added bloom filter support. 2012-04-17 08:36:46 -07:00
version_edit_test.cc A number of fixes: 2011-10-31 17:22:06 +00:00
version_edit.cc A number of fixes: 2011-10-31 17:22:06 +00:00
version_edit.h A number of fixes: 2011-10-31 17:22:06 +00:00
version_set_test.cc A number of fixes: 2011-10-31 17:22:06 +00:00
version_set.cc LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
version_set.h LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 2014-12-11 08:13:18 -08:00
write_batch_internal.h Clean up layering of storage/leveldb/... 2014-12-11 08:02:45 -08:00
write_batch_test.cc added group commit; drastically speeds up mult-threaded synchronous write workloads 2012-03-08 16:23:21 -08:00
write_batch.cc added group commit; drastically speeds up mult-threaded synchronous write workloads 2012-03-08 16:23:21 -08:00