[ 
https://issues.apache.org/jira/browse/IGNITE-8039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465308#comment-16465308
 ] 

Alexey Kosenchuk commented on IGNITE-8039:
------------------------------------------

Several more comments:

a) Timestamp: 
msecs_since_epoch contains a fraction of the last second (milliseconds of the 
last second).
sec_fraction_in_nsecs contains a fraction of the last second.
It is some duplication and the values must correspond each other, correct?
Or msecs_since_epoch must not contain milliseconds of the last second? I.e. 
milliseconds of the last second are zero and the fraction of the last second is 
specified by sec_fraction_in_nsecs only?

b) Object array:
The new version of the spec does say there is type Id for the whole Object 
array.
The previous version has it (between the length and elements) and the java 
client writes it.
Does it exist?
If yes, what should be written as type Id if Object array contains non-complex 
objects?

c) As we see from reality, there is type with code 38 (BINARY_ENUM) returned by 
server.
It is not mentioned in the spec. Should be added?


> 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
>            Assignee: Igor Sapego
>            Priority: Major
>             Fix For: 2.5
>
>
> 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)

Reply via email to