-
Notifications
You must be signed in to change notification settings - Fork 38.6k
LevelDB 1.19 #8613
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LevelDB 1.19 #8613
Conversation
|
Concept ACK |
|
Configures OK, compiles OK, one warning removed: ACK |
a31c8aa Add NewAppendableFile for win32 environment 1913d71 Merge upstream LevelDB 1.19 3080a45 Increase leveldb version to 1.19. fa6dc01 A zippy change broke test assumptions about the size of compressed output. Fix the tests by allowing more slop in zippy's behavior. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=123432472 06a191b fix problems in LevelDB's caching code a7bff69 Fix LevelDB build when asserts are enabled in release builds. (bitcoin#367) ea992b4 Change std::uint64_t to uint64_t (bitcoin#354) e84b5bd This CL fixes a bug encountered when reading records from leveldb files that have been split, as in a [] input task split. 3211343 Deleted redundant null ptr check prior to delete. 7306ef8 Merge pull request bitcoin#348 from randomascii/master 6b18316 Fix signed/unsigned mismatch on VC++ builds adbe3eb Putting build artifacts in subdirectory. 2d0320a Merge pull request bitcoin#329 from ralphtheninja/travis-badge dd1c3c3 add travis build badge 43fcf23 Merge pull request bitcoin#328 from cmumford/master 9fcae61 Added a Travis CI build file. dac40d2 Merge pull request bitcoin#284 from ideawu/master 8ec241a Merge pull request bitcoin#317 from falvojr/patch-1 5d36bed Merge pull request bitcoin#272 from vapier/master 4753c9b Added a contributors section to README.md e2446d0 Merge pull request bitcoin#275 from paulirish/patch-1 706b7f8 Resolve race when getting approximate-memory-usage property 3c9ff3c Only compiling TrimSpace on linux. f8d205c Including atomic_pointer.h in port_posix 889de31 Let LevelDB use xcrun to determine Xcode.app path instead of using a hardcoded path. 528c2bc Add "approximate-memory-usage" property to leveldb::DB::GetProperty 359b6bc Add leveldb::Cache::Prune 50e77a8 Fix size_t/int comparison/conversion issues in leveldb. 5208e79 Added leveldb::Status::IsInvalidArgument() method. ce45404 Suppress error reporting after seeking but before a valid First or Full record is encountered. b9afa1f include <assert> -> <cassert> edf2939 Update README.md 65190ac Will not reuse manifest if reuse_logs options is false. ac1d69d LevelDB now attempts to reuse the preceding MANIFEST and log file when re-opened. 76bba13 fix indent 8fcceb2 log compaction output file's level along with number 0e0f074 documentation. improved link c85addc readme: improved documentation link ceff6f1 Fix Android/MIPS build. 77948e7 Add benchmark that measures cost of repeatedly opening the database. 34ad72e Move header guard below copyright banner. a75d435 Clean up layering of storage/leveldb/... b234f65 Added a new fault injection test. c4c38f9 Add arm64 support to leveldb. cea9b10 Fixed incorrect comment wording for Iterator::Seek. c00c569 Deleted old README file. git-subtree-dir: src/leveldb git-subtree-split: a31c8aa408d5594830f7cb20ead1ef1dff51b79e
|
Updated to include @laanwj's NewAppendableFile change (see bitcoin-core/leveldb-subtree#14). This should be tested on various platforms. |
|
I'm testing this on Windows x86_64. Also going to test on ARM/Linux. |
|
@laanwj My understanding is that the NewAppendableFile won't actually be used unless we enable the new options.reuse_logs option. |
|
Ehm yes that seems the case. It is used in only two places and both are guarded by Reading the description, speeding up "open" isn't really an important concern for us at the moment. |
|
@laanwj When you run with a huge dbcache, sync a lot at once, and shutdown, the next startup takes a very long time. I believe that reuse_logs may improve upon that. |
|
Going to merge this - gives the new version of leveldb some time to be tested in master before 0.14 is released.
The option is still experimental in leveldb so enabling it by default is probably not a good idea. But I guess we could first add it too as an experimental feature enabled by a command-line argument. |
[Backport] #8613: LevelDB 1.19
Update LevelDB to upstream commit f545dfabf Cherry-picked from the following upstream PRs: - bitcoin/bitcoin#7911 - bitcoin/bitcoin#7982 - bitcoin/bitcoin#8133 - bitcoin/bitcoin#8784 - Only the missing changes. - bitcoin/bitcoin#8826 - bitcoin/bitcoin#8613 - bitcoin/bitcoin#10544 - bitcoin/bitcoin#10633 - Only the changes to files and code we have. - bitcoin/bitcoin#10806 - bitcoin/bitcoin#10958 - bitcoin/bitcoin#12451 - bitcoin/bitcoin#13925 - bitcoin/bitcoin#15270 This upgrades LevelDB in the exact same commit progression as upstream, up to January 2019.
This upgrades the src/leveldb subtree to our version with upstream 1.19 merged in.
I've marked it here as [preview] because it depends on bitcoin-core/leveldb-subtree#14 being merged.