Administer > Server performance tuning > Defining record identifiers in batches using the numbers file

Defining record identifiers in batches using the numbers file

Administrators can define record identifiers and allocate those identifiers in batches from the numbers file for new interactions, incidents, and changes. By allocating record IDs in batches in advance, administrators can reduce traffic between the Service Manager server and the RDBMS, which improves overall system performance.

Note: Currently the counters file is used by administrators to define the table and field where a new record number is going to be stored. However, the numbers file is still available for those who previously chose to define record numbers using the numbers file and are upgrading. This file has been enhanced to work more like the counters file. For more information on the counters file, see the related topics.

When using the numbers file, administrators define the following:

  • Batch size.
  • Starting number.
  • Identifying prefix for each module. For example, IM for Incident Management records.
  • Whether numbers are going to increment or decrement.
  • The table and field where the new numbers are to be stored.

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.

HPE recommends 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 numbers file

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