David Ribeiro Alves has submitted this change and it was merged. Change subject: Allow to pad UNIXTIME_MICROS slots in scan results ......................................................................
Allow to pad UNIXTIME_MICROS slots in scan results This changes the wire protocol to, upon request, pad the slots that contain values for UNIXTIME_MICROS columns by 8 bytes. This allows Impala to adopt the result of a Kudu scan as a whole while still having space to transform UNIXTIME_MICROS values, which occupy 8 bytes, to the Impala representation of timestamp, which occupies 16, in place and without copying memory. This patch doesn't include any de-serialization logic the reasoning being that Impala will have knowledge of the data format in order to perform de-serialization directly on the "raw" direct and indirect data. This patch doesn't introduce any branching in the serialization patch. It does move the memset() call that was performed once per nullable column, per row, to be performed on the whole block instead. While less cache friendly, this is also executed less times. The net gain is not significant, but it does not regress in the normal case. Results of running the wire_protocol-test benchmark in slow mode: Before (avg 3 runs): 3.076 After (avg 3 runs): 3.000 The difference is around -2%, which might be in the noise but demostrates no significant regression. Change-Id: I99fc6d3be089d19ebe2e70c938f2405c381578b4 Reviewed-on: http://gerrit.cloudera.org:8080/6623 Tested-by: Kudu Jenkins Reviewed-by: Todd Lipcon <[email protected]> --- M src/kudu/common/wire_protocol-test.cc M src/kudu/common/wire_protocol.cc M src/kudu/common/wire_protocol.h 3 files changed, 200 insertions(+), 48 deletions(-) Approvals: Todd Lipcon: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6623 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I99fc6d3be089d19ebe2e70c938f2405c381578b4 Gerrit-PatchSet: 11 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: David Ribeiro Alves <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: David Ribeiro Alves <[email protected]> Gerrit-Reviewer: Jean-Daniel Cryans <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs <[email protected]> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]>
