Here is a short patch implementing a new feature in pgbench so as to allow shell commands to be launched in a transaction file of pgbench. the user has just to add at the beginning of the command line in his transaction file \shell + the command wanted.
As an example of transaction: Begin; [Transaction instructions] Prepare transaction ‘TXID’; \shell ls ~/pg_twophase; Commit prepared ‘TXID’;
This patch was particularly useful in order to determine the size of state files flushed to disk for prepared but not committed transactions. As an addition, I added a new default transaction in the code that permits to launch a 2PC transaction with a random prepare identifier of the format Txxx.