orioledb VS buntdb

Compare orioledb vs buntdb and see what are their differences.

orioledb

OrioleDB – building a modern cloud-native storage engine (... and solving some PostgreSQL wicked problems)  🇺🇦 (by orioledb)

buntdb

BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support (by tidwall)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
orioledb buntdb
25 7
2,631 4,390
3.6% -
9.3 0.0
14 days ago 28 days ago
C Go
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

orioledb

Posts with mentions or reviews of orioledb. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-19.
  • Supabase Acquires OrioleDB
    1 project | news.ycombinator.com | 15 Apr 2024
    hey hn, supabase ceo here

    we've been fans of Oriole for a while now and have been long-time supporters

    in case you're jumping straight to the comments: OrioleDB is a table storage extension for Postgres. it acts as a drop-in replacement for the default postgres storage engine using the Table Access Method APIs (pluggable storage). the storage engine changes the representation of table data on disk. its architecture is designed to take advantage of modern hardware like SSDs and NVRAM. it implements MVCC, the feature that allows allows multiple connected users to see different versions of the data depending on when their transaction started, via an UNDO log rather than tuple versioning.

    one caveat: it requires several patches to the postgres core to expand on the type of features external storage engines extensions can implement. for this reason it could be a while before you see this land as a default engine on supabase. we will probably make it available as an option for customers who want to experiment - no timeline is decided yet.

    finally, we have been working with the team on decoupled storage and compute [0]. this is experimental but promising, especially with some recent advances in S3 (specifically Express One Zone [1]). we have a demonstration in the blog post.

    i'll message Alexander in case there are any technical questions

    [0] https://github.com/orioledb/orioledb/blob/main/doc/usage.md#...

    [1] https://aws.amazon.com/s3/storage-classes/express-one-zone/

  • Jepsen: MySQL 8.0.34
    4 projects | news.ycombinator.com | 19 Dec 2023
    When I saw "cloud native" I was expecting S3-ish the way Neon does it but they say it's experimental: https://github.com/orioledb/orioledb/blob/beta4/doc/usage.md... and for them to say "beta, don't use in production" and then a separate "experimental" label must make it really bad
  • When Did Postgres Become Cool?
    3 projects | news.ycombinator.com | 9 Aug 2023
    There are some interesting things in development to potentially solve that problem.

    Here's a recent HN submission about OrioleDB of the more promising ones: https://news.ycombinator.com/item?id=36740921

    Source code: https://github.com/orioledb/orioledb

  • PostgreSQL: No More Vacuum, No More Bloat
    6 projects | news.ycombinator.com | 15 Jul 2023
    https://github.com/orioledb/orioledb/blob/main/doc/arch.md

    > - PostgreSQL is very conservative (maybe extremely) conservative about data safety (mostly achieved via fsync-ing at the right times), and that propagates through the IO stack, including SSD firmware, to cause slowdowns

    This is why our first goal is to become pure extension. Becoming part of PostgreSQL would require test of time.

    > - MVCC is very nice for concurrent access - the Oriole doc doesn't say with what concurrency are the graphs achieved

    Good catch. I've added information about VM type and concurrency to the blog post.

    > - The title of the Oriole doc and its intro text center about solving VACUUM, which is of course a good goal, but I don't think they show that the "square wave" graphs they achieve for PostgreSQL are really in majority caused by VACUUM. Other benchmarks, like Percona's (https://www.percona.com/blog/evaluating-checkpointing-in-pos...) don't yield this very distinctive square wave pattern.

    Yes, it's true. The square patters is because of checkpointing. The reason of improvements here is actually not VACUUM, but modification of relevant indexes only (and row-level WAL, which decreases overall IO).

  • OrioleDB Reached Beta
    1 project | news.ycombinator.com | 19 Jun 2023
  • OrioleDB – building a modern cloud-native storage engine for Postgres
    1 project | news.ycombinator.com | 26 May 2023
  • The Part of PostgreSQL We Hate the Most (Multi-Version Concurrency Control)
    2 projects | news.ycombinator.com | 26 Apr 2023
    I took a look at https://github.com/orioledb/orioledb which is a project attempting to remedy some of Postgres' shortcomings, including MVCC. It looks like they're doing something similar to MySQL with a redo log, as well as some other optimizations. So maybe this is the answer.
  • Production grade databases in Rust
    14 projects | /r/rust | 21 Apr 2023
    You don’t need a database written (or rewritten in Rust). we’re working to make Postgres scalable for the next decade too https://github.com/orioledb/orioledb
  • Features I'd Like in PostgreSQL
    14 projects | news.ycombinator.com | 28 Jan 2023
    > I’d love to see B-Tree primary storage option. Aka store the row data inside the primary index.

    It is coming: https://github.com/orioledb/orioledb

  • Supabase-JS v2
    4 projects | news.ycombinator.com | 16 Aug 2022
    sorry to underwhelm!

    if you like Neon, then I imagine you like their database branching model? On Friday we announced[0] our 500K investment into OrioleDB, who are working on branching[1], with the plan to upstream these changes into Postgres core.

    It would be possible for us to run a fork of Postgres today which supports branching, but our long-term view is that developers would prefer a non-forked version of Postgre (to mitigate any risk of lock-in). So we will work on adding branching to Postgres core in the background, which will be a benefit to the entire Postgres ecosystem.

    [0] Announcement:https://supabase.com/blog/supabase-series-b#where-were-going

    [1] https://github.com/orioledb/orioledb/wiki/Database-branching

buntdb

Posts with mentions or reviews of buntdb. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-15.
  • PostgreSQL: No More Vacuum, No More Bloat
    6 projects | news.ycombinator.com | 15 Jul 2023
    Experimental format to help readability of a long rant:

    1.

    According to the OP, there's a "terrifying tale of VACUUM in PostgreSQL," dating back to "a historical artifact that traces its roots back to the Berkeley Postgres project." (1986?)

    2.

    Maybe the whole idea of "use X, it has been battle-tested for [TIME], is robust, all the bugs have been and keep being fixed," etc., should not really be that attractive or realistic for at least a large subset of projects.

    3.

    In the case of Postgres, on top of piles of "historic code" and cruft, there's the fact that each user of Postgres installs and runs a huge software artifact with hundreds or even thousands of features and dependencies, of which every particular user may only use a tiny subset.

    4.

    In Kleppmann's DDOA [1], after explaining why the declarative SQL language is "better," he writes: "in databases, declarative query languages like SQL turned out to be much better than imperative query APIs." I find this footnote to the paragraph a bit ironic: "IMS and CODASYL both used imperative query APIs. Applications typically used COBOL code to iterate over records in the database, one record at a time." So, SQL was better than CODASYL and COBOL in a number of ways... big surprise?

    Postgres' own PL/pgSQL [2] is a language that (I imagine) most people would rather NOT use: hence a bunch of alternatives, including PL/v8, on its own a huge mass of additional complexity. SQL is definitely "COBOLESQUE" itself.

    5.

    Could we come up with something more minimal than SQL and looking less like COBOL? (Hopefully also getting rid of ORMs in the process). Also, I have found inspiring to see some people creating databases for themselves. Perhaps not a bad idea for small applications? For instance, I found BuntDB [3], which the developer seems to be using to run his own business [4]. Also, HYTRADBOI? :-) [5].

    6.

    A usual objection to use anything other than a stablished relational DB is "creating a database is too difficult for the average programmer." How about debugging PostgreSQL issues, developing new storage engines for it, or even building expertise on how to set up the instances properly and keep it alive and performant? Is that easier?

    I personally feel more capable of implementing a small, well-tested, problem-specific, small implementation of a B-Tree than learning how to develop Postgres extensions, become an expert in its configuration and internals, or debug its many issues.

    Another common opinion is "SQL is easy to use for non-programmers." But every person that knows SQL had to learn it somehow. I'm 100% confident that anyone able to learn SQL should be able to learn a simple, domain-specific, programming language designed for querying DBs. And how many of these people that are not able to program imperatively would be able to read a SQL EXPLAIN output and fix deficient queries? If they can, that supports even more the idea that they should be able to learn something different than SQL.

    ----

    1: https://dataintensive.net/

    2: https://www.postgresql.org/docs/7.3/plpgsql-examples.html

    3: https://github.com/tidwall/buntdb

    4: https://tile38.com/

    5: https://www.hytradboi.com/

  • Is there a nice embedded json db, like PoloDB (Rust) for Golang
    8 projects | /r/golang | 5 Nov 2022
    https://github.com/tidwall/buntdb -> i think this one you might want
  • Open Source Databases in Go
    52 projects | /r/golang | 8 Jun 2022
    buntdb - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support.
  • Alternative to MongoDB?
    9 projects | /r/golang | 12 May 2022
    BuntDB for NoSQL
  • Path hints for B-trees can bring a performance increase of 150% – 300%
    3 projects | news.ycombinator.com | 30 Jul 2021
    BuntDB [0] from @tidwall uses this package as a backing data structure. And BuntDB is in turn used by Tile38 [1]

    [0] https://github.com/tidwall/buntdb

  • The start of my journey learning Go. Any tips/suggestions would greatly appreciated!
    6 projects | /r/golang | 29 Jun 2021
  • In-memory caching solutions
    4 projects | /r/golang | 1 Feb 2021
    I've used BuntDB and had a great experience with it. It's basically just a JSON-based key-value store. I'm a huge fan of the developers other work (sjson, gjson, jj, etc) and stumbled on it while looking for a simple, embedded DB solution. It's not specifically a cache, though--just a simple DB, so you'd have to write the caching logic yourself.

What are some alternatives?

When comparing orioledb and buntdb you can also consider the following projects:

neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.

bolt

tsbs - Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data

badger - Fast key-value DB in Go.

timescale-analytics - Extension for more hyperfunctions, fully compatible with TimescaleDB and PostgreSQL 📈

nutsdb - A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.

postgres - PostgreSQL with extensibility and performance patches

go-memdb - Golang in-memory database built on immutable radix trees

plv8 - V8 Engine Javascript Procedural Language add-on for PostgreSQL

goleveldb - LevelDB key/value database in Go.

promscale - [DEPRECATED] Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.

ledisdb - A high performance NoSQL Database Server powered by Go