A beginner’s guide to Phantom Read anomaly

Introduction

Database transactions are defined by the four properties known as ACID. The Isolation Level (I in ACID) allows you to trade off data integrity for performance.

The weaker the isolation level, the more anomalies can occur, and in this article, we are going to describe the Phantom Read phenomenon.

Continue reading “A beginner’s guide to Phantom Read anomaly”

A beginner’s guide to Non-Repeatable Read anomaly

Introduction

Database transactions are defined by the four properties known as ACID. The Isolation Level (I in ACID) allows you to trade off data integrity for performance.

The weaker the isolation level, the more anomalies can occur, and in this article, we are going to describe the Non-Repeatable Read phenomenon.

Continue reading “A beginner’s guide to Non-Repeatable Read anomaly”

How to enable multi-row inserts with the PostgreSQL reWriteBatchedInserts configuration property

Introduction

Vladimir Sitnikov has been working on many optimizations to the PostgreSQL JDBC Driver, and one of these is the reWriteBatchedInserts configuration property which he recently told me about.

In this article, you will see how the reWriteBatchedInserts JDBC configuration property works in PostgreSQL, and how it allows you to rewrite INSERT statements into a multi-VALUE INSERT.

Continue reading “How to enable multi-row inserts with the PostgreSQL reWriteBatchedInserts configuration property”

How to use database-specific or Hibernate-specific features without sacrificing portability

Introduction

Like other non-functional requirements, portability is a feature. While portability is very important when working on an open-source framework that will be used in a large number of setups, for end systems, portability might not be needed at all.

This article aims to explain that you don’t have to avoid database or framework-specific features if you want to achieve portability.

Continue reading “How to use database-specific or Hibernate-specific features without sacrificing portability”