This topic tells administrators how to configure the ESA to use a memory pool.
A memory pool is a customized implementation of virtual memory for events held by rules in ESA. This helps in scaling the capability of rules by an order of magnitude. When you want to create rules that cover a large time span or which are very complex, you may want to use a memory pool to handle memory more efficiently. When you use a memory pool, instead of holding all of the events in memory, they can be written to disk. This is helpful because when a rule exists that is complex or extends over a long time frame, a large number of events must be held in memory.
You can configure memory pool to run in non-batch mode or batch mode:
- Non-batch mode. In non-batch mode, events are written to disk as they enter the memory pool. To configure non-batch mode, set the MapPoolBatchWriteSize attribute to 1. Non-batch mode provides a more stable solution because each event is landed and fetched separately without creating memory spikes.
- Batch mode. In batch mode, events are grouped into batches and then written to disk. To configure batch mode, set the batch size attribute MapPoolBatchWriteSize to a value greater than 1. Batch mode gives better performance since the disk activity for landing events to disk are optimized.
The following diagram shows the data flow using the memory pool for batch mode:
- Events are added to the memory pool and references to the events are stored in the memory pool.
- The events are then batched to be sent to disk (in non-batch mode, this step is skipped).
- Once the batch has met the threshold, the events are written to disk (in non-batch mode no threshold is required).
- When the EPL requires an event that was written to disk, the event is sent to the cache and used in the EPL rule.
Complete the following steps to configure an ESA memory pool.
- From Administration > Services, select your ESA service and then > View > Explore.
- Select CEP > EsperPool > Configuration.
- Enter values for the following fields:
For a simple EPL rule, ESA typically improves memory approximately 8 to 9 times.