static Map filterTables()

in spark-job/src/main/java/org/apache/cassandra/diff/Differ.java [263:285]


    static Map<KeyspaceTablePair, DiffJob.TaskStatus> filterTables(Iterable<KeyspaceTablePair> keyspaceTables,
                                                                   DiffJob.Split split,
                                                                   Function<KeyspaceTablePair, DiffJob.TaskStatus> journal,
                                                                   boolean includeCompleted) {
        Map<KeyspaceTablePair, DiffJob.TaskStatus> tablesToProcess = new HashMap<>();
        for (KeyspaceTablePair pair : keyspaceTables) {
            DiffJob.TaskStatus taskStatus = journal.apply(pair);
            RangeStats diffStats = taskStatus.stats;
            BigInteger lastToken = taskStatus.lastToken;

            // When we finish processing a split for a given table, we update the task status in journal
            // to set the last seen token to the split's end token, to indicate that the split is complete.
            if (!includeCompleted && lastToken != null && lastToken.equals(split.end)) {
                logger.info("Found finished table {} for split {}", pair, split);
            }
            else {
                tablesToProcess.put(pair, diffStats != null
                                          ? taskStatus
                                          : new DiffJob.TaskStatus(taskStatus.lastToken, RangeStats.newStats()));
            }
        }
        return tablesToProcess;
    }