Skip to content

Commit

Permalink
refactor: refactor move_values
Browse files Browse the repository at this point in the history
  • Loading branch information
WenyXu committed Apr 17, 2024
1 parent a19e7bc commit 03b6af6
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 360 deletions.
57 changes: 2 additions & 55 deletions src/common/meta/src/key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,10 @@ use self::tombstone::TombstoneManager;
use crate::ddl::utils::region_storage_path;
use crate::error::{self, Result, SerdeJsonSnafu, UnexpectedSnafu};
use crate::key::table_route::TableRouteKey;
use crate::key::tombstone::TombstoneKeyValue;
use crate::key::txn_helper::TxnOpGetResponseSet;
use crate::kv_backend::txn::{Txn, TxnOp, TxnOpResponse};
use crate::kv_backend::KvBackendRef;
use crate::rpc::router::{region_distribution, RegionRoute, RegionStatus};
use crate::rpc::store::BatchGetRequest;
use crate::rpc::KeyValue;
use crate::table_name::TableName;
use crate::DatanodeId;

Expand Down Expand Up @@ -624,32 +621,7 @@ impl TableMetadataManager {
table_route_value: &TableRouteValue,
) -> Result<()> {
let keys = self.table_metadata_keys(table_id, table_name, table_route_value)?;
let num_keys = keys.len();
let resp = self
.kv_backend
.batch_get(BatchGetRequest::new().with_keys(keys))
.await?;
if resp.kvs.is_empty() {
return Ok(());
}
ensure!(
resp.kvs.len() == num_keys,
error::UnexpectedSnafu {
err_msg: format!(
"Read incomplete metadata during delete table metadata, table: {}({}); Expected num of keys: {}, but got: {}",
table_name,
table_id,
num_keys,
resp.kvs.len()
)
}
);
let kvs = resp
.kvs
.into_iter()
.map(|KeyValue { key, value }| (key, value))
.collect();
self.tombstone_manager.create(kvs).await
self.tombstone_manager.create(keys).await
}

/// Deletes metadata tombstone for table **permanently**.
Expand All @@ -673,32 +645,7 @@ impl TableMetadataManager {
table_route_value: &TableRouteValue,
) -> Result<()> {
let keys = self.table_metadata_keys(table_id, table_name, table_route_value)?;
let num_keys = keys.len();
let kvs = self.tombstone_manager.batch_get(keys).await?;
if kvs.is_empty() {
return Ok(());
}
ensure!(
kvs.len() == num_keys,
error::UnexpectedSnafu {
err_msg: format!(
"Read incomplete metadata during restore table metadata, table: {}({}); Expected num of keys: {}, but got: {}",
table_name,
table_id,
num_keys,
kvs.len()
)
}
);
let kvs = kvs
.into_iter()
.map(
|TombstoneKeyValue {
origin_key, value, ..
}| (origin_key, value),
)
.collect();
self.tombstone_manager.restore(kvs).await
self.tombstone_manager.restore(keys).await
}

/// Deletes metadata for table **permanently**.
Expand Down
Loading

0 comments on commit 03b6af6

Please sign in to comment.