frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

PgDog is funded and coming to a database near you

https://pgdog.dev/blog/our-funding-announcement
79•levkk•1h ago

Comments

htrp•1h ago
>PgDog is a sharder, connection pooler and load balancer for PostgreSQL. Written in Rust, PgDog is fast, reliable and scales databases horizontally without requiring changes to application code.

Still trying to figure out how this works technically, is the performance gain really just re-write in rust?

levkk•1h ago
Not quite. The performance gain is to bring those features to Postgres!
VeninVidiaVicii•58m ago
Oh thanks for clearing that up.
levkk•56m ago
Sorry, out walking the dog (not a pun). I'll post more details in a few.
Pet_Ant•1h ago
I hope people pronounce this as „pig-dog” and has a mascot that looks like „man-bear-pig”
levkk•1h ago
Crap! Missed opportunity.
fulafel•1h ago
Does making it "just work" here come with any caveats vs standard PG?
levkk•58m ago
Getting there! Cross-shard writes do because of 2pc. Reads are eventually consistent.
danielheath•57m ago
Given that they implement connection pooling and sharding, I'm going to say "not at all".

You _could_ make that ACID, but it's not going to be faster than a single machine.

melon_tsui•1h ago
2M qps in production is legit. Curious how much RAM and CPU that takes on average per deployment though
levkk•36m ago
Depends. Only pooling, very little. Load balancing/sharding needs to parse queries, so a bit more. Could go up to a GB per pod, sometimes more if you have a lot of unique SQL queries (unique by text, not by parameters). We cache query ASTs to avoid parsing them on each request - that's the bulk of memory usage.
skiwithuge•57m ago
we are using PG bouncer in production. Interesting, I will follow the evolution of this project
kjuulh•56m ago
I tried out PgDog a while ago, but couldn't find a good way of handling the config except for having this users / pgdog toml file, which makes it a bit awkward to handle in kubernetes where we often do multi-tenancy in postgres - or rather having many databases on the same instance(s), and have them come and go at will.

Also had an issue with it because it cached authentication requests when doing passthrough it seems, I'd changed the roles password, but it kept using the old one, which was no bueno ;).

PgDog seems to make more sense when you really care about a few databases that need massive scale, rather than a simple proxy in front of postgres. I'll keep following the development though, it is much needed in this space, postgres can use all the investment it can get to get it past the single machine scale that it excels at currently.

maherbeg•39m ago
Happy to chat about this, but we use the AWS secrets manager flowing into External Secrets Operator to generate a pgdog_users.toml. We then kick off a workflow to refresh things, but our rate of change here is much smaller than a super dynamic multi-tenant system.

You could also build a watcher side car that watches for changes of the pgdog_users.toml and have pgdog refresh itself then too with this combination. We thought about that but prefer to control the reloads for our needs.

jeremyjh•55m ago
It’s surprising they don’t mention advantages over other sharding systems like Citus. Maybe it’s just the fact that it’s only a proxy and not core extensions? But that could limit capabilities.
levkk•36m ago
We do, just buried deep in our blog: https://pgdog.dev/blog/pgdog-vs-citus

The same old processes vs. threads debate, plus having the ability to scale the coordinator past a single machine. So, if you're OLTP, definitely consider PgDog. OLAP - Citus still wins because of its advanced query engine. We'll get there.

ParadisoShlee•53m ago
I've moved from pgbouncer to pgdog a few months ago without issue. Huge fan.
moralestapia•53m ago
Cool work, thanks.

Wrt. the pooler, how do you compare with pgbouncer?

I'm interested because I have a postgres instance, low-traffic but still like ... tens of r(eads)ps. I was not running anything close to the machine limits but still added pgbouncer to improve performance and didn't see a noticeable difference. I was stress-testing the machine obv., I'm not talking about the 10 rps, lol.

For context, my numbers were something like 10k rps +/- 1k vanilla postgres and like 9k rps +/- 1k with pgbouncer in front of it. So ... slightly slower but big error bars so I wouldn't say for sure. I ended up not using pgbouncer as the benefit was immaterial.

Also yeah, in case you want to check it out, it's the db that backs this project: https://httpstate.com.

levkk•38m ago
Old benchmark, but still good: https://pgdog.dev/blog/pgbouncer-vs-pgdog
faangguyindia•50m ago
i am not using any tool like pgbouncer and have not run into any issues so far. Is it even required these days? Have you guys tested your setup without these connection poolers/multiplexers?
rswail•4m ago
Each connection is a process on the server, that takes up both CPU and RAM, it will run out.

This solves the thousands of clients case for read in a way that is transparent to the clients.

Yes it's required at large scale, especially if you want to distribute reads or shard to a particular geographical area.

simonw•50m ago
Suggestion: have more than just helm and Docker in your quickstart documentation. I'd like to try this out just to see what it can do, but not quite enough to fire up one of those systems for it.

Is there a binary I can run directly?

levkk•39m ago
We should add it to brew/apt/etc for sure. Also, we could add it to crates.io so you could do something like `cargo install pgdog`. Distribution, distribution, distribution.
simonw•25m ago
I also appreciate GitHub releases with pre-compiled binaries for different platforms. The more options the better!
e12e•28m ago
In addition - the docker compose example doesn't set up any data volumes for the postgres instances - that might be considered a bug?

Then again, sharding on a single host probably isn't very useful anyway - but it might work with docker in swarm mode?

bourbonproof•47m ago
the reason mongo is a joy to use in scaled env is because no additional setup/software needed and all drivers natively support secondary/primary writes/reads and topological changes. so it's end to end, and adding is as a new proxy in frontend of postgres leads to all clients being incompatible or the code itself has no control anymore about when to use a secondary and what allowed stall is acceptable for a particular query. Any solutions to this by pgdog?
saghm•35m ago
> all drivers natively support secondary/primary writes/reads and topological changes.

Expanding on that a bit, mongo drivers even have a shared specification of the state machine for monitoring topology changes[1] and algorithm for selecting the server to send an operation to[2] (along with various declarative test cases that the drivers use to validate them alongside the specs in the repo). I think people sometimes underestimate how important the client-side work is to this sort of experience; for all of the faults mongo has had over the years, the amount of investment that they put into the client libraries is something I've never seen anywhere else (although having spent several years working on some of these libraries, my take is likely very biased).

[1]: https://github.com/mongodb/specifications/blob/master/source... [2]: https://github.com/mongodb/specifications/blob/master/source...

maherbeg•38m ago
I'm a big PGDog fan! It really helped us scale our connection proxy needs pretty substantially and it has great features like auto mode to support Aurora failovers neatly. It's infra that just works.
chrisvenum•35m ago
I am trying to gain a basic understanding of this: Right now I have a 4TB DB on one large box. Is the idea that using a proxy tool like PGDog I could spin up 8 smaller boxes handling ~500GB each and then one medium box for the proxy?

Right now I have a project that has very heavy write traffic from multiple services and a web app that reads from this. We are starting to hit the point where no amount of indexing, query optimisation, caching or box upgrades is helping us. We are looking at maybe moving the bulk of the static data to clickhouse to reduce the DB size but I would love to hear if PgDog or other kind of sharding could be useful for this use case.

999900000999•34m ago
How are 3 developers going to QA this properly ?
pantulis•19m ago
How are 3 developers going to sell that to any company? Procurement will have a field day.
yabones•32m ago
I'm curious how this might help with our biggest downtime-causer with postgres, which is major version upgrades. Poolers do a great job for failover and load balancing, but we consistently need ~10-20 minutes of downtime once or twice a year to do upgrades. Logical replication between old->new versions could probably help, but it would still require flipping everything over to the new cluster without partial writes or anything silly. Anybody have experience with this?
boxed•25m ago
Seconded. Coming from MySQL this is a huge regression that makes Postgres look like something from the 80s. I still wonder why this isn't seen as the absolutely highest priority.
Blackthorn•19m ago
Probably because it's an open source project and apparently none of its users cared about this feature enough to develop it or fund it.
jeltz•17m ago
What would the feature be? There are things which can be improved in this area but there is no way to do major version upgrades for free. The reason it is like this in PostgreSQL, and MySQL, is due to tradeoffs. Making major version upgrade more complex allows for making other things simpler.
jeltz•18m ago
I have not ran MySQL for some years but it at least used to have exactly the same issue. Upgrading a database with MySQL can take a long time if you have many tables. The main difference is only really that PostgreSQL does it with a separate tool, pg_upgrade, while MySQL does it as part of the main binary.

For both MySQL and PostgreSQL you will need to use some kind of logical upgrades if you want no downtime.

Ozzie_osman•28m ago

  We sharded over 20 TB that we know about.
This is probably a typo, right? 20TB isn't that big. I would imagine they've sharded a lot more than that
GiorgioG•15m ago
For a vast majority of use cases 20TB is positively enormous.
tingletech•10m ago
that article seems to suggest 20TB total over the dozen deployments in prod.
happyopossum•6m ago
Sure, but 20TB in “the only database you need” is mere hours or minutes worth of data for many workflows.
returningfory2•3m ago
This product is for Postgres deployments that are so large they need to be sharded. For these use cases, I think 20TB is about normal.
drchaim•25m ago
Good stuff, although I’m not quite sure about the fast OLAP use case.

If you’re already sharding by tenant for other reasons, OK… But I see CDC to a true OLAP system as more scalable.

PostgreSQL still needs real columnar tables in the core, hopefully one day

mnbbrown•19m ago
I've loved using pgdog for the last 6 months. It's been incredibly stable. It's nifty how they've solved the LISTEN/NOTIFY on a transaction pooler problem.
tempest_•16m ago
We use logical replication and a pause / swap in pgbouncer for ~5s of paused (but not failed) writes.

This is for DBs that are ~1-1.5TB but doesnt have a huge amount of churn/qps

Effectively what is described here https://www.pgedge.com/blog/always-online-or-bust-zero-downt...

tux3•3m ago
Logical replication is how this is typically done. If you have some infra-as-code setup, you create a new cluster with identical settings except for the major version, import the schema, start copying data from a read-replica running the old version, stop accepting writes from the old version (downtime starts), sync the sequence numbers, and start pointing your services to the new version (downtime ends).

If you use something like CloudNativePG they automate parts of the process with cli tools and declarative syntax. Otherwise you take the time to figure it out by hand. You do an exercise on your staging DB, and if all goes well you do the same procedure in prod.

Monitoring my restic backups with Uptime Kuma

https://janlukas.blog/dev/monitoring-restic
1•speckx•3m ago•0 comments

Show HN: Inkfox – One workspace for AI image gen, editing, and photo-to-video

https://inkfox.app
1•ninglz•4m ago•0 comments

Barocal can cool your food and drink by squeezing a hunk of plastic crystals

https://techcrunch.com/2026/05/04/barocal-can-cool-your-food-and-drink-by-squeezing-a-hunk-of-pla...
1•PaulHoule•4m ago•0 comments

Please Don't Start an Open Source Project, Join One

https://jerf.org/iri/post/2026/please_dont_start_a_project/
1•jerf•4m ago•0 comments

Writers Against AI

https://www.writersagainstai.net/essay
1•danielam•4m ago•0 comments

US bombs Iran's water facilities

https://www.aljazeera.com/news/2026/6/10/us-bombs-irans-water-facilities-why-thats-so-significant
1•bhouston•5m ago•1 comments

Fuck Your Platform

https://fuckyourplatform.com
1•allreduce•5m ago•0 comments

In a U.S. First, Solar Supplied More Power Than Coal Last Month

https://e360.yale.edu/digest/us-solar-coal
2•Brajeshwar•6m ago•0 comments

Show HN: Papermill Press – An AI-friendly markup language for PDF generation

6•davidpapermill•7m ago•4 comments

Show HN: The layer between your SaaS platform and your customers' domains

https://www.razix.app
1•AdityaPatwa07•10m ago•0 comments

Readwise Reader as a Blogging Assistant

https://ruk.ca/content/readwise-reader-blogging-assistant
1•speckx•11m ago•0 comments

What We Learned from a Multi-Service Vulnerability Disclosure

https://labs.ripe.net/author/eleonora-petridou/what-we-learned-from-a-multi-service-vulnerability...
1•jruohonen•11m ago•0 comments

Pythagora-io/GPT-pilot Compromised – Shai-Hulud Cred Stealer Blocked by ruff

https://www.stepsecurity.io/blog/pythagora-io-gpt-pilot-compromised-on-github-shai-hulud-credenti...
1•yakkomajuri•12m ago•0 comments

How we made GitHub Actions cache up to 6x faster

https://avrea.com/blog/how-we-made-github-actions-cache-up-to-6x-faster
4•leolannenmaki•13m ago•0 comments

Aastronomers discover the earliest known flickering quasar

https://news.mit.edu/2026/mit-astronomers-discover-earliest-known-flickering-quasar-0608
1•gmays•13m ago•0 comments

HoneyAI – AI-powered honeypot replacing Cowrie/OpenCanary/Galah with one process

https://github.com/martidu4/honey-ai
1•whatda77•13m ago•0 comments

Post-training speech models for better interactivity

https://kyutai.org/blog/2026-06-10-interactivity
1•pr337h4m•13m ago•0 comments

Blinded by the Light DOM

https://meyerweb.com/eric/thoughts/2023/11/01/blinded-by-the-light-dom/
1•ravenical•15m ago•0 comments

Arcan: 10 Years of Online Obscurity

https://arcan-fe.com/2026/06/02/arcan-10-years-of-online-obscurity/
1•birdculture•15m ago•0 comments

The iPad was on Tailscale: a WebRTC debugging story

https://p2claw.com/blog/2026-06-09-the-ipad-was-on-tailscale/
3•syllogistic•15m ago•0 comments

Finding joy in assisted coding, notes from a senior engineer

https://vadirn.io/notes/finding-joy-in-ai-assisted-coding
2•camimirabal•15m ago•0 comments

Show HN: ColorMeUp Lab – an OKLCH color scale generator for design systems

https://lab.colormeup.co/p
2•gilbarbara•16m ago•0 comments

Claude Fable 5 Launches at #1 on the Artificial Analysis Intelligence Index

https://artificialanalysis.ai/articles/claude-fable-5-mythos-intelligence-index
3•himata4113•17m ago•0 comments

US Consumer Price Index up 4.2%

https://www.bls.gov/news.release/cpi.nr0.htm
4•ortusdux•18m ago•0 comments

Get Out of the Chat Box

https://newsletter.ownersnotrenters.com/p/get-out-of-the-chat-box
2•stlhood•19m ago•0 comments

WSL improvements and the new Containers CLI and APIs [video]

https://www.youtube.com/watch?v=i0M13ZvL04M
2•jayd16•19m ago•1 comments

Show HN: A CLI that fact-checks text using a 500MB local model and web search

https://github.com/kouhxp/fftext
1•mrkn1•19m ago•0 comments

Show HN: Social network where inviting someone makes you accountable for them

https://chirpper.com
4•Chirpper•19m ago•1 comments

Scientists Just Accidentally Discovered a Hidden Rule of Human Nature

https://www.404media.co/scientists-just-accidentally-discovered-a-strange-hidden-rule-of-human-na...
3•Brajeshwar•20m ago•0 comments

Automating the engineering work that isn't your product

https://www.mendral.com/blog/engineering-work-that-isnt-your-product
2•shad42•20m ago•0 comments