Changelog¶
Version 0.5¶
Version 0.4¶
This version works with RocksDB v3.12.
Added
repair_db().Added
rocksdb.Options.row_cache()Publish to pypi.
Backward Incompatible Changes:¶
Changed API of
rocksdb.DB.compact_range().Only allow keyword arguments.
Changed
reduce_leveltochange_level.Add new argument called
bottommost_level_compaction.
Version 0.3¶
This version works with RocksDB version v3.11.
Backward Incompatible Changes:¶
Prefix Seeks:
According to this page https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes,
all the prefix related parameters on ReadOptions are removed.
Rocksdb realizes now if Options.prefix_extractor is set and uses then
prefix-seeks automatically. This means the following changes on pyrocksdb.
DB.iterkeys, DB.itervalues, DB.iteritems have no
prefixparameter anymore.DB.get, DB.multi_get, DB.key_may_exist, DB.iterkeys, DB.itervalues, DB.iteritems have no
prefix_seekparameter anymore.
Which means all the iterators walk now always to the end of the database.
So if you need to stay within a prefix, write your own code to ensure that.
For DB.iterkeys and DB.iteritems itertools.takewhile is a possible solution.
from itertools import takewhile
it = self.db.iterkeys()
it.seek(b'00002')
print list(takewhile(lambda key: key.startswith(b'00002'), it))
it = self.db.iteritems()
it.seek(b'00002')
print dict(takewhile(lambda item: item[0].startswith(b'00002'), it))
SST Table Builders:
Removed
NewTotalOrderPlainTableFactory, because rocksdb drops it too.
Changed Options:
In newer versions of rocksdb a bunch of options were moved or removed.
Rename
bloom_bits_per_prefixofrocksdb.PlainTableFactorytobloom_bits_per_keyRemoved
Options.db_stats_log_interval.Removed
Options.disable_seek_compactionMoved
Options.no_block_cachetoBlockBasedTableFactoryMoved
Options.block_sizetoBlockBasedTableFactoryMoved
Options.block_size_deviationtoBlockBasedTableFactoryMoved
Options.block_restart_intervaltoBlockBasedTableFactoryMoved
Options.whole_key_filteringtoBlockBasedTableFactoryRemoved
Options.table_cache_remove_scan_count_limitRemoved rm_scan_count_limit from
LRUCache
New:¶
Make CompactRange available:
rocksdb.DB.compact_range()Add init options to
rocksdb.BlockBasedTableFactoryAdd more option to
rocksdb.PlainTableFactoryAdd
rocksdb.WriteBatchIteratoradd
rocksdb.CompressionType.lz4_compressionadd
rocksdb.CompressionType.lz4hc_compression
Version 0.2¶
This version works with RocksDB version 2.8.fb. Now you have access to the more advanced options of rocksdb. Like changing the memtable or SST representation. It is also possible now to enable Universal Style Compaction.
Fixed issue 3. Which fixed the change of prefix_extractor from raw-pointer to smart-pointer.
Support the new
rocksdb.Options.verify_checksums_in_compactionoption.Add
rocksdb.Options.table_factoryoption. So you could use the new ‘PlainTableFactories’ which are optimized for in-memory-databases.Add
rocksdb.Options.memtable_factoryoption.Add options
rocksdb.Options.compaction_styleandrocksdb.Options.compaction_options_universalto change the compaction style.Update documentation to the new default values
allow_mmap_reads=true
allow_mmap_writes=false
max_background_flushes=1
max_open_files=5000
paranoid_checks=true
disable_seek_compaction=true
level0_stop_writes_trigger=24
level0_slowdown_writes_trigger=20
Document new property names for
rocksdb.DB.get_property().
Version 0.1¶
Initial version. Works with rocksdb version 2.7.fb.