As part of a recent personal journey to better understand databases and better learn Rust, I have recently took on the project of writing a simple key-value storage engine. Crazy, right? Lets get started!

B-Trees vs LSM Trees

The first thing one must think of when writing a key-value storage engine is -”How should I store my data so that I can perform reads and writes efficiently?”; The two most common approaches for storing data on disk are B-Trees and LSM Trees.

BTrees have been around for five decades and are used in “traditional” SQL databases such as PostgreSQL as an index on tables…

A bit of background

I have been writing Go professionally for about two years now as part of a large corporation. Recently I have decided to pick up Rust; I started the way I usually approach picking up new languages — Writing a small project while reading the documentation (in this case — the Rust book).

My first impression of the language was how “large” and verbose it is compared to Go. It took me a month and a half to finish “The Book”. For comparison, “A tour of Go” took me about a week. Go is simply a “smaller” language with less features…

Step 1: Setting up Openshift

The simplest way to setup Openshift locally is using “CodeReady Containers”. It provides a minimal “Openshift 4” installation on a VM running locally. Follow the steps in the link above to setup you’re cluster.

Step 2: Setting up Prometheus

To set up Prometheus lets first create a namespace for it:

oc new-project monitoring && oc project monitoring

Next, we need to deploy Prometheus:

oc new-app prom/prometheus

The above command will pull the latest Prometheus image to our clusters registry and create a “Deployment” of a single pod running Prometheus.

Step 3: Expose Prometheus

There are several ways to expose and application running on Openshift, I find the simplest way…

Nimrod Shneor

Software Engineer; Rock Climber; Hiker; Runner; Father; Partner.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store