reporting events of PALF to history table asynchronously
This commit is contained in:
@ -57,6 +57,7 @@ public:
|
||||
mock_log_engine_ = OB_NEW(MockLogEngine, "TestLog");
|
||||
mock_mode_mgr_ = OB_NEW(MockLogModeMgr, "TestLog");
|
||||
mock_reconfirm_ = OB_NEW(MockLogReconfirm, "TestLog");
|
||||
mock_plugins_ = OB_NEW(LogPlugins, "TestLog");
|
||||
}
|
||||
~TestLogConfigMgr()
|
||||
{
|
||||
@ -66,6 +67,7 @@ public:
|
||||
OB_DELETE(MockLogEngine, "TestLog", mock_log_engine_);
|
||||
OB_DELETE(MockLogModeMgr, "TestLog", mock_mode_mgr_);
|
||||
OB_DELETE(MockLogReconfirm, "TestLog", mock_reconfirm_);
|
||||
OB_DELETE(LogPlugins, "TestLog", mock_plugins_);
|
||||
}
|
||||
void init_test_log_config_env(const common::ObAddr &self,
|
||||
const LogConfigInfo &config_info,
|
||||
@ -88,7 +90,7 @@ public:
|
||||
LogConfigMeta config_meta;
|
||||
EXPECT_EQ(OB_SUCCESS, config_meta.generate(init_pid, config_info, config_info, 1, LSN(0), 1));
|
||||
EXPECT_EQ(OB_SUCCESS, cm.init(1, self, config_meta, mock_log_engine_, mock_sw_, mock_state_mgr_, mock_election_,
|
||||
mock_mode_mgr_, mock_reconfirm_));
|
||||
mock_mode_mgr_, mock_reconfirm_, mock_plugins_));
|
||||
LogMemberRegionMap region_map;
|
||||
EXPECT_EQ(OB_SUCCESS, region_map.init("localmap", OB_MAX_MEMBER_NUMBER));
|
||||
for (int i = 0; i < cm.alive_paxos_memberlist_.get_member_number(); ++i) {
|
||||
@ -105,6 +107,7 @@ public:
|
||||
palf::MockLogEngine *mock_log_engine_;
|
||||
palf::MockLogModeMgr *mock_mode_mgr_;
|
||||
palf::MockLogReconfirm *mock_reconfirm_;
|
||||
palf::LogPlugins *mock_plugins_;
|
||||
};
|
||||
|
||||
TEST_F(TestLogConfigMgr, test_remove_child_is_not_learner)
|
||||
|
@ -80,6 +80,7 @@ public:
|
||||
MockLogEngine mock_log_engine_;
|
||||
MockPalfFSCbWrapper palf_fs_cb_;
|
||||
ObTenantMutilAllocator *alloc_mgr_;
|
||||
LogPlugins *plugins_;
|
||||
MockPublicLogSlidingWindow log_sw_;
|
||||
char *data_buf_;
|
||||
};
|
||||
@ -102,6 +103,7 @@ void TestLogSlidingWindow::SetUp()
|
||||
OB_ASSERT(FALSE);
|
||||
}
|
||||
alloc_mgr_ = new (buf) common::ObTenantMutilAllocator(tenant_id);
|
||||
plugins_ = new LogPlugins();
|
||||
data_buf_ = (char*)ob_malloc(64 * 1024 * 1024, attr);
|
||||
// init MTL
|
||||
ObTenantBase tbase(tenant_id);
|
||||
@ -148,19 +150,19 @@ TEST_F(TestLogSlidingWindow, test_init)
|
||||
gen_default_palf_base_info_(base_info);
|
||||
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.init(palf_id_, self_, NULL,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, NULL, &palf_fs_cb_, NULL, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, NULL, &palf_fs_cb_, NULL, plugins_, base_info, true));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
NULL, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
NULL, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, NULL, NULL, &palf_fs_cb_, NULL, base_info, true));
|
||||
&mock_mm_, NULL, NULL, &palf_fs_cb_, NULL, plugins_, base_info, true));
|
||||
// init succ
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
// init twice
|
||||
EXPECT_EQ(OB_INIT_TWICE, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
}
|
||||
|
||||
TEST_F(TestLogSlidingWindow, test_private_func_batch_01)
|
||||
@ -175,7 +177,7 @@ TEST_F(TestLogSlidingWindow, test_private_func_batch_01)
|
||||
gen_default_palf_base_info_(base_info);
|
||||
// init succ
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
log_id = 10 + PALF_SLIDING_WINDOW_SIZE;
|
||||
EXPECT_EQ(false, log_sw_.can_receive_larger_log_(log_id));
|
||||
EXPECT_EQ(false, log_sw_.leader_can_submit_larger_log_(log_id));
|
||||
@ -194,7 +196,7 @@ TEST_F(TestLogSlidingWindow, test_to_follower_pending)
|
||||
gen_default_palf_base_info_(base_info);
|
||||
// init succ
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
char *buf = data_buf_;
|
||||
int64_t buf_len = 1 * 1024 * 1024;
|
||||
share::SCN ref_scn;
|
||||
@ -220,8 +222,10 @@ TEST_F(TestLogSlidingWindow, test_fetch_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
// init succ
|
||||
MockLocCb cb;
|
||||
EXPECT_EQ(OB_SUCCESS, plugins_->add_plugin(static_cast<PalfLocationCacheCb*>(&cb)));
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
prev_lsn.val_ = 1;
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.try_fetch_log(fetch_log_type, prev_lsn, fetch_start_lsn, fetch_start_log_id));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.try_fetch_log_for_reconfirm(dest, fetch_end_lsn, is_fetched));
|
||||
@ -244,7 +248,7 @@ TEST_F(TestLogSlidingWindow, test_report_log_task_trace)
|
||||
gen_default_palf_base_info_(base_info);
|
||||
// init succ
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.report_log_task_trace(1));
|
||||
char *buf = data_buf_;
|
||||
int64_t buf_len = 2 * 1024 * 1024;
|
||||
@ -260,26 +264,10 @@ TEST_F(TestLogSlidingWindow, test_report_log_task_trace)
|
||||
TEST_F(TestLogSlidingWindow, test_set_location_cache_cb)
|
||||
{
|
||||
MockLocCb cb;
|
||||
EXPECT_EQ(OB_NOT_INIT, log_sw_.set_location_cache_cb(NULL));
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
// init succ
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.set_location_cache_cb(NULL));
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.set_location_cache_cb(&cb));
|
||||
EXPECT_EQ(OB_NOT_SUPPORTED, log_sw_.set_location_cache_cb(&cb));
|
||||
}
|
||||
|
||||
TEST_F(TestLogSlidingWindow, test_reset_location_cache_cb)
|
||||
{
|
||||
EXPECT_EQ(OB_NOT_INIT, log_sw_.reset_location_cache_cb());
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
// init succ
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.reset_location_cache_cb());
|
||||
MockLocCb *null_cb = NULL;
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, plugins_->add_plugin(static_cast<PalfLocationCacheCb*>(null_cb)));
|
||||
EXPECT_EQ(OB_SUCCESS, plugins_->add_plugin(static_cast<PalfLocationCacheCb*>(&cb)));
|
||||
EXPECT_EQ(OB_OP_NOT_ALLOW, plugins_->add_plugin(static_cast<PalfLocationCacheCb*>(&cb)));
|
||||
}
|
||||
|
||||
TEST_F(TestLogSlidingWindow, test_submit_log)
|
||||
@ -295,7 +283,7 @@ TEST_F(TestLogSlidingWindow, test_submit_log)
|
||||
share::SCN scn;
|
||||
EXPECT_EQ(OB_NOT_INIT, log_sw_.submit_log(buf, buf_len, ref_scn, lsn, scn));
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.submit_log(NULL, buf_len, ref_scn, lsn, scn));
|
||||
buf_len = 0;
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.submit_log(buf, buf_len, ref_scn, lsn, scn));
|
||||
@ -327,7 +315,7 @@ TEST_F(TestLogSlidingWindow, test_submit_group_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
mock_state_mgr_.mock_proposal_id_ = 100;
|
||||
LSN lsn(10);
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, log_sw_.submit_group_log(lsn, NULL, 1024));
|
||||
@ -386,7 +374,7 @@ TEST_F(TestLogSlidingWindow, test_receive_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
|
||||
char *buf = data_buf_;
|
||||
int64_t buf_len = 2 * 1024 * 1024;
|
||||
@ -549,7 +537,7 @@ TEST_F(TestLogSlidingWindow, test_after_flush_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
int64_t curr_proposal_id = 10;
|
||||
|
||||
// set default config meta
|
||||
@ -612,7 +600,7 @@ TEST_F(TestLogSlidingWindow, test_truncate_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
int64_t curr_proposal_id = 10;
|
||||
mock_state_mgr_.mock_proposal_id_ = curr_proposal_id;
|
||||
|
||||
@ -720,7 +708,7 @@ TEST_F(TestLogSlidingWindow, test_ack_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
int64_t curr_proposal_id = 10;
|
||||
mock_state_mgr_.mock_proposal_id_ = curr_proposal_id;
|
||||
log_sw_.self_ = self_;
|
||||
@ -778,7 +766,7 @@ TEST_F(TestLogSlidingWindow, test_truncate_for_rebuild)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
int64_t curr_proposal_id = 10;
|
||||
mock_state_mgr_.mock_proposal_id_ = curr_proposal_id;
|
||||
|
||||
@ -889,7 +877,7 @@ TEST_F(TestLogSlidingWindow, test_append_disk_log)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
int64_t curr_proposal_id = 10;
|
||||
mock_state_mgr_.mock_proposal_id_ = curr_proposal_id;
|
||||
// generate new group entry
|
||||
@ -1011,7 +999,7 @@ TEST_F(TestLogSlidingWindow, test_group_entry_truncate)
|
||||
PalfBaseInfo base_info;
|
||||
gen_default_palf_base_info_(base_info);
|
||||
EXPECT_EQ(OB_SUCCESS, log_sw_.init(palf_id_, self_, &mock_state_mgr_,
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, base_info, true));
|
||||
&mock_mm_, &mock_mode_mgr_, &mock_log_engine_, &palf_fs_cb_, alloc_mgr_, plugins_, base_info, true));
|
||||
int64_t curr_proposal_id = 10;
|
||||
mock_state_mgr_.mock_proposal_id_ = curr_proposal_id;
|
||||
// generate new group entry
|
||||
|
@ -53,6 +53,7 @@ public:
|
||||
MockLogConfigMgr mock_config_mgr_;
|
||||
MockLogModeMgr mock_mode_mgr_;
|
||||
MockPalfRoleChangeCbWrapper mock_role_change_cb_;
|
||||
LogPlugins plugins_;
|
||||
LogStateMgr state_mgr_;
|
||||
};
|
||||
|
||||
@ -74,19 +75,19 @@ void TestLogStateMgr::TearDown()
|
||||
TEST_F(TestLogStateMgr, test_init)
|
||||
{
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, state_mgr_.init(palf_id_, self_, log_prepare_meta_, log_replica_property_meta_, NULL, &mock_sw_,
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_));
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_, &plugins_));
|
||||
EXPECT_EQ(OB_INVALID_ARGUMENT, state_mgr_.init(palf_id_, self_, log_prepare_meta_, log_replica_property_meta_, &mock_election_, NULL,
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_));
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_, &plugins_));
|
||||
EXPECT_EQ(OB_SUCCESS, state_mgr_.init(palf_id_, self_, log_prepare_meta_, log_replica_property_meta_, &mock_election_, &mock_sw_,
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_));
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_, &plugins_));
|
||||
EXPECT_EQ(OB_INIT_TWICE, state_mgr_.init(palf_id_, self_, log_prepare_meta_, log_replica_property_meta_, &mock_election_, &mock_sw_,
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_));
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_, &plugins_));
|
||||
}
|
||||
|
||||
TEST_F(TestLogStateMgr, replay_to_leader_active)
|
||||
{
|
||||
EXPECT_EQ(OB_SUCCESS, state_mgr_.init(palf_id_, self_, log_prepare_meta_, log_replica_property_meta_, &mock_election_, &mock_sw_,
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_));
|
||||
&mock_reconfirm_, &mock_log_engine_, &mock_config_mgr_, &mock_mode_mgr_, &mock_role_change_cb_, &plugins_));
|
||||
// set default config meta
|
||||
ObMemberList default_mlist;
|
||||
default_mlist.add_server(self_);
|
||||
|
Reference in New Issue
Block a user