Nikhil Benesch
benesch.bsky.social
Nikhil Benesch
@benesch.bsky.social
Systems engineer @turbopuffer.bsky.social. Former CTO @materialize.com.
tpuf Python client went async today! 🐡 ❤️ 🐍

Async client perf slightly edges out sync client perf under heavy query load.

github.com/turbopuffer/...
June 10, 2025 at 7:08 PM
Things move fast at turbopuffer. Now puffin' in aws/us-east-1 and aws/eu-central-1 too.
March 7, 2025 at 6:06 PM
With snapshot isolation the situation seems more complicated because transactions need to be described in terms of their read timestamp *and* commit timestamp. Here's my attempt at stating the external consistency property provided by strong snapshot isolation.
December 10, 2024 at 4:07 AM
Those are good! But the part I'm having trouble with is formalizing the external consistency ("linearizability") guarantee. Spanner defines external consistency in terms of transaction commit timestamps, which is possible because Spanner's commit timestamps reflect the serializable order.
December 10, 2024 at 4:07 AM
Here's a more nuanced compatibility table. Does this seem right?

The story is more interesting at this level of granularity.
December 3, 2024 at 8:08 PM
Annoying detail about S3's new `If-Match` implementation: these writes can fail with 409 Conflict (docs: docs.aws.amazon.com/AmazonS3/lat...)

I guess you're just meant to retry, but it's not clear to me why S3 wouldn't just retry internally. The whole point is that the requests are now idempotent!
November 26, 2024 at 4:54 AM
Mission accomplished! I’ll be living in luxury with eight (8!) upcoming subway arrivals displayed on my Tidbyt.

Developing for the Tidbyt was a mostly pleasant experience. Needing to hand roll a protobuf parser in Starlark was a curveball though: github.com/benesch/tidb...
November 25, 2024 at 5:22 AM
Working on the important stuff today: teaching my Tidbyt to display subway arrival times for more than two trains at a time. Here’s what the current app looks like.
November 25, 2024 at 3:24 AM