Product Documentation

c-treeACE V10.3 Update Guide

Previous Topic

Next Topic

Improved scalability with distributed data and index cache counters

A read scalability test indicated significant overhead associated with handling the data cache hit and request counters as the number of threads increased. To reduce this overhead, the logic to collect the following statistical information was changed by implementing a pool of counters per each value, thereby reducing contention:

  • data cache requests
  • data cache hits
  • index cache requests
  • index cache hits

By default, each of these counters is stored in four separate memory locations. The number of memory locations can be changed by specifying CACHE_STAT_ARRAY_SIZE <N> in ctsrvr.cfg, where N is the number of memory locations for each counter.

The functions that read these statistics, IOPERFORMANCE() and ctSNAPSHOTsysdat(), have been changed to call functions that sum the instances of the counters and return the sum instead of reading a single counter value from memory.

When the c-treeACE Server starts up, it writes a message to CTSTATUS.FCS indicating how many cache stat array entries are in use:

Data and index cache statistics array size: 16

TOCIndex