Control Data Flow Speeds with Registry Keys

Configure buffer flush speed with the BufferFlushMultiplier key

Store-and-forward buffering is a key feature of Historian collectors. It prevents data loss during planned or unplanned network outages between a collector and Historian server.

If the collector is disconnected from the archiver for several hours or days, many megabytes of data can be buffered and must be delivered by the collector to the Data Archiver upon reconnect. Since all data is sent from the collector to the archiver in time order, the design goal has been to catch up to real time as quickly as possible by sending data as fast as possible.

If this is not the desired behavior because you want to limit the network load on a slow, shared Wide Area Network (WAN) or you want to limit the CPU load on the Data Archiver caused by the incoming data, you can configure the collector to throttle the data it is sending.

Important: Because data is sent in time order (oldest first), you will not be able to retrieve current historical data until the throttled flush is complete.

Configuring the throttle is easy, but it requires modifying a registry key, so it should be done with caution.

A DWORD registry key called BufferFlushMultiplier is present under each collector. For Windows 32-bit, it is located under HKey_Local_Machine\Software\Intellution, Inc.\iHistorian\Services\YOUR_COLLECTOR_TYPE. For Windows 64-bit, it is located under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intellution, Inc.\iHistorian\Services\YOUR_COLLECTOR_TYPE.

  • To slow the store and forward throttling, set the value of BufferFlushMultiplier to 2. The 2 means that the collector should never send data at more than 2 times its normal rate to limit network and CPU load.
  • To disable throttling, set the value of BufferFlushMultiplier to 0 or delete the registry key.

Control archiver speed with the NumIntervalsFlush registry key

The NumIntervalsFlush registry key controls how quickly the collector sends data to the archiver. The collector collects from the data source at the user configured rate, but for efficiency it bundles data samples in a single write to archive. By default, the collector will send data to archiver every 2 seconds or 10,000 samples, whichever happens first. Most often, it sends every 2 seconds because the collector is not collecting that many samples that fast.

If you need collected data sent to archiver right away, so that it is available for retrieval or for calculations, use the NumIntervalsFlush registry key.

You will have to create the registry key, as it does not exist by default. Create a DWORD value called NumIntervalsFlush under the collector, in the same place as HISTORIANNODENAME and INTERFACENAME. On a 64-bit Windows Operating System, all 32-bit component-related registry keys (such as collectors, Client Tools, and APIs) will be located under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intellution, Inc.\iHistorian\.

The preferred setting for Num Intervals Before Flush is 5. The intervals are 100 millisecond increments. The default of 20 means (20 * 100msec) = 2000 msec = 2 seconds. Set the value to 5 and the collector will send every 500msec.
Note: Changes to the registry key do not take effect until the collector is restarted. This setting affects the sending of data whether it was collected polled or unsolicited.