From b9c6ae8794dbd58865abcfaae0d18e4413ba74ee Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Tue, 1 Sep 2015 23:09:52 +0300 Subject: [PATCH] journal: make commit and flush params configurable Signed-off-by: Mykola Golub --- src/journal/Journaler.cc | 12 ++++++------ src/journal/Journaler.h | 4 ++-- src/test/journal/test_Journaler.cc | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/journal/Journaler.cc b/src/journal/Journaler.cc index 5bf732f974f83..35854de78acf1 100644 --- a/src/journal/Journaler.cc +++ b/src/journal/Journaler.cc @@ -44,7 +44,7 @@ using namespace cls::journal; Journaler::Journaler(librados::IoCtx &header_ioctx, const std::string &journal_id, - const std::string &client_id) + const std::string &client_id, double commit_interval) : m_client_id(client_id), m_metadata(NULL), m_player(NULL), m_recorder(NULL), m_trimmer(NULL) { @@ -54,9 +54,8 @@ Journaler::Journaler(librados::IoCtx &header_ioctx, m_header_oid = JOURNAL_HEADER_PREFIX + journal_id; m_object_oid_prefix = JOURNAL_OBJECT_PREFIX + journal_id + "."; - // TODO configurable commit interval m_metadata = new JournalMetadata(m_header_ioctx, m_header_oid, m_client_id, - 5); + commit_interval); m_metadata->get(); } @@ -182,14 +181,15 @@ void Journaler::committed(const Future &future) { m_trimmer->committed(future_impl->get_commit_tid()); } -void Journaler::start_append() { +void Journaler::start_append(int flush_interval, uint64_t flush_bytes, + double flush_age) { assert(m_recorder == NULL); // TODO verify active object set >= current replay object set - // TODO configurable flush intervals m_recorder = new JournalRecorder(m_data_ioctx, m_object_oid_prefix, - m_metadata, 0, 0, 0); + m_metadata, flush_interval, flush_bytes, + flush_age); } void Journaler::stop_append(Context *on_safe) { diff --git a/src/journal/Journaler.h b/src/journal/Journaler.h index fa90b40e8e799..d35821891402e 100644 --- a/src/journal/Journaler.h +++ b/src/journal/Journaler.h @@ -27,7 +27,7 @@ class ReplayHandler; class Journaler { public: Journaler(librados::IoCtx &header_ioctx, const std::string &journal_id, - const std::string &client_id); + const std::string &client_id, double commit_interval); ~Journaler(); int create(uint8_t order, uint8_t splay_width, int64_t pool_id); @@ -43,7 +43,7 @@ public: bool try_pop_front(ReplayEntry *replay_entry); void stop_replay(); - void start_append(); + void start_append(int flush_interval, uint64_t flush_bytes, double flush_age); Future append(const std::string &tag, const bufferlist &bl); void flush(Context *on_safe); void stop_append(Context *on_safe); diff --git a/src/test/journal/test_Journaler.cc b/src/test/journal/test_Journaler.cc index 4b81bbf993327..5a19910e564a1 100644 --- a/src/test/journal/test_Journaler.cc +++ b/src/test/journal/test_Journaler.cc @@ -20,7 +20,7 @@ public: virtual void SetUp() { RadosTestFixture::SetUp(); m_journal_id = get_temp_journal_id(); - m_journaler = new journal::Journaler(m_ioctx, m_journal_id, CLIENT_ID); + m_journaler = new journal::Journaler(m_ioctx, m_journal_id, CLIENT_ID, 5); } virtual void TearDown() { @@ -39,7 +39,7 @@ public: } int register_client(const std::string &client_id, const std::string &desc) { - journal::Journaler journaler(m_ioctx, m_journal_id, client_id); + journal::Journaler journaler(m_ioctx, m_journal_id, client_id, 5); return journaler.register_client(desc); } -- 2.39.5