Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • byte - 110 : Message will contain the whole request or response. 
  • byte - 111 : If the message is large then client or server can divide the message into the set of small messages. Then they need to collect all the small message and parse the whole request or response.

API

...

Id

The ApiId  recognizes

...

Following table contains the api type and its corresponding Api id. The ApiId would recognize the API, which client a client wants to invoke on the server. The request format will contain the 2-byte(int16) for Api id. It will be marked as ApiId in the request format.

RequestTypeApiId
AuthenticationRequestType 1
PutRequestType 2
GetRequestType 3
PutAllRequestType 4
GetAllRequestType 5
ClientConfigRequestType6
ServerConfigRequestType7
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
FunctionRequestType 23

API Version

API version will be associated with the request api. The request fromat will contain a 1-byte for the version. It will be marked as ApiVersion in the request format. Its current value will be 1.

Correlation Id

The purpose of correlation id to match the request and its corresponding response. The request format will contain the 4-bytes(int32) for correlation Id. It will be marked as CorrelationId in the request and response format. 

Object Type

We will support all the object types which Geode understands. This would include all the primitive java types, an array of primitive types, collections, java serialization, data serializable, pdx serialization and custom user data serializers. 

ObjectKeyType

Geode supports only few object types as the region Key. The region key will be marked as Key in the request format.

ResponseType

ReponseType will indicate that whether the response is partial or complete. A client can process a partial response.  Response with the FullResponse type id will indicate the completion of that request. 

The response format will contain the 2-bytes(int16) for response type. It will be marked as ResponseTypeId in the response format.

ResponseTypeResponseTypeId
FullResponse1
PartialResponse2

 

Error Codes

Error codes indicate the issue with the invocation of API at the server. We have following error code for various issues at the server. The response format will contain the 2-bytes(int16) for error codes. It will be marked as ErrorCode in the response format.

 

Exception TypeErrorCode
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

Format grammar

API Version

API version will be associated with the request api. The request fromat will contain a 1-byte for the version. It will be marked as ApiVersion in the request format. Its current value will be 1.

Correlation Id

The purpose of correlation id to match the request and its corresponding response. The request format will contain the 4-bytes(int32) for correlation Id. It will be marked as CorrelationId in the request and response format. 

Object Type

We will support all the object types which Geode understands. This would include all the primitive java types, an array of primitive types, collections, java serialization, data serializable, pdx serialization and custom user data serializers. 

ObjectKeyType

Geode supports only few object types as the region Key. The region key will be marked as Key in the request format.

ResponseType

ReponseType will indicate that whether the response is partial or complete. A client can process a partial response.  Response with the FullResponse type id will indicate the completion of that request. 

The response format will contain the 2-bytes(int16) for response type. It will be marked as ResponseTypeId in the response format.

ResponseTypeResponseTypeId
FullResponse1
PartialResponse2

Error Codes

Error codes indicate the issue with the invocation of API at the server. We have following error code for various issues at the server. The response format will contain the 2-bytes(int16) for error codes. It will be marked as ErrorCode in the response format.

Format grammar

The format Format is described using Extended Backus–Naur form grammar.

...