This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new c21417526a2 [feature](merge-cloud) Add meta service proto definition 
(#29705)
c21417526a2 is described below

commit c21417526a2a375be4736c172c76cc4a3e94f41f
Author: walter <w41te...@gmail.com>
AuthorDate: Wed Jan 10 20:40:25 2024 +0800

    [feature](merge-cloud) Add meta service proto definition (#29705)
    
    Co-authored-by: Gavin Chou <gavineaglec...@gmail.com>
---
 gensrc/proto/cloud.proto                 | 1310 ++++++++++++++++++++++++++++++
 gensrc/proto/olap_file.proto             |   14 +
 gensrc/thrift/FrontendService.thrift     |   11 +
 gensrc/thrift/PaloInternalService.thrift |   17 +
 gensrc/thrift/PlanNodes.thrift           |    2 +
 gensrc/thrift/Status.thrift              |    3 +
 gensrc/thrift/Types.thrift               |    5 +-
 7 files changed, 1361 insertions(+), 1 deletion(-)

diff --git a/gensrc/proto/cloud.proto b/gensrc/proto/cloud.proto
new file mode 100644
index 00000000000..b3794e58128
--- /dev/null
+++ b/gensrc/proto/cloud.proto
@@ -0,0 +1,1310 @@
+// 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.
+
+syntax="proto2";
+
+package doris.cloud;
+option java_package = "org.apache.doris.cloud.proto";
+
+import "olap_file.proto";
+
+option cc_generic_services = true;
+
+//==============================================================================
+// Resources
+//==============================================================================
+
+message EncryptionInfoPB {
+    optional string encryption_method = 1;
+    optional int64 key_id = 2;
+}
+
+message EncryptionKeyInfoPB {
+    message KMSInfo {
+        optional string endpoint = 1;
+        optional string region = 2;
+        optional string cmk = 3;
+    }
+    message Item {
+        optional int64 key_id = 1;
+        optional string key = 2;
+        optional KMSInfo kms_info = 3;
+    }
+    repeated Item items = 1;
+}
+message RamUserPB {
+    optional string user_id = 1;
+    optional string ak = 2;
+    optional string sk = 3;
+    optional string external_id = 4;
+    optional EncryptionInfoPB encryption_info = 6;
+}
+
+message InstanceInfoPB {
+    enum Status {
+        NORMAL = 0;
+        DELETED = 1;
+        OVERDUE = 2;
+    }
+    optional string user_id = 1;
+    optional string instance_id = 2;
+    optional string name = 3;
+    repeated string lb_ip = 4;
+    optional int64 ctime = 5;
+    optional int64 mtime = 6;
+    repeated ClusterPB clusters = 7;
+    repeated ObjectStoreInfoPB obj_info = 8;
+    repeated StagePB stages = 9;
+    optional Status status = 10;
+    optional RamUserPB ram_user = 11;
+    optional RamUserPB iam_user = 12;
+    optional bool sse_enabled = 13;
+}
+
+message StagePB {
+    enum StageType {
+        INTERNAL = 0;
+        EXTERNAL = 1;
+    }
+    optional StageType type = 1;
+    // mysql user name and id only used for internal stage
+    repeated string mysql_user_name = 2;
+    // external stage name
+    optional string name = 3;
+    optional ObjectStoreInfoPB obj_info = 6;
+    optional string stage_id = 7;
+    // file and copy properties
+    map<string, string> properties = 8;
+    repeated string mysql_user_id = 9;
+    optional string comment = 10;
+    optional int64 create_time = 11;
+    enum StageAccessType {
+        UNKNOWN = 0;
+        AKSK = 1;
+        IAM = 2;
+        BUCKET_ACL = 3;
+    }
+    optional StageAccessType access_type = 12 [default = AKSK];
+    // used when access_type is IAM
+    // In OBS, role name is agency name, arn is domain name.
+    optional string role_name = 13;
+    optional string arn = 14;
+    // only used for aws
+    optional string external_id = 15;
+}
+
+enum ClusterStatus {
+    UNKNOWN = 0;
+    NORMAL = 1;
+    SUSPENDED = 2;
+    TO_RESUME = 3;
+}
+
+message ClusterPB {
+    enum Type {
+        SQL = 0;
+        COMPUTE = 1;
+    }
+    optional string cluster_id = 1;
+    optional string cluster_name = 2;
+    optional Type type = 3;
+    optional string desc = 4;
+    repeated NodeInfoPB nodes = 5;
+    repeated string mysql_user_name = 6;
+    optional string public_endpoint = 7;
+    optional string private_endpoint = 8;
+    optional ClusterStatus cluster_status = 9;
+}
+
+message NodeInfoPB {
+    enum NodeType {
+        UNKNOWN = 0;
+        FE_MASTER = 1;
+        FE_OBSERVER = 2;
+    }
+    optional string cloud_unique_id = 1;
+    optional string name = 2;
+    optional string ip = 3;
+    optional string vpc_name = 4;
+    optional int64 ctime = 5;
+    optional int64 mtime = 6;
+    optional NodeStatusPB status = 7;
+    // There may be other ports, just add new fields in need
+    optional int32 heartbeat_port = 8;
+    optional string desc = 9;
+    optional int32 edit_log_port = 10;
+    optional NodeType node_type = 11;
+    optional bool is_smooth_upgrade = 12;
+    // fqdn
+    optional string host = 13;
+}
+
+enum NodeStatusPB {
+    NODE_STATUS_UNKNOWN = 0;
+    NODE_STATUS_RUNNING = 1;
+    NODE_STATUS_SHUTDOWN = 2;
+    NODE_STATUS_DECOMMISSIONING = 3;
+    NODE_STATUS_DECOMMISSIONED = 4;
+}
+
+message ObjectStoreInfoPB {
+    // presigned url use
+    // oss,aws,cos,obs,bos
+    enum Provider {
+        OSS = 0;
+        S3 =  1;
+        COS = 2;
+        OBS = 3;
+        BOS = 4;
+    }
+    optional int64 ctime = 1;
+    optional int64 mtime = 2;
+    optional string id = 3;
+    optional string ak = 4;
+    optional string sk = 5;
+    optional string bucket = 6;
+    optional string prefix = 7;
+    optional string endpoint = 8;
+    optional string region = 9;
+    optional Provider provider = 10;
+    optional string external_endpoint = 11;
+    optional string user_id = 13;
+    optional EncryptionInfoPB encryption_info = 14;
+    optional bool sse_enabled = 15;
+}
+
+//==============================================================================
+// Transaction persistence
+//==============================================================================
+
+// Wire format for UniqueId
+message UniqueIdPB {
+  optional int64 hi = 1;
+  optional int64 lo = 2;
+}
+
+// ATTN: keep the values the same as
+//       org.apache.doris.transaction.TransactionState.TxnSourceType
+enum TxnSourceTypePB {
+    UKNOWN_TXN_SOURCE_TYPE = 0;
+    TXN_SOURCE_TYPE_FE     = 1;
+    TXN_SOURCE_TYPE_BE     = 2;
+}
+
+// ATTN: keep the same values as
+//       org.apache.doris.transaction.TransactionState.LoadJobSourceType
+enum LoadJobSourceTypePB {
+    LOAD_JOB_SRC_TYPE_UNKNOWN           = 0;
+    LOAD_JOB_SRC_TYPE_FRONTEND          = 1;
+    LOAD_JOB_SRC_TYPE_BACKEND_STREAMING = 2; // streaming load use this type
+    LOAD_JOB_SRC_TYPE_INSERT_STREAMING  = 3; // insert stmt (streaming type), 
update stmt use this type
+    LOAD_JOB_SRC_TYPE_ROUTINE_LOAD_TASK = 4; // routine load task use this type
+    LOAD_JOB_SRC_TYPE_BATCH_LOAD_JOB    = 5; // load job v2 for broker load
+}
+
+enum TxnStatusPB {
+    TXN_STATUS_UNKNOWN      = 0;
+    TXN_STATUS_PREPARED     = 1;
+    TXN_STATUS_COMMITTED    = 2;
+    TXN_STATUS_VISIBLE      = 3;
+    TXN_STATUS_ABORTED      = 4;
+    TXN_STATUS_PRECOMMITTED = 5;
+}
+
+message TxnCoordinatorPB {
+    optional TxnSourceTypePB sourceType = 1;
+    optional string ip = 2;
+}
+
+message RoutineLoadProgressPB {
+    map<int32, int64> partition_to_offset = 1;
+}
+
+message RLTaskTxnCommitAttachmentPB {
+    optional int64 job_id = 1;
+    optional UniqueIdPB task_id = 2;
+    optional int64 filtered_rows = 3;
+    optional int64 loaded_rows = 4;
+    optional int64 unselected_rows = 5;
+    optional int64 received_bytes = 6;
+    optional int64 task_execution_time_ms = 7;
+    optional RoutineLoadProgressPB progress = 8;
+    optional string error_log_url = 9;
+}
+
+message TxnCommitAttachmentPB {
+    enum Type {
+        LODD_JOB_FINAL_OPERATION = 0;
+        RT_TASK_TXN_COMMIT_ATTACHMENT = 1;
+    }
+    message LoadJobFinalOperationPB {
+        message EtlStatusPB {
+            enum EtlStatePB {
+                RUNNING = 0;
+                FINISHED = 1;
+                CANCELLED = 2;
+                UNKNOWN = 3;
+            }
+
+            optional EtlStatePB state = 1;
+            optional string tracking_url = 2;
+            map<string, string> stats = 3;
+            map<string, string> counters = 4;
+        }
+
+        enum JobStatePB {
+            UNKNOWN = 0;
+            PENDING = 1;
+            ETL = 2;
+            LOADING = 3;
+            COMMITTED = 4;
+            FINISHED = 5;
+            CANCELLED = 6;
+        }
+
+        message FailMsgPB {
+            enum CancelTypePB {
+                USER_CANCEL = 0;
+                ETL_SUBMIT_FAIL = 1;
+                ETL_RUN_FAIL = 2;
+                ETL_QUALITY_UNSATISFIED = 3;
+                LOAD_RUN_FAIL = 4;
+                TIMEOUT = 5;
+                UNKNOWN = 6;
+                TXN_UNKNOWN =7;
+            }
+            optional CancelTypePB cancel_type = 1;
+            optional string msg = 2;
+        }
+
+        optional int64 id = 1;
+        optional EtlStatusPB loading_status = 2;
+        optional int32 progress = 3;
+        optional int64 load_start_timestamp = 4;
+        optional int64 finish_timestamp = 5;
+        optional JobStatePB job_state = 6;
+        optional FailMsgPB fail_msg = 7;
+        optional string copy_id = 8;
+        optional string load_file_paths = 9;
+    }
+
+
+    optional Type type = 1;
+    optional LoadJobFinalOperationPB load_job_final_operation = 2;
+    optional RLTaskTxnCommitAttachmentPB rl_task_txn_commit_attachment = 3;
+}
+
+// For storing label -> txn_ids
+message TxnLabelPB {
+    repeated int64 txn_ids = 1;
+}
+
+// txn_id -> db_id
+message TxnIndexPB {
+    optional TabletIndexPB tablet_index = 1;
+}
+
+message TxnInfoPB {
+    optional int64 db_id = 1;
+    repeated int64 table_ids = 2;
+    optional int64 txn_id = 3;
+    optional string label = 4;
+    optional UniqueIdPB request_id = 5;
+    optional TxnCoordinatorPB coordinator = 6;
+    optional LoadJobSourceTypePB load_job_source_type = 7;
+    optional int64 timeout_ms = 8;
+    optional int64 precommit_timeout_ms = 9;
+    optional int64 prepare_time = 10;
+    optional int64 precommit_time = 11;
+    optional int64 commit_time = 12;
+    optional int64 finish_time = 13;
+    optional string reason = 14;
+    optional TxnStatusPB status = 15;
+    optional TxnCommitAttachmentPB commit_attachment = 16;
+    optional int64 listener_id = 17; //callback id
+    // TODO: There are more fields TBD
+}
+
+// For check txn conflict and txn timeout
+message TxnRunningPB {
+    repeated int64 table_ids = 1;
+    //milliseconds
+    optional int64 timeout_time = 2;
+}
+
+message VersionPB {
+    optional int64 version = 1;
+}
+
+message RecycleTxnPB {
+    optional int64 creation_time = 1;
+    optional string label = 2;
+    optional bool immediate = 3; //recycle immediately
+}
+
+message RecycleIndexPB {
+    enum State {
+        UNKNOWN = 0;
+        PREPARED = 1;
+        DROPPED = 2;
+        RECYCLING = 3;
+    }
+    optional int64 table_id = 1;
+    optional int64 creation_time = 2;
+    optional int64 expiration = 3; // expiration timestamp
+    optional State state = 4;
+}
+
+message RecyclePartitionPB {
+    enum State {
+        UNKNOWN = 0;
+        PREPARED = 1;
+        DROPPED = 2;
+        RECYCLING = 3;
+    }
+    optional int64 table_id = 1;
+    repeated int64 index_id = 2;
+    optional int64 creation_time = 3;
+    optional int64 expiration = 4; // expiration timestamp
+    optional State state = 5;
+    optional int64 db_id = 6; // For version recycling
+}
+
+message RecycleRowsetPB {
+    enum Type {
+        UNKNOWN = 0;
+        PREPARE = 1;
+        COMPACT = 2;
+        DROP = 3;
+    }
+    optional int64 tablet_id = 1; // deprecated
+    optional string resource_id = 2; // deprecated
+    optional int64 creation_time = 3;
+    optional int64 expiration = 4; // expiration timestamp
+    optional Type type = 5;
+    optional doris.RowsetMetaPB rowset_meta = 6;
+}
+
+message RecycleStagePB {
+    optional string instance_id = 1;
+    optional string reason = 2;
+    optional StagePB stage = 3;
+}
+
+message JobRecyclePB {
+    enum Status {
+        IDLE = 0;
+        BUSY = 1;
+    }
+    optional string instance_id = 1;
+    optional string ip_port = 2;
+    optional int64 last_ctime_ms = 3;
+    optional int64 expiration_time_ms = 4;
+    optional int64 last_finish_time_ms = 5;
+    optional Status status = 6;
+    optional int64 last_success_time_ms = 7;
+}
+
+message TabletIndexPB {
+    optional int64 db_id = 1;
+    optional int64 table_id = 2;
+    optional int64 index_id = 3;
+    optional int64 partition_id = 4;
+    optional int64 tablet_id = 5;
+}
+
+message TabletMetaInfoPB { // For update tablet meta
+    optional int64 tablet_id = 1;
+    optional bool is_in_memory = 2; // deprecated
+    optional bool is_persistent = 3; // deprecated
+    optional int64 ttl_seconds = 4;
+}
+
+message TabletCompactionJobPB {
+    enum CompactionType {
+        UNKOWN = 0;
+        BASE = 1;
+        CUMULATIVE = 2;
+        EMPTY_CUMULATIVE = 3; // just update cumulative point
+        FULL = 4;
+    }
+    // IP and port of the node which initiates this job
+    optional string initiator = 1; // prepare
+    optional int64 ctime = 2;
+    optional int64 mtime = 3;
+    optional CompactionType type = 4; // prepare
+    optional int64 input_cumulative_point = 5;
+    optional int64 output_cumulative_point = 6;
+    optional int64 num_input_rowsets = 7;
+    optional int64 num_input_segments = 8;
+    optional int64 num_output_rowsets = 9;
+    optional int64 num_output_segments = 10;
+    optional int64 size_input_rowsets = 11;
+    optional int64 size_output_rowsets = 12;
+    optional int64 num_input_rows = 13;
+    optional int64 num_output_rows = 14;
+    repeated int64 input_versions = 15;
+    repeated int64 output_versions = 16;
+    repeated string output_rowset_ids = 17;
+    repeated int64 txn_id = 18;
+    optional int64 base_compaction_cnt = 19;        // prepare
+    optional int64 cumulative_compaction_cnt = 20;  // prepare
+    optional string id = 21; // prepare
+    // Expiration time, unix timestamp, -1 for no expiration
+    optional int64 expiration = 22; // prepare
+    // Lease time, unix timestamp
+    optional int64 lease = 23; // prepare
+    optional int64 delete_bitmap_lock_initiator = 24;
+    optional int64 full_compaction_cnt = 25;  // prepare
+}
+
+message TabletSchemaChangeJobPB {
+    // IP and port of the node which initiates this job
+    optional string initiator = 1; // prepare
+    optional string id = 2; // prepare
+    // Expiration time, unix timestamp, -1 for no expiration
+    optional int64 expiration = 3; // prepare
+    optional TabletIndexPB new_tablet_idx = 4; // prepare
+    repeated int64 txn_ids = 5;
+    optional int64 alter_version = 6;
+    optional int64 num_output_rowsets = 7;
+    optional int64 num_output_segments = 8;
+    optional int64 size_output_rowsets = 9;
+    optional int64 num_output_rows = 10;
+    repeated int64 output_versions = 11;
+    optional int64 output_cumulative_point = 12;
+    optional bool is_inverted_index_change = 13 [default = false];
+    optional int64 delete_bitmap_lock_initiator = 14;
+}
+
+message TabletJobInfoPB {
+    optional TabletIndexPB idx = 1;
+    repeated TabletCompactionJobPB compaction = 4;
+    optional TabletSchemaChangeJobPB schema_change = 5;
+}
+
+//==============================================================================
+// Stats
+//==============================================================================
+message TabletStatsPB {
+    optional TabletIndexPB idx = 1;
+    optional int64 data_size = 2;
+    optional int64 num_rows = 3;
+    optional int64 num_rowsets = 4;
+    optional int64 num_segments = 5;
+    reserved 6;
+    optional int64 base_compaction_cnt = 7;
+    optional int64 cumulative_compaction_cnt = 8;
+    optional int64 cumulative_point = 9;
+    optional int64 last_base_compaction_time_ms = 10;
+    optional int64 last_cumu_compaction_time_ms = 11;
+    optional int64 full_compaction_cnt = 12;
+    optional int64 last_full_compaction_time_ms = 13;
+}
+
+message ObjectFilePB {
+    optional string relative_path = 1;
+    optional string etag = 2;
+    optional int64 size = 3;
+}
+
+message CopyJobPB {
+    enum JobStatus {
+        UNKNOWN = 0;
+        LOADING = 1;
+        FINISH  = 2;
+    }
+    optional StagePB.StageType stage_type = 1;
+    repeated ObjectFilePB object_files = 2;
+    optional JobStatus job_status = 3;
+    optional int64 start_time_ms = 4;
+    optional int64 timeout_time_ms = 5;
+    optional int64 finish_time_ms = 6;
+}
+
+message CopyFilePB {
+    optional string copy_id = 1;
+    optional int32 group_id = 2;
+}
+
+message ServiceRegistryPB {
+    message Item {
+        optional string id = 1;
+        optional string ip = 2;
+        optional int32 port = 3;
+        optional int64 ctime_ms = 4;
+        optional int64 mtime_ms = 5;
+        optional int64 expiration_time_ms = 6;
+
+        // Support FQDN
+        optional string host = 7;
+    }
+    repeated Item items = 1;
+}
+
+//==============================================================================
+// Rpc structures
+//==============================================================================
+
+message BeginTxnRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional TxnInfoPB txn_info = 2;
+}
+
+message BeginTxnResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional int64 txn_id = 2;
+    optional int64 dup_txn_id = 3;
+    // TODO: There may be more fields TBD
+}
+
+message PrecommitTxnRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    optional int64 txn_id = 3;
+    optional TxnCommitAttachmentPB commit_attachment = 4;
+    optional int64 precommit_timeout_ms = 5;
+}
+
+message PrecommitTxnResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional int64 txn_id = 2;
+    // TODO: There may be more fields TBD
+}
+
+message CommitTxnRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    optional int64 txn_id = 3;
+    optional bool is_2pc = 4;
+    optional TxnCommitAttachmentPB commit_attachment = 5;
+    // merge-on-write table ids
+    repeated int64 mow_table_ids = 6;
+}
+
+message CommitTxnResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional TxnInfoPB txn_info = 2;
+    // <tablet_id, partition_id> --> version
+    repeated int64 table_ids = 3;
+    repeated int64 partition_ids = 4;
+    repeated int64 versions = 5;
+}
+
+message AbortTxnRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    optional int64 txn_id = 3;
+    optional string label = 4;
+    optional string reason = 5;
+    optional TxnCommitAttachmentPB commit_attachment = 6;
+}
+
+message AbortTxnResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional TxnInfoPB txn_info = 2;
+}
+
+message GetTxnRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    optional int64 txn_id = 3;
+}
+
+message GetTxnResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional TxnInfoPB txn_info = 2;
+}
+
+message GetCurrentMaxTxnRequest {
+    optional string cloud_unique_id = 1; // For auth
+}
+
+message GetCurrentMaxTxnResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional int64 current_max_txn_id = 2;
+}
+
+message CheckTxnConflictRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    optional int64 end_txn_id = 3;
+    repeated int64 table_ids = 4;
+    optional bool ignore_timeout_txn = 5;
+}
+
+message CheckTxnConflictResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional bool finished = 2;
+}
+
+message CleanTxnLabelRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    repeated string labels = 3;
+}
+
+message CleanTxnLabelResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetVersionRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 db_id = 2;
+    optional int64 table_id = 3;
+    optional int64 partition_id = 4;
+
+    // For batch get version.
+    optional bool batch_mode = 5;
+    repeated int64 db_ids = 6;
+    repeated int64 table_ids = 7;
+    repeated int64 partition_ids = 8;
+};
+
+message GetVersionResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional int64 version = 2;
+
+    // For batch get version.
+    // <db_id, table_id, partition_id> --> version
+    repeated int64 db_ids = 3;
+    repeated int64 table_ids = 4;
+    repeated int64 partition_ids = 5;
+    repeated int64 versions = 6;
+};
+
+message GetObjStoreInfoRequest {
+    optional string cloud_unique_id = 1; // For auth
+};
+
+message AlterObjStoreInfoRequest {
+    enum Operation {
+        UNKNOWN         = 0;
+        UPDATE_AK_SK    = 1;
+        ADD_OBJ_INFO    = 2;
+        LEGACY_UPDATE_AK_SK = 3;
+    }
+    optional string cloud_unique_id = 1; // For auth
+    optional ObjectStoreInfoPB obj = 2;
+    optional Operation op = 3;
+}
+
+message AlterObjStoreInfoResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message UpdateAkSkRequest {
+    optional string instance_id = 1;
+    repeated RamUserPB internal_bucket_user = 2;
+    optional RamUserPB ram_user = 3;
+}
+
+message UpdateAkSkResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetObjStoreInfoResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated ObjectStoreInfoPB obj_info = 2;
+};
+
+message CreateTabletsRequest {
+    optional string cloud_unique_id = 1; // For auth
+    repeated doris.TabletMetaPB tablet_metas = 2;
+}
+
+message CreateTabletsResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message UpdateTabletRequest {
+    optional string cloud_unique_id = 1; // For auth
+    repeated TabletMetaInfoPB tablet_meta_infos = 2;
+}
+
+message UpdateTabletResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message UpdateTabletSchemaRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 tablet_id = 2;
+    optional doris.TabletSchemaPB tablet_schema = 3;
+}
+
+message UpdateTabletSchemaResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message DropTabletRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 tablet_id = 2;
+    // TODO: There are more fields TBD
+}
+
+message GetTabletRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 tablet_id = 2;
+    // TODO: There are more fields TBD
+}
+
+message GetTabletResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional doris.TabletMetaPB tablet_meta = 2;
+}
+
+message CreateRowsetRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional doris.RowsetMetaPB rowset_meta = 2;
+    optional bool temporary = 3;
+}
+
+message CreateRowsetResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional doris.RowsetMetaPB existed_rowset_meta = 2;
+}
+
+message GetRowsetRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional TabletIndexPB idx = 2;
+    optional int64 start_version = 3;
+    optional int64 end_version = 4;
+    optional int64 base_compaction_cnt = 5;
+    optional int64 cumulative_compaction_cnt = 6;
+    optional int64 cumulative_point = 7;
+    // TODO: There may be more fields TBD
+}
+
+message GetRowsetResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated doris.RowsetMetaPB rowset_meta = 2;
+    optional TabletStatsPB stats = 3;
+}
+
+message IndexRequest {
+    optional string cloud_unique_id = 1; // For auth
+    repeated int64 index_ids = 2;
+    optional int64 table_id = 3;
+    optional int64 expiration = 4;
+}
+
+message IndexResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message PartitionRequest {
+    optional string cloud_unique_id = 1; // For auth
+    repeated int64 partition_ids = 2;
+    optional int64 table_id = 3;
+    repeated int64 index_ids = 4;
+    optional int64 expiration = 5;
+    optional int64 db_id = 6;
+}
+
+message PartitionResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message MetaServiceResponseStatus {
+    optional MetaServiceCode code = 1;
+    optional string msg = 2;
+}
+
+message MetaServiceHttpRequest {
+}
+
+message MetaServiceHttpResponse {
+}
+
+message CreateInstanceRequest {
+    optional string instance_id = 1;
+    optional string user_id = 2;
+    optional string name = 3; // Alias
+    optional ObjectStoreInfoPB obj_info = 4;
+    optional RamUserPB ram_user = 5;
+    optional bool sse_enabled = 6;
+}
+
+message CreateInstanceResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message AlterInstanceRequest {
+    enum Operation {
+        UNKNOWN        = 0;
+        DROP           = 1;
+        REFRESH        = 2;
+        RENAME         = 3;
+        ENABLE_SSE     = 4;
+        DISABLE_SSE    = 5;
+        SET_OVERDUE    = 6;
+        SET_NORMAL     = 7;
+    }
+    optional string instance_id = 1;
+    optional Operation op = 2;
+    optional string name = 3;
+}
+
+message AlterInstanceResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetInstanceRequest {
+    optional string instance_id = 1;
+    optional string cloud_unique_id = 2;
+}
+
+message GetInstanceResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional InstanceInfoPB instance = 2;
+}
+
+message AlterClusterRequest {
+    enum Operation {
+        UNKNOWN        = 0;
+        ADD_CLUSTER    = 1;
+        DROP_CLUSTER   = 2;
+        ADD_NODE       = 3;
+        DROP_NODE      = 4;
+        RENAME_CLUSTER = 5;
+        UPDATE_CLUSTER_MYSQL_USER_NAME = 6; // just for update cluster's 
mysql_user_name
+        DECOMMISSION_NODE = 7;
+        NOTIFY_DECOMMISSIONED = 8;
+        UPDATE_CLUSTER_ENDPOINT = 9;
+        SET_CLUSTER_STATUS = 10;
+    }
+    optional string instance_id = 1;
+    optional string cloud_unique_id = 2; // For auth
+    optional ClusterPB cluster = 3;
+    optional Operation op = 4;
+}
+
+message AlterClusterResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetClusterRequest {
+    optional string instance_id = 1; // Redundant field
+    optional string cloud_unique_id = 2;
+    optional string cluster_id = 3;
+    optional string cluster_name = 4;
+    optional string mysql_user_name = 5;
+}
+
+message GetClusterStatusRequest {
+    repeated string instance_ids = 1; // Redundant field
+    repeated string cloud_unique_ids = 2;
+    optional ClusterStatus status = 3;
+}
+
+message GetClusterStatusResponse {
+    message GetClusterStatusResponseDetail {
+        optional string instance_id = 1;
+        repeated ClusterPB clusters = 2;
+    }
+    optional MetaServiceResponseStatus status = 1;
+    repeated GetClusterStatusResponseDetail details = 2;
+}
+
+message GetClusterResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated ClusterPB cluster = 2;
+}
+
+message GetTabletStatsRequest {
+    optional string cloud_unique_id = 1;
+    repeated TabletIndexPB tablet_idx = 2;
+}
+
+message GetTabletStatsResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated TabletStatsPB tablet_stats = 2;
+}
+
+message CreateStageRequest {
+    optional string cloud_unique_id = 1;
+    optional StagePB stage = 2;
+}
+
+message CreateStageResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetStageRequest {
+    optional string cloud_unique_id = 1;
+    optional string stage_name = 2;
+    optional string mysql_user_name = 3;
+    optional StagePB.StageType type = 4;
+    optional string mysql_user_id = 5;
+}
+
+message GetStageResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated StagePB stage = 2;
+}
+
+message DropStageRequest {
+    optional string cloud_unique_id = 1;
+    optional string stage_name = 2;
+    optional string mysql_user_name = 3;
+    optional StagePB.StageType type = 4;
+    optional string mysql_user_id = 5;
+    optional string reason = 6;
+}
+
+message DropStageResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetIamRequest {
+    optional string cloud_unique_id = 1;
+}
+
+message GetIamResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional RamUserPB iam_user = 2;
+    optional RamUserPB ram_user = 3;
+}
+
+message AlterIamRequest {
+    optional string account_id = 1;
+    optional string ak = 2;
+    optional string sk = 3;
+}
+
+message AlterIamResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message AlterRamUserRequest {
+    optional string instance_id = 1;
+    optional RamUserPB ram_user = 2;
+}
+
+message AlterRamUserResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message StartTabletJobRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional TabletJobInfoPB job = 2;
+}
+
+message StartTabletJobResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated int64 version_in_compaction = 2;
+}
+
+message FinishTabletJobRequest {
+    enum Action {
+        UNKONWN = 0;
+        COMMIT  = 1;
+        ABORT   = 2;
+        LEASE   = 3;
+    }
+    optional string cloud_unique_id = 1; // For auth
+    optional Action action = 2;
+    optional TabletJobInfoPB job = 3;
+}
+
+message FinishTabletJobResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional TabletStatsPB stats = 2;
+}
+
+message BeginCopyRequest {
+    optional string cloud_unique_id = 1;
+    optional string stage_id = 2;
+    optional StagePB.StageType stage_type = 3;
+    optional int64 table_id = 4;
+    optional string copy_id = 5;
+    optional int32 group_id = 6;
+    optional int64 start_time_ms = 7;
+    optional int64 timeout_time_ms = 8;
+    repeated ObjectFilePB object_files = 9;
+    optional int64 file_num_limit = 10;
+    optional int64 file_size_limit = 11;
+    optional int64 file_meta_size_limit = 12;
+}
+
+message BeginCopyResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated ObjectFilePB filtered_object_files = 2;
+}
+
+message FinishCopyRequest {
+    enum Action {
+        UNKNOWN = 0;
+        COMMIT  = 1;
+        ABORT   = 2;
+        REMOVE  = 3;
+    }
+    optional string cloud_unique_id = 1;
+    optional string stage_id = 2;
+    optional StagePB.StageType stage_type = 3;
+    optional int64 table_id = 4;
+    optional string copy_id = 5;
+    optional int32 group_id = 6;
+    optional Action action = 7;
+    optional int64 finish_time_ms = 8;
+}
+
+message FinishCopyResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetCopyJobRequest {
+    optional string cloud_unique_id = 1;
+    optional string stage_id = 2;
+    optional int64 table_id = 3;
+    optional string copy_id = 4;
+    optional int32 group_id = 5;
+}
+
+message GetCopyJobResponse {
+    optional MetaServiceResponseStatus status = 1;
+    optional CopyJobPB copy_job = 2;
+}
+
+message GetCopyFilesRequest {
+    optional string cloud_unique_id = 1;
+    optional string stage_id = 2;
+    optional int64 table_id = 3;
+}
+
+message GetCopyFilesResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated ObjectFilePB object_files = 2;
+}
+
+message FilterCopyFilesRequest {
+    optional string cloud_unique_id = 1;
+    optional string stage_id = 2;
+    optional int64 table_id = 3;
+    repeated ObjectFilePB object_files = 4;
+}
+
+message FilterCopyFilesResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated ObjectFilePB object_files = 2;
+}
+
+message RecycleInstanceRequest {
+    repeated string instance_ids = 1;
+}
+
+message RecycleInstanceResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+enum MetaServiceCode {
+    OK = 0;
+
+    //Meta service internal error
+    INVALID_ARGUMENT = 1001;
+    KV_TXN_CREATE_ERR = 1002;
+    KV_TXN_GET_ERR = 1003;
+    KV_TXN_COMMIT_ERR = 1004;
+    KV_TXN_CONFLICT = 1005;
+    PROTOBUF_PARSE_ERR = 1006;
+    PROTOBUF_SERIALIZE_ERR = 1007;
+    // A code indicates that the underlying store returns an error that
+    // needs to be retried. This code is not sent back to the client.
+    // See `selectdb::MetaServiceProxy` for details.
+    KV_TXN_STORE_GET_RETRYABLE = 1008;
+    KV_TXN_STORE_COMMIT_RETRYABLE = 1009;
+    KV_TXN_STORE_CREATE_RETRYABLE = 1010;
+
+    //Doris error
+    TXN_GEN_ID_ERR = 2001;
+    TXN_DUPLICATED_REQ = 2002;
+    TXN_LABEL_ALREADY_USED = 2003;
+    TXN_INVALID_STATUS = 2004;
+    TXN_LABEL_NOT_FOUND = 2005;
+    TXN_ID_NOT_FOUND = 2006;
+    TXN_ALREADY_ABORTED = 2007;
+    TXN_ALREADY_VISIBLE = 2008;
+    TXN_ALREADY_PRECOMMITED = 2009;
+    VERSION_NOT_FOUND = 2010;
+    TABLET_NOT_FOUND = 2011;
+    STALE_TABLET_CACHE = 2012;
+
+    CLUSTER_NOT_FOUND = 3001;
+    ALREADY_EXISTED = 3002;
+    CLUSTER_ENDPOINT_MISSING = 3003;
+
+    // Stage
+    STAGE_NOT_FOUND = 4001;
+    STAGE_GET_ERR = 4002;
+    STATE_ALREADY_EXISTED_FOR_USER = 4003;
+    COPY_JOB_NOT_FOUND = 4004;
+
+    // Job
+    JOB_EXPIRED = 5000;
+    JOB_TABLET_BUSY = 5001;
+    JOB_ALREADY_SUCCESS = 5002;
+    ROUTINE_LOAD_DATA_INCONSISTENT = 5003;
+
+    // Rate limit
+    MAX_QPS_LIMIT = 6001;
+
+    ERR_ENCRYPT = 7001;
+    ERR_DECPYPT = 7002;
+
+    // delete bitmap 
+    LOCK_EXPIRED = 8001;
+    LOCK_CONFLICT = 8002;
+    ROWSETS_EXPIRED = 8003;
+
+    // partial update
+    ROWSET_META_NOT_FOUND = 9001;
+
+    UNDEFINED_ERR = 1000000;
+}
+
+message UpdateDeleteBitmapRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 table_id = 2;
+    optional int64 partition_id = 3;
+    optional int64 tablet_id = 4;
+    optional int64 lock_id = 5;
+    optional int64 initiator = 6;
+    repeated string rowset_ids = 7;
+    repeated uint32 segment_ids = 8;
+    repeated int64 versions = 9;
+    // Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
+    repeated bytes segment_delete_bitmaps = 10;
+}
+
+message UpdateDeleteBitmapResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+message GetDeleteBitmapRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 tablet_id = 2;
+    repeated string rowset_ids = 3;
+    repeated int64 begin_versions = 4;
+    repeated int64 end_versions = 5;
+    optional TabletIndexPB idx = 6;
+    optional int64 base_compaction_cnt = 7;
+    optional int64 cumulative_compaction_cnt = 8;
+    optional int64 cumulative_point = 9;
+}
+
+message GetDeleteBitmapResponse {
+    optional MetaServiceResponseStatus status = 1;
+    repeated string rowset_ids = 2;
+    repeated uint32 segment_ids = 3;
+    repeated int64 versions = 4;
+    // Serialized roaring bitmaps indexed with {rowset_id, segment_id, version}
+    repeated bytes segment_delete_bitmaps = 5;
+}
+
+message PendingDeleteBitmapPB {
+    repeated bytes delete_bitmap_keys = 1;
+}
+
+message DeleteBitmapUpdateLockPB {
+    optional int64 lock_id = 1;
+    optional int64 expiration = 2;
+    repeated int64 initiators = 3;
+}
+
+message GetDeleteBitmapUpdateLockRequest {
+    optional string cloud_unique_id = 1; // For auth
+    optional int64 table_id = 2;
+    repeated int64 partition_ids = 3;
+    optional int64 lock_id = 4;
+    optional int64 initiator = 5;
+    optional int64 expiration = 6;
+}
+
+message GetDeleteBitmapUpdateLockResponse {
+    optional MetaServiceResponseStatus status = 1;
+}
+
+service MetaService {
+    rpc begin_txn(BeginTxnRequest) returns (BeginTxnResponse);
+    rpc precommit_txn(PrecommitTxnRequest) returns (PrecommitTxnResponse);
+    rpc commit_txn(CommitTxnRequest) returns (CommitTxnResponse);
+    rpc abort_txn(AbortTxnRequest) returns (AbortTxnResponse);
+    rpc get_txn(GetTxnRequest) returns (GetTxnResponse);
+    rpc get_current_max_txn_id(GetCurrentMaxTxnRequest) returns 
(GetCurrentMaxTxnResponse);
+    rpc check_txn_conflict(CheckTxnConflictRequest) returns 
(CheckTxnConflictResponse);
+    rpc clean_txn_label(CleanTxnLabelRequest) returns (CleanTxnLabelResponse);
+
+    rpc get_version(GetVersionRequest) returns (GetVersionResponse);
+    rpc create_tablets(CreateTabletsRequest) returns (CreateTabletsResponse);
+    rpc update_tablet(UpdateTabletRequest) returns (UpdateTabletResponse);
+    rpc update_tablet_schema(UpdateTabletSchemaRequest) returns 
(UpdateTabletSchemaResponse);
+
+    rpc get_tablet(GetTabletRequest) returns (GetTabletResponse);
+    rpc prepare_rowset(CreateRowsetRequest) returns (CreateRowsetResponse);
+    rpc commit_rowset(CreateRowsetRequest) returns (CreateRowsetResponse);
+    rpc update_tmp_rowset(CreateRowsetRequest) returns (CreateRowsetResponse);
+    rpc get_rowset(GetRowsetRequest) returns (GetRowsetResponse);
+    rpc prepare_index(IndexRequest) returns (IndexResponse);
+    rpc commit_index(IndexRequest) returns (IndexResponse);
+    rpc drop_index(IndexRequest) returns (IndexResponse);
+    rpc prepare_partition(PartitionRequest) returns (PartitionResponse);
+    rpc commit_partition(PartitionRequest) returns (PartitionResponse);
+    rpc drop_partition(PartitionRequest) returns (PartitionResponse);
+
+    rpc start_tablet_job(StartTabletJobRequest) returns 
(StartTabletJobResponse);
+    rpc finish_tablet_job(FinishTabletJobRequest) returns 
(FinishTabletJobResponse);
+
+    rpc http(MetaServiceHttpRequest) returns (MetaServiceHttpResponse);
+
+    rpc get_obj_store_info(GetObjStoreInfoRequest) returns 
(GetObjStoreInfoResponse);
+    rpc alter_obj_store_info(AlterObjStoreInfoRequest) returns 
(AlterObjStoreInfoResponse);
+    rpc update_ak_sk(UpdateAkSkRequest) returns (UpdateAkSkResponse);
+    rpc create_instance(CreateInstanceRequest) returns 
(CreateInstanceResponse);
+    rpc alter_instance(AlterInstanceRequest) returns (AlterInstanceResponse);
+    rpc get_instance(GetInstanceRequest) returns (GetInstanceResponse);
+    rpc alter_cluster(AlterClusterRequest) returns (AlterClusterResponse);
+    rpc get_cluster(GetClusterRequest) returns (GetClusterResponse);
+    rpc get_cluster_status(GetClusterStatusRequest) 
returns(GetClusterStatusResponse);
+    
+    rpc get_tablet_stats(GetTabletStatsRequest) returns 
(GetTabletStatsResponse);
+
+    // stage
+    rpc create_stage(CreateStageRequest) returns (CreateStageResponse);
+    rpc get_stage(GetStageRequest) returns (GetStageResponse);
+    rpc drop_stage(DropStageRequest) returns (DropStageResponse);
+    rpc get_iam(GetIamRequest) returns (GetIamResponse);
+    rpc alter_iam(AlterIamRequest) returns (AlterIamResponse);
+    rpc alter_ram_user(AlterRamUserRequest) returns (AlterRamUserResponse);
+    // copy into
+    rpc begin_copy(BeginCopyRequest) returns (BeginCopyResponse);
+    rpc finish_copy(FinishCopyRequest) returns (FinishCopyResponse);
+    rpc get_copy_job(GetCopyJobRequest) returns (GetCopyJobResponse);
+    rpc get_copy_files(GetCopyFilesRequest) returns (GetCopyFilesResponse);
+    rpc filter_copy_files(FilterCopyFilesRequest) returns 
(FilterCopyFilesResponse);
+
+    // delete bitmap
+    rpc update_delete_bitmap(UpdateDeleteBitmapRequest) 
returns(UpdateDeleteBitmapResponse);
+    rpc get_delete_bitmap(GetDeleteBitmapRequest) 
returns(GetDeleteBitmapResponse);
+    rpc get_delete_bitmap_update_lock(GetDeleteBitmapUpdateLockRequest) 
returns(GetDeleteBitmapUpdateLockResponse);
+};
+
+service RecyclerService {
+    rpc recycle_instance(RecycleInstanceRequest) returns 
(RecycleInstanceResponse);
+    rpc http(MetaServiceHttpRequest) returns (MetaServiceHttpResponse);
+};
+
+// vim: et ts=4 sw=4:
diff --git a/gensrc/proto/olap_file.proto b/gensrc/proto/olap_file.proto
index 2bf8470719c..ecbaa298cbf 100644
--- a/gensrc/proto/olap_file.proto
+++ b/gensrc/proto/olap_file.proto
@@ -44,6 +44,8 @@ enum RowsetStatePB {
     COMMITTED = 1;
     // Rowset is already visible to the user
     VISIBLE = 2;
+    // Rowset is partial updated, the recycler should use list+delete to 
recycle segments.
+    BEGIN_PARTIAL_UPDATE = 10000;
 }
 
 // indicate whether date between segments of a rowset is overlappinng
@@ -109,10 +111,22 @@ message RowsetMetaPB {
     repeated KeyBoundsPB segments_key_bounds = 27;
     // tablet meta pb, for compaction
     optional TabletSchemaPB tablet_schema = 28;
+    // for data recycling in CLOUD_MODE
+    optional int64 txn_expiration = 29;
     // alpha_rowset_extra_meta_pb is deleted
     reserved 50;
     // to indicate whether the data between the segments overlap
     optional SegmentsOverlapPB segments_overlap_pb = 51 [default = 
OVERLAP_UNKNOWN];
+
+    // For cloud
+    // the field is a vector, rename it
+    repeated int64 segments_file_size = 100;
+    // index_id, schema_version -> schema
+    optional int64 index_id = 101;
+    optional int32 schema_version = 102;
+    // If enable_segments_file_size is false,
+    // the segments_file_size maybe is empty or error
+    optional bool enable_segments_file_size = 103;
 }
 
 message SegmentStatisticsPB {
diff --git a/gensrc/thrift/FrontendService.thrift 
b/gensrc/thrift/FrontendService.thrift
index 75e67722113..24450e4d908 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -475,6 +475,10 @@ struct TReportExecStatusParams {
 struct TFeResult {
     1: required FrontendServiceVersion protocolVersion
     2: required Status.TStatus status
+
+    // For cloud
+    1000: optional string cloud_cluster
+    1001: optional bool noAuth
 }
 
 struct TMasterOpRequest {
@@ -554,6 +558,8 @@ struct TLoadTxnBeginRequest {
     10: optional i64 timeout
     11: optional Types.TUniqueId request_id
     12: optional string token
+    13: optional string auth_code_uuid
+    14: optional i64 table_id
 }
 
 struct TLoadTxnBeginResult {
@@ -657,6 +663,9 @@ struct TStreamLoadPutRequest {
     54: optional bool group_commit // deprecated
     55: optional i32 stream_per_node;
     56: optional string group_commit_mode
+
+    // For cloud
+    1000: optional string cloud_cluster
 }
 
 struct TStreamLoadPutResult {
@@ -730,6 +739,7 @@ struct TLoadTxnCommitRequest {
     14: optional i64 db_id
     15: optional list<string> tbls
     16: optional i64 table_id
+    17: optional string auth_code_uuid
 }
 
 struct TLoadTxnCommitResult {
@@ -807,6 +817,7 @@ struct TLoadTxnRollbackRequest {
     11: optional string token
     12: optional i64 db_id
     13: optional list<string> tbls
+    14: optional string auth_code_uuid
 }
 
 struct TLoadTxnRollbackResult {
diff --git a/gensrc/thrift/PaloInternalService.thrift 
b/gensrc/thrift/PaloInternalService.thrift
index 8700a50790f..818643f6ba6 100644
--- a/gensrc/thrift/PaloInternalService.thrift
+++ b/gensrc/thrift/PaloInternalService.thrift
@@ -269,6 +269,9 @@ struct TQueryOptions {
   96: optional i32 parallel_scan_max_scanners_count = 0;
 
   97: optional i64 parallel_scan_min_rows_per_scanner = 0;
+
+  // For cloud, to control if the content would be written into file cache
+  1000: optional bool disable_file_cache = false
 }
 
 
@@ -479,6 +482,9 @@ struct TExecPlanFragmentParams {
   28: optional i32 num_local_sink
 
   29: optional i64 content_length
+
+  // For cloud
+  1000: optional bool is_mow_table;
 }
 
 struct TExecPlanFragmentParamsList {
@@ -627,6 +633,14 @@ struct TFetchDataResult {
     4: optional Status.TStatus status
 }
 
+// For cloud
+enum TCompoundType {
+    UNKNOWN = 0,
+    AND = 1,
+    OR = 2,
+    NOT = 3,
+}
+
 struct TCondition {
     1:  required string column_name
     2:  required string condition_op
@@ -701,6 +715,9 @@ struct TPipelineFragmentParams {
   35: optional map<i32, i32> bucket_seq_to_instance_idx
   36: optional map<Types.TPlanNodeId, bool> per_node_shared_scans
   37: optional i32 parallel_instances
+
+  // For cloud
+  1000: optional bool is_mow_table;
 }
 
 struct TPipelineFragmentParamsList {
diff --git a/gensrc/thrift/PlanNodes.thrift b/gensrc/thrift/PlanNodes.thrift
index 2f45f355b1e..dc2cba44c52 100644
--- a/gensrc/thrift/PlanNodes.thrift
+++ b/gensrc/thrift/PlanNodes.thrift
@@ -279,6 +279,8 @@ struct TFileAttributes {
     10: optional bool trim_double_quotes;
     // csv skip line num, only used when csv header_type is not set.
     11: optional i32 skip_lines;
+    // for cloud copy into
+    1001: optional bool ignore_csv_redundant_col;
 }
 
 struct TIcebergDeleteFileDesc {
diff --git a/gensrc/thrift/Status.thrift b/gensrc/thrift/Status.thrift
index 06083b9a93c..039fd8abe1b 100644
--- a/gensrc/thrift/Status.thrift
+++ b/gensrc/thrift/Status.thrift
@@ -101,6 +101,9 @@ enum TStatusCode {
     TABLET_MISSING = 72,
 
     NOT_MASTER = 73,
+
+    // used for cloud
+    DELETE_BITMAP_LOCK_ERROR = 100,
 }
 
 struct TStatus {
diff --git a/gensrc/thrift/Types.thrift b/gensrc/thrift/Types.thrift
index df9bac013a9..5ca7328a728 100644
--- a/gensrc/thrift/Types.thrift
+++ b/gensrc/thrift/Types.thrift
@@ -222,7 +222,10 @@ enum TTaskType {
     PUSH_COOLDOWN_CONF,
     PUSH_STORAGE_POLICY,
     ALTER_INVERTED_INDEX,
-    GC_BINLOG
+    GC_BINLOG,
+
+    // CLOUD
+    CALCULATE_DELETE_BITMAP = 1000
 }
 
 enum TStmtType {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org


Reply via email to