rocksdb/options
Peter Dillinger 4b1d595306 Fix and clarify ignore_unknown_options (#12989)
Summary:
`ignore_unknown_options=true` had an undocumented behavior of having no effect (disallow unknown options) if reading from the same or older major.minor version. Presumably this was intended to catch unintentional addition of new options in a patch release, but there is no automated version compatibility testing between patch releases. So this was a bad choice without such testing support, because it just means users would hit the failure in case of adding features to a patch release.

In this diff we respect ignore_unknown_options when reading a file from any newer version, even patch versions, and document this behavior in the API.

I don't think it's practical or necessary to test among patch releases in check_format_compatible.sh. This seems like an exceptional case of applying a *different semantics* to patch version updates than to minor/major versions.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/12989

Test Plan: unit test updated (and refactored)

Reviewed By: jaykorean

Differential Revision: D62168738

Pulled By: pdillinger

fbshipit-source-id: fb3c3ef30f0bbad0d5ffcc4570fb9ef963e7daac
2024-09-04 11:42:04 -07:00
..
cf_options.cc Add an option to verify memtable key order during reads (#12889) 2024-08-19 13:53:25 -07:00
cf_options.h Add an option to verify memtable key order during reads (#12889) 2024-08-19 13:53:25 -07:00
configurable.cc internal_repo_rocksdb (-8794174668376270091) (#12114) 2023-12-01 11:10:30 -08:00
configurable_helper.h Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00
configurable_test.cc Run internal cpp modernizer on RocksDB repo (#12398) 2024-03-04 10:08:32 -08:00
configurable_test.h internal_repo_rocksdb (-8794174668376270091) (#12114) 2023-12-01 11:10:30 -08:00
customizable.cc Prefer static_cast in place of most reinterpret_cast (#12308) 2024-02-07 10:44:11 -08:00
customizable_test.cc Add some compressed and tiered secondary cache stats (#12150) 2023-12-15 11:34:08 -08:00
db_options.cc Options for file temperature for more files (#12957) 2024-08-23 19:49:25 -07:00
db_options.h Options for file temperature for more files (#12957) 2024-08-23 19:49:25 -07:00
offpeak_time_info.cc Mark more files for periodic compaction during offpeak (#12031) 2023-11-06 11:43:59 -08:00
offpeak_time_info.h Fix build on alpine 3.19 (#12345) 2024-02-12 11:24:56 -08:00
options.cc Improve universal compaction sorted-run trigger (#12477) 2024-05-24 10:10:31 -07:00
options_helper.cc Options for file temperature for more files (#12957) 2024-08-23 19:49:25 -07:00
options_helper.h Remove unnecessary, confusing 'extern' (#12300) 2024-01-29 10:38:08 -08:00
options_parser.cc Fix and clarify ignore_unknown_options (#12989) 2024-09-04 11:42:04 -07:00
options_parser.h Group SST write in flush, compaction and db open with new stats (#11910) 2023-12-29 15:29:23 -08:00
options_settable_test.cc Options for file temperature for more files (#12957) 2024-08-23 19:49:25 -07:00
options_test.cc Fix and clarify ignore_unknown_options (#12989) 2024-09-04 11:42:04 -07:00