X-Git-Url: https://pd.if.org/git/?p=btree;a=blobdiff_plain;f=README.md;h=d24a063ed99e0431073545feb012d99df9893434;hp=c0de3d65bc6ce030aedd0f1ab3c7f21c3cf34a50;hb=4ae5ba77c29ec5870baa6256f9be8cf4a0fff3bc;hpb=ee4614afd14a66051f51bfcf600b06648e0141f6 diff --git a/README.md b/README.md index c0de3d6..d24a063 100644 --- a/README.md +++ b/README.md @@ -3,25 +3,19 @@ Btree-source-code A working project for High-concurrency B-tree source code in C -There are four major code sets in the standard btree source code: +There are six files in the btree source code: -btree2s.c Single Threaded/MultiProcess with latching supplied by advisory file locking. Works with network file systems. Only deletes leaf level 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. -btree2t.c Single Threaded/MultiProcess version that removes keys all the way back to an original empty btree. +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. -threads2h.c Multi-Threaded/Multi-Process with latching implemented by a latch manager with pthreads/SRW latches in the first few 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. -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. +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. -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. +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. -The Foster code set includes the same three types of latching: - -Fosterbtreee.c Multi-Threaded/Single Process with latching implemented by a latch manager with pthreads/SRW latches in the first few btree pages. - -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. - -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. +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. Compilation is achieved on linux or Windows by: @@ -31,4 +25,4 @@ or cl /Ox /D STANDALONE threads2h.c -Please see the project wiki page for documentation +Please see the project wiki page for additional documentation