Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TigerBeetleDB #112

Open
nelsonic opened this issue Nov 29, 2022 · 6 comments
Open

TigerBeetleDB #112

nelsonic opened this issue Nov 29, 2022 · 6 comments
Labels
enhancement New feature or enhancement of existing functionality

Comments

@nelsonic
Copy link
Member

Definitely don't get distracted with this one. I'm just opening to have a reference to return to later ...
Especially if you didn't study accounting ... 🤓

https://tigerbeetle.com/
image

image

image

image

image

TigerBeetle - A Million Financial Transactions per Second in Zig
image

https://github.com/tigerbeetledb/tigerbeetle/blob/main/docs/DEEP_DIVE.md

@nelsonic nelsonic added the enhancement New feature or enhancement of existing functionality label Nov 29, 2022
@nelsonic
Copy link
Member Author

Looks like we might be using this ... 💭

QCon London '23 — A New Era for Database Design with TigerBeetle: https://youtu.be/_jfOk4L7CiY
image

The FASTEST and SAFEST Database: https://youtu.be/sC1B3d9C_sI
image

@nelsonic nelsonic pinned this issue Jun 14, 2024
@nelsonic
Copy link
Member Author

Jepsen test: https://jepsen.io/

@nelsonic
Copy link
Member Author

I've gone down the Zig rabbit hole again ... https://ziglang.org/documentation/master/ 🐇 🕳️ 🙄

@LuchoTurtle
Copy link
Member

I had no idea the fsync issue was so compromising to data integrity and fault tolerance, especially in distributed systems. And to think that major DBs like Postgres simply "band-aid"d' it is incredible.
I don't know how recurring bitrot issues may occur on disk, but even if it's rare, the consequences are too big just to be "brushed aside".

I like the two write-ahead log approach TigerBeetle has to recover from these scenarios and to address their threat model. Although the reliance on io_uring raises some security concerns, personally.

@nelsonic
Copy link
Member Author

@ndrean mentioned building an Elixir client for TigerBeetle in dwyl/learn-zig#1 (comment)
@rbino has: https://github.com/rbino/tigerbeetlex which looks promising:
image

Ref: dwyl/learn-tigerbeetle#1

@rbino
Copy link

rbino commented Jul 16, 2024

I'll put a small disclaimer since I've been mentioned 😄 The project is functional but a little out of date, I was waiting for the Zig 0.12 update to land in TigerBeetle to pick it up again, then Zig came up relatively quickly with 0.13 so I have some backlog to handle.
Basically the project should work correctly for creating Accounts and Transfers with a certain version of TigerBeetle (it should be mentioned in the commits/used in CI) but it doesn't support the new get_account_balances and get_account_transfers queries and their filters. PRs are of course welcome.

Also, since I'm recently going down the Ash rabbit-hole, I was intrigued by the idea of doing a TigerBeetle data layer and/or see if it was possible to use TigerBeetle to back ash_double_entry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or enhancement of existing functionality
Projects
None yet
Development

No branches or pull requests

3 participants