28 Managing ECE Journal Storage
In Oracle Communications Elastic Charging Engine (ECE) cloud native deployments, you can manage the size of the journal storage to meet your business needs.
Topics in this document:
About Coherence Elastic Data Storage
ECE cloud native utilizes Oracle Coherence Elastic Data to manage data in both the ECE cache and the federated cache. Coherence Elastic Data stores data across memory and disk-based devices, employing a journaling mechanism to store object state changes. Journals record values for a specific key, and an in-memory map specifies which journal file contains the most recent value for a key.
Coherence Elastic Data contains two types of journals:
-
RAM Journal: This journal stores data in memory.
-
Flash Journal: This journal stores data on disk-based devices, such as Solid State Disks (SSDs). The disk can be local or shared and is expected to perform similarly to SSDs.
The flash journal functions as overflow memory for the RAM journal. Coherence writes data to the RAM journal until it reaches a specified maximum, after which it writes data to the flash journal. After the RAM journal's usage drops below the maximum threshold, Coherence returns to writing data to the RAM journal.
Over time, outdated data can accumulate in a journal file. Coherence Elastic Data uses an internal garbage collection algorithm to track whether a threshold is reached. When the threshold is met, garbage collection threads are activated to remove outdated values, and the files are recycled and reused for future data storage.
In ECE cloud native, Coherence Elastic Data uses two per-JVM storage buffers, with one dedicated to each journal. The Elastic Data serves as a single resource shared by all services running on a cluster member.
Managing Coherence Journal Space
You can control the amount of space the flash and RAM journals use to meet your business needs. By default, ECE cloud native creates journal space for small-to-medium-sized deployments with up to 20,000 TPS. For larger deployments, you may need to increase the size of the journal space.
To manage the amount of space Coherence Elastic Data uses to store journal data, do the following:
-
Open your override-values.yaml file for oc-ece-cn-helm-chart.
-
Configure Coherence Elastic Data for ECE cloud native by modifying these entries under charging.journalingConfig:
-
journalManagerDirectoryPath: Specifies the path for storing the flash journal files. Ensure this directory already exists before deploying.
-
flashJournalMaxSize: Specifies the maximum size per ECS JVM for a flash journal file. The default is 10 GB.
-
ramJournalMaxSize: Specifies the maximum size of the RAM journal as a percentage of the Heap memory, such as 10% or 20%. When the maximum percentage is reached, Coherence Elastic Data writes data to the flash journal. The default is 10% and should not be increased without justification.
-
-
The federation service uses an internal journal record cache to track cache data changes that have not yet been federated to other federation participants. Specify the maximum size of this cache by configuring the following keys under charging.federatedCacheScheme.journalCacheHighUnits:
Note:
Keep the relative sizing between the HighUnits values. In addition, the sum of all four HighUnits values should not exceed flashJournalMaxSize + ramJournalMaxSize.
-
brmJournalCacheHighUnits: Specifies the maximum size of the federation journal record cache for the BRM federated service. The default is 8 GB.
-
xreffederatedJournalCacheHighUnits: Specifies the maximum size of the federation journal record cache for the XREF federated service. The default is 500 MB.
-
replicatedfederatedJournalCacheHighUnits: Specifies the maximum size of the federation journal record cache for the replicated federated service. The default is 500 MB.
-
offerProfileFederatedJournalCacheHighUnits: Specifies the maximum size of the federation journal record cache for the offer profile federated service. The default is 500 MB.
When the limit is reached, the federation service moves the destination participants to the ERROR state and removes all pending entries from the journal record cache.
-
-
Save and close your override-values.yaml file.
-
Redeploy your ECE Helm chart by running this command:
helm install EceReleaseName oc-cn-ece-helm-chart --namespace BrmNameSpace --values override-values.yaml
where:
-
EceReleaseName is the release name for oc-cn-ece-helm-chart and is used to track this installation instance. It must be different from the one used for the BRM Helm chart.
-
BrmNameSpace is the namespace in which to create BRM Kubernetes objects for the BRM Helm chart.
-