In a Cas 2.1 / 3.0 / 3.11 / 4.0b2 comparison test with the same load profile, we see 4.0b2 going OOM from time to time. According to a heap dump, we have multiple NTR threads in a 3-digit MB range.
This is likely related to object array pre-allocations at the size of BatchUpdatesCollector.updatedRows per BTree although there is always only 1 BTreeRow in the BTree.
So it seems we have many, many 20K elemnts pre-allocated object arrays resulting in a shallow heap of 80K each, although there is only one element in the array.
This sort of pre-allocation is causing a lot of memory pressure.