8000 Publish/support format_version=7, related enhancements by pdillinger · Pull Request #13713 · facebook/rocksdb · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Publish/support format_version=7, related enhancements #13713

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from

Conversation

pdillinger
Copy link
Contributor
@pdillinger pdillinger commented Jun 20, 2025

Summary:

  • Make new format_version=7 a supported setting.
  • Fix a bug in compressed_secondary_cache.cc that is newly exercised by custom compression types and showing up in crash test with tiered secondary cache
  • Small change to handling of disabled compression in fv=7: use empty compression manager compatibility name.
  • Get rid of GetDefaultBuiltinCompressionManager() in public API because it could cause unexpected+unsafe schema change on a user's CompressionManager if built upon the default built-in manager and we add a new built-in schema. Now must be referenced by explicit compression schema version in the public API. (That notion was already exposed in compressed secondary cache API, for better or worse.)
  • Improve some error messages for compression misconfiguration
  • Improve testing with ObjectLibrary and CompressionManagers
  • Improve testing of compression_name table property in BlockBasedTableTest.BlockBasedTableProperties2
  • Improve some comments

Test Plan: existing and updated tests. Notably, the crash test has already been running with (unpublished) format_version=7

Summary:
* Make new format_version=7 a supported setting.
* Small change to handling of disabled compression in fv=7: use empty
  compression manager compatibility name.
* Get rid of GetDefaultBuiltinCompressionManager() in public API because
  it could cause unexpected+unsafe schema change on a user's CompressionManager
  if built upon the default built-in manager and we add a new built-in
  schema. Now must be referenced by explicit compression schema version
  in the public API. (That notion was already exposed in compressed
  secondary cache API, for better or worse.)
* Improve some error messages for compression misconfiguration
* Improve testing with ObjectLibrary and CompressionManagers
* Improve testing of compression_name table property in
  BlockBasedTableTest.BlockBasedTableProperties2
* Improve some comments

Test Plan: existing and updated tests
@facebook-github-bot
Copy link
Contributor

@pdillinger has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@@ -2365,10 +2368,49 @@ TEST_F(DBTest2, CompressionManagerCustomCompression) {
ASSERT_EQ(Get("d").size(), kValueSize);
ASSERT_EQ(Get("e").size(), kValueSize);

// TODO: mix of compatibility names in same DB
// Add a file using mgr_bar
Copy link
Contributor

Choose a reason for hiding this comment

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

Related to your previous PR - "...// Verify it was compressed with snappy" in line 2326 above should be with LZ4

Copy link
Contributor
@hx235 hx235 left a comment

Choose a reason for hiding this comment

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

LGTM - remember to check for format compatibility test job failure if any. Sometimes I also manually run db_crashtest.py across old and new binaries randomly

You also need to fix the tsan failure with your UT.

@facebook-github-bot
Copy link
Contributor

@pdillinger has updated the pull request. You must reimport the pull request before landing.

@facebook-github-bot
Copy link
Contributor

@pdillinger has updated the pull request. You must reimport the pull request before landing.

@facebook-github-bot
Copy link
Contributor

@pdillinger has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@facebook-github-bot
Copy link
Contributor

@pdillinger merged this pull request in 78c83ac.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0