A small, sane btree library, derived from the old berkeley db 1.85 code base.

- as fast and simple as a sequential text file for sequential writes
- easy to use, difficult to abuse
- large data values and large key values that actually work
- a cache management that tries to avoid any btree corruption:
- if a page is evicted, all dirty pages are flushed to the underlying fd
- signals are blocked in the critical section.
- low space conditions are checked before entry to the critical section.
- a limited form of concurrency implemented with fcntl(F_SETLKW)
- readers are not blocked while dirty pages accumulate in a writers cache
- writer waits for readers to call bt_detach() before any write to the file.
- bt_attach() in a reader succeeds when the writer leaves its critical section.
- no starvation in a scenario with ten writers and ten readers.

- tested with musl libc, less than 40K for a statically linked test program.

Project Activity

See All Activity >

Follow A better btree library

A better btree library Web Site

Other Useful Business Software
Build Securely on Azure with Proven Frameworks Icon
Build Securely on Azure with Proven Frameworks

Lay a foundation for success with Tested Reference Architectures developed by Fortinet’s experts. Learn more in this white paper.

Moving to the cloud brings new challenges. How can you manage a larger attack surface while ensuring great network performance? Turn to Fortinet’s Tested Reference Architectures, blueprints for designing and securing cloud environments built by cybersecurity experts. Learn more and explore use cases in this white paper.
Download Now
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of A better btree library!

Additional Project Details

Registered

2014-07-11