HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
fabianlindfors
pgfdb
Rust2025–2025
fabianlindfors / pgfdb

pgfdb

Postgres made distributed using FoundationDB

4Distinct people
6Mentions
0Explicit recommenders
229GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Postgres made distributed using FoundationDB

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week6 dated mentions

Observed mentions: 2025-03-31 20:02:42 UTC to 2025-09-22 17:33:31 UTC. Weeks start Monday, UTC.

012025-03-31 00:00:00 UTC to 2025-04-07 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 312025-04-07 00:00:00 UTC to 2025-04-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-14 00:00:00 UTC to 2025-04-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-21 00:00:00 UTC to 2025-04-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-28 00:00:00 UTC to 2025-05-05 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-05-05 00:00:00 UTC to 2025-05-12 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-05-12 00:00:00 UTC to 2025-05-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-05-19 00:00:00 UTC to 2025-05-26 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2025-05-26 00:00:00 UTC to 2025-06-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-02 00:00:00 UTC to 2025-06-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-09 00:00:00 UTC to 2025-06-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-16 00:00:00 UTC to 2025-06-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-23 00:00:00 UTC to 2025-06-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJun 232025-06-30 00:00:00 UTC to 2025-07-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-07 00:00:00 UTC to 2025-07-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-14 00:00:00 UTC to 2025-07-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-21 00:00:00 UTC to 2025-07-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-28 00:00:00 UTC to 2025-08-04 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-08-04 00:00:00 UTC to 2025-08-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-11 00:00:00 UTC to 2025-08-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-18 00:00:00 UTC to 2025-08-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-25 00:00:00 UTC to 2025-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-01 00:00:00 UTC to 2025-09-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-08 00:00:00 UTC to 2025-09-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-15 00:00:00 UTC to 2025-09-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-22 00:00:00 UTC to 2025-09-29 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 22

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Mar 312025-03-31 00:00:00 UTC2025-04-07 00:00:00 UTC101
Apr 72025-04-07 00:00:00 UTC2025-04-14 00:00:00 UTC000
Apr 142025-04-14 00:00:00 UTC2025-04-21 00:00:00 UTC000
Apr 212025-04-21 00:00:00 UTC2025-04-28 00:00:00 UTC000
Apr 282025-04-28 00:00:00 UTC2025-05-05 00:00:00 UTC101
May 52025-05-05 00:00:00 UTC2025-05-12 00:00:00 UTC101
May 122025-05-12 00:00:00 UTC2025-05-19 00:00:00 UTC000
May 192025-05-19 00:00:00 UTC2025-05-26 00:00:00 UTC110
May 262025-05-26 00:00:00 UTC2025-06-02 00:00:00 UTC000
Jun 22025-06-02 00:00:00 UTC2025-06-09 00:00:00 UTC000
Jun 92025-06-09 00:00:00 UTC2025-06-16 00:00:00 UTC000
Jun 162025-06-16 00:00:00 UTC2025-06-23 00:00:00 UTC000
Jun 232025-06-23 00:00:00 UTC2025-06-30 00:00:00 UTC000
Jun 302025-06-30 00:00:00 UTC2025-07-07 00:00:00 UTC000
Jul 72025-07-07 00:00:00 UTC2025-07-14 00:00:00 UTC000
Jul 142025-07-14 00:00:00 UTC2025-07-21 00:00:00 UTC000
Jul 212025-07-21 00:00:00 UTC2025-07-28 00:00:00 UTC000
Jul 282025-07-28 00:00:00 UTC2025-08-04 00:00:00 UTC101
Aug 42025-08-04 00:00:00 UTC2025-08-11 00:00:00 UTC000
Aug 112025-08-11 00:00:00 UTC2025-08-18 00:00:00 UTC000
Aug 182025-08-18 00:00:00 UTC2025-08-25 00:00:00 UTC000
Aug 252025-08-25 00:00:00 UTC2025-09-01 00:00:00 UTC000
Sep 12025-09-01 00:00:00 UTC2025-09-08 00:00:00 UTC000
Sep 82025-09-08 00:00:00 UTC2025-09-15 00:00:00 UTC000
Sep 152025-09-15 00:00:00 UTC2025-09-22 00:00:00 UTC000
Sep 222025-09-22 00:00:00 UTC2025-09-29 00:00:00 UTC101

What Hacker News says

6 sources
From my position MySQL pros: The MySQL docs on how the default storage engine InnoDB locks rows to support transaction isolation levels is fantastic. [1] This can help you better architect your system to avoid lock contention or understand why existing queries may be contending for locks. As far as I know Postgres does not have docs like that. MySQL uses direct I/O so it disables the OS page cache and uses its own buffer pool instead[2]. Whereas Postgres doesn't use direct I/O so the OS page cache will duplicate pages (called the "double buffering" problem). So it is harder to estimate how large of a dataset you can keep in memory in Postgres. They are working on it though [3] If you delete a row in MySQL and then insert another row, MySQL will look through the page for empty slots and insert there. This keeps your pages more compact. Pos
Read the rest
tgres will always insert at the bottom of the page. If you have a workload that deletes often, Postgres will not be using the memory as efficiently because the pages are fragmented. You will have to run the VACUUM command to compact pages. [4] Vitess supports MySQL[5] and not Postgres. Vitess is a system for sharding MySQL that as I understand is much more mature than the sharding options for Postgres. Obviously this GA announcement may change that. Uber switched from MySQL to Postgres only to switch back. It's a bit old but it's worth a read. [6] Postgres pros: Postgres supports 3rd party extensions which allow you to add features like columnar storage, geo-spatial data types, vector database search, proxies etc.[7] You are more likely to find developers who have worked with Postgres.[8] Many modern distributed database offerings target Postgres compatibility rather than MySQL compatibility (YugabyteDB[9], AWS Aurora DSQL[10], pgfdb[11]). My take: I would highly recommend you read the docs on InnoDB locking then pick Postgres. [1] https://dev.mysql.com/doc/refman/8.4/en/innodb-locking.html [2] https://dev.mysql.com/doc/refman/8.4/en/memory-use.html [3] https://pganalyze.com/blog/postgres-18-async-io [4] https://www.percona.com/blog/postgresql-vacuuming-to-optimiz... [5] https://vitess.io/ [6] https://www.uber.com/blog/postgres-to-mysql-migration/ [7] https://www.tigerdata.com/blog/top-8-postgresql-extensions [8] https://survey.stackoverflow.co/2024/technology#1-databases [9] https://www.yugabyte.com/ [10] https://aws.amazon.com/rds/aurora/dsql/ [11] https://github.com/fabianlindfors/pgfdb
In PlanetScale for Postgres is now GA
Sure! So my prototype is implemented as a Postgres extension that hooks into transaction as well table and index storage and implements them on top of FoundationDB. This makes Postgres itself stateless and all data storage and transaction processing is handled by FoundationDB, turning Postgres into a fully distributed database akin to CockroachDB and others. This has a number of advantages: - Simple horizontal scaling simply by adding more nodes, including automatic sharding (no need for Citus or similar) - Distributed and strictly serializable transactions across all your data - Automatic replication for durability and read performance. No need to set up read replicas or configure your client to route queries to them. - Built-in fault tolerance that can handle node failures and full zone outages. No need to configure replication and fail
Read the rest
overs. - Multi-tenancy through FoundationDB's built-in tenants feature All this while not just maintaining Postgres compatibility but actually being Postgres, so hopefully all the features/extensions you know and love will be supported. I'm planning on publishing to this repo if you want to keep an eye on it: https://github.com/fabianlindfors/pgfdb. Likely won't publish any of the source at first but just some instructions for testing it out.
In Ask HN: What are you working on? (March 2025)

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.