Hash table based on lock-free list for page cache.
Replaced hash table guarded with the rw-lock by lock-free implementation. It removes one of the main bottlenecks in the shared page cache.
The new hash table uses lock-free linked list and hazard pointers safe memory reclamation implemented in CDS library.
Many thanks to @romansimakov who intensively tested this code, found few bugs and added some comments and assertions.
:x: Build firebird 1.0.4746 failed (commit https://github.com/FirebirdSQL/firebird/commit/0c3cfe625b by @hvlad)
Also, Alex has been implementing hazard ptrs in metadata cache branch. Can't his solution be used here too?
On 10/9/22 00:40, Adriano dos Santos Fernandes wrote:
Also, Alex has been implementing hazard ptrs in metadata cache branch. Can't his solution be used here too?
I prefer to switch to cds.