Comment by levkk

16 hours ago

Not quite. The performance gain is to bring those features to Postgres!

Edit:

Performance gains are from having the ability to load balance reads (horizontal scaling for read queries) and scale out writes (with sharding). Once instance bottleneck in Postgres has many faces:

1. Behind schedule vacuums because of too many dead tuples (too many writes)

2. The WALWriter is single-threaded and IO-bound - Postgres can only do about 200-300MB/sec in writes per instance (real prod numbers on EC2 with NVMes and ZFS, basically best case scenario).

3. Bulkheading: single primary is a single point of failure. With 12 primaries, if one fails, 91% of your customers don't notice.

The list goes on. Rust is just a side effect. We love it because it's fast and correct - the perfect match for a database product.

So to oversimplify, is the idea to bring an AWS Aurora-style storage mechanism natively to Postgres?

  • Aurora is one big database, isn't it? PgDog is just a proxy where you tell it which shard to access.

  • Yes, except it doesn't have any cross-dependencies on the same volume, so the uptime here should be higher.

    • Aurora has a completely different storage backend. PgDog is a front end proxy - each server in the cluster is still using standard Postgres right?

      1 reply →