]> pd.if.org Git - btree/blobdiff - README.md
replace lite weight latch manager
[btree] / README.md
index 37383fc1e66481ead5d43fc85b40c6a0e438b3a3..2c7898a44c3d850f5a0796a6a96b97abcf0e1cfd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -3,16 +3,19 @@ Btree-source-code
 
 A working project for High-concurrency B-tree source code in C
 
-There are three major code sets in the btree source code:
+There are six files in the btree source code:
 
-btree2q.c       Single Threaded/MultiProcess with latching supplied by advisory file locking.  Works with network file systems.
-threads2h.c     Multi-Threaded/Multi-Process with latching implemented with test & set locks in the btree pages.
+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.
 
-The Foster set includes three types of latching:
+btree2t.c       Single Threaded/MultiProcess version similar to btree2s except that fcntl locking has been replaced by test & set latches in the first few btree pages.  Uses either memory mapping or file I/O.
 
-Fosterbtreee.c  Multi-Threaded/Single Process with latches hosted by the buffer pool manager
-Fosterbtreef.c  Multi-Threaded/Multi-Process with latches hosted by a latch manager using the first few pages of the btree.
-Fosterbtreeg.c  Multi-Threaded/Multi-Process with latches implemented with test & set locks in the btree pages.
+btree2u.c              Single Threaded/MultiProcess version that implements a traditional buffer pool manager in the first n pages of the btree file.  The buffer pool accesses its pages with mmap.  Evicted pages are written back to the btree file from the buffer pool pages with pwrite. Recommended for linux.
+
+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.
+
+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.
+
+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.
 
 Compilation is achieved on linux or Windows by:
 
@@ -20,6 +23,6 @@ gcc -D STANDALONE threads2h.c -lpthread
 
 or
 
-cl /D STANDALONE threads2h.c
+cl /Ox /D STANDALONE threads2h.c
 
-Please see the project wiki page for documentation
+Please see the project wiki page for additional documentation