Administer > Server performance tuning > Defining batch sizes in the counters file

Defining batch sizes in the counters file

Administrators can allocate blocks of record identifiers for each servlet in horizontal and vertical scaling implementations. By allocating record IDs in advance, administrators can reduce traffic between the Service Manager server and the RDBMS, which improves overall system performance.

Note: Setting a batch size value replaces the fastcounters parameter from previous versions.

Administrators allocate record IDs in batches from the counters file. When you define a batch size, Service Manager retrieves that number of ID keys from the RDBMS and stores the keys in shared memory for later use. Each time someone creates a new record, the system assigns it an ID key from shared memory until there are no more IDs available. Once the system exhausts its supply of IDs, it requests the next batch of IDs from the RDBMS. Allocating IDs in advance improves performance, because retrieving the reserved ID keys from shared memory is more efficient than connecting to the RDBMS and requesting a new ID key with every new record.

Batch file size recommendation

We recommend you set the batch file size to the number of new records you expect users to create in an hour divided by the number of servers in the implementation. For example, if you expect to generate 200 incident records an hour and have only one server in your implementation, then set the Batch Size value to 200. If your system consists of multiple servers, such as in a horizontal scaling implementation, then divide the total records per hour by the number of servers. For example, a horizontal scaling implementation with four servers only needs a batch size of 50 for each server to equal 200 incidents per hour.

Note: In a horizontally scaled system, each server requests its own batch of ID keys. Since new records may be created from processes running on different servers in a horizontal scaling implementation, the ID numbers of new records may not be in sequential order. For example, process A on server 1 has reserved ID keys 1-100 and process B on server 2 has reserved ID keys 101-200. The first record a user creates on process A will have ID 1, but if the very next record created comes from process B, then the ID will be 101, not 2.

If you do not specify a batch size value, Service Manager uses the default batch size of 1 and fetches a new ID from the RDBMS for each new record you create.

Example data from a counters file

TABLE_NAME  COLUMN_NAME  CURRENT_VALUE  BATCH_SIZE
irqueue     counter      0              100
schedule    schedule.id  2587564        1000
scirexpert  record.id    5198034        5000

Related topics

Defining record identifiers in batches using the numbers file