private MergeReducer(int size, boolean reversed, int nowInSec, MergeListener listener) { this.rowMerger = new Row.Merger(size, nowInSec, columns().regulars.hasComplex()); this.markerMerger = new RangeTombstoneMarker.Merger(size, partitionLevelDeletion(), reversed); this.listener = listener; }
protected Unfiltered getReduced() { if (nextKind == Unfiltered.Kind.ROW) { Row merged = rowMerger.merge(markerMerger.activeDeletion()); if (listener != null) listener.onMergedRows(merged == null ? BTreeRow.emptyRow(rowMerger.mergedClustering()) : merged, rowMerger.mergedRows()); return merged; } else { RangeTombstoneMarker merged = markerMerger.merge(); if (listener != null) listener.onMergedRangeTombstoneMarkers(merged, markerMerger.mergedMarkers()); return merged; } }
public void reduce(int idx, Unfiltered current) { nextKind = current.kind(); if (nextKind == Unfiltered.Kind.ROW) rowMerger.add(idx, (Row)current); else markerMerger.add(idx, (RangeTombstoneMarker)current); }
DeletionTime previousDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); updateOpenMarkers(); DeletionTime newDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); if (previousDeletionTimeInMerged.equals(newDeletionTimeInMerged)) return null;
DeletionTime previousDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); updateOpenMarkers(); DeletionTime newDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); if (previousDeletionTimeInMerged.equals(newDeletionTimeInMerged)) return null;
DeletionTime previousDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); updateOpenMarkers(); DeletionTime newDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); if (previousDeletionTimeInMerged.equals(newDeletionTimeInMerged)) return null;
DeletionTime previousDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); updateOpenMarkers(); DeletionTime newDeletionTimeInMerged = currentOpenDeletionTimeInMerged(); if (previousDeletionTimeInMerged.equals(newDeletionTimeInMerged)) return null;
protected Unfiltered getReduced() { if (nextKind == Unfiltered.Kind.ROW) { Row merged = rowMerger.merge(markerMerger.activeDeletion()); if (listener != null) listener.onMergedRows(merged == null ? BTreeRow.emptyRow(rowMerger.mergedClustering()) : merged, rowMerger.mergedRows()); return merged; } else { RangeTombstoneMarker merged = markerMerger.merge(); if (listener != null) listener.onMergedRangeTombstoneMarkers(merged, markerMerger.mergedMarkers()); return merged; } }
protected Unfiltered getReduced() { if (nextKind == Unfiltered.Kind.ROW) { Row merged = rowMerger.merge(markerMerger.activeDeletion()); if (listener != null) listener.onMergedRows(merged == null ? BTreeRow.emptyRow(rowMerger.mergedClustering()) : merged, rowMerger.mergedRows()); return merged; } else { RangeTombstoneMarker merged = markerMerger.merge(); if (listener != null) listener.onMergedRangeTombstoneMarkers(merged, markerMerger.mergedMarkers()); return merged; } }
protected Unfiltered getReduced() { if (nextKind == Unfiltered.Kind.ROW) { Row merged = rowMerger.merge(markerMerger.activeDeletion()); if (listener != null) listener.onMergedRows(merged == null ? BTreeRow.emptyRow(rowMerger.mergedClustering()) : merged, rowMerger.mergedRows()); return merged; } else { RangeTombstoneMarker merged = markerMerger.merge(); if (listener != null) listener.onMergedRangeTombstoneMarkers(merged, markerMerger.mergedMarkers()); return merged; } }
public DeletionTime activeDeletion() { DeletionTime openMarker = currentOpenDeletionTimeInMerged(); // We only have an open marker in the merged stream if it's not shadowed by the partition deletion (which can be LIVE itself), so // if have an open marker, we know it's the "active" deletion for the merged stream. return openMarker.isLive() ? partitionDeletion : openMarker; } }
protected void onKeyChange() { if (nextKind == Unfiltered.Kind.ROW) rowMerger.clear(); else markerMerger.clear(); } }
protected void onKeyChange() { if (nextKind == Unfiltered.Kind.ROW) rowMerger.clear(); else markerMerger.clear(); } }
public DeletionTime activeDeletion() { DeletionTime openMarker = currentOpenDeletionTimeInMerged(); // We only have an open marker in the merged stream if it's not shadowed by the partition deletion (which can be LIVE itself), so // if have an open marker, we know it's the "active" deletion for the merged stream. return openMarker.isLive() ? partitionDeletion : openMarker; } }
protected void onKeyChange() { if (nextKind == Unfiltered.Kind.ROW) rowMerger.clear(); else markerMerger.clear(); } }
public void reduce(int idx, Unfiltered current) { nextKind = current.kind(); if (nextKind == Unfiltered.Kind.ROW) rowMerger.add(idx, (Row)current); else markerMerger.add(idx, (RangeTombstoneMarker)current); }
private MergeReducer(int size, boolean reversed, int nowInSec, MergeListener listener) { this.rowMerger = new Row.Merger(size, nowInSec, columns().regulars.hasComplex()); this.markerMerger = new RangeTombstoneMarker.Merger(size, partitionLevelDeletion(), reversed); this.listener = listener; }
public void reduce(int idx, Unfiltered current) { nextKind = current.kind(); if (nextKind == Unfiltered.Kind.ROW) rowMerger.add(idx, (Row)current); else markerMerger.add(idx, (RangeTombstoneMarker)current); }
public void reduce(int idx, Unfiltered current) { nextKind = current.kind(); if (nextKind == Unfiltered.Kind.ROW) rowMerger.add(idx, (Row)current); else markerMerger.add(idx, (RangeTombstoneMarker)current); }
public DeletionTime activeDeletion() { DeletionTime openMarker = currentOpenDeletionTimeInMerged(); // We only have an open marker in the merged stream if it's not shadowed by the partition deletion (which can be LIVE itself), so // if have an open marker, we know it's the "active" deletion for the merged stream. return openMarker.isLive() ? partitionDeletion : openMarker; } }