Latest Posts

Performance August 9, 2023

The Optimal Thread-Pool Size in Java: Explaining the Formula

Determining the optimal size of a thread pool in Java is crucial to maximizing CPU and resource utilization. This decision depends on many factors. Here, we’ll show you how to use the famous formula from Brian Goetz’s “Java Concurrency in Practice.” We’ll give you a practical example of how to calculate the ratio of wait time to compute time (W/C). The Formula The formula for the optimal size of a thread pool is:

JPA August 2, 2023

Avoid these 5 Common Performance Pitfalls in Spring Data JPA: Practical Solutions and Tips

In the world of JVM backend development, Spring Data JPA is an indispensable tool. It provides a convenient and powerful way to manage and manipulate data. However, like any powerful tool, there are pitfalls that can affect performance. In this article, we will explore five common performance pitfalls in Spring Data JPA and present solutions to avoid them. 1. Index Definition with Spring Data JPA One commonly overlooked aspect when working with Spring Data JPA is the proper definition of indexes.

JPA July 26, 2023

Efficient Data Queries with Spring Data JPA Projections

In the world of JVM Backend Development, efficient data processing is a crucial concern. One of the main strengths of Spring Data JPA lies in its ability to simplify and optimize interaction with the persistence layer. A particularly powerful feature provided by Spring Data JPA is the use of projections. They offer an excellent way to make data queries more efficient and improve system performance. What are Spring Data JPA Projections?

JPA July 19, 2023

The Hi/Lo Algorithm in Hibernate: Optimizing Database Identifier Generation

In the world of JVM persistence, Hibernate has a firm place. As one of the most popular frameworks for data persistence, it offers a multitude of possibilities to make developers’ lives easier. One of these possibilities is the Hi/Lo algorithm, a database identifier generation strategy that allows reducing the number of database calls when new entities are persisted. The Challenge of Identifier Generation Before we dive into the Hi/Lo algorithm, let’s briefly look at the challenge of identifier generation in a database.

JPA July 12, 2023

Avoiding Multiple Data Fetches Using the First-Level-Cache in Spring Data JPA

If you’re dealing with backend development on the JVM, you’ll surely come across the Java Persistence API (JPA). A well-known implementation framework for it is Hibernate. In this article, we’ll show you how you can optimize the performance of your application in Spring Data JPA with caching by preventing the same resources from being fetched multiple times. What is the First-Level-Cache? Spring Data JPA uses Hibernate as the default ORM (Object-Relational Mapping), which provides an inbuilt First-Level-Cache.