| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
os, osd: bring the lightweight OMAP iteration
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Matan Breizman <Matan.Brz@gmail.com>
Reviewed-by: Mark Kogan <mkogan@redhat.com>
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
```
- 63.07% _ZN12PrimaryLogPG19prepare_transactionEPNS_9OpContextE ▒
- 63.06% _ZN12PrimaryLogPG10do_osd_opsEPNS_9OpContextERSt6vectorI5OSDOpSaIS3_EE ▒
- 20.19% _ZN9BlueStore16OmapIteratorImpl4nextEv ▒
- 12.21% _ZN14CFIteratorImpl4nextEv ▒
+ 10.56% _ZN7rocksdb6DBIter4NextEv ▒
1.02% _ZN7rocksdb18ArenaWrappedDBIter4NextEv ▒
+ 3.11% clock_gettime@@GLIBC_2.17 ▒
+ 2.44% _ZN9BlueStore11log_latencyEPKciRKNSt6chrono8durationImSt5ratioILl1ELl1000000000EEEEdS1_i ▒
0.78% pthread_rwlock_rdlock@plt ▒
0.69% pthread_rwlock_unlock@plt ▒
- 14.28% _ZN9BlueStore16OmapIteratorImpl5valueEv ▒
- 11.60% _ZN14CFIteratorImpl5valueEv ▒
- 11.41% _ZL13to_bufferlistN7rocksdb5SliceE ▒
- 10.50% _ZN4ceph6buffer7v15_2_03ptrC1EPKcj ▒
- _ZN4ceph6buffer7v15_2_04copyEPKcj ▒
- 10.01% _ZN4ceph6buffer7v15_2_014create_alignedEjj ▒
- _ZN4ceph6buffer7v15_2_025create_aligned_in_mempoolEjji ▒
5.27% _ZN7mempool6pool_t12adjust_countEll ▒
+ 3.72% tc_posix_memalign ▒
0.54% _ZN4ceph6buffer7v15_2_04list6appendEONS1_3ptrE ▒
1.25% pthread_rwlock_rdlock@plt ▒
0.90% pthread_rwlock_unlock@plt
```
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|/
|
|
| |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|\
| |
| |
| |
| | |
kv/rocksdb: return error for dump_objectstore_kv_stats asok command
Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
|
| |
| |
| |
| |
| |
| | |
if relevant config settings result in no output.
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
- Added the function of printing all cf's rocksdb level information.
- Currently, only the default cf information is printed.
- Print all cf information to facilitate observation
of the level to which rocksdb is written.
- The main purpose is to observe the usage of db/ssd.
co-author: Jrchyang Yu <yuzhiqiang_yewu@cmss.chinamobile.com>
Signed-off-by: Wang Linke <wanglinke_yewu@cmss.chinamobile.com>
|
|
|
|
| |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|
|
|
| |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
update_column_family_options() is called only for non-default CFs,
whereas load_rocksdb_options() sets options for all CFs, including
default. This isn't really a problem for new installs, where the default
CF isn't used for very much, but for upgrades where resharding has not
yet happened, the bulk of rocksdb data is still in the default CF and so
it's important that it also gets compact-on-deletion configured, if
desired.
Fixes: https://tracker.ceph.com/issues/64511
Signed-off-by: Joshua Baergen <jbaergen@digitalocean.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resolve three warning issues in the derived classes overriding base class virtual functions with mismatched parameter lists at lines 69, 72, and 74 in src/kv/rocksdb_cache/ShardedCache.h.
with ../src/kv/rocksdb_cache/ShardedCache.h:74:16: warning: by 'virtual bool rocksdb_cache::ShardedCache::Release(rocksdb::Cache::Handle*, bool)' [-Woverloaded-virtual]
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
^~~~~~~
../src/kv/rocksdb_cache/ShardedCache.h:72:35: warning: by 'virtual rocksdb::Cache::Handle* rocksdb_cache::ShardedCache::Lookup(const rocksdb::Slice&, rocksdb::Statistics*)' [-Woverloaded-virtual]
virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
^~~~~~
../src/kv/rocksdb_cache/ShardedCache.h:69:27: warning: by 'virtual rocksdb::Status rocksdb_cache::ShardedCache::Insert(const rocksdb::Slice&, void*, size_t, rocksdb::Cache::DeleterFn, rocksdb::Cache::Handle**, rocksdb::Cache::Priority)' [-Woverloaded-virtual]
virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
^~~~~~
Signed-off-by: cuiming <cuiming_yewu@cmss.chinamobile.com>
|
|\
| |
| |
| |
| | |
kv/RocksDBStore: use bounded iterators in rm_range_keys
Reviewed-by: Cory Snyder <csnyder@iland.com>
|
| |
| |
| |
| |
| | |
Fixes: https://tracker.ceph.com/issues/58463
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|\ \
| |/
|/|
| |
| |
| |
| | |
kv/RocksDBStore: don't use real wholespace iterator for prefixed access
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
Reviewed-by: Cory Snyder <csnyder@iland.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We can bound to default CF when here are no matching CF for a specified prefix.
No need to use real wholespace iterator running over every CF. Hence we
might benefit from not iterating over large but useless CFs, e.g. OMAP related ones.
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
| |
| |
| |
| | |
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|\ \
| | |
| | |
| | |
| | |
| | | |
kv/rocksdbstore: apply rocksdb_delete_range_threshold on the fly
Reviewed-by: Adam Kupczyk <akupczyk@redhat.com>
|
| |/
| |
| |
| |
| |
| |
| | |
Plus more effective rm_range_keys implementation when this parameter is
set to 0
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the ability to dump labeled perf counters
for a daemon. Labeled perf counters are stored
in a CephContext's PerfCountersCollection.
Labeled and unlabeled perf counters are dumped
to the admin socket via `counters dump` command.
The schema for labeled and unlabeled perf
counters are dumped to the admin socket via
`counters schema` command.
This commit includes docs and additional unit tests
Signed-off-by: Ali Maredia <amaredia@redhat.com>
|
|\
| |
| | |
[WIP] kv/RocksDBStore: Improved RocksDB Settings and Tombstone behavior
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit adds support to compact column families when a certain number
of tombstone entries have been observed within a certain sliding window
during iteration. It only helps when itereating over entries already in
SST files and not when iterating over ranges in memtables.
Likely we will still need to provide a mechanism to flush memtables and
compact column families once a certain number of rmkey or rm_range_key
calls are made.
Signed-off-by: Mark Nelson <mnelson@redhat.com>
|
| |
| |
| |
| | |
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| | |
common/bl, kv, tests: drop MemDB and simplify buffer::ptr and buffer::raw
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's an experimental feature since 2016. It doesn't seem to be
used anywhere nor actively maintained. However, it's the sole
major user of `ceph::buffer::ptr::clone()` which could have
been dropped otherwise.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
|/
|
|
|
|
|
|
| |
RocksDB 7, specifically 7.2.2 has landed in Fedora 37/rawhide.
https://tracker.ceph.com/issues/55730
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
iterator
Iterator-bounding feature is introduced to make RocksDB iterators limited, so they
would less likely traverse over tombstones.
This is used when listing keys in fixed range, for example OMAPS for specific object.
It is problematic when extending this logic to WholeSpaceIterator,
since prefix must be taken into account.
Fixes: https://tracker.ceph.com/issues/55444
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Mark Nelson <mnelson@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whereas new LevelDB packages are build with -fno-rtti and break our
attempts to compile against them,
and whereas LevelDB has been deprecated for some time, with the Ceph
team expending great effort to migrating OSDs off of it,
let it be therefore removed.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
|\
| |
| |
| |
| | |
kv/RocksdbStore: remove perfcounter l_rocksdb_gets.
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Perfcounter l_rocksdb_get_latency contain l_rocksdb_gets.
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
|
| |
| |
| |
| |
| |
| | |
rocksdb v6.22.1 added couple pure methods, so let's implement them.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| | |
it does not mutate anything, so mark it `const`.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| | |
this paves the road to rocksdb v6.22.1 compatible implementation
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
in the exact order in which rocksdb::Cache declare its public virtual
methods.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ROCKSDB_PRIszt is a macro for "zu", which is in turn use for printing an
(unsigned) size_t variable.
there is no point having it in the header file or define a macro for it,
as %zu is standard compliant, and we don't get any advantage by using a
macro for it.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* add "std::" prefix in headers
* add "using" declarations in .cc files.
so we don't rely on "using namespace std" in one or more included
headers.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Synchronized all situations when we initialize DB to include handling of block_cache option.
Lack of it prevented ability to reshard into specification that we have as default.
Fixes: https://tracker.ceph.com/issues/51445
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
It's better to print why ListColumnFamilies() failed.
Signed-off-by: Toshikuni Fukaya <toshiq2@gmail.com>
Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
|
|\ \
| | |
| | |
| | |
| | | |
common/strtol: replace `const char*` with `std::string_view`
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
replace strict_iecstrtoll(const char *str,..) with
strict_iecstrtoll(std::string_view, ..). which is more convenient.
and both of them share the same implementation:
strict_iec_cast<uint64_t>(str, err);
so they are interchangeable.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
silences following warning from GCC:
../src/kv/RocksDBStore.cc:386:7: warning: ‘r’ may be used uninitialized in this function [-Wmaybe-uninitialized]
386 | if (r < 0) {
| ^~
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
since there is no need to be compatible with GCC older than GCC-8, so
there is no need to use <experimental/filesystem> as an alternative of
<filesystem> anymore.
Signed-off-by: Kefu Chai <kchai@redhat.com>
|
| |
| |
| |
| |
| |
| |
| | |
This command shows information on key/value counts and lengths for KV
DB.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
| |
| |
| |
| | |
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
|
|\ \
| | |
| | |
| | |
| | | |
Fix ceph-bluestore-tool reshard command
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix ceph-bluestore-tool reshard command.
Add conditions that allow to continue resharding that was previously terminated.
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
|
|/ /
| |
| |
| |
| |
| | |
Add command 'show-sharding' to ceph-bluestore-tool.
Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
|