/** * Copyright (c) 2021 OceanBase * OceanBase CE is licensed under Mulan PubL v2. * You can use this software according to the terms and conditions of the Mulan PubL v2. * You may obtain a copy of Mulan PubL v2 at: * http://license.coscl.org.cn/MulanPubL-2.0 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. * See the Mulan PubL v2 for more details. */ #ifndef OCEANBASE_MOCK_OB_PARTITION_LOG_SERVICE_H_ #define OCEANBASE_MOCK_OB_PARTITION_LOG_SERVICE_H_ #include "clog/ob_partition_log_service.h" #include "clog/ob_log_define.h" #include "election/ob_election_cb.h" #include "storage/ob_base_storage_info.h" #include "storage/ob_storage_log_type.h" namespace oceanbase { namespace common { class ObILogAllocator; } namespace clog { class MockPartitionLogService : public ObIPartitionLogService { public: virtual int init(ObILogEngine* log_engine, ObLogReplayEngineWrapper* replay_engine, ObIFetchLogEngine* fetch_log_engine, election::ObIElectionMgr* election_mgr, storage::ObPartitionService* partition_mgr, ObILogCallbackEngine* cb_engine, common::ObILogAllocator* alloc_mgr, ObLogEventScheduler* event_scheduler, const common::ObAddr& self_addr, const common::ObVersion& version, const common::ObPartitionKey& parition_key, const common::ObReplicaType replica_type, const common::ObReplicaProperty replica_property, const common::ObBaseStorageInfo& base_storage_info, const int16_t archive_restore_state, const bool can_repeat_create_standby, ObRemoteLogQueryEngine* remote_log_query_engine, archive::ObArchiveMgr* archive_mgr, archive::ObArchiveRestoreEngine* archive_restore_engine, const enum ObCreatePlsType& create_pls_type) { UNUSED(log_engine); UNUSED(replay_engine); UNUSED(fetch_log_engine); UNUSED(election_mgr); UNUSED(partition_mgr); UNUSED(cb_engine); UNUSED(alloc_mgr); UNUSED(event_scheduler); UNUSED(self_addr); UNUSED(version); UNUSED(parition_key); UNUSED(replica_type); UNUSED(replica_property); UNUSED(base_storage_info); UNUSED(archive_restore_state); UNUSED(can_repeat_create_standby); UNUSED(remote_log_query_engine); UNUSED(archive_mgr); UNUSED(archive_restore_engine); UNUSED(create_pls_type); return common::OB_SUCCESS; } virtual int force_set_server_list(const obrpc::ObServerList& server_list, const int64_t replica_num) { UNUSED(server_list); UNUSED(replica_num); return common::OB_SUCCESS; } virtual int get_leader_curr_member_list(const common::ObPartitionKey& pkey, common::ObMemberList& member_list) const { UNUSED(pkey); UNUSED(member_list); return OB_SUCCESS; } virtual int get_base_storage_info(common::ObBaseStorageInfo& base_storage_info, uint64_t& sw_last_replay_log_id) { UNUSED(base_storage_info); UNUSED(sw_last_replay_log_id); return OB_SUCCESS; } virtual int get_role_unsafe(int64_t& leader_epoch, common::ObTsWindows& changing_leader_windows) const { UNUSED(leader_epoch); UNUSED(changing_leader_windows); return OB_SUCCESS; } // virtual int get_curr_member_list(common::ObMemberList &member_list) const; virtual int get_curr_member_list(const common::ObPartitionKey& pkey, common::ObMemberList& member_list) const { UNUSED(pkey); UNUSED(member_list); return OB_SUCCESS; } virtual int try_get_replica_num(int64_t& replica_num) const { UNUSED(replica_num); return OB_SUCCESS; } virtual int receive_confirmed_info(const common::ObAddr& server, const int64_t src_cluster_id, const uint64_t log_id, const ObConfirmedInfo& confirmed_info, const bool batch_committed) { UNUSED(server); UNUSED(src_cluster_id); UNUSED(log_id); UNUSED(confirmed_info); UNUSED(batch_committed); return OB_SUCCESS; } virtual int submit_aggre_log(ObAggreBuffer* buffer, const int64_t base_timestamp) { UNUSED(buffer); UNUSED(base_timestamp); return OB_SUCCESS; } virtual int append_disk_log( const ObLogEntry& log, const ObLogCursor& log_cursor, const int64_t accum_checksum, const bool batch_committed) { UNUSED(log); UNUSED(log_cursor); UNUSED(accum_checksum); UNUSED(batch_committed); return OB_SUCCESS; } virtual int set_online(const common::ObBaseStorageInfo& base_storage_info, const common::ObVersion& memstore_version) { UNUSED(base_storage_info); UNUSED(memstore_version); return OB_SUCCESS; } virtual int leader_keepalive(const int64_t keepalive_interval) { UNUSED(keepalive_interval); return OB_SUCCESS; } virtual int sync_log_archive_progress() { return OB_SUCCESS; } virtual int process_archive_checkpoint(const uint64_t next_log_id, const int64_t next_log_ts) { UNUSED(next_log_id); UNUSED(next_log_ts); return OB_SUCCESS; } virtual int get_restore_leader_info(bool& is_restore_leader, int64_t& leader_takeover_ts) { UNUSED(is_restore_leader); UNUSED(leader_takeover_ts); return OB_SUCCESS; } virtual int receive_archive_log(const ObLogEntry& log_entry, const bool is_accum_checksum_valid, const int64_t accum_checksum, const bool is_batch_committed) { UNUSED(log_entry); UNUSED(is_accum_checksum_valid); UNUSED(accum_checksum); UNUSED(is_batch_committed); return OB_SUCCESS; } int get_last_archived_log_id( const int64_t incarnation, const int64_t log_archive_round, uint64_t& last_archive_log_id) { UNUSED(incarnation); UNUSED(log_archive_round); UNUSED(last_archive_log_id); return OB_SUCCESS; } virtual int archive_checkpoint(const int64_t interval) { UNUSED(interval); return OB_SUCCESS; } virtual int check_cascading_state() { return OB_SUCCESS; } virtual int fetch_register_server(const common::ObAddr& server, const common::ObReplicaType replica_type, const int64_t next_replay_log_ts, const bool is_request_leader, const bool is_need_force_register, const common::ObRegion& region, const int64_t cluster_id, const common::ObIDC& idc) { UNUSED(server); UNUSED(replica_type); UNUSED(next_replay_log_ts); UNUSED(is_request_leader); UNUSED(is_need_force_register); UNUSED(region); UNUSED(cluster_id); UNUSED(idc); return OB_SUCCESS; } virtual int fetch_register_server_resp_v2(const common::ObAddr& sender, const bool is_assign_parent_succeed, const share::ObCascadMemberList& candidate_list, const int32_t msg_type) { UNUSED(sender); UNUSED(is_assign_parent_succeed); UNUSED(candidate_list); UNUSED(msg_type); return OB_SUCCESS; } virtual int replace_sick_child( const common::ObAddr& sender, const int64_t cluster_id, const common::ObAddr& sick_child) { UNUSED(sender); UNUSED(cluster_id); UNUSED(sick_child); return OB_SUCCESS; } int process_reject_msg(const common::ObAddr &server, const int64_t cluster_id, const int32_t msg_type, const int64_t timestamp) { UNUSED(server); UNUSED(cluster_id); UNUSED(msg_type); UNUSED(timestamp); return OB_SUCCESS; } virtual int process_restore_alive_msg(const common::ObAddr& server, const uint64_t start_log_id) { UNUSED(server); UNUSED(start_log_id); return OB_SUCCESS; } virtual int process_restore_alive_req( const common::ObAddr& server, const int64_t dst_cluster_id, const int64_t send_ts) { UNUSED(server); UNUSED(dst_cluster_id); UNUSED(send_ts); return OB_SUCCESS; } virtual int process_restore_alive_resp(const common::ObAddr& server, const int64_t send_ts) { UNUSED(server); UNUSED(send_ts); return OB_SUCCESS; } virtual int process_restore_log_finish_msg(const common::ObAddr& src_server, const uint64_t log_id) { UNUSED(src_server); UNUSED(log_id); return OB_SUCCESS; } virtual int process_reregister_msg( const common::ObAddr& src_server, const share::ObCascadMember& new_leader, const int64_t send_ts) { UNUSED(src_server); UNUSED(new_leader); UNUSED(send_ts); return OB_SUCCESS; } virtual int get_log_archive_status(ObPGLogArchiveStatus& status) { UNUSED(status); return OB_SUCCESS; } virtual int check_log_exist(const uint64_t log_id, bool& exist) { UNUSED(log_id); UNUSED(exist); return OB_SUCCESS; } virtual int process_sync_log_archive_progress_msg( const common::ObAddr& server, const int64_t cluster_id, const ObPGLogArchiveStatus& status) { UNUSED(server); UNUSED(cluster_id); UNUSED(status); return OB_SUCCESS; } virtual int get_role_unlock(int64_t& leader_epoch, common::ObTsWindows& changing_leader_windows) const { UNUSED(leader_epoch); UNUSED(changing_leader_windows); return OB_SUCCESS; } virtual int try_get_curr_member_list(common::ObMemberList& member_list) const { UNUSED(member_list); return OB_SUCCESS; } virtual bool is_svr_in_member_list(const ObAddr& server) const { UNUSED(server); return OB_SUCCESS; } virtual uint64_t get_start_log_id() { return OB_SUCCESS; } virtual uint64_t get_start_log_id_unsafe() { return OB_SUCCESS; } virtual int get_sw_max_log_id_info(uint64_t& sw_max_log_id, int64_t& sw_max_log_ts) { UNUSED(sw_max_log_id); UNUSED(sw_max_log_ts); return OB_SUCCESS; } virtual int query_max_flushed_ilog_id(uint64_t& last_flushed_ilog_id) { UNUSED(last_flushed_ilog_id); return OB_SUCCESS; } virtual int wait_log_confirmed(const int64_t begin_time, const int64_t max_wait_time) { UNUSED(begin_time); UNUSED(max_wait_time); return OB_SUCCESS; } virtual int is_valid_member(const common::ObAddr& addr, bool& is_valid) { UNUSED(addr); UNUSED(is_valid); return OB_SUCCESS; } virtual int backfill_confirmed(const ObLogInfo& log_info, const bool batch_last_succeed) { UNUSED(log_info); UNUSED(batch_last_succeed); return OB_SUCCESS; } virtual int query_confirmed_log(const uint64_t log_id, transaction::ObTransID& trans_id, int64_t& submit_timestamp) { UNUSED(log_id); UNUSED(trans_id); UNUSED(submit_timestamp); return OB_SUCCESS; } virtual int backfill_log( const ObLogInfo& log_info, const ObLogCursor& log_cursor, const bool is_leader, ObISubmitLogCb* submit_cb) { UNUSED(log_info); UNUSED(log_cursor); UNUSED(is_leader); UNUSED(submit_cb); return OB_SUCCESS; } virtual int resubmit_log(const ObLogInfo& log_info, ObISubmitLogCb* submit_cb) { UNUSED(submit_cb); UNUSED(log_info); return OB_SUCCESS; } virtual int backfill_nop_log(const ObLogMeta& log_meta) { UNUSED(log_meta); return OB_SUCCESS; } virtual int is_valid_member(const common::ObAddr& addr, bool& is_valid) const { UNUSED(addr); UNUSED(is_valid); return OB_SUCCESS; } virtual void destroy() { return; } virtual int stop_election() { return common::OB_SUCCESS; } virtual int remove_election() { return common::OB_SUCCESS; } virtual int get_log_id_timestamp(const int64_t prepare_version, ObLogMeta& log_meta) { UNUSED(prepare_version); UNUSED(log_meta); return common::OB_SUCCESS; } virtual int get_pls_epoch(int64_t& pls_epoch) const { UNUSED(pls_epoch); return common::OB_SUCCESS; } virtual int try_update_keepalive() { return common::OB_SUCCESS; } virtual int submit_log(const char* buff, const int64_t size, const uint64_t log_id, const int64_t timestamp, const storage::ObStorageLogType log_type, const common::ObVersion& version, ObISubmitLogCb* cb) { UNUSED(buff); UNUSED(size); UNUSED(log_id); UNUSED(timestamp); UNUSED(log_type); UNUSED(cb); UNUSED(version); return common::OB_SUCCESS; } virtual int submit_log(const char* buff, const int64_t size, const storage::ObStorageLogType log_type, const common::ObVersion& version, ObISubmitLogCb* cb, uint64_t& log_id, int64_t& log_timestamp) { UNUSED(buff); UNUSED(size); UNUSED(log_type); UNUSED(cb); UNUSED(version); UNUSED(log_id); UNUSED(log_timestamp); return common::OB_SUCCESS; } virtual int submit_log(const char* buff, const int64_t size, const int64_t base_timestamp, ObISubmitLogCb* cb, const bool need_aggre_commit, uint64_t& log_id, int64_t& log_timestamp) { UNUSED(buff); UNUSED(size); UNUSED(base_timestamp); UNUSED(cb); UNUSED(need_aggre_commit); UNUSED(log_id); UNUSED(log_timestamp); return common::OB_SUCCESS; } virtual int force_set_replica_num(const int64_t replica_num) { UNUSED(replica_num); return 0; } virtual int force_set_as_single_replica() { return 0; } virtual int force_reset_parent() { return 0; } virtual int force_set_parent(const common::ObAddr& new_parent) { UNUSED(new_parent); return 0; } virtual int add_member(const common::ObMember& member, const int64_t quorum, obrpc::ObMCLogInfo& log_info) { UNUSED(member); UNUSED(quorum); UNUSED(log_info); return common::OB_SUCCESS; } virtual int remove_member(const common::ObMember& member, const int64_t quorum, obrpc::ObMCLogInfo& log_info) { UNUSED(member); UNUSED(quorum); UNUSED(log_info); return common::OB_SUCCESS; } virtual int is_member_change_done(const obrpc::ObMCLogInfo& log_info) { UNUSED(log_info); return common::OB_SUCCESS; } virtual int get_minor_base_storage_info(common::ObBaseStorageInfo& base_storage_info) { UNUSED(base_storage_info); return common::OB_SUCCESS; } virtual common::ObPartitionKey get_partition_key() const { return p_k_; } virtual int get_saved_base_storage_info(common::ObBaseStorageInfo& base_storage_info) const { UNUSED(base_storage_info); return common::OB_SUCCESS; } virtual int get_leader(common::ObAddr& leader) { UNUSED(leader); return common::OB_SUCCESS; } virtual int change_leader(const common::ObAddr& leader, common::ObTsWindows& changing_leader_windows) { UNUSED(leader); UNUSED(changing_leader_windows); return common::OB_SUCCESS; } virtual int get_role(common::ObRole& role) const { UNUSED(role); return common::OB_SUCCESS; } virtual int set_archive_restore_state(const int16_t archive_restore_state) { UNUSED(archive_restore_state); return common::OB_SUCCESS; } virtual bool is_archive_restoring() const { return false; } virtual common::ObAddr get_restore_leader() const { common::ObAddr fake_addr; return fake_addr; } virtual int try_release_aggre_buffer() { return common::OB_SUCCESS; } virtual int get_role_unsafe(bool& in_changing_leader_windows, int64_t& leader_epoch) const { UNUSED(in_changing_leader_windows); UNUSED(leader_epoch); return common::OB_SUCCESS; } virtual int get_role_unlock(bool& in_changing_leader_windows, int64_t& leader_epoch) const { UNUSED(in_changing_leader_windows); UNUSED(leader_epoch); return common::OB_SUCCESS; } virtual int get_leader_curr_member_list(common::ObMemberList &member_list) const { UNUSED(member_list); return common::OB_SUCCESS; } virtual int get_leader(common::ObAddr& leader) const { UNUSED(leader); return common::OB_SUCCESS; } virtual int get_clog_parent_for_migration(common::ObAddr &parent, int64_t &cluster_id) const { UNUSED(parent); UNUSED(cluster_id); return common::OB_SUCCESS; } virtual int get_curr_member_list(common::ObMemberList& member_list) const { UNUSED(member_list); return common::OB_SUCCESS; } virtual int get_curr_member_list_for_report(common::ObMemberList& member_list) const { UNUSED(member_list); return common::OB_SUCCESS; } virtual int update_min_file_id(uint64_t log_id) { UNUSED(log_id); return common::OB_SUCCESS; } virtual uint64_t get_min_file_id() const { return 0; } virtual int update_log_range(const file_id_t file_id, const uint64_t log_id) { UNUSED(file_id); UNUSED(log_id); return common::OB_SUCCESS; } virtual int check_if_start_log_task_empty(bool& is_empty) { UNUSED(is_empty); return common::OB_SUCCESS; } virtual int receive_log(const ObLogEntry& log_entry, const common::ObAddr& server, const int64_t cluster_id, const common::ObProposalID& proposal_id, const ObPushLogMode push_mode, const ReceiveLogType type) { UNUSED(log_entry); UNUSED(server); UNUSED(cluster_id); UNUSED(proposal_id); UNUSED(push_mode); UNUSED(type); return common::OB_SUCCESS; } virtual int receive_local_log(const ObLogEntry& log_entry) { UNUSED(log_entry); return common::OB_SUCCESS; } virtual int ack_log(const common::ObAddr& server, const uint64_t log_id, const common::ObProposalID& proposal_id) { UNUSED(server); UNUSED(log_id); UNUSED(proposal_id); return common::OB_SUCCESS; } virtual int standby_ack_log(const common::ObAddr& server, const int64_t cluster_id, const uint64_t log_id, const common::ObProposalID& proposal_id) { UNUSED(server); UNUSED(cluster_id); UNUSED(log_id); UNUSED(proposal_id); return common::OB_SUCCESS; } virtual int fake_ack_log(const ObAddr& server, const uint64_t log_id, const ObProposalID& proposal_id) { UNUSED(server); UNUSED(log_id); UNUSED(proposal_id); return common::OB_SUCCESS; } virtual int fake_receive_log(const ObAddr& server, const uint64_t log_id, const ObProposalID& proposal_id) { UNUSED(server); UNUSED(log_id); UNUSED(proposal_id); return common::OB_SUCCESS; } virtual int get_log(const common::ObAddr& server, const uint64_t log_id, const int64_t log_num, const ObFetchLogType fetch_type, const common::ObProposalID& proposal_id, const int64_t cluster_id, const common::ObReplicaType replica_type, const int64_t network_limit, const uint64_t max_confirmed_log_id) { UNUSED(server); UNUSED(log_id); UNUSED(log_num); UNUSED(fetch_type); UNUSED(proposal_id); UNUSED(cluster_id); UNUSED(replica_type); UNUSED(network_limit); UNUSED(max_confirmed_log_id); return common::OB_SUCCESS; } virtual int get_membership_log(char* buff, const int64_t buff_len, int64_t& used_len) { UNUSED(buff); UNUSED(buff_len); UNUSED(used_len); return common::OB_SUCCESS; } virtual int get_max_log_id( const common::ObAddr& server, const int64_t cluster_id, const common::ObProposalID& proposal_id) { UNUSED(server); UNUSED(cluster_id); UNUSED(proposal_id); return common::OB_SUCCESS; } virtual int receive_max_log_id(const common::ObAddr& server, const uint64_t max_log_id, const ObProposalID& proposal_id, const int64_t max_log_ts) { UNUSED(server); UNUSED(max_log_id); UNUSED(proposal_id); UNUSED(max_log_ts); return common::OB_SUCCESS; } virtual int append_disk_log(const ObLogEntry& log, const ObLogCursor& log_cursor, const int64_t accum_checksum) { UNUSED(log); UNUSED(log_cursor); UNUSED(accum_checksum); return common::OB_SUCCESS; } virtual int is_offline(bool& is_temp) { is_temp = false; return common::OB_SUCCESS; } virtual int set_offline() { return common::OB_SUCCESS; } virtual int set_scan_disk_log_finished() { return common::OB_SUCCESS; } virtual int switch_log() { int ret = OB_SUCCESS; return ret; } virtual uint64_t get_curr_file_min_log_id() const { return 0; } virtual uint64_t get_curr_file_max_log_id() const { return 0; } virtual int on_election_role_change() { return common::OB_SUCCESS; } virtual int on_change_leader_retry(const common::ObAddr&, common::ObTsWindows&) { return common::OB_SUCCESS; } virtual int switch_state() { return common::OB_SUCCESS; } virtual int switch_state(bool& need_retry) { UNUSED(need_retry); return common::OB_SUCCESS; } virtual int check_mc_and_sliding_window_state() { return common::OB_SUCCESS; } virtual int check_lower_level_member_state() { return common::OB_SUCCESS; } virtual bool is_heartbeat_timeout(const common::ObAddr& server) const { UNUSED(server); return false; } virtual int check_replica_state() { return common::OB_SUCCESS; } virtual int send_heartbeat_to_leader() { return common::OB_SUCCESS; } virtual int check_mc_timeout() { return common::OB_SUCCESS; } virtual int check_stale_member(common::ObMember& stale_server) { UNUSED(stale_server); return common::OB_SUCCESS; } virtual void check_memory_usage() { return; } virtual int renew_ms_log_flush_cb(const storage::ObMsInfoTask& arg) { UNUSED(arg); return common::OB_SUCCESS; } virtual int flush_cb(const oceanbase::clog::ObLogFlushCbArg& arg) { UNUSED(arg); return common::OB_SUCCESS; } virtual int set_election_leader(const common::ObAddr& leader, const int64_t lease_start) { UNUSED(leader); UNUSED(lease_start); return common::OB_SUCCESS; } virtual bool need_quicker_polling() const { return true; } virtual int set_next_index_log_id(const uint64_t log_id, const int64_t accum_checksum) { UNUSED(log_id); UNUSED(accum_checksum); return common::OB_SUCCESS; } virtual int receive_confirmed_info( const common::ObAddr& server, const uint64_t log_id, const ObConfirmedInfo& confirm_info) { UNUSED(server); UNUSED(log_id); UNUSED(confirm_info); return common::OB_SUCCESS; } virtual int is_in_sync(bool& is_sync) const { UNUSED(is_sync); return common::OB_SUCCESS; } virtual int is_log_sync_with_leader(bool& is_sync) const { UNUSED(is_sync); return common::OB_SUCCESS; } virtual int is_log_sync_with_primary(const int64_t switchover_epoch, bool& is_sync) const { UNUSED(switchover_epoch); UNUSED(is_sync); return common::OB_SUCCESS; } virtual bool vt_is_in_sync() const { return true; } virtual int update_max_confirmed_log_id(const common::ObAddr& server, const uint64_t log_id) { UNUSED(server); UNUSED(log_id); return common::OB_SUCCESS; } virtual int migrate_set_base_storage_info(const common::ObBaseStorageInfo& base_storage_info) { UNUSED(base_storage_info); return common::OB_SUCCESS; } virtual int restore_replayed_log(const common::ObBaseStorageInfo& base_storage_info) { UNUSED(base_storage_info); return common::OB_SUCCESS; } virtual uint64_t get_last_replay_log_id() const { return OB_INVALID_ID; } virtual int64_t get_last_submit_timestamp() const { return OB_INVALID_ID; } virtual void get_last_replay_log(uint64_t& log_id, int64_t& ts) { UNUSED(log_id); UNUSED(ts); } virtual uint64_t get_last_slide_log_id() { return OB_INVALID_ID; } virtual int report_task_stat() { return common::OB_SUCCESS; } virtual int64_t get_membership_timestamp() const { return 0; } virtual int get_role_and_last_leader_active_time(oceanbase::common::ObRole& role, int64_t& timestamp) const { UNUSED(role); UNUSED(timestamp); return common::OB_SUCCESS; } virtual int try_replay(const bool need_async, bool& is_replayed, bool& unused) { UNUSED(need_async); UNUSED(is_replayed); UNUSED(unused); return common::OB_SUCCESS; } virtual int follower_report_max_confirmed_log_id() { return common::OB_SUCCESS; } virtual int set_online(const storage::ObSavedStorageInfo& base_storage_info) { UNUSED(base_storage_info); return common::OB_SUCCESS; } virtual int get_dst_leader_candidate(common::ObMemberList& member_list) const { UNUSED(member_list); return common::OB_SUCCESS; } virtual int enable_replay() { return common::OB_SUCCESS; } virtual int disable_replay() { return common::OB_SUCCESS; } virtual int get_curr_leader_and_memberlist(common::ObAddr& leader, common::ObRole& role, common::ObMemberList& curr_member_list, common::ObChildReplicaList& children_list) const { UNUSED(leader); UNUSED(role); UNUSED(curr_member_list); UNUSED(children_list); return common::OB_SUCCESS; } virtual int get_max_data_version(ObVersion& max_data_version) const { UNUSED(max_data_version); return common::OB_SUCCESS; } virtual int remove_notify() { return common::OB_SUCCESS; } virtual int continue_notify() { return common::OB_SUCCESS; } virtual int on_get_election_priority(election::ObElectionPriority& priority) { UNUSED(priority); return common::OB_SUCCESS; } virtual int set_follower_active() { return common::OB_SUCCESS; } virtual int get_proposal_id(common::ObProposalID& proposal_id) const { UNUSED(proposal_id); return common::OB_SUCCESS; } int get_role_and_leader_epoch(ObRole& role, int64_t& leader_epoch) { UNUSED(role); UNUSED(leader_epoch); return common::OB_SUCCESS; } int get_role_and_leader_epoch(common::ObRole& role, int64_t& leader_epoch, int64_t& takeover_time) { UNUSED(role); UNUSED(leader_epoch); UNUSED(takeover_time); return common::OB_SUCCESS; } int get_cursor_from_log_index(uint64_t log_id, ObLogCursorExt& csr) { UNUSED(log_id); UNUSED(csr); return OB_SUCCESS; } int get_cursor_from_log_index(const uint64_t log_id, ObLogCursor& cursor) { int ret = OB_SUCCESS; UNUSED(log_id); UNUSED(cursor); return ret; } int get_follower_log_delay(int64_t& log_delay) { UNUSED(log_delay); return common::OB_SUCCESS; } int get_next_replay_log_info(uint64_t& next_replay_log_id, int64_t& next_replay_log_timestamp) { UNUSED(next_replay_log_id); UNUSED(next_replay_log_timestamp); return common::OB_SUCCESS; } int process_keepalive_msg(const common::ObAddr& server, const int64_t cluster_id, const uint64_t next_log_id, const int64_t next_log_ts_lb, const uint64_t deliver_cnt) { UNUSED(server); UNUSED(cluster_id); UNUSED(next_log_id); UNUSED(next_log_ts_lb); UNUSED(deliver_cnt); return common::OB_SUCCESS; } virtual int process_restore_leader_alive_msg(const common::ObAddr& server, const int64_t resp_time) { UNUSED(server); UNUSED(resp_time); return common::OB_SUCCESS; } virtual int process_leader_max_log_msg(const common::ObAddr& server, const int64_t switchover_epoch, const uint64_t leader_max_log_id, const int64_t leader_next_log_ts) { UNUSED(server); UNUSED(switchover_epoch); UNUSED(leader_max_log_id); UNUSED(leader_next_log_ts); return common::OB_SUCCESS; } virtual int notify_log_missing( const common::ObAddr& leader, const uint64_t start_log_id, const bool is_in_member_list, const int32_t msg_type) { UNUSED(leader); UNUSED(start_log_id); UNUSED(is_in_member_list); UNUSED(msg_type); return common::OB_SUCCESS; } virtual int receive_replica_heartbeat(const common::ObAddr& server, const common::ObRegion& region, const int32_t replica_type, const uint64_t max_log_id, const common::ObAddr& register_leader) { UNUSED(server); UNUSED(region); UNUSED(replica_type); UNUSED(max_log_id); UNUSED(register_leader); return common::OB_SUCCESS; } virtual int reject_server(const common::ObAddr& server, const int32_t msg_type) { UNUSED(server); UNUSED(msg_type); return common::OB_SUCCESS; } virtual int process_reject_msg(const common::ObAddr& server, const int32_t msg_type) { UNUSED(server); UNUSED(msg_type); return common::OB_SUCCESS; } virtual int get_log_id_range(uint64_t& start_log_id, int64_t& start_ts, uint64_t& end_log_id, int64_t& end_ts) { start_log_id = OB_INVALID_ID; start_ts = OB_INVALID_TIMESTAMP; end_log_id = OB_INVALID_ID; end_ts = OB_INVALID_TIMESTAMP; return OB_SUCCESS; } virtual int truncate_log_index(const uint64_t new_start_id) { UNUSED(new_start_id); return OB_SUCCESS; } virtual ObClogVirtualStat* alloc_clog_virtual_stat() { return static_cast(NULL); } virtual int revert_clog_virtual_stat(ObClogVirtualStat* virtual_stat) { UNUSED(virtual_stat); return OB_SUCCESS; } virtual int64_t get_sync_timestamp() { return OB_INVALID_TIMESTAMP; } virtual int update_log_sync_state(const uint64_t log_id_, const int64_t sync_timestamp) { UNUSED(log_id_); UNUSED(sync_timestamp); return common::OB_SUCCESS; } virtual int reduce_active_used() { return common::OB_SUCCESS; } virtual int async_get_log(const common::ObAddr& server, const int64_t cluster_id, const uint64_t start_log_id, const uint64_t end_log_id, const ObFetchLogType fetch_type, const common::ObProposalID& proposal_id, const int64_t network_limit) { UNUSED(server); UNUSED(cluster_id); UNUSED(start_log_id); UNUSED(end_log_id); UNUSED(fetch_type); UNUSED(proposal_id); UNUSED(network_limit); return common::OB_SUCCESS; } virtual int get_next_timestamp(const uint64_t last_log_id, int64_t& res_ts) { UNUSED(last_log_id); res_ts = OB_INVALID_TIMESTAMP; return common::OB_SUCCESS; } virtual int get_next_served_log_info_for_leader(uint64_t& next_served_log_id, int64_t& next_served_log_ts) { next_served_log_id = OB_INVALID_ID; next_served_log_ts = OB_INVALID_TIMESTAMP; return common::OB_SUCCESS; } virtual int try_truncate(const common::ObBaseStorageInfo& base_storage_info) { UNUSED(base_storage_info); return common::OB_SUCCESS; } virtual int update_leader_max_confirmed_log_id(const common::ObAddr& server, uint64_t log_id) { UNUSED(server); UNUSED(log_id); return common::OB_SUCCESS; } virtual int pre_prepare_freeze() { return common::OB_SUCCESS; } virtual int commit_abort_freeze() { return common::OB_SUCCESS; } virtual int get_cur_ilog_progress(uint64_t& log_id, int64_t& ts, file_id_t& file_id) { UNUSED(log_id); UNUSED(ts); UNUSED(file_id); return common::OB_SUCCESS; } virtual int index_flush_cb(const uint64_t log_id, const int64_t ts) { UNUSED(log_id); UNUSED(ts); return common::OB_SUCCESS; } virtual int is_ilog_flushed(uint64_t log_id, bool& is_flushed) { UNUSED(log_id); UNUSED(is_flushed); return common::OB_SUCCESS; } virtual int get_sw_max_log_id(uint64_t& sw_max_log_id) { UNUSED(sw_max_log_id); return common::OB_SUCCESS; } virtual uint64_t get_next_index_log_id() const { return 0; } virtual int64_t get_scan_confirmed_log_cnt() const { return 0; } virtual int allow_gc(bool& allow) { UNUSED(allow); return common::OB_SUCCESS; } virtual int try_truncate_log_index(const uint64_t new_start_id, const bool new_merged) { UNUSED(new_merged); UNUSED(new_start_id); return common::OB_SUCCESS; } virtual int wait_log_callback_done() { return common::OB_SUCCESS; } virtual void set_zone_priority(const uint64_t zone_priority) { UNUSED(zone_priority); } virtual int set_region(const common::ObRegion& region) { UNUSED(region); return common::OB_SUCCESS; } virtual int set_idc(const common::ObIDC& idc) { UNUSED(idc); return common::OB_SUCCESS; } virtual enum ObReplicaType get_replica_type() { return ObReplicaType::REPLICA_TYPE_FULL; } virtual int set_replica_type(const enum ObReplicaType replica_type) { UNUSED(replica_type); return common::OB_SUCCESS; } virtual int check_is_normal_partition(bool& is_normal_partition) const { UNUSED(is_normal_partition); return common::OB_SUCCESS; } virtual int get_election_priority(election::ObElectionPriority& priority) const { UNUSED(priority); return common::OB_SUCCESS; } virtual int get_candidate_info(ObCandidateInfo& info) { UNUSED(info); return common::OB_SUCCESS; } virtual int pre_change_member(const int64_t quorum, const bool is_add_member, int64_t& mc_timestamp, ObMemberList& member_list, ObProposalID& proposal_id) { int ret = OB_SUCCESS; UNUSED(quorum); UNUSED(is_add_member); UNUSED(mc_timestamp); UNUSED(member_list); UNUSED(proposal_id); return ret; } virtual int set_member_changing() { int ret = OB_SUCCESS; return ret; } virtual int reset_member_changing() { int ret = OB_SUCCESS; return ret; } virtual int wait_log_confirmed() { int ret = OB_SUCCESS; return ret; } virtual int batch_change_member(const common::ObMember& member, const int64_t quorum, const int64_t mc_timestamp, const common::ObProposalID& proposal_id, const bool is_add_member, obrpc::ObMCLogInfo& mc_log_info) { int ret = OB_SUCCESS; UNUSED(member); UNUSED(quorum); UNUSED(mc_timestamp); UNUSED(proposal_id); UNUSED(is_add_member); UNUSED(mc_log_info); return ret; } virtual bool need_skip_when_check_start_service() const { bool bool_ret = false; return bool_ret; } virtual int broadcast_info() { return 0; } virtual int update_broadcast_info( const common::ObAddr& server, const common::ObReplicaType& replica_type, const uint64_t max_confirmed_log_id) { UNUSED(server); UNUSED(replica_type); UNUSED(max_confirmed_log_id); return 0; } virtual int get_recyclable_log_id(uint64_t& log_id) const { UNUSED(log_id); return 0; } virtual int get_partition_max_log_id(uint64_t& partition_max_log_id) { int ret = OB_SUCCESS; UNUSED(partition_max_log_id); return ret; } virtual uint64_t get_max_confirmed_log_id() const { return 0; } virtual int is_need_rebuild(bool& need_rebuild) const { UNUSED(need_rebuild); return OB_NOT_SUPPORTED; } virtual bool is_leader_active() const { return false; } virtual int query_confirmed_log(const uint64_t log_id, ObLogEntry& log_entry) { UNUSED(log_id); UNUSED(log_entry); return OB_NOT_SUPPORTED; } virtual int change_quorum(const common::ObMemberList& curr_member_list, const int64_t curr_quorum, const int64_t new_quorum, obrpc::ObMCLogInfo& log_info) { int ret = OB_SUCCESS; UNUSED(curr_member_list); UNUSED(curr_quorum); UNUSED(new_quorum); UNUSED(log_info); return ret; } virtual int get_replica_num(int64_t& replica_num) const { int ret = OB_SUCCESS; UNUSED(replica_num); return ret; } virtual bool need_add_event_task() { return true; } virtual void reset_has_event_task() { return; } virtual int check_can_receive_batch_log(const uint64_t log_id) { UNUSED(log_id); return common::OB_SUCCESS; } virtual int update_max_flushed_ilog_id(const uint64_t log_id) { UNUSED(log_id); return common::OB_SUCCESS; } virtual int reset_has_pop_task() { return common::OB_SUCCESS; } virtual int get_cursor_with_cache(const int64_t scan_thread_index, const uint64_t log_id, ObLogCursorExt& log_cursor) { int ret = OB_SUCCESS; UNUSED(scan_thread_index); UNUSED(log_id); UNUSED(log_cursor); return ret; } virtual int set_member_list(const ObMemberList& member_list, const int64_t replica_num, const common::ObAddr& assigned_leader, const int64_t lease_start) { UNUSED(member_list); UNUSED(replica_num); UNUSED(assigned_leader); UNUSED(lease_start); return OB_SUCCESS; } virtual int try_freeze_aggre_buffer() { return OB_SUCCESS; } virtual int leader_send_max_log_info() { return OB_SUCCESS; } virtual bool has_valid_next_replay_log_ts() const { return false; } virtual int process_check_rebuild_req( const common::ObAddr& server, const uint64_t start_log_id, const int64_t cluster_id) { UNUSED(server); UNUSED(start_log_id); UNUSED(cluster_id); return OB_SUCCESS; } virtual void get_max_majority_log(uint64_t& log_id, int64_t& log_ts) const { log_id = 0; log_ts = 0; } virtual int change_restore_leader(const common::ObAddr& leader) { UNUSED(leader); return OB_SUCCESS; } virtual int process_restore_takeover_msg(const int64_t send_ts) { UNUSED(send_ts); return OB_SUCCESS; } virtual int set_restore_fetch_log_finished(ObArchiveFetchLogResult result) { UNUSED(result); return OB_SUCCESS; } virtual int try_update_next_replay_log_ts_in_restore(const int64_t ts) { UNUSED(ts); return OB_SUCCESS; } virtual int handle_standby_prepare_req( const ObAddr& server, const int64_t cluster_id, const ObProposalID& proposal_id) { UNUSED(server); UNUSED(cluster_id); UNUSED(proposal_id); return OB_SUCCESS; } virtual int handle_standby_prepare_resp(const ObAddr& server, const ObProposalID& proposal_id, const uint64_t ms_log_id, const int64_t membership_version, const ObMemberList& member_list) { UNUSED(server); UNUSED(proposal_id); UNUSED(ms_log_id); UNUSED(membership_version); UNUSED(member_list); return OB_SUCCESS; } virtual int ack_renew_ms_log( const ObAddr& server, const uint64_t log_id, const int64_t submit_timestamp, const ObProposalID& ms_proposal_id) { UNUSED(server); UNUSED(log_id); UNUSED(submit_timestamp); UNUSED(ms_proposal_id); return OB_SUCCESS; } virtual int receive_renew_ms_log_confirmed_info(const common::ObAddr& server, const uint64_t log_id, const common::ObProposalID& ms_proposal_id, const ObConfirmedInfo& confirmed_info) { UNUSED(server); UNUSED(log_id); UNUSED(ms_proposal_id); UNUSED(confirmed_info); return OB_SUCCESS; } virtual int check_and_set_restore_progress() { return OB_SUCCESS; } virtual int restore_leader_try_confirm_log() { return OB_SUCCESS; } virtual int standby_add_member(const common::ObMember& member, const int64_t quorum, obrpc::ObMCLogInfo& log_info) { UNUSED(member); UNUSED(quorum); UNUSED(log_info); return OB_SUCCESS; } virtual int standby_remove_member(const common::ObMember& member, const int64_t quorum, obrpc::ObMCLogInfo& log_info) { UNUSED(member); UNUSED(quorum); UNUSED(log_info); return OB_SUCCESS; } virtual int receive_renew_ms_log(const ObLogEntry& log_entry, const ObAddr& server, const int64_t cluster_id, const ObProposalID& proposal_id, const ReceiveLogType type) { UNUSED(log_entry); UNUSED(server); UNUSED(cluster_id); UNUSED(proposal_id); UNUSED(type); return OB_SUCCESS; } virtual int standby_pre_change_member(const int64_t quorum, const bool is_add_member, int64_t& mc_timestamp, uint64_t max_log_id, ObMemberList& member_list, ObProposalID& proposal_id) { UNUSED(quorum); UNUSED(is_add_member); UNUSED(mc_timestamp); UNUSED(max_log_id); UNUSED(member_list); UNUSED(proposal_id); return OB_SUCCESS; } virtual int standby_wait_log_confirmed( const int64_t begin_time, const int64_t max_wait_time, const uint64_t max_log_id) { UNUSED(begin_time); UNUSED(max_wait_time); UNUSED(max_log_id); return OB_SUCCESS; } virtual int standby_batch_change_member(const common::ObMember& member, const int64_t quorum, const int64_t mc_timestamp, const uint64_t max_log_id, const common::ObProposalID& proposal_id, const bool is_add_member, obrpc::ObMCLogInfo& mc_log_info) { UNUSED(member); UNUSED(quorum); UNUSED(mc_timestamp); UNUSED(max_log_id); UNUSED(proposal_id); UNUSED(is_add_member); UNUSED(mc_log_info); return OB_SUCCESS; } virtual int standby_update_protection_level() { return OB_SUCCESS; } virtual int get_standby_leader_protection_level(uint32_t& protection_level) { UNUSED(protection_level); return OB_SUCCESS; } virtual int primary_process_protect_mode_switch() { return OB_SUCCESS; } virtual int handle_query_sync_start_id_req(const ObAddr& server, const int64_t cluster_id, const int64_t send_ts) { UNUSED(server); UNUSED(cluster_id); UNUSED(send_ts); return OB_SUCCESS; } virtual int handle_sync_start_id_resp( const ObAddr& server, const int64_t cluster_id, const int64_t original_send_ts, const uint64_t sync_start_id) { UNUSED(server); UNUSED(cluster_id); UNUSED(original_send_ts); UNUSED(sync_start_id); return OB_SUCCESS; } virtual bool has_valid_member_list() const { return true; } virtual bool is_standby_restore_state() const { return true; } virtual int process_restore_check_req(const common::ObAddr &server, const int64_t cluster_id, const ObRestoreCheckType restore_type) { UNUSED(server); UNUSED(cluster_id); UNUSED(restore_type); return OB_SUCCESS; } virtual int check_and_try_leader_revoke(const election::ObElection::RevokeType& revoke_type) { UNUSED(revoke_type); return OB_SUCCESS; } int try_update_leader_from_loc_cache() { return OB_SUCCESS; } virtual int process_query_restore_end_id_resp(const common::ObAddr &server, const uint64_t last_restore_log_id) override { UNUSED(server); UNUSED(last_restore_log_id); return OB_SUCCESS; } private: common::ObPartitionKey p_k_; }; } // namespace clog } // namespace oceanbase #endif // OCEANBASE_CLOG_MOCK_OB_PARTITION_LOG_SERVICE_H_