HN user

levkk

2,535 karma

Sharding Postgres. <https://pgdog.dev>

lev@pgdog.dev

Posts72
Comments263
View on HN
news.ycombinator.com 10d ago

Ask HN: Add flag for AI-generated articles

levkk
1100pts460
pgdog.dev 15d ago

Why we built yet another Postgres connection pooler

levkk
262pts64
pgdog.dev 16d ago

Why we built yet another Postgres connection pooler

levkk
3pts0
pgdog.dev 1mo ago

PgDog is funded and coming to a database near you

levkk
548pts261
www.ubicloud.com 1mo ago

PostgreSQL and the OOM Killer: Why We Use Strict Memory Overcommit

levkk
5pts3
pgdog.dev 3mo ago

Shard Postgres with One Command

levkk
1pts0
pgdog.dev 3mo ago

Reshard Button

levkk
2pts0
circleback.ai 4mo ago

We fixed Postgres connection pooling on serverless with PgDog

levkk
3pts0
github.com 4mo ago

Show HN: PgDog – Scale Postgres without changing the app

levkk
326pts63
news.ycombinator.com 5mo ago

PgDog: Connection pooler, load balancer and sharder for PostgreSQL

levkk
1pts0
pgdog.dev 8mo ago

Shard Your Database

levkk
1pts0
pgdog.dev 8mo ago

Shard Your Database

levkk
3pts0
pgdog.dev 8mo ago

Shard Your Database

levkk
1pts0
pgdog.dev 10mo ago

Writing Nothing but Docs for a Week

levkk
2pts0
docs.pgdog.dev 10mo ago

Pub/Sub

levkk
2pts0
docs.pgdog.dev 10mo ago

Two-Phase Commit

levkk
3pts2
github.com 10mo ago

Implement two-phase commit (2pc)

levkk
2pts0
pgdog.dev 10mo ago

Primary Keys in Sharded Databases

levkk
2pts0
pgdog.dev 10mo ago

PgDog adds support for Rust plugins

levkk
3pts0
pgdog.dev 11mo ago

Scaling Postgres Listen/Notify

levkk
1pts0
pgdog.dev 11mo ago

Sharding Postgres at Network Speed

levkk
2pts0
pgdog.dev 11mo ago

Resharding Postgres at 6.5 GB per second

levkk
2pts0
pgdog.dev 1y ago

Sharding multi-tenant Postgres databases

levkk
2pts0
github.com 1y ago

Show HN: PgDog – Shard Postgres without extensions

levkk
307pts80
pgdog.dev 1y ago

Multi-tenant Postgres can be easy

levkk
4pts0
pgdog.dev 1y ago

Replicating Postgres Production Traffic

levkk
4pts2
pgdog.dev 1y ago

PgDog vs. PgBouncer

levkk
3pts0
pgdog.dev 1y ago

Sharding a Real Rails App

levkk
2pts0
pgdog.dev 1y ago

Sharding Mastodon, Part 1

levkk
4pts0
pgdog.dev 1y ago

Building for Production

levkk
4pts0
Back to Kagi 13 hours ago

Kagi is amazing. Worth the subscription, 10 times over. I don't have to worry about sponsored search results, or slop from the "AI overview". High quality results, like Google used to be.

For a price of two cups of coffee.

This is nonsense. Tokio was built for I/O, not crunching numbers. Most programmers know to use spawn_blocking to crunch 10MB JSON, if needed.

Additionally, the proposed workload per thread model will be orders of magnitude slower than Tokio for I/O-bound workloads, which most applications are.

AI is a bad tool 9 days ago

I think most tools, according to the UNIX philosophy, do one thing (and do it well). AI is a tool that does _a lot_ of things...to various degrees of success. While you can verify that the output of `sed` or `grep` is valid, you can't with 10k lines of code you have no context on (without _significant_ effort).

Same with Gimp, Firefox, and your terminal. Tools, all, do many easily verifiable things. AI isn't verifiable without an existing framework, and that's why it's so "good" at rewriting code from language A to language B, but not at zero-to-one building real world software.

Glad you like it. It was built to fix some of PgBouncers shortcomings that we ran into at Instacart many years ago, and to have a stronger foundation for scaling Postgres horizontally (that's sharding)!

Ouf. I don't know. I don't want to call you out without evidence -- I myself make benchmark claims all the time -- but 50% improvement in OLTP seems suspicious. I get that you used a standard benchmark, and I don't even know what it entails, but my spidey sense is going off. Perhaps, some trade off somewhere that won't make it to prod because it breaks MVCC -- and yes, I saw that it passes regression tests.

Just checking, is fsync on? :) Regression tests don't catch bad IO patterns afaik.

Anyway... sounds like a fun project to work on!

Handling cursors is tough - they are very much session-level objects, so even if we, say, pinned your client while it uses that cursor, which would work, that would decrease the performance of connection pooling overall.

So, what's better, breaking your app initially so you know to remove that feature, or letting it work silently while the connection pool isn't 100% in transaction mode? Tough call.

From the strictest CAP theorem definition, that's correct, it is not. But, it's pretty close. I know that in the database world, that's not a good answer, but in practice, it will deliver the vast majority of messages, so maybe that's good enough? We'll see.

We show that it's possible to come close without breaking the DB or the app, but I suspect, it's not quite yet at the level you'd expect from a _durable_ work queue, e.g., Kafka. Not going to replace that one anytime soon.

Very cool. At first, I thought it was yet another LLM-generated demo, but no: original work of art. Super cool. Transpiling into C does seem easier than LLVM IR, and letting GCC optimize seems like this might actually work.

Excited to see the compiler implementation when it's out -- a lot to learn from.

Fable 5 is Back 21 days ago

I cancelled Claude. The harness is kinda broken, GPT 5.5 is good, and GLM 5.2/Deepseek is good too (with pi, especially). Just not worth the trouble. And I'm not going to pay two subscriptions.

CRUD apps don't usually delete in bulk. It's also hard to structure partitions in a way that doesn't wipe out months of important business data -- this is why teams often ETL their DB into Snowflake/ClickHouse and only then drop partitions. That makes it hard for the app to use that data again.

The better approach is either to change your storage engine (e.g. OrioleDB is working on adding the undo log to Pg), or to shard which distributes the vacuum load across multiple servers.

This just checks if the package is installed, not if the installed version is infected. Presumably, if you (me...) haven't run `yay -Syu` in a while (months), we're fine, right? ...Right?

Goddamit, don't make me reinstall Arch, took me a week last time.

Update: archinstall rocks, back in business after like 15min.

Yeah good callout. We'll add rendezvous soon enough. Until then, being compatible with Postgres partitions has been advantageous -- while we build everything out, people were able to migrate to PgDog for the query routing layer while doing the resharding in Postgres.

Adding a sharding function in our architecture is relatively straightforward. We also support plugins which can control the flow (and direction) for queries, so our users can add their own (and they do!).

Two big ones:

1. Control plane to manage multi-node deployments; "works out of the box" experience to make PgDog easy to deploy and use

2. QoS (quality of service): automatically block bad queries from taking down the database

Last but not least, you get SLA-backed support from us (up to P0).

New features are broken down into two categories:

1. Sharding / running Postgres at scale: always open source.

2. Infra management / making it easy to run PgDog at scale: enterprise.