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]>

Reply via email to