As a basic first step to support pruning invalid transactions from the invalid list, we can provide a command which will tell the TransactionService to clear a set of transaction IDs from the invalid list.
This would support the case where an administrator has manually clear all the data for an invalid transaction, or knows that the cluster has pruned any possible data for a transaction ID or set of transaction IDs. For an example of where this might be used: an administrator ensures that a major compaction has been run and completed for all tables in a cluster. The invalid list can then be truncated up to the timestamp where the major compaction was issued.
This should support a couple modes of operation:
- remove a specific transaction ID or set of transaction IDs from the invalid list
- truncate the invalid list up to a given point or timestamp