mqliang commented on pull request #6710:
URL: https://github.com/apache/incubator-pinot/pull/6710#issuecomment-806232651
@mcvsubbu Ready for another round of review.
commit of "implement datatable V3":
* Add DataTableImplV3, compared with V2:
* V3 has a trailer section, at the end of datatable
* V3 don't have metadata sections, all KV pairs are put into trailer
section
* V3 has an exceptions section in the middle of datatable. V2 use meta
data to store exceptions (use
`"Exception"+errCode` as key). In V3, all key are enum value, which
must be defined statically, we can not use
`"Exception"+errCode` to create new keys, so use a dedicate section to
store exceptions
* Although metadata section has been removed in V3, there are many existing
code use `dataTable.getMetadata().get("key")/dataTable.getMetadata().set("key",
"value")` to set/get metadata KV pairs, to provide the same interface with V2,
V3 also implement the `getMetadata()` method. When serialize, move all metadata
into trailer section; when deserialize, move all metadata KV pair trailer
section to matedata map.
* When serialize the trailer section, for each KV pairs:
* if value is int/long, encode it as: [keyOrdinal,
bigEndianRepresentationOfValue]
* if value is string, encode it as: [keyOrdinal, valueLength,
Utf8EncodedValue]
To make review easier, will @you at where V3 is different with V2.
commit of "add responseSerializationCpuTimeNs measurement":
* put a temporary value of serialization_cost when serialization, after
serialization is done, replace it as the actual value.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]