hpcc-systems/HPCC-Platform — pull request #4631 by ghalliday (2013-07-12 12:48:58+00:00)
Title: HPCC-9252 Improve the locking contention in roxiemem 

This pull request contains the following main changes:

* Rename some of the classes to that the heap and heaplet classes have corresponding names

* Add a separate rowcount for huge allocations - previously if a huge allocation had a destructor the page might have been recycled before the destructor could be called.

* Add a flag to a heap to indicate it may contain a completely empty page. (The idea is to reduce walking long chains of heaplets that cannot be freed.)

* Split the chunked allocation into two - one to allocate the chunk, the next to initialise it.
This should reduce the window of contention for the spin lock.

The changes appear to have the desired effect, but the timings I am getting out are very variable so it is hard to be 100% sure (sometimes the timings seemed to show no difference).

@richardkchapman @jakesmith please check carefully.