4 A working project for High-concurrency B-tree source code in C
6 There are three major code sets in the 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 test & set locks in the btree pages.
12 threads2i.c Multi-Threaded/Multi-Process with latching implemented with test & set locks in the btree pages with Linux futex system calls for contention.
14 The Foster set includes three types of latching:
16 Fosterbtreee.c Multi-Threaded/Single Process with latches hosted by the buffer pool manager
18 Fosterbtreef.c Multi-Threaded/Multi-Process with latches hosted by a latch manager using the first few pages of the btree.
20 Fosterbtreeg.c Multi-Threaded/Multi-Process with latches implemented with test & set locks in the btree pages.
23 Compilation is achieved on linux or Windows by:
25 gcc -D STANDALONE threads2h.c -lpthread
29 cl /D STANDALONE threads2h.c
31 Please see the project wiki page for documentation