-
Notifications
You must be signed in to change notification settings - Fork 6k
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
pacific: bluestore: set upper and lower bounds on rocksdb omap iterators #45963
Conversation
Limits RocksDB omap Seek operations to the relevant key range of the object's omap. This prevents RocksDB from unnecessarily iterating over delete range tombstones in irrelevant omap CF shards. Avoids extreme performance degradation commonly caused by tombstones generated from RGW bucket resharding cleanup. Also prefer CFIteratorImpl over ShardMergeIteratorImpl when we can determine that all keys within specified IteratorBounds must be in a single CF. Fixes: https://tracker.ceph.com/issues/55324 Signed-off-by: Cory Snyder <csnyder@iland.com> (cherry picked from commit 850c16c)
6b38e82
to
d0b03f2
Compare
Adding a note here to document that this PR needs to backport ca3ccd9 from the master PR. |
…isabled Add osd_rocksdb_iterator_bounds_enabled config option to allow rocksdb iterator bounds to be disabled. Also includes minor refactoring to shorten code associated with IteratorBounds initialization in bluestore. Signed-off-by: Cory Snyder <csnyder@iland.com> (cherry picked from commit ca3ccd9) Conflicts: src/common/options/osd.yaml.in Cherry-pick notes: - Conflicts due to option definition in common/options.cc in Pacific vs. common/options/osd.yaml.in in later releases
e74948e
to
7d96030
Compare
…rBounds) Adds a precondition to RocksDBStore::get_cf_handle(string, IteratorBounds) to avoid duplicating logic of the only caller (RocksDBStore::get_iterator). Assertions will fail if preconditions are not met. Signed-off-by: Cory Snyder <csnyder@iland.com> (cherry picked from commit 55ef16f)
55ef16f also backported and included |
jenkins test api |
jenkins test make check |
1 similar comment
jenkins test make check |
jenkins test api |
jenkins test make check |
http://pulpito.front.sepia.ceph.com/lflores-2022-04-22_20:48:19-rados-wip-55324-pacific-backport-distro-default-smithi/ A few rados tests failed due to selinux denials. Failures, unrelated: Details: (edited with a more detailed analysis) |
Limits RocksDB omap Seek operations to the relevant key range of the object's omap.
This prevents RocksDB from unnecessarily iterating over delete range tombstones in
irrelevant omap CF shards. Avoids extreme performance degradation commonly caused
by tombstones generated from RGW bucket resharding cleanup. Also prefer CFIteratorImpl
over ShardMergeIteratorImpl when we can determine that all keys within specified
IteratorBounds must be in a single CF.
backport of #45904
parent tracker: https://tracker.ceph.com/issues/55324