.. confval:: rgw_md_log_max_shards
.. confval:: rgw_data_sync_poll_interval
.. confval:: rgw_meta_sync_poll_interval
+.. confval:: rgw_bucket_sync_spawn_window
+.. confval:: rgw_data_sync_spawn_window
+.. confval:: rgw_meta_sync_spawn_window
.. important:: The values of :confval:`rgw_data_log_num_shards` and
:confval:`rgw_md_log_max_shards` should not be changed after sync has
see_also:
- rgw_data_sync_poll_interval
with_legacy: true
+- name: rgw_bucket_sync_spawn_window
+ type: int
+ level: dev
+ default: 20
+ fmt_desc: The maximum number of items that bucket sync is willing to
+ process in parallel (per remote bilog shard).
+ services:
+ - rgw
+ see_also:
+ - rgw_data_sync_spawn_window
+ - rgw_meta_sync_spawn_window
+ with_legacy: true
+- name: rgw_data_sync_spawn_window
+ type: int
+ level: dev
+ default: 20
+ fmt_desc: The maximum number of items that data sync is willing to
+ process in parallel (per remote datalog shard).
+ services:
+ - rgw
+ see_also:
+ - rgw_bucket_sync_spawn_window
+ - rgw_meta_sync_spawn_window
+ with_legacy: true
+- name: rgw_meta_sync_spawn_window
+ type: int
+ level: dev
+ default: 20
+ fmt_desc: The maximum number of items that metadata sync is willing to
+ process in parallel (per remote mdlog shard).
+ services:
+ - rgw
+ see_also:
+ - rgw_bucket_sync_spawn_window
+ - rgw_data_sync_spawn_window
+ with_legacy: true
- name: rgw_bucket_quota_ttl
type: int
level: advanced
}
};
-#define BUCKET_SHARD_SYNC_SPAWN_WINDOW 20
#define DATA_SYNC_MAX_ERR_ENTRIES 10
class RGWDataSyncShardCR : public RGWCoroutine {
set<string>::iterator modified_iter;
uint64_t total_entries = 0;
- static constexpr int spawn_window = BUCKET_SHARD_SYNC_SPAWN_WINDOW;
bool *reset_backoff = nullptr;
boost::intrusive_ptr<RGWContinuousLeaseCR> lease_cr;
// fetch remote and write locally
yield_spawn_window(sync_single_entry(source_bs, iter->first, iter->first,
entry_timestamp, false),
- spawn_window, std::nullopt);
+ cct->_conf->rgw_data_sync_spawn_window, std::nullopt);
}
sync_marker.marker = iter->first;
}
} else {
yield_spawn_window(sync_single_entry(source_bs, log_iter->entry.key, log_iter->log_id,
log_iter->log_timestamp, false),
- spawn_window, std::nullopt);
+ cct->_conf->rgw_data_sync_spawn_window, std::nullopt);
}
}
entry->key, &marker_tracker, zones_trace, tn),
false);
}
- drain_with_cb(BUCKET_SYNC_SPAWN_WINDOW,
+ drain_with_cb(cct->_conf->rgw_bucket_sync_spawn_window,
[&](uint64_t stack_id, int ret) {
if (ret < 0) {
tn->log(10, "a sync operation returned error");
false);
}
// }
- drain_with_cb(BUCKET_SYNC_SPAWN_WINDOW,
+ drain_with_cb(cct->_conf->rgw_bucket_sync_spawn_window,
[&](uint64_t stack_id, int ret) {
if (ret < 0) {
tn->log(10, "a sync operation returned error");
int state_store_mdlog_entries_complete();
};
-#define META_SYNC_SPAWN_WINDOW 20
-
class RGWMetaSyncShardCR : public RGWCoroutine {
RGWMetaSyncEnv *sync_env;
pos_to_prev[marker] = marker;
}
// limit spawn window
- while (num_spawned() > META_SYNC_SPAWN_WINDOW) {
+ while (num_spawned() > cct->_conf->rgw_meta_sync_spawn_window) {
yield wait_for_child();
collect_children();
}
pos_to_prev[log_iter->id] = marker;
}
// limit spawn window
- while (num_spawned() > META_SYNC_SPAWN_WINDOW) {
+ while (num_spawned() > cct->_conf->rgw_meta_sync_spawn_window) {
yield wait_for_child();
collect_children();
}