Transactional Memory

The StreamBase Runtime offers transactional memory as an option for storing the data for StreamBase Query Tables, for operators that preserve state, and for an EventFlow module as a whole.

Transactional memory is a technology in concurrent programming that allows a set of load and store instructions to run in an atomic way. It provides a concurrency control mechanism analogous to database transactions for managing access to shared memory, which allows coordination between concurrent reads and writes of shared data.

The use of transactional memory is especially important in high availability deployments, where (for example) two nodes might need to use the same Query Table.

Transactional memory settings are specified in a Runtime Application Configuration file with root object ApplicationDefinition, primarily with the sharedMemory object. Once enabled and specified in configuration, you can then specify the use of transactional memory in the StreamBase Studio property page for an EventFlow module, Query Table, or certain operators.