1--- 2title: RocksDB 5.4.5 Released! 3layout: post 4author: sagar0 5category: blog 6--- 7 8### Public API Change 9* Support dynamically changing `stats_dump_period_sec` option via SetDBOptions(). 10* Added ReadOptions::max_skippable_internal_keys to set a threshold to fail a request as incomplete when too many keys are being skipped while using iterators. 11* DB::Get in place of std::string accepts PinnableSlice, which avoids the extra memcpy of value to std::string in most of cases. 12 * PinnableSlice releases the pinned resources that contain the value when it is destructed or when ::Reset() is called on it. 13 * The old API that accepts std::string, although discouraged, is still supported. 14* Replace Options::use_direct_writes with Options::use_direct_io_for_flush_and_compaction. See Direct IO wiki for details. 15 16### New Features 17* Memtable flush can be avoided during checkpoint creation if total log file size is smaller than a threshold specified by the user. 18* Introduce level-based L0->L0 compactions to reduce file count, so write delays are incurred less often. 19* (Experimental) Partitioning filters which creates an index on the partitions. The feature can be enabled by setting partition_filters when using kFullFilter. Currently the feature also requires two-level indexing to be enabled. Number of partitions is the same as the number of partitions for indexes, which is controlled by metadata_block_size. 20* DB::ResetStats() to reset internal stats. 21* Added CompactionEventListener and EventListener::OnFlushBegin interfaces. 22* Added DB::CreateColumnFamilie() and DB::DropColumnFamilies() to bulk create/drop column families. 23* Facility for cross-building RocksJava using Docker. 24 25### Bug Fixes 26* Fix WriteBatchWithIndex address use after scope error. 27* Fix WritableFile buffer size in direct IO. 28* Add prefetch to PosixRandomAccessFile in buffered io. 29* Fix PinnableSlice access invalid address when row cache is enabled. 30* Fix huge fallocate calls fail and make XFS unhappy. 31* Fix memory alignment with logical sector size. 32* Fix alignment in ReadaheadRandomAccessFile. 33* Fix bias with read amplification stats (READ_AMP_ESTIMATE_USEFUL_BYTES and READ_AMP_TOTAL_READ_BYTES). 34* Fix a manual / auto compaction data race. 35* Fix CentOS 5 cross-building of RocksJava. 36* Build and link with ZStd when creating the static RocksJava build. 37* Fix snprintf's usage to be cross-platform. 38* Fix build errors with blob DB. 39* Fix readamp test type inconsistency. 40