mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 13:22:57 +00:00
fix: check version before alter region (#2433)
* fix: check version before alter region * chore: apply suggestions from CR * Update src/mito2/src/worker/handle_alter.rs Co-authored-by: dennis zhuang <killme2008@gmail.com> --------- Co-authored-by: dennis zhuang <killme2008@gmail.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use common_query::Output;
|
use common_query::Output;
|
||||||
use common_telemetry::{error, info};
|
use common_telemetry::{error, info, warn};
|
||||||
use snafu::ResultExt;
|
use snafu::ResultExt;
|
||||||
use store_api::metadata::{RegionMetadata, RegionMetadataBuilder, RegionMetadataRef};
|
use store_api::metadata::{RegionMetadata, RegionMetadataBuilder, RegionMetadataRef};
|
||||||
use store_api::region_request::RegionAlterRequest;
|
use store_api::region_request::RegionAlterRequest;
|
||||||
@@ -47,6 +47,15 @@ impl<S> RegionWorkerLoop<S> {
|
|||||||
|
|
||||||
// Get the version before alter.
|
// Get the version before alter.
|
||||||
let version = region.version();
|
let version = region.version();
|
||||||
|
if version.metadata.schema_version > request.schema_version {
|
||||||
|
warn!(
|
||||||
|
"Ignored alert request, region id:{}, region schema version {} is greater than request schema version {}",
|
||||||
|
region_id, version.metadata.schema_version, request.schema_version
|
||||||
|
);
|
||||||
|
// Returns if it altered.
|
||||||
|
sender.send(Ok(Output::AffectedRows(0)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Checks whether we can alter the region directly.
|
// Checks whether we can alter the region directly.
|
||||||
if !version.memtables.is_empty() {
|
if !version.memtables.is_empty() {
|
||||||
// If memtable is not empty, we can't alter it directly and need to flush
|
// If memtable is not empty, we can't alter it directly and need to flush
|
||||||
|
|||||||
Reference in New Issue
Block a user