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: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org