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.
01.08.2025 00:29 β π 1 π 0 π¬ 0 π 0@snowytrees.dev.bsky.social
database system of record @ singlestore; making transactions go vroom: author of too many nix flakes
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.
01.08.2025 00:29 β π 1 π 0 π¬ 0 π 0This 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...
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...
25.07.2025 17:16 β π 7 π 3 π¬ 0 π 0Experimental 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...
The motivation they cite in the kernel docs is gpu buffer locking www.kernel.org/doc/html/v6....
13.01.2025 03:10 β π 1 π 0 π¬ 0 π 0Was 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...
13.01.2025 03:09 β π 0 π 0 π¬ 1 π 0Yep agreed. I initially mistook synchronous_commit it for a general async durability flag.
08.01.2025 18:22 β π 1 π 0 π¬ 1 π 0Should 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)
08.01.2025 03:17 β π 2 π 0 π¬ 2 π 0I 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).
08.01.2025 02:56 β π 2 π 0 π¬ 1 π 0So serializability also wouldnβt care about durability.
08.01.2025 01:04 β π 3 π 0 π¬ 1 π 0Synchronous 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.
08.01.2025 01:03 β π 7 π 0 π¬ 1 π 0Since 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...
07.01.2025 10:41 β π 2 π 0 π¬ 0 π 0At 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