]> pd.if.org Git - btree/blob - README.md
Recommend versions for operating system environments.
[btree] / README.md
1 Btree-source-code
2 =================
3
4 A working project for High-concurrency B-tree source code in C
5
6 There are four major code sets in the standard btree source code:
7
8 btree2s.c       Single Threaded/MultiProcess version that removes keys all the way back to an original empty btree, placing removed nodes on a free list.  Operates under either memory mapping or file I/O.  Recommended btrees hosted on network file systems.
9
10 threads2h.c     Multi-Threaded/Multi-Process with latching implemented by a latch manager with pthreads/SRW latches in the first few btree pages. Recommended for Windows.
11
12 threads2i.c     Multi-Threaded/Multi-Process with latching implemented by a latch manager with test & set latches in the first few btree pages with thread yield system calls during contention.
13
14 threads2j.c     Multi-Threaded/Multi-Process with latching implemented by a latch manager with test & set locks in the first few btree pages with Linux futex system calls during contention. Recommended for linux.
15
16 The Foster code set includes the same three types of latching:
17
18 Fosterbtreee.c  Multi-Threaded/Single Process with latching implemented by a latch manager with pthreads/SRW latches in the first few btree pages.
19
20 Fosterbtreef.c  Multi-Threaded/Multi-Process with latching implemented by a latch manager with test & set latches  in the first few btree pages with thread yield  system calls during contention.
21
22 Fosterbtreeg.c  Multi-Threaded/Multi-Process with latching implemented by a latch manager with test & set locks in the first few btree pages with Linux futex system calls during contention.
23
24 Compilation is achieved on linux or Windows by:
25
26 gcc -D STANDALONE threads2h.c -lpthread
27
28 or
29
30 cl /Ox /D STANDALONE threads2h.c
31
32 Please see the project wiki page for documentation