<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: franckpachot</title><link>https://news.ycombinator.com/user?id=franckpachot</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 14:32:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=franckpachot" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by franckpachot in "Go ahead, self-host Postgres"]]></title><description><![CDATA[
<p>Beyond the hype, the PostgreSQL community is aware of the lack of "batteries-included" HA. This discussion on the idea of a Built-in Raft replication mentions MongoDB as:<p>>> "God Send". Everything just worked. Replication was as reliable as one could imagine. It outlives several hardware incidents without manual intervention. It allowed cluster maintenance (software and hardware upgrades) without application downtime. I really dream PostgreSQL will be as reliable as MongoDB without need of external services.<p><a href="https://www.postgresql.org/message-id/0e01fb4d-f8ea-4ca9-8c9b-79264ce11993%40postgrespro.ru" rel="nofollow">https://www.postgresql.org/message-id/0e01fb4d-f8ea-4ca9-8c9...</a></p>
]]></description><pubDate>Sat, 20 Dec 2025 17:10:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46337664</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=46337664</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337664</guid></item><item><title><![CDATA[New comment by franckpachot in "Go ahead, self-host Postgres"]]></title><description><![CDATA[
<p>Be sure to read the Муths and Truths about Synchronous Replication in PostgreSQL (by the author of Patroni) before considering those solutions as cloud-native high availability:
<a href="https://www.postgresql.eu/events/pgconfde2025/sessions/session/6559/slides/663/Myths%20and%20Truths%20about%20Synchronous%20Replication%20in%20PostgreSQL.pdf" rel="nofollow">https://www.postgresql.eu/events/pgconfde2025/sessions/sessi...</a></p>
]]></description><pubDate>Sat, 20 Dec 2025 17:04:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46337605</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=46337605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337605</guid></item><item><title><![CDATA[New comment by franckpachot in "Go ahead, self-host Postgres"]]></title><description><![CDATA[
<p>CloudNativePG is automation around PostgreSQL, not "batteries included", and not the idea of Kubernetes where pods can die or spawn without impacting the availability. Unfortunately, naming it Cloud Native doesn't transform a monolithic database to an elastic cluster</p>
]]></description><pubDate>Sat, 20 Dec 2025 17:01:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46337586</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=46337586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337586</guid></item><item><title><![CDATA[New comment by franckpachot in "Go ahead, self-host Postgres"]]></title><description><![CDATA[
<p>It's largely cultural. In the SQL world, people are used to accepting the absence of real HA (resilience to failure, where transactions continue without interruption) and instead rely on fast DR (stop the service, recover, check for data loss, start the service). In practice, this means that all connections are rolled back, clients must reconnect to a replica known to be in synchronous commit, and everything restarts with a cold cache.<p>Yet they still call it HA because there's nothing else.
Even a planned shutdown of the primary to patch the OS results in downtime, as all connections are terminated. The situation is even worse for major database upgrades: stop the application, upgrade the database, deploy a new release of the app because some features are not compatible between versions, test, re-analyze the tables, reopen the database, and only then can users resume work.<p>Everything in SQL/RDBMS was thought for a single-node instance, not including replicas. It's not HA because there can be only one read-write instance at a time. They even claim to be more ACID than MongoDB, but the ACID properties are guaranteed only on a single node.<p>One exception is Oracle RAC, but PostgreSQL has nothing like that. Some forks, like YugabyteDB, provide real HA with most PostgreSQL features.<p>About the hype: many applications that run on PostgreSQL accept hours of downtime, planned or unplanned. Those who run larger, more critical applications on PostgreSQL are big companies with many expert DBAs who can handle the complexity of database automation. And use logical replication for upgrades. But no solution offers both low operational complexity and high availability that can be comparable to MongoDB</p>
]]></description><pubDate>Sat, 20 Dec 2025 16:55:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46337531</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=46337531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337531</guid></item><item><title><![CDATA[Rethinking Data Integrity: Why Domain-Driven Design Is Crucial]]></title><description><![CDATA[
<p>Article URL: <a href="https://thenewstack.io/rethinking-data-integrity-why-domain-driven-design-is-crucial/">https://thenewstack.io/rethinking-data-integrity-why-domain-driven-design-is-crucial/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46250117">https://news.ycombinator.com/item?id=46250117</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 12 Dec 2025 23:02:54 +0000</pubDate><link>https://thenewstack.io/rethinking-data-integrity-why-domain-driven-design-is-crucial/</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=46250117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46250117</guid></item><item><title><![CDATA[New comment by franckpachot in "PostgreSQL, MongoDB, and what "cannot scale" means"]]></title><description><![CDATA[
<p>What about "cannot scale without downtime"?
While all databases can scale vertically, increasing or decreasing CPU or memory resources requires a restart, which leads to downtime. All sessions must disconnect, the system restarts, and users reconnect and execute their first queries with a cold cache. This is far from ideal, especially when workload spikes—the very situation where scaling up is needed. Cloud-native databases that promote scalability typically scale horizontally without downtime. This involves adding or removing nodes and automatically resharding data without stopping the application. Such elasticity is key to the cost efficiency in the cloud: it lets you scale resources up or down with the workload, avoiding excess provisioning.</p>
]]></description><pubDate>Mon, 08 Dec 2025 21:42:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46198044</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=46198044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46198044</guid></item><item><title><![CDATA[Why 'Store Together, Access Together' Matters for Your Database]]></title><description><![CDATA[
<p>Article URL: <a href="https://thenewstack.io/why-store-together-access-together-matters-for-your-database/">https://thenewstack.io/why-store-together-access-together-matters-for-your-database/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45958465">https://news.ycombinator.com/item?id=45958465</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 17 Nov 2025 21:20:36 +0000</pubDate><link>https://thenewstack.io/why-store-together-access-together-matters-for-your-database/</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=45958465</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45958465</guid></item><item><title><![CDATA[New comment by franckpachot in "ClickHouse vs PostgreSQL UPDATE performance comparison"]]></title><description><![CDATA[
<p>What is the null join behavior that cause you problem?</p>
]]></description><pubDate>Wed, 20 Aug 2025 18:16:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=44964576</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=44964576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44964576</guid></item><item><title><![CDATA[New comment by franckpachot in "Neki – Sharded Postgres by the team behind Vitess"]]></title><description><![CDATA[
<p>The companies that attempt to replace PostgreSQL do so not to replace PostgreSQL itself, but to replace Oracle.</p>
]]></description><pubDate>Wed, 13 Aug 2025 05:07:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44884808</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=44884808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44884808</guid></item><item><title><![CDATA[New comment by franckpachot in "Postgres LISTEN/NOTIFY does not scale"]]></title><description><![CDATA[
<p>Can you provide more details? Inserting with unique indexes do not lock the table. Case statements are ok in where clause, use expression indexes to index it</p>
]]></description><pubDate>Thu, 10 Jul 2025 21:26:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44525810</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=44525810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44525810</guid></item><item><title><![CDATA[New comment by franckpachot in "[dead]"]]></title><description><![CDATA[
<p>A Data Council talk on the modern SQL vs NoSQL</p>
]]></description><pubDate>Thu, 29 May 2025 19:37:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=44129478</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=44129478</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44129478</guid></item><item><title><![CDATA[New comment by franckpachot in "Jepsen: Amazon RDS for PostgreSQL 17.4"]]></title><description><![CDATA[
<p>The Write-Ahead Logging (WAL) is single-threaded and maintains consistency at a specific point in time in each instance. However, there can be anomalies between two instances. This behavior is expected because the RDS Multi-AZ cluster does not wait for changes to be applied in the shared buffers. It only waits for the WAL to sync. 
This is similar to the behavior of PostgreSQL when synchronous_commit is set to on. Nothing unexpected.</p>
]]></description><pubDate>Wed, 30 Apr 2025 13:26:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43844928</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=43844928</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43844928</guid></item><item><title><![CDATA[New comment by franckpachot in "[dead]"]]></title><description><![CDATA[
<p>Do you declare your Foreign Key in your SQL database? What about MongoDB?</p>
]]></description><pubDate>Thu, 03 Apr 2025 17:56:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43573179</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=43573179</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43573179</guid></item><item><title><![CDATA[New comment by franckpachot in "[dead]"]]></title><description><![CDATA[
<p>Are NULLs treated as distinct or duplicates in your UNIQUE INDEX? 
It depends  SQL != NoSQL != some specific implementations
Which option offers the best developer experience? Comments welcome</p>
]]></description><pubDate>Sun, 12 Jan 2025 22:36:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=42677687</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=42677687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42677687</guid></item><item><title><![CDATA[New comment by franckpachot in "PostgreSQL High Availability Solutions – Part 1: Jepsen Test and Patroni"]]></title><description><![CDATA[
<p>YugabyteDB supports much more than basic things. I've been a 3+ years dev advocate for Yugabyte, and I've always seen triggers. LISTEN/NOTIFY is not yet there (it is an anti-pattern for horizontal scalability, but we will add it as some frameworks use it). Not yet 100% compatible, but there's no Distributed SQL with more PG compatibility. Many (Spanner, CRDB, DSQL) are only wire protocol + dialect. YugabyteDB runs Postgres code and provides the same behavior (locks, isolation levels, datatype arithmetic...)</p>
]]></description><pubDate>Mon, 09 Dec 2024 22:34:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=42371296</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=42371296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42371296</guid></item><item><title><![CDATA[New comment by franckpachot in "PostgreSQL High Availability Solutions – Part 1: Jepsen Test and Patroni"]]></title><description><![CDATA[
<p>Index creation should not be controlled by statement timeout, but backfill_index_client_rpc_timeout_ms which defaults to 24 hours. May have been lower in old versions</p>
]]></description><pubDate>Mon, 09 Dec 2024 21:57:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42370987</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=42370987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42370987</guid></item><item><title><![CDATA[New comment by franckpachot in "B-Trees and Database Indexes"]]></title><description><![CDATA[
<p>It depends on the use cases and performance goals. You may want to distribute the rows that you insert, and then a random UUID makes sense. However, it is too much distributed for B-Tree indexes and the problem is not only cache but the amount of modifications due to leaf block splits. This includes MySQL which stores the primary key in a B-Tree index.
Other use cases may benefit from colocating the rows that are inserted together. Think of timeseries, or simply an order entry where you query the recent orders. A sequence makes sense there, to have a good correlation between the index (on time) and the primary key. This avoids too many random reads with low cache hits.<p>It is wrong to think that distributed databases do not need sequences. YugabyteDB allows it. With YugabyteDB you use hash sharding to distribute them to a small number of hash ranges, so that they don0t go all at the same place, but are not scattered across the whole database. CockroachDB and Spanner doesn't have hash sharding and that's why they do not recommend sequences. There are also use cases where range sharding on the sequence is good when you don't need to distribute the data ingest, but benefit from their colocation when querying.</p>
]]></description><pubDate>Wed, 11 Sep 2024 06:43:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=41508641</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=41508641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41508641</guid></item><item><title><![CDATA[New comment by franckpachot in "What Is the Open Source Alternative to CockroachDB?"]]></title><description><![CDATA[
<p>1. Regarding performance, I recently did a simple test. CockroachDB uses a considerable number of CPU instructions compared to YugabyteDB: <a href="https://dev.to/yugabyte/comparing-sql-engines-by-cpu-instructions-for-dml-48a" rel="nofollow">https://dev.to/yugabyte/comparing-sql-engines-by-cpu-instruc...</a><p>Writing a database from scratch is not easy. YugabyteDB uses some PostgreSQL, Kudu, and RocksDB code that has been heavily optimized before. Those are good codebases, and only some parts need to be enhanced to make them distributed.<p>2. Their Go version of RocksDB, Peeble, seems less efficient. They did it for a good reason. They didn't have the C++ skills to enhance RocksDB itself.<p>3. The repo holds more than the database.<p>C: is the SQL layer, based on PostgreSQL<p>C++: the transactional distributed storage, heavily modified Kudu and RocksDB<p>Java: some regression tests, the managed service automation, sample applications<p>TS: the Graphical User Interface<p>Python: some tooling to build the releases, some support tools<p>The database itself is C and C++</p>
]]></description><pubDate>Wed, 28 Aug 2024 20:52:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=41384240</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=41384240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41384240</guid></item><item><title><![CDATA[New comment by franckpachot in "CockroachDB license change"]]></title><description><![CDATA[
<p>YugabyteDB is and will always be Apache2. It is PostgreSQL compatible (the query layer is a fork of PostgreSQL) so the migration from CockroachDB, which implements a subset of PostgreSQL features, is easy.</p>
]]></description><pubDate>Fri, 16 Aug 2024 20:34:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41270111</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=41270111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41270111</guid></item><item><title><![CDATA[How to Enhance Database Performance Testing Using Custom SQL Scripts in PgBench]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.yugabyte.com/blog/pgbench-custom-sql-scripts/">https://www.yugabyte.com/blog/pgbench-custom-sql-scripts/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40220982">https://news.ycombinator.com/item?id=40220982</a></p>
<p>Points: 10</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 01 May 2024 08:56:32 +0000</pubDate><link>https://www.yugabyte.com/blog/pgbench-custom-sql-scripts/</link><dc:creator>franckpachot</dc:creator><comments>https://news.ycombinator.com/item?id=40220982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40220982</guid></item></channel></rss>