~/devreads

#database

63 posts

8 Jul

23 Jun

19 Jun

17 Jun

12 Jun

10 Jun

4 Jun

3 Jun

Netflix Technology Blog 11 min read

By Rajiv Shringi , Kaidan Fullerton , Oleksii Tkachuk and Kartik Sathyanarayanan Introduction Netflix’s TimeSeries Abstraction is a scalable system for ingesting and querying petabytes of temporal event data with millisecond latency. We use Apache Cassandra 4.x as the underlying storage for these main reasons: Throughput, latency, and cost : Cassandra can handle millions of low‑latency reads and writes in…

scalabilitycassandradatabasedistributed-systemstimeseries

14 May

16 Apr

25 Feb

24 Feb

Siddhartha Narang 13 min read

Re-architecting Flipkart’s Rate Card Engine: The Journey to Building a High-Scale, Generic Rate Card Platform Introduction In the hyper-competitive world of e-commerce every cent matters. How marketplace fees are calculated, charged and displayed to millions of sellers at Flipkart directly impacts revenue, seller trust, and business agility. For years, the legacy system responsible for this task was the Agreement Master…

rate-cardsoftware-architecturedistributed-systemsecommercedatabase

28 Jan

3 Nov 2025

22 Oct 2025

10 Sept 2025

28 Aug 2025

Raphael Montaud 14 min read

How we made our filtering 10x cheaper by removing our Bloom Filters Bloom Filters are great tools to make fast and cheap filtering. They also come with plenty of problems and can easily get expensive and cumbersome. We switched to user-based direct database queries, which made our filtering cheaper and easy to maintain. Here’s the full breakdown of that migration.…

databasesoftware-engineeringrecommendation-systembloom-filterdynamodb

25 Aug 2025

Raphael Montaud 6 min read

Cross-Digest diversification In this part 4, we’ll see how we went from investigating a few complaints from digest power users to improving our digest recommendations across the board. Intro : This is a 4-part series breaking down improvements to the algorithm behind the Medium’s Daily Digest over the past year. When we started this work, the Digest was suboptimal —…

programmingrecommendation-systemsoftware-engineeringdatabasemachine-learning

Kovi 9 min read

Discover how Bazaarvoice migrated millions of UGC records from RDS MySQL to AWS Aurora – at scale and with minimal user impact. Learn about the technical challenges, strategies, and outcomes that enabled this ambitious transformation in reliability, performance, and cost efficiency Bazaarvoice ingests and serves millions of user-generated content (UGC) items—reviews, ratings, questions, answers, and […]

databasedevops

19 Jun 2025

somesh sharma 5 min read

Optimistic locking is a concurrency control mechanism where we assume that multiple transactions can safely access data without conflict, allowing them to proceed without locking the data upfront. Unlike pessimistic locking, where resources are locked to avoid conflicts, optimistic locking allows transactions to proceed without locks and checks for conflicts only when updating the data. If a conflict is detected…

optimistic-lockingdatabaseconcurrency-controlisolation-leveltransaction-management

29 May 2025

Jonathan Brown 4 min read

We’re excited to announce the general availability of Heroku Postgres version 17, packed with new features and enhancements to your database performance. And that’s not all – we’re also introducing a game-changing feature that streamlines your upgrade experience. This new method of version upgrade is now the default, so you can try it to upgrade […] The post Heroku Postgres…

newsdatabaseheroku postgresperformance optimizationplatform updates

21 Nov 2024

Agne 5 min read

Heroku Router 2.0 is now generally available, marking a significant step forward in our infrastructure modernization efforts. The new router delivers enhanced performance and introduces new features to improve your applications’ functionality. There are, of course, nuances to be aware of with any new system, and with Router 2.0 set to become the default router […] The post Tips &…

engineeringcloud infrastructuredatabaseguiderouter 2.0

19 Nov 2024

Ken W. Alger 9 min read

Your organization may have many reasons to move a cloud service from one provider to another. Maybe you’ve found a better performance-versus-cost balance elsewhere. Maybe you’re trying to avoid vendor lock-in. Whatever your reasons, the convenience and general interoperability of cloud services today put you in the driver’s seat. You get to piece together the […] The post Planning Your…

uncategorizeddatabasedeveloper toolspostgressql

7 Nov 2024

vladmihalcea 1 min read

Introduction In this article, we are going to see the best way to determine the optimal connection pool size using the FlexyPool auto-incrementing pool strategy. If you are unfamiliar with the reason why database applications need a connection pool, then check out this article first. Now, according to the Universal Scalability Law, the maximum throughput of a database system is…

databaseflexypoolconnection poolingdatabase connection provisioninghikaricp

10 Oct 2024

24 Jul 2024

vladmihalcea 1 min read

Introduction In this article, we are going to see how we can use symbolic links to move the DB data folder. The reason why I needed to move the data folder from the C to the D Windows partition was because the C partition was running out of disk space. DB data folder A relational database system requires to store…

databaseoraclesymbolic links

21 May 2024

Jonathan Brown 5 min read

We’re thrilled to launch our new Heroku Postgres Essential database plans. These plans have pgvector support, no row count limits, and come with a 32 GB option. We deliver exceptional transactional query performance with Amazon Aurora as the backing infrastructure. One of our beta customers said: “The difference was noticeable right from the start. Heroku […] The post Introducing New…

newsdatabasedeveloper toolsheroku postgrespostgres

10 Apr 2024

vladmihalcea 1 min read

Introduction In this article, we are going to investigate the difference between the PostgreSQL FOR UPDATE and FOR NO KEY UPDATE when locking a parent record and inserting a child row. Domain Model To see the difference between the PostgreSQL FOR UPDATE and FOR NO KEY UPDATE locking clauses, consider the following one-to-many table relationship where the post table is…

databasepostgresqlsqlexplicit lockingfor no key update

26 Mar 2024

vladmihalcea 1 min read

Introduction In this article, we are going to analyze how PostgreSQL Heap-Only-Tuple or HOT Update optimization works, and why you should avoid indexing columns that change very frequently. PostgreSQL Tables and Indexes Unlike SQL Server or MySQL, which store table records in a Clustered Index, in Oracle and PostgreSQL, records are stored in Heap Tables that have unique row identifiers.…

databasepostgresqlsqlheap-only-tuplehot

11 Mar 2024

vladmihalcea 1 min read

Introduction In this article, we are going to analyze the PostgreSQL Index Types so that we can understand when to choose one index type over the other. When using a relational database system, indexing is a very important topic because it can help you speed up your SQL queries by reducing the number of pages that have to be scanned…

databasepostgresqlsqlaivenbtree

14 Feb 2024

vladmihalcea 1 min read

Introduction In this article, we are going to explore various PostgreSQL performance tuning settings that you might want to configure since the default values are not suitable for a QA or production environment. As explained in this PostgreSQL wiki page, the default PostgreSQL configuration settings were chosen to make it easier to install the database on a wide range of…

databasepostgresqlaivenconfigurationperformance tuning

11 Jan 2024

26 Oct 2023

Jonathan Brown 4 min read

We’re pleased to introduce the pgvector extension on Heroku Postgres. In an era where large language models (LLMs) and AI applications are paramount, pgvector provides the essential capability for performing high-dimensional vector similarity searches. This allows Heroku Postgres to quickly find similar data points in complex data, which is great for applications like recommendation systems […] The post Enhancing Heroku…

newsaidatabasedeveloper toolsheroku postgres

28 Sept 2023

Claire Adams 5 min read

Cron scripts are responsible for critical Slack functionality. They ensure reminders execute on time, email notifications are sent, and databases are cleaned up, among other things. Over the years, both the number of cron scripts and the amount of data these scripts process have increased. While generally these cron scripts executed as expected, over time…

databasegolanginfrastructurekubernetesscalability

31 Aug 2023

vladmihalcea 1 min read

Introduction In this article, we’re going to see how the PostgreSQL JDBC Driver implements Statement Caching and what settings we need to configure in order to optimize the performance of our data access layer. Prepared Statements The JDBC API allows you to create a PreparedStatement by calling prepareStatement(java.lang.String) method on a given Connection reference. For this reason, it’s very common…

databasesqlconnection poolingpostgresqlprepared statement

19 Apr 2023

Rob 1 min read

I recently needed count the number of rows in an SQL query that had a Group By clause. It looked something like this: SELECT account_name FROM events WHERE created_at >= CURDATE() - INTERVAL 3 MONTH GROUP BY account_id This provides a list of account names (28 in my case), but if you try to count them using: SELECT COUNT(account_name) as…

database

23 Feb 2023

vladmihalcea 1 min read

Introduction In this article, we are going to explore the YugabyteDB architecture and see how it manages to provide automatic sharding and failover without compromising data integrity. YugabyteDB is a distributed SQL database, so its architecture is different than the ones employed by traditional relational database systems. Traditional relational database architecture Most relational database systems use a Single-Primary replication architecture,…

databasedocdblsmsoftware architectureyugabytedb

8 Feb 2023

vladmihalcea 1 min read

Introduction In this article, we are going to see how we can achieve fault tolerance in your Spring Data application with the help of YugabyteDB. As previously explained, YugabyteDB is an open-source distributed SQL database that combines the benefits of traditional relational databases with the advantages of globally-distributed auto-sharded database systems. Fault tolerance First, let’s start with the definition of…

databasespringfault tolerancespring datayugabytedb

11 Jan 2023

vladmihalcea 1 min read

Introduction In this article, we are going to see the overhead of acquiring a new connection when using YugabyteDB and why connection pooling is mandatory for performance. Acquiring a database connection using JDBC To interact with a database system, first, we need to acquire a database connection. And, when using Java, we need to obtain a Connection object from the…

databasesqlconnectionconnection poolinghikaricp

30 Oct 2022

srinivas.tamada@gmail.com (Srinivas Tamada) 1 min read

Pocketbase is an open-source application and alternative to Google Firebase. This is offering realtime database, authentication(including social), and file storage for your next web and mobile application. This article is about how to host the Pocketbase application server which usually runs at 8090 port with your existing application server. If you are using Linux and Apache based server, the following…

apacheauthenticationdatabasehostingpocketbase

21 Jan 2021

Greg Nokes 1 min read

We are excited to announce that we are moving Connection Pooling for Heroku Postgres into GA. Connection Pooling unlocks the ability to use up to 10,000 client connections to a Heroku Postgres Database, without adversely impacting performance on the database. This will unlock more complex and higher scale applications with simpler architectures on the Heroku […] The post Connection Pooling…

newscloud infrastructuredatabasepostgres

19 Dec 2019

Richard Schneeman 7 min read

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 […] The post The Curious…

engineeringdatabasedeveloper toolspostgres

7 Nov 2019

Scott Truitt 4 min read

Today, we’re thrilled to announce four new trusted data integrations that allow data to flow seamlessly and securely between Heroku and external resources in public clouds and private data centers: Heroku Postgres via mutual TLS Heroku Postgres via PrivateLink Apache Kafka on Heroku via PrivateLink Heroku Redis via PrivateLink These integrations expand Heroku’s security and […] The post Announcing Heroku…

newsapache kafkaawscloud infrastructuredatabase

28 Aug 2019

Corey Purcell 3 min read

As outlined in a previous blog post, Heroku Data services undergo routine maintenances for security and patching. In this post, we describe the process used to minimize downtime for Heroku Postgres and Heroku Redis premium ‘High Availability’ plans and how we optimized the process to perform up to 75% faster. Data Services Architecture High availability […] The post Up to…

engineeringdatabaseperformance optimizationpostgresredis

23 Jul 2019

Scott Truitt 4 min read

There are many reasons to choose Heroku Data services, but keeping the services you use secure and up-to-date rank near the top. This foundation of trust is the most important commitment we make to our customers, and frequent and timely maintenances are one way we deliver on this promise. We do everything we can to […] The post Why Frequent…

newsapache kafkacloud infrastructuredatadatabase

15 Jul 2019

Becky Jaimes 5 min read

Every organization needs to be data-driven in order to be successful. Whether you’re tracking an application’s performance, incoming support tickets, or revenue rates, different components of any company depend on metrics that inform the health of the business. At Heroku, we’re hackers to the core, but that doesn’t mean we’re all programmers. We build on […] The post Dataclips Power…

engineeringdatabasedeveloper toolsheroku dataclipspostgres

16 Apr 2019

15 Apr 2019

Jonan Scheffler 10 min read

Setting up a database is a relatively straightforward process (Heroku has an add-on for that), but getting it to run well in production is sometimes another matter. As your application grows and your data grows along with it, you will likely find a number of performance bottlenecks specifically related to your database, and this post […] The post Optimizing Database…

engineeringdatabasedeveloper toolsperformance optimizationpostgres

21 Mar 2019

Becky Jaimes 3 min read

After a successful two-month Beta period, PostgreSQL 11 is now the default version for all new provisioned Heroku Postgres databases. All Postgres extensions, tooling, and integration with the Heroku developer experience are ready to use, giving you the power of PostgreSQL 11 with the ease and usability of Heroku for building data-centric applications. We’d like […] The post PostgreSQL 11…

newsdatabasepostgressql

14 Dec 2017

Camille Baldock 2 min read

Today, we're happy to announce full support for PostgreSQL 10, opening our managed Postgres solution to the full slate of features released after a successful two-month Beta period. PostgreSQL 10 is now the default version for all new provisioned Heroku Postgres databases. All Postgres extensions, tooling, and integration with the Heroku developer experience are ready […] The post PostgreSQL 10…

newsdatabasepostgressql

17 Oct 2017

Camille Baldock 3 min read

Earlier this month, PostgreSQL 10.0 was released. Today, we are excited to announce PostgreSQL 10 is available in beta on Heroku, bringing a number of notable feature and performance improvements to our managed PostgreSQL database service. The beta provides customers who want to try out the new release an easy way to do so, while […] The post PostgreSQL 10…

newsdatabasepostgressql

11 Jul 2017

Richard Schneeman 9 min read

I recently demonstrated how you can use Rack Mini Profiler to find and fix slow queries. It’s a valuable tool for well-trafficked pages, but sometimes the slowdown is happening on a page you don't visit often, or in a worker task that isn't visible via Rack Mini Profiler. How can you find and fix those […] The post Using Heroku’s…

newsdatabaseperformance optimizationpostgresruby

24 May 2017

Seth Hubbell 7 min read

(Always One More Thing…) Who Are We? The Ad Management team here at Bazaarvoice grew out of an incubator team. The goal of our incubator is to quickly iterate on ideas, producing prototypes and “proof of concept” projects to be iterated on if they validate a customer need. The project of interest here generates reports […]

testingbackenddatabaseemodbmigration

3 May 2016

Rimas Silkaitis 2 min read

Starting today, Postgres 9.5 is now the new default version for all new Heroku Postgres databases. We’ve had hundreds of customers using early beta versions of 9.5 and the feedback has been positive. For many customers, the new UPSERT functionality was the last feature that prevented many of them from moving from other relational databases […] The post Postgres 9.5…

newsdatabasedeveloper toolsheroku postgrespostgres

24 Feb 2016

Kenneth Reitz 2 min read

A big update to the beloved Python web framework known as Django was released recently: Django 1.9. This release contains a long list of improvements for everything from the graphical styling of the admin to the ability to run your test suite in parallel. Our favorite improvements to the framework were, of course, all about […] The post Django 1.9’s…

newsdatabasedjangopostgresproduct features

8 Jan 2016

Rimas Silkaitis 3 min read

Heroku has long been committed to making PostgreSQL one of the best relational databases in the world. We’re also committed to giving you the ability to try the latest release as soon as it’s available. Today, we’re pleased to announce the public beta of Postgres 9.5 on Heroku. PostgreSQL 9.5 brings a bevy of super […] The post Here’s Postgres…

newsdatabasedeveloper toolsheroku postgrespostgres

12 Mar 2015

lukaseder 1 min read

The past decade has been an extremely exciting one in all matters related to data. We have had: An ever increasing amount of data produced by social media (once called “Web 2.0”) An ever increasing amount of data produced by devices (a.k.a. the Internet of Things) An ever increasing amount of database vendors that explore … Continue reading 3 Reasons…

sqldatabasedzonepersistencerdbms

Rimas Silkaitis 3 min read

Performing a backup is one of those tasks that ensures your application can recover from database or hardware failures should they ever occur. Over four year ago, we recognized this as a best practice and came out with PGBackups, an add-on that reduces the risk and complexity of taking database backups. Today, we’re pleased to […] The post Schedule PostgreSQL…

newsdatabasedeveloper toolspostgres

8 Jan 2015

Peter van Hardenberg 3 min read

Each major release of PostgreSQL brings lots of great new functionality. The recent release of PostgreSQL 9.4 includes an exciting new JSON data type, improvements to window functions, materialized views, and a host of other performance improvements and enhancements. We’ll go into more depth on what’s new and exciting in this release below, but first, […] The post PostgreSQL 9.4…

newsdatabasedeveloper toolsheroku postgrespostgres

20 Oct 2014

lukaseder 1 min read

One of MongoDB’s arguments when evangelising MongoDB is the fact that MongoDB is a “schemaless” database: Why Schemaless? MongoDB is a JSON-style data store. The documents stored in the database can have varying sets of fields, with different types for each field. And that’s true. But it doesn’t mean that there is no schema. There … Continue reading Stop Claiming…

sqldatabasedatabase schemadynamically typedjavascript

22 Jul 2014

7 Jan 2014

Schakko 1 min read

Recently I struggled upon the same problem, this guy described. Our Oracle database instance contains multiple schematics with almost the same structure. Every developer has it’s own schema for unit and integration tests. On application startup the Hibernate schema validator calls the DatabaseMetaData.getTables() for every linked entity. The method returns the first […] The post Hibernate uses wrong schema during…

application serverdatabasesdatabasehibernatejava

7 Feb 2013

Schakko 1 min read

Play SQL is a an Atlassian Confluence plug-in for querying database tables and displaying the results inside a Confluence page. The plug-in has only native support for PostgreSQL and HSQL but other drivers can be used via a JNDI datasource. For using MySQL with Play SQL you have to download the […] The post Use Confluence Play SQL Plug-in with…

application serveratlassianconfluencedatabasejira