Log buffer configuration
After records are captured in the log buffer in the meter’s short-term memory, they are replicated to the long-term memory. Because of inherent differences between short-term (volatile) and long-term (non-volatile) memory, records can be added more quickly to the short-term memory than they can be copied to long-term memory.
The logs in the default logging framework have their log buffer depths pre-configured to a value suitable for most applications. But you can configure the log buffer depth for your applications, if required (for example, to help ensure the continuity of critical data in high-speed logging scenarios or to optimize usage of your meter’s memory for your particular logging configuration).
If you are logging data at high speeds, it is important to review your logging needs, and find the right balance between data retention and memory optimization for your particular situation.
Fully buffered logs
A fully buffered log (e.g., a Data Recorder or Waveform Recorder module) is one where the value of the Buffer Depth setup register is the same as the Depth setup register. This means the buffer (short-term memory) is set up to use all the available long-term memory allocated for that log. This ensures the buffer does not run out of space before all the records are replicated to the long-term memory, regardless of the recording speed (i.e., the rate of record captures).
You may want to use this configuration if you are logging critical data (for example, revenue logs) or logging data at frequent intervals (for example, intervals less than 60 seconds). However, it is important to note that this configuration uses the most short-term memory, or RAM (the meter has a maximum 10 MB of RAM available for the log buffer depth).
Partially buffered logs
A partially buffered log (e.g., for a Data Recorder or Waveform Recorder module) is one where the value of the Buffer Depth setup register is less than the Depth setup register. This means the buffer (short-term memory) is set up to use only a portion of the available long-term memory allocated for that log. This configuration allows for a much larger log size (i.e., number of records). However this does not ensure that the buffer does not run out before all the records are replicated to the long-term memory (e.g., in the case of high-speed recording).
You may want to use this configuration for logs with intervals greater than 60 seconds or with less critical data. Because the records are partially replicated, this configuration uses less of the meter’s short-term memory, or RAM, in a log that is otherwise configured the same. This allows you to make more RAM available for other logs with a higher logging frequency or more critical data.
However, depending on your configuration, there may be instances where the log buffer fills up faster than it can replicate records to long-term memory. In this case, you may lose records and see gaps in your data.
Example: fully buffered log records replicated from short-term to long-term memory
Example: Partially buffered log records replicated from short-term memory to long-term memory
Example: Resulting gaps in data when a partially buffered log is full
In the graphic on the left, the log buffer (A) is full, and the oldest record has not replicated to the long-term memory yet. This means that the new record (C) is not logged, and is permanently lost. In the graphic on the right, the oldest record (D) has been replicated to long-term memory, making space in the buffer. The new record at the next interval (E) is logged but there is a gap in the data for the lost record (C).