cherry-pick from 3_1_x_release to 3.1_opensource_release
This commit is contained in:
parent
7eb645fba3
commit
2aa1574bc6
@ -17,6 +17,7 @@
|
||||
#include "rootserver/ob_schema_history_recycler.h"
|
||||
#include "rootserver/ob_rs_async_rpc_proxy.h"
|
||||
#include "rootserver/ob_rs_event_history_table_operator.h"
|
||||
#include "storage/ob_freeze_info_snapshot_mgr.h"
|
||||
|
||||
namespace oceanbase {
|
||||
namespace rootserver {
|
||||
@ -658,6 +659,19 @@ int ObSchemaHistoryRecycler::get_recycle_schema_version_by_global_stat(
|
||||
K(reserved_schema_version));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
int64_t schema_version = 0;
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < tenant_ids.count(); i++) {
|
||||
const uint64_t tenant_id = tenant_ids.at(i);
|
||||
if (OB_FAIL(storage::ObFreezeInfoMgrWrapper::get_instance().get_restore_point_min_schema_version(
|
||||
tenant_id, schema_version))) {
|
||||
LOG_WARN("fail to get restore point min_schema_version", K(ret), K(tenant_id));
|
||||
} else if (INT64_MAX != schema_version &&
|
||||
OB_FAIL(fill_recycle_schema_versions(tenant_id, schema_version, recycle_schema_versions))) {
|
||||
LOG_WARN("fail to fill recycle schema versions", KR(ret), K(tenant_id), K(schema_version));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -560,7 +560,22 @@ int ObFreezeInfoSnapshotMgr::get_reserve_points(const int64_t tenant_id, const s
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObFreezeInfoSnapshotMgr::get_latest_freeze_version(int64_t& freeze_version)
|
||||
int ObFreezeInfoSnapshotMgr::get_restore_point_min_schema_version(const int64_t tenant_id, int64_t &schema_version)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
schema_version = INT64_MAX;
|
||||
RLockGuard lock_guard(lock_);
|
||||
ObIArray<ObSnapshotInfo> &snapshots = snapshots_[cur_idx_];
|
||||
for (int64_t i = 0; i < snapshots.count() && OB_SUCC(ret); ++i) {
|
||||
const ObSnapshotInfo &snapshot = snapshots.at(i);
|
||||
if (snapshot.snapshot_type_ == SNAPSHOT_FOR_RESTORE_POINT && tenant_id == snapshot.tenant_id_) {
|
||||
schema_version = std::min(snapshot.schema_version_, schema_version);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObFreezeInfoSnapshotMgr::get_latest_freeze_version(int64_t &freeze_version)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
||||
|
@ -148,30 +148,51 @@ public:
|
||||
int64_t get_latest_frozen_timestamp();
|
||||
|
||||
// no schema version is returned if you do not give the tenant id
|
||||
int get_freeze_info_by_major_version(const int64_t major_version, FreezeInfoLite& freeze_info);
|
||||
int get_freeze_info_by_major_version(const uint64_t table_id, const int64_t major_version, FreezeInfo& freeze_info);
|
||||
int get_freeze_info_by_major_version(
|
||||
const int64_t major_version, FreezeInfoLite& freeze_info, bool& is_first_major_version);
|
||||
int get_freeze_info_behind_major_version(const int64_t major_version, common::ObIArray<FreezeInfoLite>& freeze_infos);
|
||||
int get_freeze_info_by_major_version(const int64_t major_version,
|
||||
FreezeInfoLite &freeze_info);
|
||||
int get_freeze_info_by_major_version(const uint64_t table_id,
|
||||
const int64_t major_version,
|
||||
FreezeInfo &freeze_info);
|
||||
int get_freeze_info_by_major_version(const int64_t major_version,
|
||||
FreezeInfoLite &freeze_info,
|
||||
bool &is_first_major_version);
|
||||
int get_freeze_info_behind_major_version(const int64_t major_version,
|
||||
common::ObIArray<FreezeInfoLite> &freeze_infos);
|
||||
|
||||
int get_tenant_freeze_info_by_major_version(
|
||||
const uint64_t tenant_id, const int64_t major_version, FreezeInfo& freeze_info);
|
||||
int get_tenant_freeze_info_by_major_version(const uint64_t tenant_id,
|
||||
const int64_t major_version,
|
||||
FreezeInfo &freeze_info);
|
||||
|
||||
int get_freeze_info_by_snapshot_version(const int64_t snapshot_version, FreezeInfoLite& freeze_info);
|
||||
int get_freeze_info_by_snapshot_version(
|
||||
const uint64_t table_id, const int64_t snapshot_version, FreezeInfo& freeze_info);
|
||||
int get_freeze_info_by_snapshot_version(const int64_t snapshot_version,
|
||||
FreezeInfoLite &freeze_info);
|
||||
int get_freeze_info_by_snapshot_version(const uint64_t table_id,
|
||||
const int64_t snapshot_version,
|
||||
FreezeInfo &freeze_info);
|
||||
|
||||
int get_neighbour_major_freeze(const int64_t snapshot_version, NeighbourFreezeInfoLite& info);
|
||||
int get_neighbour_major_freeze(const uint64_t table_id, const int64_t snapshot_version, NeighbourFreezeInfo& info);
|
||||
int get_neighbour_major_freeze(const int64_t snapshot_version,
|
||||
NeighbourFreezeInfoLite &info);
|
||||
int get_neighbour_major_freeze(const uint64_t table_id,
|
||||
const int64_t snapshot_version,
|
||||
NeighbourFreezeInfo &info);
|
||||
|
||||
int get_min_reserved_snapshot(const common::ObPartitionKey& pkey, const int64_t merged_version,
|
||||
const int64_t schema_version, int64_t& snapshot_version, int64_t& backup_snapshot_version);
|
||||
int get_reserve_points(const int64_t tenant_id, const share::ObSnapShotType snapshot_type,
|
||||
common::ObIArray<share::ObSnapshotInfo>& restore_points, int64_t& snapshot_gc_ts);
|
||||
int update_info(const int64_t snapshot_gc_ts, const common::ObIArray<SchemaPair>& gc_schema_version,
|
||||
const common::ObIArray<FreezeInfoLite>& info_list, const common::ObIArray<share::ObSnapshotInfo>& snapshots,
|
||||
const int64_t backup_snapshot_version, const int64_t delay_delete_snapshot_version,
|
||||
const int64_t min_major_version, bool& changed);
|
||||
int get_min_reserved_snapshot(const common::ObPartitionKey &pkey,
|
||||
const int64_t merged_version,
|
||||
const int64_t schema_version,
|
||||
int64_t &snapshot_version,
|
||||
int64_t &backup_snapshot_version);
|
||||
int get_reserve_points(const int64_t tenant_id,
|
||||
const share::ObSnapShotType snapshot_type,
|
||||
common::ObIArray<share::ObSnapshotInfo> &restore_points,
|
||||
int64_t &snapshot_gc_ts);
|
||||
int get_restore_point_min_schema_version(const int64_t tenant_id, int64_t &schema_version);
|
||||
int update_info(const int64_t snapshot_gc_ts,
|
||||
const common::ObIArray<SchemaPair> &gc_schema_version,
|
||||
const common::ObIArray<FreezeInfoLite> &info_list,
|
||||
const common::ObIArray<share::ObSnapshotInfo> &snapshots,
|
||||
const int64_t backup_snapshot_version,
|
||||
const int64_t delay_delete_snapshot_version,
|
||||
const int64_t min_major_version,
|
||||
bool& changed);
|
||||
|
||||
int64_t get_snapshot_gc_ts();
|
||||
int get_local_backup_snapshot_version(int64_t& backup_snapshot_version);
|
||||
|
Loading…
x
Reference in New Issue
Block a user