Based on our experience, we believe Round robin may not be an effective load balancing algorithm, because it doesn't equally distribute traffic among all nodes. You might wonder how this is possible? Yes, it is possible 🙂 How Round robin... Continue Reading →
Java.lang.VirtualMachineError is thrown when Java virtual machine encounters any internal error or resource limitation which prevents it from functioning. It's a self-defensive mechanism employed by JVM to prevent entire application from crashing. In this article lets discuss different types of... Continue Reading →
Thread dumps are vital artifacts to diagnose CPU spikes, deadlocks, poor response times, memory problems, unresponsive applications, and other system problems. There are great online thread dump analysis tools such as http://fastthread.io/, which can analyse and spot problems. But to... Continue Reading →
Description Dining Philosophers is a classic computer science problem that happens in concurrent programming. Dining philosophers problem will result in circular deadlock problem. Circular deadlock is a variant of deadlock problem. Once deadlock happens, the only way to recover from... Continue Reading →
Learn about JVM Internals in just 3 crisp slides. Deck talks about JVM Architecture; it's memory model and Garbage Collection process succinctly in 3 slides.
Description If threads are blocking momentarily, then it’s not a problem. However, if they are blocking for a prolonged period, then it’s of concern. It's indicative of some problem in the application. Typically blocked threads would make application unresponsive. Threads... Continue Reading →
Description You might have experienced the application’s CPU to spike up suddenly & spike wouldn’t go down until JVM is recycled. You restart the JVM, after certain time period CPU consumption would once again start to spike up. Then you will have to... Continue Reading →
Description Thread-A could have acquired the lock-1 and then would never release it. Thread-B could have acquired lock-2 and waiting on this lock-1. Thread-C could be waiting to acquire lock-2. This kind of transitive blocks between threads can make entire application unresponsive. See the real-world... Continue Reading →