---
title: "Getting Postgres ready for production"
publication: "Postgres Weekly"
issue: 499
published_at: "2023-03-29"
canonical_url: "https://postgresweekly.com/issues/499"
---

Plus PgCat 1.0, using Postgres as a graph database, and how to optimize max_wal_size. |        

#​499 — March 29, 2023 

[Web Version](https://postgresweekly.com/issues/499)  

Together with [![pgAnalyze\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_100/e_make_transparent/co_white,e_outline:7/lhwcvgc1asd4fzaahty4.png)](https://pganalyze.com/ebooks/postgres-indexing?utm_source=PostgresWeeklyPrimary03292023)   

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ln8l0vouh9l7cpeasev2.jpg)](https://www.crunchydata.com/blog/is-your-postgres-ready-for-production)  

[Is Your Postgres Ready for Production?](https://www.crunchydata.com/blog/is-your-postgres-ready-for-production) — Craig gets you ready for production with a quick production checklist of essentials, from backups and logging to statement timeouts and connection pooling. 

Craig Kerstiens   

[The Importance of `max_wal_size`](https://thebuild.com/blog/2023/03/23/the-importance-of-max_wal_size/) — `work_mem` and `max_wal_size` are two parameters that can have an outsized effect on performance. Here’s a basic technique for setting `max_wal_size` appropriately. _(If you’re more interested in `work_mem`, Christophe did [a separate blog post on that](https://thebuild.com/blog/2023/03/13/everything-you-know-about-setting-work_mem-is-wrong/);-))_ 

Christophe Pettus   [![\](https://copm.s3.amazonaws.com/4061da9c.png)](https://pganalyze.com/ebooks/postgres-indexing?utm_source=PostgresWeeklyPrimary03292023) 

[Learn How to Create the Best Postgres Index for Your Queries (eBook)](https://pganalyze.com/ebooks/postgres-indexing?utm_source=PostgresWeeklyPrimary03292023) — Creating the right indexes can improve your query performance significantly. In this PDF eBook, we provide detailed information around index types, operators, data types and more. After reading this book, you'll be able to create the best index for your queries. 

pganalyze sponsor   

[Postgres: The Graph Database You Didn't Know You Had?](https://www.dylanpaulus.com/posts/postgres-is-a-graph-database) — Postgres is flexible enough to give you graph database like functionality out of the box, if you’re prepared to model out the right schema for it. If you need something more advanced, though, [Apache AGE](https://age.apache.org/) will bring more complete support including OpenCypher querying. 

Dylan Paulus   

**IN BRIEF:** 

- [pgEdge](https://www.pgedge.com/blog/pgEdge-launches-first-fully-distributed-edge-database-based-on-standard-postgreSQL) is a new distributed edge database platform built entirely upon Postgres. There's an open 'community' edition, but you'll need to [register to download](https://www.pgedge.com/download) if you want to try it out.
- [Amazon RDS Proxy now supports Postgres 15.](https://aws.amazon.com/about-aws/whats-new/2023/03/amazon-rds-proxy-postgresql-version-15/)
- This week's _PostgreSQL Person of the Week_ [is Chris Ellis](https://postgresql.life/post/chris_ellis/) of Nexteam. And the Postgres _pet_ of the week is [🐶 Titus, the Coton de Tuléar.](https://postgresql.pet/post/titus_coton_de_tulear/)   

[Searching for Performance Regressions in Postgres 11–15](http://smalldatum.blogspot.com/2023/03/searching-for-performance-regressions.html) — What do you find if you use sysbench to search for performance regressions in Postgres v11 through to v15.2? Good news mostly. Broadly speaking, Postgres continues to get slightly faster with no serious performance slip-ups. 

Mark Callaghan   

[Scaling Postgres with Amazon S3 (on Timescale Cloud)](https://www.timescale.com/blog/scaling-postgresql-with-amazon-s3-an-object-storage-for-low-cost-infinite-database-scalability/) — This is specific to Timescale’s cloud platform, but an interesting development where Postgres can be used normally with data seamlessly ‘tiered’ and stored on lower cost S3 storage where appropriate. For a time series database where you might rarely want to access older data, this could be a big win in the long term. 

Mike Freedman (Timescale)   

[The New Old `debug_parallel_query` Setting in Postgres 16](https://www.cybertec-postgresql.com/en/debug_parallel_query-setting-postgresql-16/) — The `force_parallel_mode` will be called `debug_parallel_query` in Postgres 16. Why? To reinforce it’s for debugging purposes and not a magical way to get parallel query execution. 

Pavlo Golub   

[Ask Me Anything About High Availability for Postgres on Demand Webinar](https://learn.percona.com/ask-me-anything-about-high-availability-for-postgresql?utm_campaign=22q2-cm-campaign-pg-high-availability&utm_source=postgres-weekly&utm_medium=newsletter&utm_content=webinar) 

Percona sponsor   

[Postgres 16 Highlight: More Patterns for `pg_ident.conf`](https://paquier.xyz/postgresql-2/postgres-16-pgident-extension/) — Postgres 16 makes auth configuration improvements to `pg_ident.conf`, allowing for the use of patterns for pg-user entries like in`pg_hba.conf`. 

Michael Paquier    

🛠 Code and Tools  

[PgCat 1.0: Modern Postgres Pooler and Proxy](https://github.com/postgresml/pgcat) — Built in Rust, PgCat offers support for sharding (including, experimentally, sharding based upon SQL syntax), load balancing and failover support. 

PostgresML   

[pg_gpt: Experimental Extension for Making Queries with Natural Language](https://github.com/cloudquery/pg_gpt) — Yes, picture huge flashing lights around the word ‘experimental’, but it’s always interesting to see OpenAI’s ChatGPT taking on SQL query generation. Also a neat example of a simple extension built with Rust and[PGX.](https://github.com/tcdi/pgx) 

CloudQuery   

[Neon's Edge-Compatible Serverless Driver for Postgres](https://neon.tech/blog/serverless-driver-for-postgres) — Neon is a multi-cloud ‘serverless Postgres’ platform, but one problem with certain serverless function platforms is an inability to make direct TCP connections to systems like Postgres. What to do? Use HTTP instead. Neon now offers this for V8/Node users in the shape of a `node-postgres` replacement that uses WebSockets instead. 

George MacKerron (Neon)   

- [pg_chameleon 2.0.19](https://www.postgresql.org/about/news/pg_chameleon-2019-2615/)
 ↳ MySQL to PostgreSQL replica system. ([Repo.](https://github.com/the4thdoctor/pg_chameleon))
- [InfluxDB FDW 2.0](https://www.postgresql.org/about/news/influxdb-fdw-200-released-2616/)
 ↳ Foreign data wrapper for InfluxDB.
- [SQLx 0.6.3](https://github.com/launchbadge/sqlx)
 ↳ Rust SQL toolkit.
- [Prisma 4.12](https://github.com/prisma/prisma)
 ↳ ORM for Node.js and TypeScript.
- [pgwire 0.12](https://github.com/sunng87/pgwire)
 ↳ Postgres wire protocol as as a Rust library.
- [Supabase Realtime 2.10](https://github.com/supabase/realtime)
 ↳ Broadcast, presence, and changes via WebSockets.    

**Got a new email?** You can [change your address here](https://postgresweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Postgres Weekly](https://postgresweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada. 

[Stop getting this newsletter.](https://postgresweekly.com/leave/*|UID|*)
