A deep dive to how metrics are stored and queried. Inverted indexes, roaring bitmaps, and ... gorillas? www.bitsxpages.com/p/how-metric...
Almog
Almog
@almog.xyz
Favorite Buzzwords: Kafka Streams | SlateDB | Stream Processing | Distributed Databases co-founder @ https://responsive.dev
2.8K followers234 following145 posts
The team worked insane hours to get this release ready and we've finally shipped it! We built a first of its kind, prometheus-compatible database that is object native. ~22x cheaper than AWS AMP and stupid easy to operate. www.opendata.dev/blog/introdu...
Databases have strange economic incentives that end up making them "worse" over time. The problem is an asymmetry between who benefits from innovations at first (database companies) and who benefits in the long run (hyperscalers that sell hardware). Blogged: www.bitsxpages.com/p/the-broken...
I regularly get asked "how do you create your diagrams for your blogs"? Recently I've been using my own tool, and I'm open sourcing it! Yuzudraw is a visual editor for ASCII that has a token-efficient DSL that lets agents generate/modify your diagrams. Give it a ⭐! github.com/agavra/yuzud...
“Gradually, then suddenly.” That’s how adoption works when you’re building something new. Opendata is still "gradually" but 100 stars with $0 spent on marketing is a good start. Back to building! github.com/opendata-oss...
I implemented prefix compression for SlateDB & noticed benchmarks looked "worse". Fell down a rabbit hole. Turns out I was thinking about compression backwards... Wrote up my learning: www.bitsxpages.com/p/the-mathem...
Can you beat 180KB? I created a challenge to reduce a dataset as much as possible 🏆 my approach uses delta encoding & prefix compression + zstd(22) compression to reduce 25MB -> 180KB github.com/agavra/bit-g...
I fixed the problem with reviewing code written by Claude in "accept edits on" mode: github.com/agavra/tuicr would love to know what you think, and if you want to contribute to an OSS rust project there's a bunch of open issues to pick up!
I'll die on this hill: Sorted String Tables (SSTs) are the single most important data structure for modern DBs. They lean in to the limitations of SSDs and Object Storage, making them (and similar layouts) the best choice for many databases. Blogged in detail: www.bitsxpages.com/p/sorted-str...
The inner join between sets of people who build databases, write, and draw? Low cardinality. I'm in that set, so I'm starting a blog! Here's my first post: www.bitsxpages.com/p/frameworks...
Calling database nerds in SF! I'm covering SlateDB at the systems meetup next Wednesday (10/29). If you're around, I'd love to meet you in person (that way you'll have proof I'm not just an AI bot). 👉 luma.com/e7feg2i6
I recently implemented Gorilla encoding (www.vldb.org/pvldb/vol8/p...) for a SlateDB PR. Pretty cool stuff - easy to understand but really powerful. Here it is, explained by a gorilla.
Almog reposted
Today marks SlateDB’s one year anniversary! It’s been a lot of fun. Thanks to @rohanpd.bsky.social @flaneur2024.bsky.social @almog.ai @vigneshc.bsky.social @paulbutler.org Jason Gustafson, David Moravek, and many others for joining the project. 😀
Almog reposted
SlateDB now has clones 🤯 Users can clone an existing DB's data to a new location. It's nearly instantaneous since it references the data from the old bucket rather than copying. Writes to the clone update the new location. Compaction lazily merges old data into the new directory./ht @responsive.dev
Almog reposted
Should you use Kafka? If so, when? And what are the tradeoffs presented by the dizzying variety of Kafka-adjacent technologies? I hope that my latest blog post provides unique and useful answers to these questions. Let me know what you all think! 👉 www.responsive.dev/blog/why-whe...
Almog reposted
How did Responsive simplify its architecture and achieve monstrously high availability with unlimited scale potential? Co-founder @almog.ai will share how replacing RocksDB with #ScyllaDB in #Kafka Streams led to big wins for their team at Monster Scale Summit. www.scylladb.com/monster-scal...
Kafka Streams 101: Windows & Time! 🕰️ What's the difference between event, stream and wall clock time? 🪟 What are the four different types of windows? ⁉️ What are the important error messages and metrics, and what do they mean? 👉 Read the full lesson here: www.responsive.dev/blog/windows...
🙏 A @notion.com feature on my wishlist: @jetbrains.com IDEs have this features that lets you select the open file in the nav hierarchy. I've always wanted to be able to do this in Notion so I can more easily explore without navigating away from a page.
There are some learnings that only come from having seen a wildly successful technology go from a nascent project to ubiquitous. These insights can change the trajectory for new tech. Jason's summary about error handling is a great read for practical engineers: github.com/slatedb/slat...
Almog reposted
Nice short read. Got me wondering if we should support SI in SlateDB. So far I’ve been pretty hardline on just SSI.
I just discovered @localfirst.fm and can’t help but compare the parallels between that movement and the resurgence of popularity of embedded data systems & BYOC (or even on prem) tech. “Serverless” has its uses, but the limitations are increasingly clearer.
I wish @xkcd.com published an autobiography. Somehow their work constantly hits bullseye and I’d love to get just a glimpse of the story behind the person that generates creativity in the same league as history’s greatest artists.
Almog reposted
[2/2] If no data exists, zombies won't get fenced—there’s no epoch to check against! Solution: Borrowing a trick from ScyllaDB & Cassandra, we retain tombstones for longer than needed (e.g., 12 hrs). This ensures zombies are fenced before cleanup. 🕰️ More details in an excellent post 👇
I've learned more about ACID in the last two days reviewing the discussion on github.com/slatedb/slat... than I have in the last decade in industry. A big takeaway is that using object store for durability opens a new can of worms that existing systems can ignore (high write latency).
Almog reposted
Kafka Streams: 25 improvements in time for 2025! Big wins in performance (KIP-925: Rack Aware Assignment), customization (KIP-924: Custom Task Assignment, KIP-954: Custom Storage) and monitoring (KIP-1091: thread state metrics) - just to name a few. See them all: www.responsive.dev/blog/kafka-s...