performance
Why HeapDumpOnOutOfMemoryError Should Be Avoided in Production
·702 words·4 mins
A comprehensive guide exploring why enabling HeapDumpOnOutOfMemoryError can cause significant performance issues in production environments, which OutOfMemoryError types actually trigger heap dumps, and better alternatives like JFR for memory leak detection and automatic service restart strategies.
PostgreSQL vs MySQL: Finding the Right Fit for Your OLTP Workloads
·686 words·4 mins
A comprehensive comparison of PostgreSQL and MySQL for OLTP scenarios, exploring their fundamental architectural differences in secondary index handling and MVCC implementation, with practical insights on when to choose each database.
Can GraalVM Native Image Processes Be Detected by jps? Plus Our Production Strategy
·335 words·2 mins
Discover when GraalVM Native Image processes show up in jps and learn our battle-tested approach for choosing between GraalVM Native Image and JVM in production environments. We break down our strategy for Lambda-style tasks versus long-running microservices.
Maximizing Request Throughput to Third-Party APIs: A Practical Testing Approach
·892 words·5 mins
Learn how to develop and test high-performance API clients using WebClient, TestContainers, and toxicproxy. This comprehensive guide covers asynchronous request handling, isolated testing environments, and realistic failure simulation for robust microservice development.
Tackling a Mysterious JVM Safepoint Issue: A Journey from Problem to Solution
·1004 words·5 mins
A deep dive into diagnosing and resolving a production JVM issue where applications would freeze during hourly log synchronization tasks. We explore safepoint analysis, JVM log output blocking, asynchronous logging implementation, and WebFlux optimization to achieve a complete solution.
OpenJDK JVM Deep Dive: A Complete Guide to Java's PRNG Evolution
·4434 words·21 mins
A comprehensive exploration of pseudo-random number generators in Java, covering everything from basic Linear Congruential algorithms to advanced LXM implementations in Java 17. Learn about algorithm performance, security considerations, and how to choose the right random number generator for your specific use case.
Tackling Performance Degradation in Sharded MySQL Tables: Understanding the Root Cause and Solutions
·1712 words·9 mins
A comprehensive guide to understanding why MySQL queries slow down over time in sharded environments, exploring the underlying causes of storage fragmentation and MVCC-related issues, and providing practical solutions using table rebuilding techniques with OPTIMIZE TABLE for maintaining optimal database performance.
OpenJDK JVM Deep Dive: Java Memory Model - A Comprehensive Guide to Concurrency and Memory Barriers
·12058 words·57 mins
A deep dive into Java Memory Model (JMM) from specification to implementation, covering memory barriers, CPU reordering, and Java 9+ VarHandle APIs. Learn about coherence, causality, consensus, and how volatile, final, and other synchronization mechanisms work under the hood with practical jcstress examples.
The Hidden Performance Killer: Why Code Location in Logs Can Destroy Your Microservice Performance
·898 words·5 mins
Discover how enabling code location in logs can cause severe CPU performance issues in microservices, especially reactive applications. This deep-dive analysis reveals the hidden costs of stack walking in Log4j2 and provides actionable solutions for high-throughput systems.
Troubleshooting Memory Issues After Spring Boot Upgrade: A Deep Dive into ResolvableType Object Creation
·1180 words·6 mins
An investigation into excessive memory allocation and YoungGC frequency after upgrading to Spring Boot 2.4.6 + Spring Cloud 2020.0.x, revealing how BeanUtils.copyProperties creates massive ResolvableType objects without caching in Spring 5.3.x versions.