diff options
author | gabor@google.com <gabor@google.com@62dab493-f737-651d-591e-8d6aee1b9529> | 2011-07-15 00:20:57 +0000 |
---|---|---|
committer | gabor@google.com <gabor@google.com@62dab493-f737-651d-591e-8d6aee1b9529> | 2011-07-15 00:20:57 +0000 |
commit | 6699c7ebe68fba9673ea7a78b54e0eb558102301 (patch) | |
tree | acb156c19aadd00e7a14dcd26b76671d36808dae /db/version_set.h | |
parent | ed154f6dc4f5ca82f20d2f3d4383cdbb07872594 (diff) | |
download | leveldb-6699c7ebe68fba9673ea7a78b54e0eb558102301.tar.gz |
Small tweaks and bugfixes for Issue 18 and 19.
Slight tweak to the no-overlap optimization: only push to
level 2 to reduce the amount of wasted space when the same
small key range is being repeatedly overwritten.
Fix for Issue 18: Avoid failure on Windows by avoiding
deletion of lock file until the end of DestroyDB().
Fix for Issue 19: Disregard sequence numbers when checking for
overlap in sstable ranges. This fixes issue 19: when writing
the same key over and over again, we would generate a sequence
of sstables that were never merged together since their sequence
numbers were disjoint.
Don't ignore map/unmap error checks.
Miscellaneous fixes for small problems Sanjay found while diagnosing
issue/9 and issue/16 (corruption_testr failures).
- log::Reader reports the record type when it finds an unexpected type.
- log::Reader no longer reports an error when it encounters an expected
zero record regardless of the setting of the "checksum" flag.
- Added a missing forward declaration.
- Documented a side-effects of larger write buffer sizes
(longer recovery time).
git-svn-id: https://leveldb.googlecode.com/svn/trunk@37 62dab493-f737-651d-591e-8d6aee1b9529
Diffstat (limited to 'db/version_set.h')
-rw-r--r-- | db/version_set.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/db/version_set.h b/db/version_set.h index f00c35a..693fc6f 100644 --- a/db/version_set.h +++ b/db/version_set.h @@ -42,13 +42,13 @@ extern int FindFile(const InternalKeyComparator& icmp, const std::vector<FileMetaData*>& files, const Slice& key); -// Returns true iff some file in "files" overlaps some part of +// Returns true iff some file in "files" overlaps the user key range // [smallest,largest]. extern bool SomeFileOverlapsRange( const InternalKeyComparator& icmp, const std::vector<FileMetaData*>& files, - const InternalKey& smallest, - const InternalKey& largest); + const Slice& smallest_user_key, + const Slice& largest_user_key); class Version { public: @@ -78,10 +78,10 @@ class Version { void Unref(); // Returns true iff some file in the specified level overlaps - // some part of [smallest,largest]. + // some part of [smallest_user_key,largest_user_key]. bool OverlapInLevel(int level, - const InternalKey& smallest, - const InternalKey& largest); + const Slice& smallest_user_key, + const Slice& largest_user_key); int NumFiles(int level) const { return files_[level].size(); } |