Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
_vvhw
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
by
_vvhw
4y ago
Joran from TigerBeetle here! Awesome to hear that you're excited about Zig. Thanks for sharing the link to our repo also—would love to take you on a 1-on-1 tour of the codebase sometime if you'd be up for that!
2.
▲
by
_vvhw
4y ago
Anecdotally again, but I've been coding in Zig since 2020 and have hit I think 2-3 compiler bugs in all that time? The first was fixed within 24 hours, in fact just before I reported it. The others had clear TODO error messages in the
3.
▲
Online card payments still suck
(fynbos.app)
75 points
by
_vvhw
4y ago
|
114 comments
4.
▲
by
_vvhw
4y ago
Yes, we're planning also to add a kill switch to the allocator that we switch on if anything allocates after init().
5.
▲
by
_vvhw
4y ago
Ah, missed that, thanks! I've updated the comment.
6.
▲
by
_vvhw
4y ago
We're aware of this, in fact, and do have a plan to address virtual memory. To be fair, it's really the kernel being dynamic here, not TigerBeetle.
7.
▲
by
_vvhw
4y ago
Static allocation has also made TigerBeetle's code cleaner, by eliminating branching at call sites where before a message might not always have been available. With static allocation, there's no branch because a message is always
8.
▲
by
_vvhw
4y ago
Joran from the TigerBeetle team here. The limit of 70 lines is actually a slight increase beyond the 60 line limit imposed by NASA's Power of Ten Rules for Safety Critical Software. In my experience, in every instance where we've
9.
▲
by
_vvhw
4y ago
It's defense-in-depth. We use what we have available, according to the context: checksums, assertions, hash chains. You can't always use every technique. But anything that can possibly be verified online, we do. Buffer bleeds also
10.
▲
by
_vvhw
4y ago
Sure! Here's an overview with references to the simulator source, and links to resources from FoundationDB and Dropbox: https://github.com/tigerbeetledb/tigerbeetle/blob/main/docs/... We also h
11.
▲
by
_vvhw
4y ago
Thanks! Joran from the TigerBeetle team here. Appreciate your balanced comment. To be fair, we're certainly concerned about logic errors and buffer bleeds. The philosophy in TigerBeetle is always to downgrade a worse bug to a lesser. F
12.
▲
by
_vvhw
4y ago
Joran from the TigerBeetle team here! We have a secret plan for this too. ;)
13.
▲
by
_vvhw
4y ago
Good to be back—Joran from the TigerBeetle team here! Static allocation does make for some extremely hard guarantees on p100 latency. For example, for a batch of 8191 queries, the performance plot is like Y=10ms, i.e. a flat line. And memor
14.
▲
by
_vvhw
4y ago
Thanks! Data Oriented Design runs like a river through TigerBeetle—it's always on our mind. By the way, have you seen Andrew Kelley's Handmade Seattle talk on Practical DOD? [1] [1] https://vimeo.com/649009599
15.
▲
by
_vvhw
4y ago
Thanks! Joran from the TigerBeetle team here. > I would imagine this would be potentially more efficient than having conventional mallocs. Yes, in our experience, static allocation means we use sometimes 10x less memory. For example, Tig
16.
▲
by
_vvhw
4y ago
Thanks! Joran from the TigerBeetle team here. TigerBeetle's storage engine is designed also for range queries, and we have some interesting ideas for our query engine in the works. To be sure, there are some tricky things that crop up,
17.
▲
by
_vvhw
4y ago
Joran from the TigerBeetle team here! TigerBeetle uses Deterministic Simulation Testing to test and keep testing these paths. Fuzzing and static allocation are force multipliers when applied together, because you can now flush out leaks and
18.
▲
by
_vvhw
4y ago
Thanks! Joran from the TigerBeetle team here. This was in fact one of our motivations for static allocation—thinking about how best to handle overload from the network, while remaining stable. The Google SRE book has a great chapter on this
19.
▲
by
_vvhw
4y ago
Basically, and we're huge fans of FoundationDB! As you zoom in, you will see differences. For example, TigerBeetle's data structures are all cache line aligned, and we use static allocation etc. The storage fault model is signific
20.
▲
by
_vvhw
4y ago
Thanks, it's a pleasure! Yes, with packed structs it's important to keep things carefully aligned. Have you seen this post [1] about struct packing? This is what we did for TB's structures, so that we can switch them to `exte
21.
▲
by
_vvhw
4y ago
Thanks @eternalban! Awesome to read your comment here—appreciate the well wishes!
22.
▲
by
_vvhw
4y ago
To be clear, this was out of scope of the bounty, it was a bug in Apple, that TB awarded anyway.
23.
▲
by
_vvhw
4y ago
You could one day replace the state machine with your own and have, for example, Redis.
24.
▲
by
_vvhw
4y ago
You're right.
25.
▲
by
_vvhw
4y ago
And yet there's so much that is there! The Normal protocol. The View Change protocol. The CTRL protocol from PAR (that you don't get to see often). Thousands of lines of code that are incredibly hard to get right. All the fault mo
26.
▲
by
_vvhw
4y ago
Thanks!
27.
▲
by
_vvhw
4y ago
I always love it when this happens. Watching Phil's reaction!
28.
▲
by
_vvhw
4y ago
100%
29.
▲
by
_vvhw
4y ago
I've definitely been there! Finding P1s for full read/write access and then seeing the report downgraded to a P3, and having to have the platform arbitrate and bump it back to P1. However, it was this experience of mine as a part-
30.
▲
by
_vvhw
4y ago
See also: https://news.ycombinator.com/item?id=32788840 TigerBeetle is designed to keep running even if all machines are experiencing radioactive levels of local storage corruption, or else shutdown safely when it detects t
More ›