RSSAmplifier

Blog

Mikael Ronstrom

My name is Mikael Ronstrom and I work for Hopsworks AB as
Head of Data. I also assist companies working with NDB Cluster as self-employed consultant. I am a member of The Church of
Jesus Christ of Latter Day Saints. I can be contacted at mikael dot ronstrom at gmail dot com for NDB consultancy services.

The statements and opinions expressed on this blog are my own and do not necessarily represent those of Hopsworks AB.

mikaelronstrom.blogspot.comRSS feed ↗25 posts

Latest posts

Two-level hashing for improved scans in distributed databases

In a distributed database using hash partitioning for the tables there is usually two options when you scan a table. Either you know the partition key and only scan a single partition, or you scan all partitions. Assume you are scanning for hundreds of rows. It could be a table containing the files in a directory as an example, or it could be the events from a user. In both cases both variants of…

(untitled)

Experiences from the new wave of AI programming Experiences from the new wave of AI programming How we built RonSQL in RonDB with Claude and Codex A false start A few years ago at Hopsworks we made an early attempt at using ChatGPT for coding. It turned out to be an expensive mistake: the generated code cost us several months of rewriting. So when I came back to AI programming this year, I did so…

(untitled)

RonSQL: a new SQL engine for RonDB with predictable low latency and CTEs RonSQL: a new SQL engine for RonDB with predictable low latency and CTEs Today we released RonDB 26.04.1 , a beta release. It contains a lot of new features, but the most interesting one is that RonSQL now supports pushdown join aggregation and CTEs , so that complex queries run with low, predictable latency. RonDB has always…

RonDB gets a RDMA transporter supporting pNFS Lattice

Today, PEAK-AIO announced pNFS Lattice , a metadata server for Parallel NFS. It is running on top of RonDB using an RDMA transporter. Now you might wonder, does RonDB have an RDMA transporter? A few weeks ago the answer would have been no. It has been on the TODO list for more than a decade, but it was not prioritized. However, a few weeks ago Eyal Lemberger from PEAK-AIO contributed an RDMA…

(untitled)

New Post 2. Switch to HTML view (click the pencil icon or "HTML" button) 3. Paste everything BELOW this comment block into the editor 4. Set the title to: Developing RonDB with Claude: Lessons from 30 Years of Database Engineering 5. The SVG diagrams are embedded inline so no separate image uploads are needed. 6. Preview and Publish --> Developing RonDB with Claude: Lessons from 30 Years of…

RonDB development moves on

A few months ago we released RonDB 24.10 with 11 new features. Development of RonDB doesn't stop there. We have continued developing RonDB 25.10, whether this release will be a LTS release or merely an intermediate release depends on the needs of our customers. RonDB 24.10 is currently being integrated into Hopsworks 4.6 and will imminently be released. The work on RonDB 25.10 has taken up some…

Datagraph releases an extension of RonDB, a Common Lisp NDB API

Datagraph develops a Graph database called Dydra that can handle SPARQL, GraphQL and Linked Data Platform (LDP). Dydra stores a revisioned history, this means that you have access to the full history of your data. This could be a development of some document, a piece of software, a piece of HW like a SoC (System-on-a-Chip) or a building or something else. Essentially any data. This blog describes…

How to design a DBMS for Telco requirements

My colleague Zhao Song presented a walkthrough of the evolution of the DBMSs and how it relates to Google Spanner, Aurora, PolarDB and MySQL NDB Cluster . I had some interesting discussions with him on the topic and it makes sense to return to the 1990s when I designed NDB Cluster and the impact on the recovery algorithms from the requirements for a Telco DBMS. A Telco DBMS is a DBMS that operates…

How to reach 100M Key lookups using REST server with Python clients

A few months ago I decided to run a benchmark to showcase how RonDB 24.10 can handle 100M Key lookups per second using our REST API server from Python client. This exercise is meant to show both how RonDB can scale to handle throughput requirements as well as latency requirements for Personalised Recommendation systems that are commonly used by companies such as Spotify, E-commerce sites and so…

Release of RonDB 22.10.7

Today we released a new release of the stable series of RonDB. This version RonDB 22.10.7 is mostly a bug fix release, but also contains a few new features that were required for the Kubernetes integration of RonDB. The major development in RonDB is currently around RonDB 24.10 which is aimed for a first release in 1-2 months. RonDB 22.10.7 contains the following new features: RONDB-789: Find out…

Coroutines in RonDB,

A while ago C++ standard added a new feature to C++ 20 called coroutines. I thought it was an interesting thing to try out for RonDB and used some time this summer to read more about it. My findings was that C++ coroutines can only be used for special tasks that require no stacks. The problem is that a coroutine cannot save the stack. My hope was to find that I could have a single thread that…

Early design choices for RonDB and InnoDB

I have had many interesting discussions with Zhao Song about RonDB and its internals. Since both Zhao and myself also worked on MySQL/InnoDB features as well, it becomes natural that we sometimes compare the features of RonDB with the features in InnoDB. In this blog I will discuss what is the basis for the very different solutions that we have in RonDB compared to what we find in InnoDB. Since…

Rate limits and Quotas in RonDB

Hopsworks-RonDB Background One of the services that Hopsworks provides is a free service to run Hopsworks workloads in a managed cloud. This service has been used by many thousands of individuals and companies wanting to experiment with AI Lakehouse applications of various sorts such as predicting weather in your location and other experimental machine learning applications. This Hopsworks service…

875X improvement from RonDB 21.04.17 to 22.10.4

At Hopsworks we are working on ensuring that the online feature store will be able to perform complex join operations in real-time. This means that queries that could use data from multiple tables can be easily integrated into machine learning applications. Today most feature stores use key-value stores like Redis and DynamoDB. These systems have no capability to issue complex join queries, if…

What's cooking in RonDB

Here is a short update on what is going on in the RonDB development. We recently launched the new RonDB release 22.10.2. We are now working on a number of major improvements and new features. The first feature we are working on is what we call Pushdown Aggregation. In the first step it will be able to perform Pushdown of aggregation on a single table. This is useful for Hopsworks Feature Store in…

New LTS version of RonDB, RonDB 22.10.2

After a very thorough development and test period we are proud to announce the general availability of the RonDB 22.10 LTS serie with the release of RonDB 22.10.2 today. There is also a new version of the old LTS version RonDB 21.04.16 released today. A complete list of the new features is provided in the RonDB Documentation . The most important new feature is the support of variable sized disk…

Testing of RonDB releases

Since RonDB is a fork of MySQL NDB Cluster it contains a lot of tests that is part of the RonDB development tree. This includes unit tests for various functionalities. It includes many hundreds of MTR test cases that takes between a few seconds to a few minutes to run. These tests are mostly test cases that use SQL commands to test the functionality of RonDB, in addition it tests backup and…

The completion of a 12 year long project in RonDB

In 2012 a project was started to change the memory model of MySQL NDB Cluster. The first step was some early prototypes developed in 2012 and 2013 by Jonas Oreland. When Jonas left Oracle for Google it took a while before the project got up and running again. The first project was to change the memory model for the operation records used by transactions. This project started in 2015. It took quite…

Major update to the RonDB documentation

My colleague Vincent has spent some time improving the RonDB documentation. New/rewritten chapters/sections are: Main page: https://docs.rondb.com Installing: https://docs.rondb.com/rondb_installation/ Local Quickstart: https://docs.rondb.com/rondb_quickstart_local/ Start Distributed: https://docs.rondb.com/rondb_programs/ Recovery (entire chapter): https://docs.rondb.com/rondb_high_availability/…

Presentation of RonDB at Meetup

For those that didn't have a chance to come to Stockholm and listen to the presentation of RonDB, here are the slides from the presentation. The presentation presents the Requirements, Architecture, Status of RonDB and its use in Hopsworks and other applications.

Results on comparing new Intel/AMD VMs with older VM types using RonDB

In Hopsworks cloud offering for GCP one can select a fairly large variety of VM types. I am currently working on extending this list to also include the latest generation of VM types. This blog will focus on the impact of those new VM types for benchmarks using RonDB . The newer VM types is the c3d-serie that uses AMD EPYC CPUs of the 4th generation and the c3-series which contains VMs using the…

Release of RonDB 21.04.15

We have worked hard on ensuring stability and adding the required features for our customers lately. Thus the RonDB 21.04.15 release has reached a very high quality level and will be able to sustain users of it until they desire to upgrade to a newer release of RonDB. Most of the changes in this release is related to the new REST API server that makes it possible to read using single reads or…

Modernising a Distributed Hash implementation

As part of writing my Ph.D thesis about 30 years ago I invented a new distributed hash algorithm called LH^3. The idea is that I apply the hashing in 3 levels. The first level uses the hash to find the table partition where the key is stored, the second level uses the hash to find the page where the key is stored and the final step uses the hash to find the hash bucket where the key is stored. The…

Number theory for birthdays and IQ tests

I have always been interested in numbers and playing with them since I was a small kid. Every time someone has a birthday I am always ready to provide an alternative to have the normal decimal birthday. So e.g. having your 100th birthday when you really have your 49 birthday in decimal numbers. So here is some number theory for birthdays and IQ tests that you can play around with on your vacations…

Status report RonDB development

What is going on with RonDB development. Actually a lot, but most happens under the radar at the moment. So this blog will give any interested some idea about what is going on. RonDB core development is further development of the fork of MySQL NDB Cluster. For the most part this development is focused on our production version RonDB 21.04 that is used at numerous companies in production.…