gm 4a92b6d7df reformat source code
according to code styles, 'AccessModifierOffset' should be -2.
2021-06-17 10:40:36 +08:00

594 lines
16 KiB
C++

/**
* 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_UNITTEST_CLOG_MOCK_CONTAINER_MOCK_OB_LOG_ENGINE_H_
#define OOCEANBASE_UNITTEST_CLOG_MOCK_CONTAINER_MOCK_OB_LOG_ENGINE_H_
#include "clog/ob_i_disk_log_buffer.h"
#include "common/ob_member_list.h"
#include "lib/net/ob_addr.h"
#include "common/ob_partition_key.h"
#include "clog/ob_log_reader_interface.h"
#include "clog/ob_i_log_engine.h"
namespace oceanbase {
namespace clog {
class ObIDiskLogBuffer;
class ObINetLogBufferMgr;
class ObILogNetTask;
class ObConfirmedInfo;
class ObLogTask;
class MockObLogEngine : public ObILogEngine {
public:
typedef ObDiskBufferTask FlushTask;
public:
MockObLogEngine()
{}
~MockObLogEngine()
{}
ObIRawLogIterator* alloc_raw_log_iterator(
const file_id_t start_file_id, const file_id_t end_file_id, const offset_t offset, const int64_t timeout)
{
UNUSED(start_file_id);
UNUSED(end_file_id);
UNUSED(offset);
UNUSED(timeout);
return NULL;
}
void revert_raw_log_iterator(ObIRawLogIterator* iter)
{
UNUSED(iter);
}
ObIRawIndexIterator* alloc_raw_index_iterator(const file_id_t start_file_id, const file_id_t end_file_id,
const offset_t offset, const int64_t timeout, const bool use_cache)
{
UNUSED(start_file_id);
UNUSED(end_file_id);
UNUSED(offset);
UNUSED(timeout);
UNUSED(use_cache);
return NULL;
}
void revert_raw_index_iterator(ObIRawIndexIterator* iter)
{
UNUSED(iter);
}
int read_log_by_location(const ObReadParam& param, ObLogEntry& entry)
{
UNUSED(param);
UNUSED(entry);
return common::OB_SUCCESS;
}
int read_log_by_location(const ObReadParam& param, ObLogEntry& entry, ObReadCost& cost)
{
UNUSED(param);
UNUSED(entry);
UNUSED(cost);
return common::OB_SUCCESS;
}
int read_log_by_location(const ObLogTask& log_task, ObLogEntry& entry)
{
UNUSED(log_task);
UNUSED(entry);
return common::OB_SUCCESS;
}
int read_data_with_ctx(ObReadCtx& ctx, file_id_t f, offset_t o, int64_t s, char* b, ObReadCost& cost)
{
UNUSED(ctx);
UNUSED(f);
UNUSED(o);
UNUSED(s);
UNUSED(b);
UNUSED(cost);
return common::OB_SUCCESS;
}
int read_data_from_hot_cache(
const file_id_t want_file_id, const offset_t want_offset, const int64_t want_size, char* user_buf)
{
UNUSED(want_file_id);
UNUSED(want_offset);
UNUSED(want_size);
UNUSED(user_buf);
return common::OB_SUCCESS;
}
int read_data_direct(const ObReadParam& param, ObReadBuf& rbuf, ObReadRes& res, ObReadCost& cost)
{
UNUSED(param);
UNUSED(rbuf);
UNUSED(res);
UNUSED(cost);
return common::OB_SUCCESS;
}
int submit_flush_task(FlushTask* task)
{
UNUSED(task);
return common::OB_SUCCESS;
}
int submit_fetch_log_resp(
const common::ObAddr& server, const common::ObPartitionKey& key, const int64_t network_limit, ObILogNetTask* task)
{
UNUSED(server);
UNUSED(key);
UNUSED(network_limit);
UNUSED(task);
return common::OB_SUCCESS;
}
int submit_log_ack(const common::ObAddr& server, const common::ObPartitionKey& key, const uint64_t log_id,
const common::ObProposalID proposal_id)
{
UNUSED(server);
UNUSED(key);
UNUSED(log_id);
UNUSED(proposal_id);
return common::OB_SUCCESS;
}
int fetch_log_from_all_follower(const common::ObMemberList& mem_list, const common::ObPartitionKey& key,
const uint64_t start_id, const uint64_t end_id, const common::ObProposalID proposal_id)
{
UNUSED(mem_list);
UNUSED(key);
UNUSED(start_id);
UNUSED(end_id);
UNUSED(proposal_id);
return common::OB_SUCCESS;
}
int fetch_log_from_leader(const common::ObAddr& server, const common::ObPartitionKey& key, const uint64_t start_id,
const uint64_t end_id, const common::ObProposalID proposal_id, const common::ObReplicaType replica_type)
{
UNUSED(server);
UNUSED(key);
UNUSED(start_id);
UNUSED(end_id);
UNUSED(proposal_id);
UNUSED(replica_type);
return common::OB_SUCCESS;
}
int fetch_register_server(const common::ObAddr& server, const ObPartitionKey& key,
const common::ObReplicaType replica_type, const bool is_request_leader, const bool is_need_force_register)
{
UNUSED(server);
UNUSED(key);
UNUSED(replica_type);
UNUSED(is_request_leader);
UNUSED(is_need_force_register);
return common::OB_SUCCESS;
}
int request_replace_sick_child(
const common::ObAddr& server, const common::ObPartitionKey& key, const common::ObAddr& sick_child)
{
int ret = OB_SUCCESS;
UNUSED(server);
UNUSED(key);
UNUSED(sick_child);
return ret;
}
int reject_server(const common::ObAddr& server, const common::ObPartitionKey& key, const int32_t msg_type)
{
UNUSED(server);
UNUSED(key);
UNUSED(msg_type);
return common::OB_SUCCESS;
}
bool is_in_black_list(const common::ObAddr& server) const
{
UNUSED(server);
return true;
}
int submit_prepare_rqst(
const common::ObMemberList& mem_list, const common::ObPartitionKey& key, const common::ObProposalID proposal_id)
{
UNUSED(mem_list);
UNUSED(key);
UNUSED(proposal_id);
return common::OB_SUCCESS;
}
int prepare_response(const common::ObAddr& server, const common::ObPartitionKey& partition_key,
const common::ObProposalID proposal_id, const uint64_t max_log_id, const int64_t max_log_ts)
{
UNUSED(server);
UNUSED(partition_key);
UNUSED(proposal_id);
UNUSED(max_log_id);
UNUSED(max_log_ts);
return common::OB_SUCCESS;
}
int send_keepalive_msg(const common::ObAddr& server, const common::ObPartitionKey& partition_key,
const uint64_t next_log_id, const int64_t next_log_ts_lb, const uint64_t deliver_cnt)
{
UNUSED(server);
UNUSED(partition_key);
UNUSED(next_log_id);
UNUSED(next_log_ts_lb);
UNUSED(deliver_cnt);
return common::OB_SUCCESS;
}
int send_sync_log_archive_progress_msg(const common::ObAddr& server, const int64_t cluster_id,
const common::ObPartitionKey& partition_key, const int64_t log_archive_round, const uint64_t last_archived_log_id,
const int64_t last_archived_log_ts)
{
UNUSED(server);
UNUSED(cluster_id);
UNUSED(partition_key);
UNUSED(log_archive_round);
UNUSED(last_archived_log_id);
UNUSED(last_archived_log_ts);
return common::OB_SUCCESS;
}
int submit_index_flush_task(FlushTask* task)
{
UNUSED(task);
return common::OB_SUCCESS;
}
void update_clog_info(const int64_t submit_timestamp)
{
UNUSED(submit_timestamp);
}
void update_clog_info(
const common::ObPartitionKey& partition_key, const uint64_t log_id, const int64_t submit_timestamp)
{
UNUSED(partition_key);
UNUSED(log_id);
UNUSED(submit_timestamp);
}
void update_ilog_info(
const common::ObPartitionKey& partition_key, const uint64_t log_id, const int64_t submit_timestamp)
{
UNUSED(partition_key);
UNUSED(log_id);
UNUSED(submit_timestamp);
}
void update_ilog_info(const int64_t submit_timestamp)
{
UNUSED(submit_timestamp);
}
ObILogInfoBlockReader* get_info_block_reader(const InfoBlockReaderType type)
{
UNUSED(type);
return NULL;
}
void revert_info_block_reader(ObILogInfoBlockReader* reader)
{
UNUSED(reader);
}
// new functions
ObILogInfoBlockReader* get_clog_info_block_reader()
{
return NULL;
}
void revert_clog_info_block_reader(ObILogInfoBlockReader* reader)
{
UNUSED(reader);
}
ObILogInfoBlockReader* get_ilog_info_block_reader()
{
return NULL;
}
void revert_ilog_info_block_reader(ObILogInfoBlockReader* reader)
{
UNUSED(reader);
}
virtual ObCommitLogEnv* get_clog_env(const bool is_sys)
{
UNUSED(is_sys);
return NULL;
}
virtual ObIndexLogEnv* get_ilog_env(const bool is_sys)
{
UNUSED(is_sys);
return NULL;
}
virtual void revert_clog_env(ObCommitLogEnv* log_env)
{
UNUSED(log_env);
}
virtual void revert_ilog_env(ObIndexLogEnv* log_env)
{
UNUSED(log_env);
}
int reset_clog_info_block()
{
return common::OB_SUCCESS;
}
int reset_ilog_info_block()
{
return common::OB_SUCCESS;
}
int switch_ilog_file()
{
return common::OB_SUCCESS;
}
virtual int notify_follower_log_missing(
const common::ObAddr& a, const common::ObPartitionKey& b, uint64_t c, const bool d)
{
UNUSED(a);
UNUSED(b);
UNUSED(c);
UNUSED(d);
return common::OB_SUCCESS;
}
virtual file_id_t get_flying_ilog_file_id()
{
return common::OB_INVALID_FILE_ID;
}
virtual file_id_t get_flying_clog_file_id()
{
return common::OB_INVALID_FILE_ID;
}
virtual ObIndexInfoBlockHandler& get_flying_ilog_info_handler()
{
return fake_handler_;
}
void revert_flying_ilog_info_handler(ObIndexInfoBlockHandler* handler)
{
UNUSED(handler);
}
virtual int get_clog_info_handler(clog::file_id_t a, clog::ObCommitInfoBlockHandler& b)
{
UNUSED(a);
UNUSED(b);
return common::OB_SUCCESS;
}
virtual int get_ilog_info_handler(clog::file_id_t a, clog::ObIndexInfoBlockHandler& b, ObReadCost& cost)
{
UNUSED(a);
UNUSED(b);
UNUSED(cost);
return common::OB_SUCCESS;
}
virtual int get_remote_membership_status(const common::ObAddr& server, const common::ObPartitionKey& partition_key,
int64_t& timestamp, uint64_t& max_confirmed_log_id, bool& is_in_sync)
{
UNUSED(server);
UNUSED(partition_key);
UNUSED(timestamp);
UNUSED(max_confirmed_log_id);
UNUSED(is_in_sync);
return common::OB_SUCCESS;
}
virtual int get_follower_sync_info(const common::ObAddr& a, const common::ObPartitionKey& b, uint64_t& c, int64_t& d)
{
UNUSED(a);
UNUSED(b);
UNUSED(c);
UNUSED(d);
return common::OB_SUCCESS;
}
virtual int add_to_black_list(const common::ObAddr& server)
{
UNUSED(server);
return common::OB_SUCCESS;
}
virtual int remove_from_black_list(const common::ObAddr& server, bool& is_exec_remove)
{
UNUSED(server);
UNUSED(is_exec_remove);
return common::OB_SUCCESS;
}
virtual void try_limit_network(const ObLogEntry& log_entry)
{
UNUSED(log_entry);
}
virtual int64_t get_free_quota() const
{
return 0;
};
virtual bool is_using_new_log_env() const
{
return true;
}
ObILogDir* get_sys_ilog_dir()
{
return &si_dir_;
}
ObILogDir* get_user_ilog_dir()
{
return &ui_dir_;
}
ObILogDir* get_sys_clog_dir()
{
return &sc_dir_;
}
ObILogDir* get_user_clog_dir()
{
return &uc_dir_;
}
ObILogDir* get_clog_dir()
{
return NULL;
}
ObILogDir* get_ilog_dir()
{
return NULL;
}
int switch_clog_file()
{
return common::OB_SUCCESS;
}
bool is_disk_space_enough() const
{
return true;
}
/*
virtual int set_new_env_min_using_file_id(const bool is_sys,
const file_id_t ilog_file_id,
const file_id_t clog_file_id)
*/
int get_corresponding_clog_file_id(const file_id_t ilog_file_id, file_id_t& clog_file_id)
{
UNUSED(ilog_file_id);
UNUSED(clog_file_id);
return common::OB_SUCCESS;
}
virtual int broadcast_info(const common::ObMemberList& mem_list, const common::ObPartitionKey& key,
const common::ObReplicaType& replica_type, const uint64_t max_confirmed_log_id)
{
UNUSED(mem_list);
UNUSED(key);
UNUSED(replica_type);
UNUSED(max_confirmed_log_id);
return 0;
}
void set_all_scan_finish()
{}
virtual int set_env_min_using_file_id(const file_id_t ilog_file_id, const file_id_t clog_file_id)
{
UNUSED(ilog_file_id);
UNUSED(clog_file_id);
return common::OB_SUCCESS;
}
virtual int set_new_env_min_using_file_id(const file_id_t ilog_file_id, const file_id_t clog_file_id)
{
UNUSED(ilog_file_id);
UNUSED(clog_file_id);
return common::OB_SUCCESS;
}
virtual int submit_batch_log(const common::ObMemberList& member_list, const transaction::ObTransID& trans_id,
const common::ObPartitionArray& partition_array, const ObLogInfoArray& log_info_array)
{
UNUSED(member_list);
UNUSED(trans_id);
UNUSED(partition_array);
UNUSED(log_info_array);
return common::OB_SUCCESS;
}
virtual int submit_batch_ack(
const common::ObAddr& leader, const transaction::ObTransID& trans_id, const ObBatchAckArray& batch_ack_array)
{
UNUSED(leader);
UNUSED(trans_id);
UNUSED(batch_ack_array);
return common::OB_SUCCESS;
}
virtual int query_remote_log(const common::ObAddr& server, const common::ObPartitionKey& partition_key,
const uint64_t log_id, transaction::ObTransID& trans_id, int64_t& submit_timestamp)
{
UNUSED(server);
UNUSED(partition_key);
UNUSED(log_id);
UNUSED(trans_id);
UNUSED(submit_timestamp);
return common::OB_SUCCESS;
}
virtual void record_flush_cb_histogram(const int64_t cost_ts)
{
UNUSED(cost_ts);
}
virtual void record_batch_flush_cb_histogram(const int64_t cost_ts)
{
UNUSED(cost_ts);
}
virtual int get_cursor_batch(const common::ObPartitionKey& pkey, const uint64_t query_log_id,
ObGetCursorResult& result, ObIlogStorageQueryCost& csr_cost, const uint64_t retry_limit,
const unsigned sleep_time_on_retry_us)
{
int ret = OB_SUCCESS;
UNUSED(pkey);
UNUSED(query_log_id);
UNUSED(result);
UNUSED(csr_cost);
UNUSED(retry_limit);
UNUSED(sleep_time_on_retry_us);
return ret;
}
virtual int get_cursor_batch(const common::ObPartitionKey& pkey, const uint64_t query_log_id,
ObLogCursorExt& log_cursor, ObGetCursorResult& result, uint64_t& cursor_start_log_id)
{
int ret = OB_SUCCESS;
UNUSED(pkey);
UNUSED(query_log_id);
UNUSED(log_cursor);
UNUSED(result);
UNUSED(cursor_start_log_id);
return ret;
}
virtual int get_cursor(const common::ObPartitionKey& pkey, const uint64_t query_log_id, ObLogCursorExt& log_cursor)
{
int ret = OB_SUCCESS;
UNUSED(pkey);
UNUSED(query_log_id);
UNUSED(log_cursor);
return ret;
}
virtual int query_max_ilog_id(const common::ObPartitionKey& pkey, uint64_t& ret_max_ilog_id)
{
int ret = OB_SUCCESS;
UNUSED(pkey);
UNUSED(ret_max_ilog_id);
return ret;
}
virtual int query_ilog_file_id(
const common::ObPartitionKey& pkey, const uint64_t query_log_id, file_id_t& ilog_file_id)
{
int ret = OB_SUCCESS;
UNUSED(pkey);
UNUSED(query_log_id);
UNUSED(ilog_file_id);
return ret;
}
virtual int guarantee_extend_min()
{
int ret = OB_SUCCESS;
return ret;
}
virtual int locate_by_timestamp(const common::ObPartitionKey& pkey, const int64_t start_ts, uint64_t& target_log_id,
int64_t& target_log_timestamp)
{
int ret = OB_SUCCESS;
UNUSED(pkey);
UNUSED(start_ts);
UNUSED(target_log_id);
UNUSED(target_log_timestamp);
return ret;
}
private:
ObIndexInfoBlockHandler fake_handler_;
ObLogDir si_dir_;
ObLogDir ui_dir_;
ObLogDir sc_dir_;
ObLogDir uc_dir_;
};
/*
class ObILogNetTask
{
public:
~ObILogNetTask() {}
char *get_data_buffer() const{return NULL;}
common::ObProposalID get_proposal_id() const{
return 0;}
int64_t get_data_len() const{return 0;}
};
class ObLogNetTask : public ObILogNetTask
{
public:
ObLogNetTask(common::ObProposalID proposal_id, char *buff,
int64_t data_len) : proposal_id_(proposal_id),
buff_(buff), data_len_(data_len) {};
char *get_data_buffer() const {return buff_;}
common::ObProposalID get_proposal_id() const {return proposal_id_;}
int64_t get_data_len() const {return data_len_;}
private:
common::ObProposalID proposal_id_;
char *buff_;
int64_t data_len_;
};
*/
} // end namespace clog
} // end namespace oceanbase
#endif // OCEANBASE_UNITTEST_CLOG_MOCK_CONTAINER_MOCK_OB_LOG_ENGINE_H_