Zookeeper Summary

Distributed systems Distributed system involves independent computing entities linked together by network. The components communicate and coordinate with each other to achieve a common goal. In early days, designers and developers often had made some assumptions (aka. fallacies) of distributed computing: The network is reliable Latency is zero Bandwidth is infinite Network is secure Topology … Read moreZookeeper Summary

Java Garbage Collection

Tuning the garbage collector is the most important thing that can be done to improve the performance of a Java application. OpenJDK has three collectors suitable for production, with different performance characteristics. In order to study the GC behaviours in application, it is important to turn on GC logging. The detailed step is different in … Read moreJava Garbage Collection

Balloons steal memory from virtual machines

I came across an ElasticSearch server (ESXi guest with 32GB physical memory) where the main process keeps dying of OOM. Even worse, after the OOM event, the free memory left is about 10G and Elastic Search cannot start because its JVM is set with -Xms16g in /etc/elasticsearch/jvm.options. So I need to address the OutOfMemory error. … Read moreBalloons steal memory from virtual machines

Cryptography basics 2 of 2

My previous post outlines several core concepts around cryptography, such as asymmetric key encryption, digital certificate, the encoding formats and relevant file extensions. In this article, we continue to explore cryptography use cases, where these concepts are connected and put into application. The most important use case is TLS handshake. I cannot stress enough how … Read moreCryptography basics 2 of 2

Java version confusions

Anyone working with deploying Java applications inevitably came across one of these confusions with the terms. Let’s clarify them. This clarification is not for Java developer and does not go deep with underlying technologies. This is for installation/DevOps engineers to understand Java environment. Java SE, EE and ME Java Platform, Standard Edition (Java SE) is … Read moreJava version confusions