Could someone share the details of the algorithm of new IDs generation which was introduced in Pega 8.3?
All I could find so far is that now it could be generated in batches and we can specify the batch size, but it's not still quite clear what's exactly happening. If I set a batch to 1000, will every 1000 be filled in in the scope of node or user session or...?
We need this info in order to understand the limitations and decide how to leverage the optimised logic better. Will appreciate any input, especially from Pega insiders.
Sharing some of the info I found below, it is provided in DSS description.
Sets the batch size for generating work IDs. The default value is 1000. This setting applies to all case types and to all nodes in a cluster. This setting only applies to single-tenant environments and PostgresSQL or AWS Aurora databases.
Note: When work IDs are generated and the batch size is set to 1000, performance is increased but there might be gaps in the numerical sequence of the IDs. For example consecutively generated work IDs might come out as TASK-1, Task-1001, TASK-2001, TASK-2, TASK-1002, TASK-2002. As more work items are created, IDs are created that fill in the gaps between previous created IDs. If you want fewer gaps in your work IDs, you can set the idGenerator/defaultBatchSize dynamic system setting to 100. This value causes fewer gaps in the work IDs but yields a smaller increase in performance. To eliminate gaps in your work IDs, set the idGenerator/defaultBatchSize dynamic system setting to 1. Note that setting the dynamic system setting to 1 might cause low performance.
The algorithm is basically the same as before, except that each node "reserves" a set of sequential IDs in batches (default size 1000). So the pre-reservation is per node. The same underlying data structure and database table is used to track the next available unique ID per work prefix as in previous platform releases.