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
..
2013-12-10 10:36:31 -08:00
2013-09-19 13:49:19 -07:00
2013-12-10 10:36:31 -08:00
2013-12-10 10:36:31 -08:00
2014-09-16 14:19:52 -07:00
2011-10-31 17:22:06 +00:00
2013-05-14 17:03:07 -07:00
2013-12-10 10:36:31 -08:00
2012-10-12 11:53:12 -07:00
2011-10-31 17:22:06 +00:00
2011-10-31 17:22:06 +00:00
2011-10-31 17:22:06 +00:00
2011-10-31 17:22:06 +00:00
2012-04-17 08:36:46 -07:00
2014-09-16 14:19:52 -07:00
2014-09-16 14:19:52 -07:00
2011-10-31 17:22:06 +00:00
2011-10-31 17:22:06 +00:00
2014-09-16 14:19:52 -07:00
2014-09-16 14:19:52 -07:00
2012-10-12 11:53:12 -07:00
2011-10-31 17:22:06 +00:00
2013-08-21 11:12:47 -07:00
2011-10-31 17:22:06 +00:00
2013-12-10 10:36:31 -08:00
2011-10-31 17:22:06 +00:00
2013-12-10 10:36:31 -08:00