HN user

Vonng

193 karma

https://vonng.com/en/

Posts12
Comments27
View on HN

Author here.

• This is translated from my original Chinese post. I used Claude to polish the English — not a native speaker. Fair criticism on the LLM-ese; I'll tighten it.

• This fork exists because MinIO is a production dep in my PG distribution (Pigsty) and I needed working binaries + CVE patches. It's primarily for my own use; sharing it because others may have the same problem.

• We're deliberately conservative — no new features, just a drop-in replacement that behaves like the last OSS release with the console restored. Early commits will look thin.

Why we picked AGPL 2 years ago

I fully support ParadeDB's decision. For an open-source software company, AGPLv3 + Dual License is the most sensible choice.

If you go with Apache 2.0, you're literally doing free work for cloud vendors.

I've set up a supplementary APT/YUM repository, which builds on the official PGDG offerings. This includes 326 extensions for EL distros and 312 for Deb distros, encompassing 121 RPM packages and 133 DEB packages.

These packages support PG16 extensions across Ubuntu 22.04, Debian 12, EL8, and EL9. My efforts have been particularly focused on align OS-specific extensions across the major Linux distributions to ensure a consistent feature set.

For those who are interested, you can browse the PostgreSQL extension catalog here: (https://pigsty.io/docs/pgext/list/). Additionally, I've maintained a public Yum/Apt repository hosted on Cloudflare: https://pigsty.io/docs/pgext/usage/repo/

I'm keen to hear your thoughts and would greatly appreciate any feedback from those who have utilized these extensions.

The scale of operation is the crux here. For a modest number of cores, RDS is a congenial choice. However, when you're going to hundreds or, as in our scenario, tens of thousands of cores with PostgreSQL, clinging to RDS is sheer lunacy.

I was the designated gardener to tackle this: architecting and managing a PostgreSQL deployment with 25K cores and 3M TPS. We've been shelling out a cool $1M annually, covering the whole thing - hardware, software, and DBAs. Meanwhile, the toll for RDS is an astronomical tenfold of our current expenditure, yet it comes with a lesser degree of availability and a starkly crippled observability and other stuff.

It might require a bit of elbow grease to grasp every component. I'm trying my best to smooth out that learning curve:

https://doc.pigsty.cc/#/PGSQL-ARCH?id=component-overview https://doc.pigsty.cc/#/PGSQL-ADMIN https://doc.pigsty.cc/#/SECURITY https://doc.pigsty.cc/#/ARCH

However, when it comes to getting it up & running, the process is pretty straightforward, and the outcome is leagues ahead compared to running the kernel in the raw way.

Redis is more like a cherry on top. Many applications utilizing PostgreSQL also employ Redis, Gitlab being a notable example, and that includes us as well. Supporting Redis merely involves adding a couple of RPMs and Playbooks, so why not go for it ;)?

You don't need to rebuild the docker image and restart the container to get the extension installed & created.

And, I haven't found any Postgres docker image with all the extensions I need: you can reuse the RPM in dockerfile to build your own image, which always has to be done somewhere.

For frequently used extensions such as PostGIS, TimescaleDB, Vector, Repack, etc., it can be assured that they function together as expected. Regarding other extensions, they are only guaranteed to be installed and `CREATE` without error.

Supabase and PostgresML have been introduced in the latest release. At this juncture, they are in a prototype stage, aiming to expand the functionalities' spectrum.

The RDS part and most extensions have served as production tools for us for a long time.

Imagine a realm where a myriad of extensions can freely interlace, conjuring a synergy where 1+1 transcends 2 within the PostgreSQL ecosystem.

Given that all extensions are optional, bundling them all together poses no harm to the stability of the core part.

For the extension part, maybe. we only use very limited extensions in production: PostGIS, TimescaleDB, and PGVector will suffice for most cases, plus pg_repack, pg_cron, and wal2json for maintenance.

The core/RDS part (HA/PTIR/IaC/Monitor) is quite robust, which has served our 25000 core deployment for 3 years+ and survived dozens of hardware failures.