@VisibleForTesting TableMetadataPersistence.SweepStrategy getStrategy(WriteInfo writeInfo) { return cache.getUnchecked(writeInfo.tableRef()); }
@Override public Collection<WriteInfo> filter(Collection<WriteInfo> writeInfos) { Set<TableReference> tablesToCareAbout = getConservativeTables( writeInfos.stream().map(WriteInfo::tableRef).collect(Collectors.toSet())); if (tablesToCareAbout.isEmpty()) { return writeInfos; } Map<TableReference, Long> truncationTimes = watermarkStore.getWatermarks(tablesToCareAbout); return writeInfos.stream() .filter(write -> !truncationTimes.containsKey(write.tableRef()) || write.timestamp() > truncationTimes.get(write.tableRef())) .collect(Collectors.toList()); }
writesByStartTs.get(startTs) .forEach(write -> cellsToDelete .computeIfAbsent(write.tableRef(), ignore -> HashMultimap.create()) .put(write.cell(), write.timestamp())); } else if (commitTs < sweepTs) {
@VisibleForTesting TableMetadataPersistence.SweepStrategy getStrategy(WriteInfo writeInfo) { return cache.getUnchecked(writeInfo.tableRef()); }
@Override public Collection<WriteInfo> filter(Collection<WriteInfo> writeInfos) { Set<TableReference> tablesToCareAbout = getConservativeTables( writeInfos.stream().map(WriteInfo::tableRef).collect(Collectors.toSet())); if (tablesToCareAbout.isEmpty()) { return writeInfos; } Map<TableReference, Long> truncationTimes = watermarkStore.getWatermarks(tablesToCareAbout); return writeInfos.stream() .filter(write -> !truncationTimes.containsKey(write.tableRef()) || write.timestamp() > truncationTimes.get(write.tableRef())) .collect(Collectors.toList()); }
writesByStartTs.get(startTs) .forEach(write -> cellsToDelete .computeIfAbsent(write.tableRef(), ignore -> HashMultimap.create()) .put(write.cell(), write.timestamp())); } else if (commitTs < sweepTs) {