Heroku Blog
- News
- Last Updated: February 04, 2020
- Scott Truitt
After a successful evaluation period, PostgreSQL 12 is now the default version for new Heroku Postgres databases and an available upgrade for existing databases. I want to emphasize a few key changes and improvements in Postgres 12: Native Table Partitioning Concurrent Operations Native Partitioning was introduced in PostgreSQL 10 and performance improvements for improved parallel processing were added in PostgreSQL 11. Updating tables, altering partitions blocking queries, and executing concurrent operations for Native Partitioning were all improved in PostgreSQL 12. New features include allowing tables to modify partitions without blocking queries, allowing foreign keys to reference partitioned tables, and adding…
- Engineering
- Last Updated: June 03, 2024
- Lenora Porter
In this post, we will cover changes coming to Chrome (and other browsers) that affect how third-party cookies are handled—specifically SameSite changes, how to test to see if your site is impacted and how to fix it. ⚓️ What is SameSite and why the big change? ⚓️ Prepare for Chrome 80 updates ⚓️ Step 1: Enabling SameSite Chrome flags and test to see if your site faces SameSite errors ⚓️ Step 2: Fixing cookie errors using appropriate attributes What is SameSite and why the big change? Back in May 2019, Chrome announced its plan to develop a secure-by-default model for…
- Engineering
- Last Updated: January 15, 2020
- chris le roy
As part of our Blackhat Europe talk “Reverse Engineering and Exploiting Builds in the Cloud” we publicly released a new tool called Terrier. Announcing Terrier: An open-source tool for identifying and analysing container and image components. In this blog post, I am going to show you how Terrier can help you identify and verify container and image components for a wide variety of use-cases, be it from a supply-chain perspective or forensics perspective. Terrier can be found on Github. Containers and images In this blog post, I am not going to go into too much detail about containers and images…
- News
- Last Updated: December 25, 2019
- Richard Schneeman
When Heroku launched in 2007 there was only a single Ruby version that could be used on the platform. In 2012 Heroku began to support multiple Ruby versions. Since then, we've had a holiday tradition of releasing the new versions of Ruby on the same day they come out, which always happens on Christmas day (December 25th). If you're new to the community, you might be curious about where releasing a new minor version on Christmas comes from. To help answer that question, we interviewed Matz's, who works as the Chief Ruby Architect at Heroku in 2015. In his own…
- Engineering
- Last Updated: June 03, 2024
- Richard Schneeman
Update: On closer inspection, the lock type was not on the table, but on a tuple. For more information on this locking mechanism see the internal Postgresql tuple locking documentation. Postgres does not have lock promotion as suggested in the debugging section of this post. I maintain an internal-facing service at Heroku that does metadata processing. It's not real-time, so there's plenty of slack for when things go wrong. Recently I discovered a Postgres performance issue that bogged down the system to the point where no jobs were being executed at all. After hours of debugging, I found that an…
- Engineering
- Last Updated: December 19, 2019
- Ben Fritsch
This blog post is adapted from a lightning talk by Ben Fritsch at Ruby on Ice 2019. There can be a number of reasons why your application performs poorly, but perhaps none are as challenging as issues stemming from your database. If your database's response times tend to be high, it can cause a strain on your network and your users’ patience. The usual culprit for a slow database is an inefficient query being executed somewhere in your application logic. Usually, you can implement a fix in a number of common ways, by: reducing the amount of open locks (or…
Subscribe to the full-text feed.