@Override public void setTransactionType(TransactionType transactionType) { delegate().setTransactionType(transactionType); }
@Override public void run( TransactionManager txManager, TableReference tableRef, Set<Cell> cells, TransactionType transactionType) { Collection<OnCleanupTask> nextTasks = cleanupTasksByTable.get(tableRef); while (!nextTasks.isEmpty()) { final Collection<OnCleanupTask> cleanupTasks = nextTasks; nextTasks = txManager.runTaskWithRetry(tx -> { Collection<OnCleanupTask> toRetry = Lists.newArrayList(); Preconditions.checkArgument(transactionType == TransactionType.HARD_DELETE || transactionType == TransactionType.AGGRESSIVE_HARD_DELETE); tx.setTransactionType(transactionType); for (OnCleanupTask task : cleanupTasks) { boolean needsRetry = task.cellsCleanedUp(tx, cells); if (needsRetry) { toRetry.add(task); } } return toRetry; }); } } }
private <T> T runWithRetry(Transaction.TransactionType type, Function<ProfileStore, T> task) { return txnMgr.runTaskWithRetry(txn -> { txn.setTransactionType(type); ProfileStore store = new ProfileStore(txnMgr, txn); return task.apply(store); }); }
@Override public void setTransactionType(TransactionType transactionType) { delegate().setTransactionType(transactionType); }
@Override public void run( TransactionManager txManager, TableReference tableRef, Set<Cell> cells, TransactionType transactionType) { Collection<OnCleanupTask> nextTasks = cleanupTasksByTable.get(tableRef); while (!nextTasks.isEmpty()) { final Collection<OnCleanupTask> cleanupTasks = nextTasks; nextTasks = txManager.runTaskWithRetry(tx -> { Collection<OnCleanupTask> toRetry = Lists.newArrayList(); Preconditions.checkArgument(transactionType == TransactionType.HARD_DELETE || transactionType == TransactionType.AGGRESSIVE_HARD_DELETE); tx.setTransactionType(transactionType); for (OnCleanupTask task : cleanupTasks) { boolean needsRetry = task.cellsCleanedUp(tx, cells); if (needsRetry) { toRetry.add(task); } } return toRetry; }); } } }