Home » Author Archives: Nikita Salnikov Tarnovski

Author Archives: Nikita Salnikov Tarnovski

Storing and querying trillions of events

This is a second post in series describing our recent infrastructure / architecture transition in Plumbr. The first part focused upon event capturing part of the architecture. In the current post we are analyzing how the captured events are stored and are later accessed via user interface. Again, the post walks you through the motivation for the change & describes ...

Read More »

Processing billions of events/day

Throughout the lifecycle of a company the IT architecture is bound to change multiple times. There can be many different reasons for such changes. One of the worst reasons for such change can be when developers get bored by a particular solution and just wish to follow whatever the newest hype happens to be. Some of the reasons why the ...

Read More »

Resource leakages: command pattern to the rescue


Over the years of performance monitoring with Plumbr I have faced hundreds of performance issues caused by resource leakages. In this post I would like to describe one of the simplest ways to approach resource clean-up and avoid the problem. Let me first describe the problem by using a movie player application as an example. The primary feature for such an ...

Read More »

Resizing the HashMap: dangers ahead

I recently stumbled upon a bug caused by improper usage of java.util.HashMap from multiple threads. The bug was an excellent example of the leaking abstractions. Only the knowledge of the implementation-level details of the data structures helped me solve the issue at hand. So I hope that sharing the problem I faced will encourage some of our readers to familiarize ...

Read More »

What is promotion rate?

I do believe you are familiar with the Peter principle. In general, the principle is an observation that promotions can and will lead to a situation where the promoted person is no longer qualified for the job. For the JVM the similar problem exists. Promoting objects too fast can have significant impact to performance. In this post we open up ...

Read More »

What is allocation rate?

Phrases such as “unsustainable allocation rate” and “you need to keep your allocation rates low” seem to belong to the vocabulary of Java Champions alone. Complex, scary and surrounded by magic aura. As it often happens, the magic disappears with a puff of smoke when you look at the concepts more closely. This post is trying to remove the magic ...

Read More »

Stack smashing detected

 I bet every Java developer has been surprised at some point in the beginning of their career when they first encounter native methods in Java code. I am also sure that the surprise has later vanished over the years with coming to understand how the JVM handles calls to native implementations via JNI. This post is about a recent experience with ...

Read More »

Squeezing data into the data structure

This story is about a capacity optimization task that we recently carried out at Plumbr. It all started with an innocent-looking requirement being added to the existing mix. As you might know, Plumbr monitoring solution is distributed as a Java Agent which connects to a Server. The small addition required to keep track of all the connected Agents over time so ...

Read More »

Examples of caching backfiring on performance

In 2015 it should not surprise anyone that caching frequently used data is likely to improve the performance of the application. Caching certain data structures locally inside the JVM instead of requesting them via remote calls from external storage is a widely used technique. Introducing such caches to your applications is likely to improve the application’s performance both in regards ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Spring Interview QnA
  • Multithreading & Concurrency QnA
  • JPA Minibook
  • JVM Troubleshooting Guide
  • Advanced Java
  • Java Interview QnA
  • Java Design Patterns