X-Git-Url: https://pd.if.org/git/?p=btree;a=blobdiff_plain;f=README.md;h=9ea76b242a368c66d5aa7aa5f5a062e794572b95;hp=aab487ef589a5d19fabc0afbb9c3f157ef663977;hb=392e5f08cc164c87e56153aa78a740f93325750e;hpb=f8b82287f4c543bc5a1a97962a3a0c6706d166af diff --git a/README.md b/README.md index aab487e..9ea76b2 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ Btree-source-code ================= -A working project for High-concurrency B-tree source code in C +A working project for High-concurrency B-tree source code in C. You probably want to download threadskv8.c for the latest developement version. -There are seven files in the btree source code: +Here are files in the btree source code: 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. @@ -21,9 +21,23 @@ threads2j.c Multi-Threaded/Multi-Process with latching implemented by a latc threadskv1.c Multi-Threaded/Multi-Process based on threads2i.c that generalizes key/value storage in the btree pages. The page slots are reduced to 16 or 32 bits, and the value byte storage occurs along with the key storage. +threadskv2.c Multi-Threaded/Multi-Process based on threadskv1 that replaces the linear sorted key array with a red/black tree. + +threadskv3.c Multi-Threaded/Multi-Process based on threadskv1 that introduces librarian filler slots in the linear key array to minimize data movement when a new key is inserted into the middle of the array. + +threadskv4b.c Multi-Threaded/Multi-Process based on threadskv3 that manages duplicate keys added to the btree. + +threadskv5.c Multi-Threaded/Multi-Process based on threadskv4b that supports bi-directional cursors through the btree. Also supports raw disk partitions for btrees. + +threadskv6.c Multi-Threaded/Single-Process with traditional buffer pool manager using the swap device. Based on threadskv5 and btree2u. + +threadskv7.c Multi-Threaded/Single-Process with atomic add of a set of keys under eventual consistency. Adds an individual key lock manager. + +threadskv8.c Multi-Threaded/Single-Process with atomic-consistent add of a set of keys based on threadskv6.c. Uses btree page latches as locking granularity. + Compilation is achieved on linux or Windows by: -gcc -D STANDALONE threads2h.c -lpthread +gcc -D STANDALONE -O3 threadskv8.c -lpthread or