Jordan Isaacs
@snowytrees.dev
49 followers 34 following 14 posts
database system of record @ singlestore; making transactions go vroom: author of too many nix flakes
Posts Media Videos Starter Packs
snowytrees.dev
Google blacklisted the iCloud private relay ip addresses. Been broken for ages while now. On iOS safari you need to press the “show ip address” option and then try searching again and it works.
snowytrees.dev
Everyone complains about fighting the compiler, but the true boss battle is the linker. I’d rather have a thousand line c++ template error than an utterly unhelpful 5 line linker error.
snowytrees.dev
This is really cool, TUM has a course on transaction systems theory (taught by Thomas Neumann), with open access slides in English. Stumbled upon it when one of the slides showed up in a search for commutative serializability theory.
db.in.tum.de/teaching/ss2...
db.in.tum.de
snowytrees.dev
I wrote up on bounding retries of write-write conflicts in MVCC+2PL. There is surprisingly little publicly written on how databases can retry, so doing my part to fill that gap in :) snowytrees.dev/blog/boundin...
Bounding retries of write-write conflicts in MVCC+2PL | snowytrees.dev
snowytrees.dev
snowytrees.dev
Experimental off-cpu profiling landed for otel ebpf profiler 👀. It also was a blocker for using its stack unwinding as a library. Hopefully that means user space stacktraces and profiling will come soon(ish) to inspektor gadget for interactive perf analysis on kubernetes.

github.com/open-telemet...
Off CPU profiling by florianl · Pull Request #196 · open-telemetry/opentelemetry-ebpf-profiler
This is the code that backs #144. It can be reused to add features like requested in #33 and therefore can be an alternative to #192. The idea that enables off CPU profiling is, that perf event and...
github.com
snowytrees.dev
Was searching around for open source uses of wound wait/wait die and surprisingly found it is used in the Linux kernel github.com/torvalds/lin...
github.com
snowytrees.dev
Yep agreed. I initially mistook synchronous_commit it for a general async durability flag.
snowytrees.dev
Should have read it closer the first time :) Since it isn’t a system wide setting, my personal way to think about it would be readers aren’t defining durability, they are defining if they allow dirty reads. Since you aren’t wholesale changing the definition of commit (that async dura does)
snowytrees.dev
I read deeper into synchronous_commit and it seems like a flavor of early lock release that can be turned on per-txn. But b/c they are encoding commit dependencies by using the wal log, there is no option for non-dirty reads. (If you consider committed to also mean durable).
snowytrees.dev
So serializability also wouldn’t care about durability.
snowytrees.dev
Synchronous commmit means txns are committed after being durable. Isolation levels give guarantees around committed data. So disabling synchronous commit means durability is now separate from the meaning of “commit”. This behavior general to all databases that are ACID and can do async durability.
snowytrees.dev
Since you have the opportunity to build your transaction subsystem from scratch I highly recommend graefe’s on transactional concurrency control. Its got novel ideas, citations going back to the 80s, and some spicy opinions. Pessimistic concurrency control >>> link.springer.com/book/10.1007...
On Transactional Concurrency Control
This book contains a number of chapters on transactional database concurrency control.
link.springer.com
snowytrees.dev
At singlestore we embed a wasmtime engine and compile/run wasm UDF functions docs.singlestore.com/cloud/refere...
snowflake/databricks support Python udfs. To go along with the notebook workflow