mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-25 17:30:41 +00:00
feat(frontend): migrate insert to region server (#2318)
* feat(frontend): migrate insert to region server Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * refactor: move converter to Inserter Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * chore: rename convert function Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * fix: address comments Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * fix: address comments Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * fix: add span id Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * fix: compilation Signed-off-by: Zhenchi <zhongzc_arch@outlook.com> * retrigger action * retrigger action --------- Signed-off-by: Zhenchi <zhongzc_arch@outlook.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use api::v1::region::region_request;
|
||||
use api::v1::region::RegionRequest;
|
||||
|
||||
use crate::error::Result;
|
||||
use crate::peer::Peer;
|
||||
@@ -24,7 +24,7 @@ pub type AffectedRows = u64;
|
||||
#[async_trait::async_trait]
|
||||
pub trait Datanode: Send + Sync {
|
||||
/// Handles DML, and DDL requests.
|
||||
async fn handle(&self, request: region_request::Body) -> Result<AffectedRows>;
|
||||
async fn handle(&self, request: RegionRequest) -> Result<AffectedRows>;
|
||||
}
|
||||
|
||||
pub type DatanodeRef = Arc<dyn Datanode>;
|
||||
|
||||
@@ -13,7 +13,9 @@
|
||||
// limitations under the License.
|
||||
|
||||
use api::v1::region::region_request::Body as PbRegionRequest;
|
||||
use api::v1::region::{ColumnDef, CreateRequest as PbCreateRegionRequest};
|
||||
use api::v1::region::{
|
||||
ColumnDef, CreateRequest as PbCreateRegionRequest, RegionRequest, RegionRequestHeader,
|
||||
};
|
||||
use api::v1::SemanticType;
|
||||
use async_trait::async_trait;
|
||||
use common_procedure::error::{FromJsonSnafu, Result as ProcedureResult, ToJsonSnafu};
|
||||
@@ -197,6 +199,13 @@ impl CreateTableProcedure {
|
||||
for request in requests {
|
||||
let requester = manager.datanode(&datanode).await;
|
||||
|
||||
let request = RegionRequest {
|
||||
header: Some(RegionRequestHeader {
|
||||
trace_id: 0,
|
||||
span_id: 0,
|
||||
}),
|
||||
body: Some(request),
|
||||
};
|
||||
if let Err(err) = requester.handle(request).await {
|
||||
return Err(handle_operate_region_error(datanode)(err));
|
||||
}
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use api::v1::region::{region_request, DropRequest as PbDropRegionRequest};
|
||||
use api::v1::region::{
|
||||
region_request, DropRequest as PbDropRegionRequest, RegionRequest, RegionRequestHeader,
|
||||
};
|
||||
use async_trait::async_trait;
|
||||
use common_error::ext::ErrorExt;
|
||||
use common_error::status_code::StatusCode;
|
||||
@@ -162,13 +164,17 @@ impl DropTableProcedure {
|
||||
for region_id in region_ids {
|
||||
debug!("Dropping region {region_id} on Datanode {datanode:?}");
|
||||
|
||||
let request = region_request::Body::Drop(PbDropRegionRequest {
|
||||
region_id: region_id.as_u64(),
|
||||
});
|
||||
let request = RegionRequest {
|
||||
header: Some(RegionRequestHeader {
|
||||
trace_id: 0,
|
||||
span_id: 0,
|
||||
}),
|
||||
body: Some(region_request::Body::Drop(PbDropRegionRequest {
|
||||
region_id: region_id.as_u64(),
|
||||
})),
|
||||
};
|
||||
|
||||
let requester = clients.datanode(&datanode).await;
|
||||
|
||||
if let Err(err) = requester.handle(request).await {
|
||||
if let Err(err) = clients.datanode(&datanode).await.handle(request).await {
|
||||
if err.status_code() != StatusCode::RegionNotFound {
|
||||
return Err(handle_operate_region_error(datanode)(err));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user