You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by en...@apache.org on 2017/04/10 07:58:01 UTC

incubator-ratis git commit: RATIS-58 Add rmap.proto

Repository: incubator-ratis
Updated Branches:
  refs/heads/master ac55b5f18 -> 0af97352b


RATIS-58 Add rmap.proto


Project: http://git-wip-us.apache.org/repos/asf/incubator-ratis/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ratis/commit/0af97352
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ratis/tree/0af97352
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ratis/diff/0af97352

Branch: refs/heads/master
Commit: 0af97352b05e5d8f163cb1c7ec9ba94c75971c6a
Parents: ac55b5f
Author: Enis Soztutar <en...@apache.org>
Authored: Mon Apr 10 00:57:52 2017 -0700
Committer: Enis Soztutar <en...@apache.org>
Committed: Mon Apr 10 00:57:52 2017 -0700

----------------------------------------------------------------------
 ratis-proto-shaded/src/main/proto/RMap.proto | 189 ++++++++++++++++++++++
 1 file changed, 189 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ratis/blob/0af97352/ratis-proto-shaded/src/main/proto/RMap.proto
----------------------------------------------------------------------
diff --git a/ratis-proto-shaded/src/main/proto/RMap.proto b/ratis-proto-shaded/src/main/proto/RMap.proto
new file mode 100644
index 0000000..33ce4fb
--- /dev/null
+++ b/ratis-proto-shaded/src/main/proto/RMap.proto
@@ -0,0 +1,189 @@
+/**
+ * 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 = "proto3";
+option java_package = "org.apache.ratis.shaded.proto.rmap";
+option java_outer_classname = "RMapProtos";
+option java_generate_equals_and_hash = true;
+package ratis.rmap;
+
+// TODO: This .proto file should go to the ratis-replicated-map module, but we need it here
+// due to shading.
+
+// Metadata about a replicated map
+message RMapInfo {
+    int64 rmap_id = 1;
+    string name = 2;
+    string key_class = 3;
+    string value_class = 4;
+    string key_serde_class = 5;
+    string value_serde_class = 6;
+    string key_comparator_class = 7;
+}
+
+// An entry in a replicated map.`
+message Entry {
+    bytes key = 1;
+    bytes value = 2;
+}
+
+// TODO: raft client should allow a Service decleration, and calling a method from the service
+// similar to how coprocessor calls work in HBase.
+message Request {
+    oneof RequestType {
+        MultiActionRequest multi_action_request = 1;
+        ScanRequest scan_request = 2;
+        CreateRMapRequest create_rmap_request = 3;
+        DeleteRMapRequest delete_rmap_request = 4;
+        ListRMapInfosRequest list_rmap_infos_request = 5;
+    }
+}
+
+message Response {
+    ExceptionResponse exception = 1;
+    oneof ResponseType {
+        MultiActionResponse multi_action_response = 2;
+        ScanResponse scan_response = 3;
+        CreateRMapResponse create_rmap_response = 4;
+        DeleteRMapResponse delete_rmap_response = 5;
+        ListRMapInfosResponse list_rmap_infos_response = 6;
+    }
+}
+
+message MultiActionRequest {
+    int64 rmap_id = 1;
+    repeated Action action = 2;
+}
+
+message Action {
+    oneof ActionType {
+        GetRequest get_request = 1;
+        PutRequest put_request = 2;
+    }
+}
+
+message ActionResponse {
+    oneof ActionType {
+        GetResponse get_response = 1;
+        PutResponse put_response = 2;
+    }
+}
+
+message MultiActionResponse {
+    repeated ActionResponse action_response = 1;
+}
+
+message CreateRMapRequest {
+    RMapInfo rmap_info = 1;
+}
+
+message CreateRMapResponse {
+    RMapInfo rmap_info = 1;
+}
+
+message DeleteRMapRequest {
+    int64 rmap_id = 1;
+}
+
+message DeleteRMapResponse {
+}
+
+message ListRMapInfosRequest {
+    oneof ListRMapInfosType {
+        // if set, we only care about a particular RMapInfo
+        int64 rmap_id = 1;
+
+        // only return infos whose names match this pattern
+        string name_pattern = 2;
+    }
+}
+
+message ListRMapInfosResponse {
+    repeated RMapInfo rmap_info = 1;
+}
+
+message GetRequest {
+    bytes key = 1;
+}
+
+message GetResponse {
+    bool found = 1;
+    bytes key = 2;
+    bytes value = 3;
+}
+
+message PutRequest {
+    bytes key = 1;
+    bytes value = 2;
+}
+
+message PutResponse {
+}
+
+message Scan {
+    bytes start_Key = 1;
+    bytes end_key = 2;
+    bool start_key_inclusive = 3;
+    bool end_key_inclusive = 4;
+    bool keys_only = 5;
+    int32 limit = 6;
+}
+
+message ScanRequest {
+    int64 rmap_id = 1;
+    Scan scan = 2;
+}
+
+message ScanResponse {
+    repeated Entry entry = 1;
+}
+
+message ExceptionResponse {
+    // Class name of the exception thrown from the server
+    string exception_class_name = 1;
+    // Exception stack trace from the server side
+    string stack_trace = 2;
+    // Optional hostname.  Filled in for some exceptions such as region moved
+    // where exception gives clue on where the region may have moved.
+    string hostname = 3;
+    int32 port = 4;
+    // Set if we are NOT to retry on receipt of this exception
+    bool do_not_retry = 5;
+}
+
+message Id {
+    int64 id = 1;
+}
+
+message WALEntry {
+    int64 rmap_id = 1;  // these are shared by all WALEntry types
+    repeated Entry entry = 2;
+    oneof WALEntryType {
+        // Multi is not here, because we do not want to create one more object unnecessarily
+        CreateRMapWALEntry create_rmap_entry = 3;
+        DeleteRMapWALEntry delete_rmap_entry = 4;
+    }
+}
+
+message CreateRMapWALEntry {
+    RMapInfo rmap_info = 1;
+    Id id = 2;
+}
+
+message DeleteRMapWALEntry {
+    int64 id = 1;
+}
\ No newline at end of file