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

Compare with Current View Page History

« Previous Version 13 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
  


  1. MetaDataConfigRequestType = 1

  2. AuthenticationRequestType = 2

  3. PutRequestType = 3

  4. GetRequestType = 4

  5. PutAllRequestType = 5

  6. GetAllRequestType = 6

  7. FunctionRequestType = 7

  8. CreateRequestType = 8

  9. InvalidateRequestType = 9

  10. DestroyRequestType = 10

  11. KeySetRequestType = 11

  12. ValuesRequestType = 12

  13. EntrySetRequestType = 13

  14. ContainsValueForKeyRequestType = 14

  15. ContainsKeyRequestType = 15

  16. ContainsValueRequestType = 16

  17. RemoveAllRequestType = 17

  18. SizeRequestType = 18

  19. PutIfAbsentRequestType = 19

  20. RemoveIfValueIsSameRequestType = 20

  21. ReplaceIfValueIsSameRequestType = 21

  22. ReplaceIfValueExistType = 22

 


 

  • No labels