In a transaction system, a dynamic batching process enables efficient
flushing of data in a data buffer to a stable storage device. The
transaction system uses constant values and dynamic values and a system
performance history to adjust the rate of flushing data and also to
adjust the amount of data flushed in each flush operation. The
transaction system is able to respond to both spikes in rate of received
transactions as well as more gradual changes in the rate of received
transactions and to automatically adapt to stable storage device
performance variations.