.set_default(0)
.set_description("maximum age (in seconds) for pending commits"),
+ Option("rbd_journal_object_max_in_flight_appends", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
+ .set_default(0)
+ .set_description("maximum number of in-flight appends per journal object"),
+
Option("rbd_journal_pool", Option::TYPE_STR, Option::LEVEL_ADVANCED)
.set_default("")
.set_description("pool for journal objects"),
"rbd_journal_object_flush_interval", false)(
"rbd_journal_object_flush_bytes", false)(
"rbd_journal_object_flush_age", false)(
+ "rbd_journal_object_max_in_flight_appends", false)(
"rbd_journal_pool", false)(
"rbd_journal_max_payload_bytes", false)(
"rbd_journal_max_concurrent_object_sets", false)(
ASSIGN_OPTION(journal_object_flush_interval, int64_t);
ASSIGN_OPTION(journal_object_flush_bytes, Option::size_t);
ASSIGN_OPTION(journal_object_flush_age, double);
+ ASSIGN_OPTION(journal_object_max_in_flight_appends, uint64_t);
ASSIGN_OPTION(journal_max_payload_bytes, Option::size_t);
ASSIGN_OPTION(journal_max_concurrent_object_sets, int64_t);
ASSIGN_OPTION(mirroring_resync_after_disconnect, bool);
int journal_object_flush_interval;
uint64_t journal_object_flush_bytes;
double journal_object_flush_age;
+ uint64_t journal_object_max_in_flight_appends;
std::string journal_pool;
uint32_t journal_max_payload_bytes;
int journal_max_concurrent_object_sets;
ceph_assert(m_lock.is_locked());
m_journaler->start_append(m_image_ctx.journal_object_flush_interval,
m_image_ctx.journal_object_flush_bytes,
- m_image_ctx.journal_object_flush_age);
+ m_image_ctx.journal_object_flush_age,
+ m_image_ctx.journal_object_max_in_flight_appends);
transition_state(STATE_READY, 0);
}
bufferlist event_entry_bl;
encode(event_entry, event_entry_bl);
- m_journaler->start_append(0, 0, 0);
+ m_journaler->start_append(0, 0, 0, 0);
m_future = m_journaler->append(m_tag_tid, event_entry_bl);
auto ctx = create_context_callback<
bufferlist event_entry_bl;
encode(event_entry, event_entry_bl);
- m_journaler->start_append(0, 0, 0);
+ m_journaler->start_append(0, 0, 0, 0);
m_future = m_journaler->append(m_tag_tid, event_entry_bl);
auto ctx = create_context_callback<
return r;
}
- replay_journaler.start_append(0, 0, 0);
+ replay_journaler.start_append(0, 0, 0, 0);
C_SaferCond replay_ctx;
ReplayHandler replay_handler(&journaler, &replay_journaler,
}
void expect_start_append(::journal::MockJournaler &mock_journaler) {
- EXPECT_CALL(mock_journaler, start_append(_, _, _));
+ EXPECT_CALL(mock_journaler, start_append(_, _, _, _));
}
void expect_stop_append(::journal::MockJournaler &mock_journaler, int r) {
journal_object_flush_interval(image_ctx.journal_object_flush_interval),
journal_object_flush_bytes(image_ctx.journal_object_flush_bytes),
journal_object_flush_age(image_ctx.journal_object_flush_age),
+ journal_object_max_in_flight_appends(
+ image_ctx.journal_object_max_in_flight_appends),
journal_pool(image_ctx.journal_pool),
journal_max_payload_bytes(image_ctx.journal_max_payload_bytes),
journal_max_concurrent_object_sets(
int journal_object_flush_interval;
uint64_t journal_object_flush_bytes;
double journal_object_flush_age;
+ uint64_t journal_object_max_in_flight_appends;
std::string journal_pool;
uint32_t journal_max_payload_bytes;
int journal_max_concurrent_object_sets;
}
void expect_start_append(::journal::MockJournaler &mock_journaler) {
- EXPECT_CALL(mock_journaler, start_append(_, _, _));
+ EXPECT_CALL(mock_journaler, start_append(_, _, _, _));
}
void expect_stop_append(::journal::MockJournaler &mock_journaler, int r) {
if (r < 0) {
return r;
}
- m_journaler.start_append(0, 0, 0);
+ m_journaler.start_append(0, 0, 0, 0);
int r1 = 0;
bufferlist bl;