/**
* RBD Mirror options
*/
+OPTION(rbd_mirror_journal_commit_age, OPT_DOUBLE, 5) // commit time interval, seconds
+OPTION(rbd_mirror_journal_poll_age, OPT_DOUBLE, 5) // maximum age (in seconds) between successive journal polls
+OPTION(rbd_mirror_journal_max_fetch_bytes, OPT_U32, 32768) // maximum bytes to read from each journal data object per fetch
OPTION(rbd_mirror_sync_point_update_age, OPT_DOUBLE, 30) // number of seconds between each update of the image sync point object number
OPTION(rbd_mirror_concurrent_image_syncs, OPT_U32, 5) // maximum number of image syncs in parallel
{
EXPECT_EQ("", connect_cluster_pp(*m_local_cluster.get()));
EXPECT_EQ(0, m_local_cluster->conf_set("rbd_cache", "false"));
+ EXPECT_EQ(0, m_local_cluster->conf_set("rbd_mirror_journal_poll_age", "1"));
m_local_pool_name = get_temp_pool_name();
EXPECT_EQ(0, m_local_cluster->pool_create(m_local_pool_name.c_str()));
CephContext *cct = static_cast<CephContext *>(m_local->cct());
journal::Settings settings;
- settings.commit_interval = cct->_conf->rbd_journal_commit_age;
+ settings.commit_interval = cct->_conf->rbd_mirror_journal_commit_age;
+ settings.max_fetch_bytes = cct->_conf->rbd_mirror_journal_max_fetch_bytes;
m_remote_journaler = new Journaler(m_threads->work_queue,
m_threads->timer,
}
{
+ CephContext *cct = static_cast<CephContext *>(m_local->cct());
+ double poll_seconds = cct->_conf->rbd_mirror_journal_poll_age;
+
Mutex::Locker locker(m_lock);
m_replay_handler = new ReplayHandler<I>(this);
- m_remote_journaler->start_live_replay(m_replay_handler,
- 1 /* TODO: configurable */);
+ m_remote_journaler->start_live_replay(m_replay_handler, poll_seconds);
dout(20) << "m_remote_journaler=" << *m_remote_journaler << dendl;
}