b-tree

Open-source projects categorized as b-tree

Top 9 b-tree Open-Source Projects

  • gods

    GoDS (Go Data Structures) - Sets, Lists, Stacks, Maps, Trees, Queues, and much more

  • Project mention: How do you go about the lack of built in data structure like stack, queue for LeetCode | /r/golang | 2023-05-24

    for len(stack) > 0 { n := len(stack) - 1 // Top element fmt.Print(stack[n]) stack = stack[:n] // Pop } ``` Another solution would be to import a package like https://github.com/emirpasic/gods

  • sled

    the champagne of beta embedded databases

  • Project mention: SableDb – a key/value store that uses RocksDB and Redis API (written in Rust) | news.ycombinator.com | 2024-04-04

    a few times, seems interesting. The author's also built a lot of other cool concurrency primitives for Rust as well.

    [0] https://github.com/spacejam/sled

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Klib

    A standalone and lightweight C library

  • Project mention: Factor is faster than Zig | news.ycombinator.com | 2023-11-10

    In my example the table stores the hash codes themselves instead of the keys (because the hash function is invertible)

    Oh, I see, right. If determining the home bucket is trivial, then the back-shifting method is great. The issue is just that it’s not as much of a general-purpose solution as it may initially seem.

    “With a different algorithm (Robin Hood or bidirectional linear probing), the load factor can be kept well over 90% with good performance, as the benchmarks in the same repo demonstrate.”

    I’ve seen the 90% claim made several times in literature on Robin Hood hash tables. In my experience, the claim is a bit exaggerated, although I suppose it depends on what our idea of “good performance” is. See these benchmarks, which again go up to a maximum load factor of 0.95 (Although boost and Absl forcibly grow/rehash at 0.85-0.9):

    https://strong-starlight-4ea0ed.netlify.app/

    Tsl, Martinus, and CC are all Robin Hood tables (https://github.com/Tessil/robin-map, https://github.com/martinus/robin-hood-hashing, and https://github.com/JacksonAllan/CC, respectively). Absl and Boost are the well-known SIMD-based hash tables. Khash (https://github.com/attractivechaos/klib/blob/master/khash.h) is, I think, an ordinary open-addressing table using quadratic probing. Fastmap is a new, yet-to-be-published design that is fundamentally similar to bytell (https://www.youtube.com/watch?v=M2fKMP47slQ) but also incorporates some aspects of the aforementioned SIMD maps (it caches a 4-bit fragment of the hash code to avoid most key comparisons).

    As you can see, all the Robin Hood maps spike upwards dramatically as the load factor gets high, becoming as much as 5-6 times slower at 0.95 vs 0.5 in one of the benchmarks (uint64_t key, 256-bit struct value: Total time to erase 1000 existing elements with N elements in map). Only the SIMD maps (with Boost being the better performer) and Fastmap appear mostly immune to load factor in all benchmarks, although the SIMD maps do - I believe - use tombstones for deletion.

    I’ve only read briefly about bi-directional linear probing – never experimented with it.

  • PGM-index

    🏅State-of-the-art learned data structure that enables fast lookup, predecessor, range searches and updates in arrays of billions of items using orders of magnitude less space than traditional indexes

  • jammdb

    Just Another Memory Mapped Database

  • nebari

    A pure Rust database implementation using an append-only B-Tree file format.

  • Cameleonica

    Safe cryptographic steganographic advanced filesystem

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • ConcurrentSortedDictionary

    ConcurrentSortedDictionary implementation in (c#, .NET 7) . It is implemented using a concurrent B+Tree

  • Project mention: ConcurrentSortedDictionary in CSharp | /r/csharp | 2023-05-29

    It uses a very similar interface to ConcurrentDictionary- the library can be found here: https://github.com/mkrebser/ConcurrentSortedDictionary

  • SegmentQuery

    Dynamically stores additive values and get arbitrary sub-range sums in O(log(n)) time.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

b-tree related posts

  • Announcing jammdb: a simple single-file key/value store

    4 projects | /r/rust | 24 Feb 2023
  • Some key-value storage engines in Rust

    12 projects | /r/rust | 27 Dec 2022
  • Are there a demand for management system of embedded storage like RocksDB? I plan to build one in Rust as the language becoming a core of many popular databases but wonder if there’s a demand. Can’t find any similar project even in other languages.

    6 projects | /r/rust | 30 Nov 2022
  • redb 0.4.0: 2x faster commits with 1PC+C instead of 2PC

    5 projects | /r/rust | 26 Jul 2022
  • File read performance comparison

    1 project | /r/rust | 24 Mar 2022
  • Announcing BonsaiDb v0.2.0: Custom Primary Keys, LZ4 Compression

    1 project | /r/rust | 19 Feb 2022
  • Announcing BonsaiDb v0.1.0: A Rust NoSQL database that grows with you

    5 projects | /r/rust | 5 Feb 2022
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 8 May 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Index

What are some of the best open-source b-tree projects? This list will help you:

Project Stars
1 gods 15,454
2 sled 7,772
3 Klib 4,027
4 PGM-index 760
5 jammdb 259
6 nebari 259
7 Cameleonica 13
8 ConcurrentSortedDictionary 13
9 SegmentQuery 1

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com