4 A working project for High-concurrency B-tree source code in C
6 There are four major code sets in the standard btree source code:
8 btree2q.c Single Threaded/MultiProcess with latching supplied by advisory file locking. Works with network file systems.
10 threads2h.c Multi-Threaded/Multi-Process with latching implemented with pthreads/SRW latches in a latch manager.
12 threads2i.c Multi-Threaded/Multi-Process with latching implemented with test & set locks in the btree pages with thread yield system calls during contention.
14 threads2j.c Multi-Threaded/Multi-Process with latching implemented with test & set locks in the btree pages with Linux futex system calls duriing contention.
16 The Foster set includes three types of latching:
18 Fosterbtreee.c Multi-Threaded/Single Process with latching implemented with pthreads/SRW latches in a latch manager.
20 Fosterbtreef.c Multi-Threaded/Multi-Process with latching implemented with test & set locks in the btree pages with thread yield system calls during contention.
22 Fosterbtreeg.c Multi-Threaded/Multi-Process with latching implemented with test & set locks in the btree pages with Linux futex system calls duriing contention.
24 Compilation is achieved on linux or Windows by:
26 gcc -D STANDALONE threads2h.c -lpthread
30 cl /Ox /D STANDALONE threads2h.c
32 Please see the project wiki page for documentation