Alexey Kosenchuk created IGNITE-8039: ----------------------------------------
Summary: Binary Client Protocol spec: data types/format clarifications Key: IGNITE-8039 URL: https://issues.apache.org/jira/browse/IGNITE-8039 Project: Ignite Issue Type: Bug Components: documentation, thin client Affects Versions: 2.4 Reporter: Alexey Kosenchuk Assuming the Binary Client Protocol spec should be detalized enough to allow a client development basing on the spec only, w/o looking at other client implementations and asking additional questions... The following should be clarified / corrected in the Binary Client Protocol spec (v.2.4) (https://apacheignite.readme.io/v2.4/docs/binary-client-protocol#section-data-format): Type Codes table: ----------------- - UUID (Guid) size: should be 16 bytes, not 8 (?) - what is Object array (type code 23) ? What is the difference between it and Objects Wrapped In Array (type code 27) ? - what is Collection USER_SET ? - what is Collection USER_COL ? - what is Collection SINGLETON_LIST ? - Collection: misprint: should be "... + length ..." - what is Decimal ? - what is Timestamp ? - what is Time ? Complex Objects: ---------------- - what does flag USER_TYPE mean ? - Schema "field Id; Java-style hash code of field" -> should be "... of field name". - "Repeat for as many times as the total number of schemas you have" -> should be "... total number of fields you have". - is it mandated that the number of fields in the Schema must be equal to the number of fields in the Data Object ? Objects Wrapped In Array ------------------------ - may binary objects with different type codes be in the same array ? - may complex objects with different type ids be in the same array ? - "All cache operations return complex objects inside a wrapper (but not primitives)." -> does it mean that in general a complex object (103) must always be sent via the Binary Protocol in a wrapper (27)? - "Byte array size" -> "Payload size" or "Size of the whole array with header" ? - Offset. What is "object graph" here ? The Binary Protocol nowhere describes any relations ("graph") between data objects in the protocol. Terminology ----------- Not critical but would be really convenient to define and use the same terms along the whole spec. For example: - "binary object" is always the same as "data object" of any type (?). Can be "standard/predefined type object" or "complex object". - "cluster" or "server" ? - "cluster member" or "server nodes" ? -- This message was sent by Atlassian JIRA (v7.6.3#76005)