Abhishek Chennaka has uploaded this change for review. ( http://gerrit.cloudera.org:8080/24578
Change subject: Add diff-scan option to return unobservable rows ...................................................................... Add diff-scan option to return unobservable rows A diff scan currently drops rows whose entire lifecycle (insert -> eventual delete) is contained inside the (start_ts, end_ts] range. But if a user wants to fetch these rows i.e. if they need every mutation the tablet saw during the range -- e.g. change-data-capture pipelines that reconstruct row-level history, this patch makes it possible. This patch adds an optional 'include_unobservable_rows' knob to the NewScanRequestPB and plumb it through: - ScanConfiguration / KuduScanner (new SetDiffScan overload). - ScanTokenPB and KuduScanTokenBuilder, so token-based clients can carry the flag over the wire. - RowIteratorOptions -> MemRowSet iterator and DeltaApplier / SelectedDeltas, where the "drop unobservable" test now short-circuits when the caller opts in. Such rows are returned marked deleted via the IS_DELETED virtual column. The server rejects the flag on non-diff scans and on diff scans whose projection lacks an IS_DELETED column. Corresponding tests have been added in client-test.cc and diff_scan-test.cc. Followup work to include Java and Python client support. Change-Id: I0d0727fb2b89c727c669ec218e3bb8594336359a --- M src/kudu/client/client-test.cc M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/client/client.proto M src/kudu/client/scan_configuration.cc M src/kudu/client/scan_configuration.h M src/kudu/client/scan_token-internal.cc M src/kudu/client/scanner-internal.cc M src/kudu/tablet/delta_applier.cc M src/kudu/tablet/delta_store.cc M src/kudu/tablet/delta_store.h M src/kudu/tablet/diff_scan-test.cc M src/kudu/tablet/memrowset.cc M src/kudu/tablet/rowset.cc M src/kudu/tablet/rowset.h M src/kudu/tablet/tablet.h M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tserver.proto 18 files changed, 243 insertions(+), 12 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/78/24578/1 -- To view, visit http://gerrit.cloudera.org:8080/24578 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0d0727fb2b89c727c669ec218e3bb8594336359a Gerrit-Change-Number: 24578 Gerrit-PatchSet: 1 Gerrit-Owner: Abhishek Chennaka <[email protected]>
