omap_root_t &omap_root,
Transaction &t,
const std::string &first,
- const std::string &last,
- omap_list_config_t config) = 0;
+ const std::string &last) = 0;
/**
* clear all omap tree key->value mapping
omap_root_t &omap_root,
Transaction &t,
const std::string &first,
- const std::string &last,
- omap_list_config_t config)
+ const std::string &last)
{
LOG_PREFIX(BtreeOMapManager::omap_rm_key_range);
DEBUGT("{} ~ {}", t, first, last);
assert(last != "");
return seastar::do_with(
key_range_t{first, last, 0, false, false},
- [this, &omap_root, &t, config](auto &key_range) {
+ [this, &omap_root, &t](auto &key_range) {
return trans_intr::repeat(
- [this, &omap_root, &t, config, &key_range]()
+ [this, &omap_root, &t, &key_range]()
{
return get_omap_root(
get_omap_context(t, omap_root),
omap_root_t &omap_root,
Transaction &t,
const std::string &first,
- const std::string &last,
- omap_list_config_t config) final;
+ const std::string &last) final;
omap_iterate_ret omap_iterate(
const omap_root_t &omap_root,
[&t, &onode, FNAME]
(auto &omap_manager, auto &root, auto &first, auto &last)
{
- auto config = OMapManager::omap_list_config_t()
- .with_inclusive(true, false)
- .without_max();
return omap_manager.omap_rm_key_range(
- root, t, first, last, config
+ root, t, first, last
).si_then([&t, &root, &onode, FNAME] {
if (root.must_update()) {
omaptree_update_root(t, root, onode);
const std::string &first,
const std::string &last) {
logger().debug("rm keys in range {} ~ {}", first, last);
- auto config = OMapManager::omap_list_config_t()
- .with_max(3000)
- .with_inclusive(true, false);
with_trans_intr(
t,
[&, this](auto &t) {
return omap_manager->omap_rm_key_range(
- omap_root, t, first, last, config);
+ omap_root, t, first, last);
}).unsafe_get();
std::vector<std::string> keys;
- size_t count = 0;
for (auto iter = test_omap_mappings.begin();
- iter != test_omap_mappings.end(); ) {
+ iter != test_omap_mappings.end(); ) {
if (iter->first >= first && iter->first < last) {
- keys.push_back(iter->first);
- iter = test_omap_mappings.erase(iter);
- count++;
+ keys.push_back(iter->first);
+ iter = test_omap_mappings.erase(iter);
} else {
- iter++;
+ iter++;
}
- if (count == config.max_result_size) {
- break;
+ if (iter->first >= last) {
+ break;
}
}
return keys;