You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

 

Introduction

Geode is a reliable distributed data management tool. There is a demand to access Geode from various programming languages. But the existing client-server protocol is too complex to understand, and it’s not even documented. That establishes the need for a new client-server protocol.


Protocol Terms

  Any binary protocol will require following things

 
  1. Version: This indicates the API version.

  2. Command Id: This indicates API needs to invoke.

  3. Request Id: This helps to relate request-response.

  4. Object Type: What is the type of serialized object.

  5. Error Handling: It indicates the problem with API invocation.

  6. Streaming support: To support the large response or continuous response.

  7. Command Format: Api request and response.

  8. Byte Order(Big Endian)

Connect 

The new protocol will be integrated with current Geode server. The new client driver can connect with Geode server by sending byte “110”.

Command Id

Following command(RequestTypes) will be supported

RequestTypeRequest Type ID
MetaDataConfigRequestType1
AuthenticationRequestType 2
PutRequestType 3
GetRequestType 4
PutAllRequestType 5
GetAllRequestType 6
FunctionRequestType 7
CreateRequestType 8
InvalidateRequestType 9
DestroyRequestType 10
KeySetRequestType 11
ValuesRequestType 12
EntrySetRequestType 13
ContainsValueForKeyRequestType 14
ContainsKeyRequestType 15
ContainsValueRequestType 16
RemoveAllRequestType 17
SizeRequestType 18
PutIfAbsentRequestType 19
RemoveIfValueIsSameRequestType 20
ReplaceIfValueIsSameRequestType 21
ReplaceIfValueExistType 22

 

Request ID

 

Object Type

 

Error Codes

Exception TypeError Code
AUTHENICATION_REQUIRED_EXCEPTION 1
AUTHORIZATION_FAILED_EXCEPTION 2
AUTHETICATIONFAILED_EXCEPTION 3
BUCKET_MOVED_EXCEPTION 4
SERIALIZATION_EXCEPTION 5
INTERRUPTED_EXCEPTION 6
ILLEGAL_ARGUMNET_EXCEPTION 7
ILLEGAL_STATE_EXCEPTION 8
TIMEOUT_EXCEPTION 9
CACHE_WRITER_EXCEPTION 10
REGION_EXIST_EXCEPTION 11
REGION_NOT_EXIST_EXCEPTION 12
LEASE_EXPIRED_EXCEPTION 13
CACHE_LOADER_EXCEPTION 14
REGION_DESTROYED_EXCEPTION 15
ENTRY_DESTROYED_EXCEPTION 16
ENTRY_NOT_FOUND_EXCEPTION 17
FUNCTION_NOT_FOUND_EXCEPTION 18
FUNCTION_ATTRIBUTE_MISMATCH_EXCEPTION 19
FUNCTION_EXECUTION_EXCEPTION 20
CONCURRENT_MODIFICATION_EXCEPTION 21
UNKNOWN_EXCEPTION 22
CLASS_CAST_EXCEPTION 23
GEODE_IO_EXCEPTION 24
NULL_POINTER_EXCEPTION 25
ENTRY_EXIST_EXCEPTION 26
DISK_ACCESS_EXCEPTION 27
QUERY_EXCEPTION 28
CACHE_CLOSED_EXCEPTION 29
MESSAGE_FORMAT_EXCEPTION 30
CACHE_LISTENER_EXCEPTION 31
CQ_EXCEPTION 32
CQ_CLOSED_EXCEPTION 33
CQ_QUERY_EXCEPTION 34
CQ_EXIST_EXCEPTION 35
CQ_INVALID_EXCEPTION 36
INVALID_DELTA_EXCEPTION 37
TRANSACTION_EXCEPTION 38
TRANSACTION_DATA_NODE_DEPARTED_EXCEPTION 39
TRANSACTION_REBALANCED_EXCEPTION 40
COMMIT_CONFLICT_EXCEPTION 41
PUTALL_PARTIAL_RESULT_EXCEPTION 42

 

Streaming 

 

Request Format

 

 

  • No labels