Skip to content

Conversation

@kenny-house
Copy link
Contributor

While reading the rocksdb Partitioned Index Filters wiki page, I noticed that several of the recommended options were not exposed by gorocksdb.

This PR adds those options, as well as a few other options that I noticed were present in the C API but also not exposed:

  1. rocksdb_filterpolicy_create_bloom_full (I'm not clear that this functions differently from rocksdb_filterpolicy_create_bloom in the version of rocksdb I'm testing against, but it appears to be the recommended setting in the wiki)
  2. rocksdb_block_based_options_set_cache_index_and_filter_blocks_with_high_priority
  3. rocksdb_block_based_options_set_pin_top_level_index_and_filter
  4. rocksdb_block_based_options_set_index_block_restart_interval
  5. rocksdb_block_based_options_set_metadata_block_size
  6. rocksdb_block_based_options_set_partition_filters
  7. rocksdb_block_based_options_set_use_delta_encoding
  8. rocksdb_block_based_options_set_format_version

All of these options are available in the C API as of the 5.16.fb tag (https://github.com/facebook/rocksdb/blob/5.16.fb/include/rocksdb/c.h). Gorocksdb already wraps the rocksdb_options_set_enable_pipelined_write function that was introduced in this same tagged version (and perhaps others) so I do not anticipate compatibility issues from introducing these methods.

@kenny-house
Copy link
Contributor Author

@tecbot this should be ready for review. Thanks!

Copy link
Collaborator

@jamesbibby jamesbibby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thanks for the contribution!

@jamesbibby jamesbibby merged commit a180c0b into tecbot:master Nov 22, 2019
@kenny-house kenny-house deleted the partitioned-index-options branch November 23, 2019 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants