To avoid conflicts, RcQueues are implemented to give separate sessions their own slots for adding elements. The number of slots is specified during instance creation, either using RcQueue new: anInteger, otherwise the default size of 20.
If there are two adder sessions that both have sessionIds higher than the current number of slots in the RcQueue, then both sessions will grow the RcQueue if they add an element. This grow is not reduced-conflict, so if these session commits conflict, it results in a transaction conflict.
To be safe, create RcQueues with a size equal to System maxSessionId.
Last updated: 11/14/24