PGCon 2023, day 3

This is the last time PGCon will be held in Ottawa! Next year it'll be in another city. My first time at PGCon is the end of an era! From yesterday: Automating index selection using Constraint Programming: One of the speakers was Lukas Fittl of PGAnalyze. He's as good a speaker in person as he … Continue reading PGCon 2023, day 3

PGCon 2023, day 2

I learned there are 151 attendees here. I've seen only five women in the entirety. From yesterday: PostgreSQL 16 and beyond: Postgres 16 will be a beast. So many improvements and features, I have to get the slide deck and circulate it at work. The release notes are one thing, hearing a core developer talk … Continue reading PGCon 2023, day 2

PGCon 2023, day 1

Today's day 1 of the conference. I'm looking forward to: PostgreSQL 16 and beyond Patroni 3.0: What's New and Future Plans Logical Replication - handling of large transactions Visualizing Postgres I/O Performance for Development All the networking opportunities. Which are already starting as I type this, nursing my coffee after breakfast. The U. Ottawa campus … Continue reading PGCon 2023, day 1

PGCon 2023 tutorial day

Today will be two half-day tutorials. The first one is a filler. The original speaker had to withdraw, so it's billed as a mini-unconference where the attendees determine the topics. The second one is a detailed dive into postgresql.conf. I haven't looked at one since 2014! The talk's description got me thinking about leaky abstractions … Continue reading PGCon 2023 tutorial day

Traveling to PGCon 2023

Tomorrow I fly to Ottawa, which a friend tells me is "the Ibiza of the north," to attend PGCon 2023. This is my first PostgreSQL conference and I'm looking forward to absorbing as much information as I can and networking as much as I can. My simple (simplistic?) understanding of the Postgres conference universe is … Continue reading Traveling to PGCon 2023

When you know enough SQL to get by

I'm in work on a Saturday, doing some database munging. We have a large update that requires dropping a bunch of rows, and a schema change. I wish we had a DBA on staff for times like this. Or maybe a kick-ass local consultant whom we could bring in from time to time. The row … Continue reading When you know enough SQL to get by

Django vs. PostgreSQL IN operations

Here's another cautionary performance tale, wherein I thought I was clever but was not. A table ("Vital") holds widget information. Another table ("Furball") holds other information, with an M:M relationship to Vital. We want to do inferential computations on filtered Furball rows. So we generate a pk list from a Vital QuerySet, and call this … Continue reading Django vs. PostgreSQL IN operations

Celery uses spin-loops. Gah!

Here's another cautionary performance tale. If you use Celery subtasks to manage parallel work, know going in that it uses spin-loops to monitor subtask progress. Specifically, if you get a TaskSetResult from a TaskSet and then use iterate() or join(), the underlying code will eat your CPU alive. Here's the code in celery.result.TaskSetResult: The symptom … Continue reading Celery uses spin-loops. Gah!

A performance lesson on Django QuerySets

At work, we've contracted with PostgreSQL Experts to help us improve our Postgres performance. After analyzing our system, one of their consultants, Christophe Pettus, found glaring problems in how some of my code accessed our database. I consider myself well-informed about good database access practices in Django, and in general. I might not exactly hit … Continue reading A performance lesson on Django QuerySets

Postgres site will migrate to Django

One interesting tidbit from last night's PostgreSQL BOF session was the news that Postgres' site would be migrated to Django within the next year. This came from Josh Berkus. Postgres' site now is apparently generated from a bespoke PHP script mishmash. Josh said that tasks like creating new forms was much harder than they ought to … Continue reading Postgres site will migrate to Django