Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
We should expose transactions to operators who want to observe or even interfere with transactions (in case something has already gone wrong). A simple tool to wrap the TxnSystemClient seems like a great place to start, exposing commands like:
Wrappers for TxnParticipant calls:
- kudu remote_replica begin_txn <txn_id>
- kudu remote_replica begin_commit <txn_id>
- kudu remote_replica finalize_commit <txn_id> (should be used sparingly!)
- kudu remote_replica abort_txn <txn_id>
Wrappers for the TxnStatusManager calls:
- kudu txns list
- kudu txns show <txn_id>
- kudu txns start_txn
- kudu txns commit <txn_id>
- kudu txns rollback <txn_id>
- kudu txns keep_alive <txn_id>
Wrappers for operating on the transaction status table:
- kudu txns create_txn_status_table
- kudu txns add_txn_status_table range
- kudu txns drop_txn_status_table range