blob: 3be9b2c1f6a50b1096cba5bfbd6b80db5a77aa5d [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
include "common.thrift"
namespace java org.apache.iotdb.consensus.pipe.thrift
struct TCommitId {
1:required i64 commitIndex
2:required i32 pipeTaskRestartTimes
3:required i32 dataNodeRebootTimes
}
struct TPipeConsensusTransferReq {
1:required i8 version
2:required i16 type
3:required TCommitId commitId
4:required common.TConsensusGroupId consensusGroupId
5:required i32 dataNodeId
6:required binary body
7:optional binary progressIndex
}
struct TPipeConsensusTransferResp {
1:required common.TSStatus status
2:optional binary body
}
struct TPipeConsensusBatchTransferReq {
1:required list<TPipeConsensusTransferReq> batchReqs
}
struct TPipeConsensusBatchTransferResp {
1:required list<TPipeConsensusTransferResp> batchResps
}
struct TSetActiveReq {
1: required common.TConsensusGroupId consensusGroupId
2: required bool isActive
}
struct TSetActiveResp {
1: required common.TSStatus status
}
struct TNotifyPeerToCreateConsensusPipeReq {
1: required common.TConsensusGroupId targetPeerConsensusGroupId
2: required common.TEndPoint targetPeerEndPoint
3: required i32 targetPeerNodeId
4: required common.TEndPoint coordinatorPeerEndPoint
5: required i32 coordinatorPeerNodeId
}
struct TNotifyPeerToCreateConsensusPipeResp {
1: required common.TSStatus status
}
struct TNotifyPeerToDropConsensusPipeReq {
1: required common.TConsensusGroupId targetPeerConsensusGroupId
2: required common.TEndPoint targetPeerEndPoint
3: required i32 targetPeerNodeId
}
struct TNotifyPeerToDropConsensusPipeResp {
1: required common.TSStatus status
}
struct TCheckConsensusPipeCompletedReq {
1: required common.TConsensusGroupId consensusGroupId
2: required list<string> consensusPipeNames;
3: required bool refreshCachedProgressIndex
}
struct TCheckConsensusPipeCompletedResp {
1: required common.TSStatus status
2: required bool isCompleted
}
struct TWaitReleaseAllRegionRelatedResourceReq {
1: required common.TConsensusGroupId consensusGroupId
}
struct TWaitReleaseAllRegionRelatedResourceResp {
1: required bool releaseAllResource
}
service PipeConsensusIService {
/**
* Transfer stream data in a given ConsensusGroup, used by PipeConsensus
**/
TPipeConsensusTransferResp pipeConsensusTransfer(TPipeConsensusTransferReq req)
/**
* Transfer batch data in a given ConsensusGroup, used by PipeConsensus
**/
TPipeConsensusBatchTransferResp pipeConsensusBatchTransfer(TPipeConsensusBatchTransferReq req)
TSetActiveResp setActive(TSetActiveReq req)
TNotifyPeerToCreateConsensusPipeResp notifyPeerToCreateConsensusPipe(TNotifyPeerToCreateConsensusPipeReq req)
TNotifyPeerToDropConsensusPipeResp notifyPeerToDropConsensusPipe(TNotifyPeerToDropConsensusPipeReq req)
TCheckConsensusPipeCompletedResp checkConsensusPipeCompleted(TCheckConsensusPipeCompletedReq req)
TWaitReleaseAllRegionRelatedResourceResp waitReleaseAllRegionRelatedResource(TWaitReleaseAllRegionRelatedResourceReq req)
}