Profile avatar
artem.krylysov.com
Databases and distributed systems. Working at Datadog on Metrics. https://artem.krylysov.com/
47 posts 82 followers 171 following
Regular Contributor
Active Commenter

Fuchsia filesystem is written in Rust and is based on LSM-trees, interesting read fuchsia.googlesource.com/fuchsia/+/re... fuchsia.googlesource.com/fuchsia/+/re...

I love the congestion pricing.

I missed the cold. Makes you feel alive.

Going back to my old key-value store[1] to add a long-requested feature after a very long break reminded me that concurrency in Go can become a minefield the moment you stop "sharing memory by communicating." [1]: github.com/akrylysov/po...

Turns out I missed Codecov getting acquired by Sentry (in 2022).

Are we getting closer to the peak of the AI bubble? Here is a Wi-Fi router with AI! rog.asus.com/networking/r...

The choice of pushing down filtering and aggregation makes sense because the communication overhead can be high even with a logical interface to storage. On the other hand, it blurs the line between storage and compute, which I could see making scaling certain workloads more challenging.

Playdate is finally here after being on backorder for four months!

All I need for Christmas is... Polonius getting stabilized, so I can have zero-copy lending iterators

Another killer mix from Legowelt soundcloud.com/dummyhand/du...

Today we have decided to make @penberg.org 's experimental project, an official Turso project, following its great success. What if instead of just forking SQLite, we were to completely rewrite it - in Rust? That's our moonshot - codename Limbo turso.tech/blog/introdu...

Rust async file IO still looks immature. tokio::fs is essentially sync IO in a thread pool. tokio-uring is not actively maintained and is not portable. sled.rs notably relies on a custom thing called rio. What someone writing a database in Rust should pick? I might just start with sync IO.

It's a bummer that the range iterators introduced in Go 1.23 are not inlined and may cause extra allocations in some cases. I ended up creating a custom iterator interface to workaround the allocations. Hopefully, future Go versions improve this github.com/golang/go/is...

Go Go Curry closed all of its NYC locations. End of an era.

I'm surprised the Delta Lake paper never mentions log-structured merge-trees. While serving different purposes, conceptually the Delta Lake design is similar to the design of LevelDB and its derivatives.

Has anyone benchmarked S3 compatible object stores like DigitalOcean Space or Cloudflare R2? I personally use DO Space to store backups and to host my audio library with github.com/akrylysov/bs..., but not sure how it would work for latency and/or throughput sensitive production workloads.

Just published a blog post on how we rebuilt the timeseries index at Datadog (in Rust!) to solve scaling challenges www.datadoghq.com/blog/enginee...

I've been looking for a low tech Google Analytics replacement. Has anyone built a tool yet that rolls up Nginx logs into a SQLite database?

"Your domain is now registered with Cloudflare". Switching off GoDaddy was long overdue.

A hand-rolled, not yet optimized binary serializer is twice as fast as the Go implementation of Apache Arrow. Is the issue with Go or the Arrow format itself? I'm leaning towards the latter, but I haven't had a chance to run benchmarks in Rust yet.

Redis switches licenses, acquires Speedb to go beyond its core in-memory database techcrunch.com/2024/03/21/r...

ChatGPT, Gemini and Claude all fail miserably when asked to fix Rust lifetime issues.

There are still many large projects that rely on LevelDB. Are there any legit reasons to use it over RocksDB, aside from "it works well enough"?

Bluesky feels like Twitter 10 years ago, in a good way.

How RocksDB works artem.krylysov.com/blog/2023/04...