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