• dennis zhuang's avatar
    (feat) Supports partitioned index filters settings for BlockBasedOptions (#294) · 56865683
    dennis zhuang authored
    This PR exports more options in RocksDB `BlockBasedTableOptions`, because we want to use [Partitioned Index Filters](https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters#how-to-use-it).
    
    There is an issue [cache_index_and_filter_blocks causes Get slowdown](https://github.com/facebook/rocksdb/issues/3961) in rocksdb, and we test the recommend `Partitioned Index Filters` in java JNI binding, it works well.
    
    So i think these options should be exported to rust-rocksdb users too.
    
    The rocksdb log in test case `test_partitioned_index_filters` as below:
    
    ```
      cache_index_and_filter_blocks: 1
      cache_index_and_filter_blocks_with_high_priority: 1
      pin_l0_filter_and_index_blocks_in_cache: 1
      pin_top_level_index_and_filter: 1
      index_type: 2
      hash_index_allow_collision: 1
      checksum: 1
      no_block_cache: 0
      block_cache: 0x7ff4540060d0
      block_cache_name: LRUCache
      block_cache_options:
        capacity : 8388608
        num_shard_bits : 4
        strict_capacity_limit : 0
        memory_allocator : None
        high_pri_pool_ratio: 0.000
      block_cache_compressed: (nil)
      persistent_cache: (nil)
      block_size: 4096
      block_size_deviation: 10
      block_restart_interval: 16
      index_block_restart_interval: 1
      metadata_block_size: 4096
      partition_filters: 1
      use_delta_encoding: 1
      filter_policy: rocksdb.BuiltinBloomFilter
      whole_key_filtering: 1
      verify_compression: 0
      read_amp_bytes_per_bit: 0
      format_version: 2
      enable_index_compression: 1
      block_align: 0
    ```
    
    It looks working.
    
    Thanks you for this great project.
    56865683
Name
Last commit
Last update
benches Loading commit data...
librocksdb_sys Loading commit data...
src Loading commit data...
tests Loading commit data...
travis-build Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.travis.yml Loading commit data...
Cargo.toml Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
rustfmt.toml Loading commit data...