The Materialized Path Technique: Tree Structures for Relational Database Systems

Editor’s Note: The following is an article written for and published in DZone’s 2021 Data Persistence Trend Report.


Conventional database systems such as MySQL or Microsoft SQL Server are based upon tables, implying rows and columns. This makes it difficult to represent relational graph objects, with records being parents and children of other records in the same table. In fact, this is one of the primary arguments for why developers are choosing NoSQL today, because it makes it so simple to represent graph objects.

Scaling Benchmarks With More Robust UseNUMA Flag in OpenJDK

What happens when you run a Java application instead of checking your hardware configuration? Obviously, your application lags in terms of performance. For small applications, you need not to worry, but for applications that require larger memory (in GB's), you need to take care of the configurations; otherwise, your application can suffer a lot.

What Is NUMA?

Non-Uniform Memory Access, also called NUMA, is a configuration of processor and memory such that some cluster of cores are near to its memory and memory is local to those cores. The below picture of AMD EPYC 2P system explains more clearly about the NUMA nodes. Here, the Die is a single NUMA node and the memory channels (DDR) are also local to it. These dies are also interconnected by fabric, but the access penalty is more for far nodes compared to local nodes.

Exposing Services to External Applications in Kubernetes (Part 1)

Kubernetes (K8s) has now become the most popular production-grade container management and orchestration system. Recently, I was involved in a project where an on-premises application needed to be containerized, managed by a Kubernetes cluster, and be able to connect to other apps outside cluster.

Here, I share my experience of running a container in a local K8s cluster and various options for networking externally to cluster. There are many posts related to or touching this topic, but most of them followed the minikube installation (single-node K8s cluster) whereas my cluster was installed using kubeadm. There are certain differences in K8s install options, as noted in the references below.