Event Data
Every event that is finalized is saved to the event database as an MtxEventObject. This includes non-usage events, such as purchase events and recurring processing events, and usage events, including those that contain aggregated usage and those that do not.
The only operations that occur on the event database are insertions and deletions. After an event is saved to the event database, it is not changed. The events are stored as Event Detail Records (EDRs) and can be queried by the SubMan APIs while in memory so that the records can be viewed before they are added to a MATRIXX Event File (MEF) and published. As part of task processing, the Task Manager scans the event database at a configured interval and deletes the old events after a specified amount of time.
Service providers can enable compression for the event database, which aims to compress the memory required by each event object by a ratio of 2:1. This feature can be useful to service providers who want to keep more events in memory at a given point in time, for example, to perform queries and analysis. Although compressing the event database decreases memory requirements, it increases CPU usage because each event must be uncompressed for queries and read-and-write operations and then must be re-compressed. This extra processing step decreases performance. MATRIXX suggests testing the compression functionality on a test suite before using it in a production environment to determine whether the tradeoff is desirable. To view compression statistics, including the percentage of memory saved and the compression ratios, run the print_blade_stats.py script.
Enable event database compression by running the create_config.py script. Running this script requires you to also change several other configuration values related to event database sizing. For information about how to configure database compression, see the discussion about advanced database configuration in MATRIXX Configuration.