Welcome to the March 2024 edition of the pganalyze newsletter!
Today we're excited to announce the new pganalyze Enterprise Server release, v2024.04.0, which brings the recently released Index Advisor 3.0 to everyone running pganalyze behind their own firewall.
We're also excited about launching our new seamless integration with Tembo - add pganalyze to your Tembo stack, enter the API key, and you're done.
If you're interested to meet our team in person, you can find details about PGDay Chicago and PGConf.dev below.
And, if you want to know the latest about what changes will likely be in the upcoming Postgres 17, you can find our most recent "5mins of Postgres" episodes (e.g. about adaptive radix trees to speed up VACUUM), as well as a summary of pganalyze product updates at the end of the newsletter!
All the best,
Lukas
pganalyze Enterprise Server v2024.04.0
Index Advisor v3.0, released last month, is now available for pganalyze Enterprise Server customers in the v2024.04.0 release. Get the full functionality of pganalyze behind your own firewall - on-premise, or in your own cloud account.
With this release we've also made major improvements in snapshot processing, added our new OpenTelemetry tracing integration, refined VACUUM Advisor, added the VACUUM Simulator, improved Postgres 16 support, updated the base image to Ubuntu 22.04, and more.
When the team at Tembo first approached us about integrating pganalyze, all involved were interested in making this as seamless as possible. And we're excited about what our teams came up with, which is the easiest way to integrate pganalyze with a Postgres-as-a-Service provider, yet.
Simply add the pganalyze app to your Tembo stack, enter your pganalyze collector API key in the Tembo dashboard, and Tembo will take care of everything behind the scenes. pganalyze Log Insights, Index and VACUUM Advisor and Automated EXPLAIN will work out of the box!No need to run the collector separately, since it will run as part of Tembo's stack.
Lukas will be giving a talk on "Automating Postgres Index Selection Using Constraint Programming". Learn the behind the scenes of how Index Advisor 3.0 works!
We're sponsoring this year's PGConf.dev - the continuation of PGCon, the main conference for development of the core Postgres database. Multiple members of the pganalyze team will be attending, and we'll also participate in the unconference.
If you're at one of these events, say hi, or drop us a note ahead of time to arrange a meeting.
We discuss why changing random_page_cost from the default of 4 is usually a good idea, and a specific example of where a high random_page_cost caused a bad plan due to index correlation. We dive into the relevant parts of the Postgres source, and explain how planner costing works.
We discuss how Figma scaled out their Postgres installation by 100x over 4 years, and recently switched to horizontal sharding using their DBProxy query proxy. We also compare their approach to Notion's sharding setup, as well as the Citus extension for Postgres.
We discuss a recently committed change to the Postgres 17 development branch that adds a built-in collation provider to Postgres, as well as a new built-in C.UTF-8 locale that allows fast binary sorting, whilst supporting Unicode-aware operations on texts.
We discuss a recently committed change to the Postgres 17 development branch that improves how EXPLAIN represents SubPlan and InitPlan nodes. We compare the output with 16, and discuss the background of how a subplan can result from a sub-SELECT, and when it results in a regular JOIN instead.
We discuss a recently committed change to the Postgres 17 development branch that introduces an improved dead tuple storage for autovacuum based on adaptive radix trees. This significantly reduces autovacuum memory consumption and avoids the need for multiple index vacuum phases.
Subscribe on YouTube
We publish weekly videos on Postgres, our conference talks, tutorials, product walk-throughs, and more.
Supports Log Insights (via log streaming) and system metrics download
This integration is mainly intended for direct use by the Tembo Postgres provider (the collector is deployed by Tembo, if enabled)
Heroku integration
Avoid unnecessary error messages related to state file and reload mechanism
Accept PGA_API_BASE_URL env var in addition to PGA_API_BASEURL
Going forward we recommend using `PGA_API_BASE_URL` when configuring the collector for sending to pganalyze Enterprise Server installations
Syslog handler: Allow leading spaces before parts regexp
When configuring rsyslogd for RFC5424 output with the RSYSLOG_SyslogProtocol23Format template, it adds a leading space that we didn't anticipate correctly.
Relation stats: Call pg_stat_get_* directly instead of using system views
The collecror now calls the underlying pg_stat_get* functions directly which has the same effect as querying the pg_stat_all_tables and pg_statio_all_tables views (as they are simple views without any security barrier), but results in better performance when a table filter (`ignore_schema_regexp` / `IGNORE_SCHEMA_REGEXP`) is active
Other improvements
Add support for Postgres 16 in in-app documentation
Warn when a server is over the table limit
Query Performance: Warn when pg_stat_statements.track is set to "none"
Server-wide query performance overview: Group timeseries data if needed
EXPLAIN Plans: Add support for parsing Memoize nodes in text-format auto_explain output
Bugfixes
Index Advisor: Avoid internal errors when viewing results
Onboarding / Setup Instructions
Fix error when initially loading new server from end of setup instructions
Make get_relation_stats_ext compatible with Postgres 12
System page: Fix missing CPU Utilization data for Amazon RDS when enhanced monitoring is off
Alerts & Check-Up: Fix layout of organization-wide Check settings configuration
Duboce Labs, Inc., 1501 Mariposa St, Unit 408, San Francisco, CA 94107