All Versions
Latest Version
Avg Release Cycle
207 days
Latest Release
1914 days ago

Changelog History

  • v1.21 Changes

    March 29, 2019
    • 🔀 Switched to using Copybara for project synchronization.
    • Minor cleanup in ports.
    • ⚠ Silence unused argument warnings in MSVC.
    • ➕ Add tests for empty keys and values.
    • ✅ Switch corruption_test to use InMemEnv.
    • Replace AtomicPointer with std::atomic.
    • 👉 Make InMemoryEnv more consistent with filesystem based Env's.
    • Align windows_logger with posix_logger.
    • 👌 Improve CI configuration and added AppVeyor (Windows CI) badge to README.
    • 🏁 Added native support for Windows.
    • 👉 Make WriteBatch::ApproximateSize() const.
    • 🛠 Fix PosixWritableFile::Sync() on Apple systems.
    • 🛠 Fix fdatasync() feature detection in opensource build.
    • C++11 cleanup for util/mutexlock.h.
    • Rework threading in
    • ✂ Remove InitOnce from the port API.
    • 🔦 Expose WriteBatch::Append().
    • 🛠 Fix documentation for log file growth.
    • ➕ Add move constructor to Status.
    • Replace port_posix with port_stdcxx.
    • Reimplement ConsumeDecimalNumber.
    • 🏗 Document the building process.
    • Replace NULL with nullptr in C++ files.
    • Remove PLATFORM_IS_LITTLE_ENDIAN from port/posix.h.
    • ➕ Add more thread safety annotations.
    • Require C++11.
    • Replace SIZE_MAX with std::numeric_limits.
    • Add CMake build support.
    • Enable thread safety annotations.
    • leveldb::DestroyDB will now delete empty directories.
    • ⚡️ Replace SSE-optimized CRC32C in POSIX port with external library.
    • 🛠 Fix file writing bug in CL 170738066.
    • 🛠 Fix use of uninitialized value in LRUHandle.
    • Fix issue #474: a race between the f*_unlocked() STDIO calls in and concurrent application calls to fflush(NULL).
    • Use __APPLE__ instead of OS_MACOS. The former is compiler-provided.
    • Report missing CURRENT manifest file as database corruption.
    • LevelDB: Add WriteBatch::ApproximateSize().
    • 📚 Other minor fixes, code cleanup, and documentation improvements.
  • v1.20 Changes

    March 02, 2017
    • 📚 Convert documentation to markdown.
    • 👍 Implement support for Intel crc32 instruction (SSE 4.2).
      Based on #309.
    • Limit the number of read-only files the POSIX Env will have open.
    • ➕ Add option for maximum file size.
  • v1.19 Changes

    August 11, 2016
    • ✅ A snappy change broke test assumptions about the size of compressed output. Fixed.
    • 🛠 Fix problems in LevelDB's caching code.
    • 🛠 Fix LevelDB build when asserts are enabled in release builds. (#367).
    • Change std::uint64_t to uint64_t (#354).
    • 🛠 Fixes a bug encountered when reading records from leveldb files that have been split, as in a [] input task split.
    • ✂ Deleted redundant null ptr check prior to delete. (#338).
    • 🛠 Fix signed/unsigned mismatch on VC++ builds.
    • 🏗 Putting build artifacts in subdirectory.
    • ➕ Added continuous build integration via Travis CI.
    • 🌲 log compaction output file's level along with number.
    • Misc. improvements to README file.
    • 🛠 Fix Android/MIPS build (#115).
    • 🐧 Only compiling TrimSpace on linux (#310).
    • 👉 Use xcrun to determine path instead of using a hardcoded path.
    • ➕ Add "approximate-memory-usage" property to leveldb::DB::GetProperty.
    • ➕ Add leveldb::Cache::Prune.
    • 🛠 Fix size_t/int comparison/conversion issues.
    • ➕ Added leveldb::Status::IsInvalidArgument() method.
    • 👀 Suppress error reporting after seeking but before a valid First or Full record is encountered.
    • #include -> (#280).
    • 🌲 Now attempts to reuse the preceding MANIFEST and log file when re-opened.
    • ➕ Add benchmark that measures cost of repeatedly opening the database.
    • ➕ Added a new fault injection test.
    • ➕ Add arm64 support to leveldb.
  • v1.18 Changes

    September 16, 2014
    • ⚡️ Update version number to 1.18
    • 🖨 Replace the basic fprintf call with a call to fwrite in order to
      ↪ work around the apparent compiler optimization/rewrite failure that we are
      👀 seeing with the new toolchain/iOS SDKs provided with Xcode6 and iOS8.
    • 🛠 Fix ALL the header guards.
    • Createed a with the LevelDB project description.
    • A new CONTRIBUTING file.
    • Don't implicitly convert uint64_t to size_t or int. Either preserve it as
      ⚠ uint64_t, or explicitly cast. This fixes MSVC warnings about possible value
      truncation when compiling this code in Chromium.
    • ➕ Added a DumpFile() library function that encapsulates the guts of the
      "leveldbutil dump" command. This will allow clients to dump
      🌲 data to their log files instead of stdout. It will also allow clients to
      supply their own environment.
    • 🚚 leveldb: Remove unused function 'ConsumeChar'.
    • 🚚 leveldbutil: Remove unused member variables from WriteBatchItemPrinter.
    • OpenBSD, NetBSD and DragonflyBSD have _LITTLE_ENDIAN, so define
      PLATFORM_IS_LITTLE_ENDIAN like on FreeBSD. This fixes:
    • Switch from <cstdatomic> to <atomic>. The former never made it into the
      standard and doesn't exist in modern gcc versions at all. The later contains
      everything that leveldb was using from the former.
      This problem was noticed when porting to Portable Native Client where no memory
      barrier is defined. The fact that <cstdatomic> is missing normally goes
      unnoticed since memory barriers are defined for most architectures.
    • 👉 Make Hash() treat its input as unsigned. Before this change LevelDB files
      from platforms with different signedness of char were not compatible. This
      🔄 change fixes: issue #243
    • 👌 Verify checksums of index/meta/filter blocks when paranoid_checks set.
    • Invoke all tools for iOS with xcrun. (This was causing problems with the new
      XCode 5.1.1 image on pulse.)
    • 👕 include <sys/stat.h> only once, and fix the following linter warning:
      "Found C system header after C++ system header"
    • When encountering a corrupted table file, return Status::Corruption instead of
    • 👌 Support cygwin as build platform, patch is from
    • 🛠 Fix typo, merge patch from
    • 🛠 Fix typos and comments, and address the following two issues:
    • ➕ Add missing db synchronize after "fillseq" in the benchmark.
    • ✂ Removed unused variable in SeekRandom: value (issue #201)
  • v1.17 Changes

    September 15, 2014

    Cleanup: delete unused IntSetToString

    It was added in http://cr/19491949 (and was referenced at the time).
    🚚 The last reference was removed in http://cr/19507363.

    🚀 This fixes warning/error with pre-release crosstoolv18:

    'std::string leveldb::{anonymous}::IntSetToString(const std::set<long unsigned int>&)' defined but not used [-Werror=unused-function]

    ➕ Added arm64 and and armv7s to IOS build as suggested on leveldb mailing list.

    🔄 Changed local variable type from int to size_t

    ⚠ This eliminates compiler warning/error and resolves issue #146

  • v1.16 Changes

    September 15, 2014
    • 🌲 Make Log::Reader not report a corruption when the last record in a log file is truncated.
    • 🛠 Fix issue #230: variable created but not utilized.
    • ✂ Remove comment that referenced a removed feature.
  • v1.15 Changes

    September 15, 2014
    • 🐧 switched from mmap based writing to simpler stdio based writing. Has a minor impact (0.5 microseconds) on microbenchmarks for asynchronous writes. Synchronous writes speed up from 30ms to 10ms on linux/ext4.
      Should be much more reliable on diverse platforms.
    • compaction errors now immediately put the database into a read-only mode (until it is re-opened). As a downside, a disk going out of space and then space being created will require a re-open to recover from, whereas previously that would happen automatically. On the plus side, many corruption possibilities go away.
    • 🔀 force the DB to enter an error-state so that all future writes fail when a synchronous log write succeeds but the sync fails.
    • repair now regenerates sstables that exhibit problems
    • 🛠 fix issue #224 - Use native memory barriers on OSX
    • 🛠 fix issue #218 - QNX build is broken
    • 🛠 fix build on iOS with xcode 5
    • 🏁 make tests compile and pass on windows
  • v1.14 Changes

    September 15, 2014

    🛠 Fix issues #206, #207


    • 🛠 Fix link to bigtable paper in docs.
    • 🆕 New sstables will have the file extension .ldb. .sst files will continue to be recognized.
    • 🏗 When building for iOS, use xcrun to execute the compiler. This may affect issue #183.
  • v1.13 Changes

    September 15, 2014

    🛠 Fix issues #83, #93, #188, #196.

    ➕ Additionally, fix the bug described in where a large contiguous keyspace of deleted data was not getting compacted.

    Also fix a bug where options.max_open_files was not getting clamped properly.