Bug 51235

GemStone/S 64 Bit

3.7.1, 3.7, 3.6.8, 3.6.7, 3.6.6, 3.6.5, 3.6.4, 3.6.3, 3.6.2, 3.6.1, 3.6, 3.5.8, 3.5.7, 3.5.6, 3.5.5, 3.5.4, 3.5.3, 3.5.2, 3.5.1, 3.5, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1, 3.4, 3.3.9, 3.3.8, 3.3.7, 3.3.6, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, 3.3, 3.2.16, 3.2.15, 3.2.14, 3.2.x, 3.2

RcQueue adder sessions may conflict, if large sessionIds require interal grow

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.

Workaround

To be safe, create RcQueues with a size equal to System maxSessionId.


                

Last updated: 11/14/24