Brandur digs into one of Postgres 17's updates that make b-tree index scans faster. He's tested performance against the Crunchy Bridge API and the results are pretty impressive.
Greg analyzed a year's worth of email exchanges on the Postgres hackers email list. He's got a primer on all the lingo and abbreviations used to help you follow along.
Keith announces a new metrics extension that collects metrics for Postgres and is ready for future version of Postgres.
Jesse has some tips if you see the dreaded full disk memory segment error. He goes through the most likely causes and fixes.
Elizabeth breaks down the basics of what you need to know for using parallel queries in Postgres.
Crunchy Data is excited to release a new open-source tool called pgCompare that compares data across PostgreSQL, Oracle, MySQL, and MSSQL databases. This can be used for migrations, data syncs, and any other project where you need to cross-compare data sets.
Greg reviews data encryption methods including solutions for filesystem, data storage, transparent data encryption, and application level encryption. Greg includes pros and cons of each to help you decide on the right method for your data store.
David shares some tricks for cleaning up after dropped extensions. He goes through how to create a event trigger and function for cleaning up a pg_cron task built by an extension.
Greg outlines the steps and process for an example upgrade from Postgres version 12 to 16 using the built-in pg_upgrade tool.
Elizabeth reviews HOT updates, what they are, how they work, and how you can put them to use for a performance improvement.
Brian steps through reviewing WAL history files and a sample recovery scenario.
Greg debugs Postgres that is not starting and there are no logs, no pg_ctl start up file, and no output anywhere.
One process can lock your Postgres database, dominating all will, blocking other processes and queries. Jesse shows you how to find that one process that’s ruling them all. Once you’ve grabbed this lock and held it close to your chest, he’ll help you on your quest to cast it into the depths of Mt Doom.
Greg explains what is inside the postmaster file and why it matters. He also references each part of the postmaster file to the Postgres source code.
Marco just joined Crunchy Data and he reflects on his career in distributed systems in this post. He provides an overview of several options for approaching distributed Postgres workloads and the pros and cons of each approach.
Elizabeth gives us an overview of the Postgres TOAST (The Oversized Attribute Storage Technique) system and what it means for your data types and storage.
Craig digs into the architecture behind a slick IoT data platform including Postgres, the Citus extension, and pg_partman partitioning. Add these together with columnar compression and you've got a fully open source and scalable IoT data stack.
Craig digs into multitenancy applications, sharding, and the Citus extension. He gives several approaches to the data design so that you're ready to scale if and when that time comes.
David has some tricks and sample code for using CTEs to manipulate data and move things around inside your database. This can be especially handy for sorting, moving, or labeling data and moving it to an archive.
The newest version of PgBouncer lets you run prepared statements while using a connection pooler. Greg breaks down the performance gains of prepared statements, why they have traditionally been a challenge, and this new feature.