I haven’t been writing a lot of content lately. This is in part me being involved in several videos which have taken up the time I would normally use for blogging.
I figured I would link to these in a single blog post.
Continue reading LinuxJedi’s Recent Videos
One of the most powerful and important things about Open Source software is that it brings people together to work on a common goal. This is especially true if the project is setup as a Bazaar instead of a Cathedral.
Usually the groups of people need a framework to communicate to work together in. Initially these were called “communities”, but this isn’t working out so well in some cases, so in this blog post I’ll talk about why an “ecosystem” is better.
Continue reading Community vs Ecosystem
Several of my friends in tech are having a hard time in their career due to everything going on in the world right now. They are being interviewed for new roles and I still see reports of bad tech interviews happening. I thought I would write up how I do interviews for the remote teams I build and maybe give some advice along the way.
Continue reading How I Interview Remote Engineering Candidates
One project I created at MariaDB is libMariaS3 [source, documentation]. It is a lightweight simple LGPL licensed API to access Amazon S3 and compatible object storage implementations. We created it so that GPL v2.0 licensed projects could use S3 without the license incompatibility of Amazon’s Apache 2.0 licensed SDK.
MariaDB itself uses this for the new S3 storage engine coming in 10.5 and several other upcoming projects. I designed it to be easy to use for anyone outside of MariaDB just in case some other project would find it useful.
Continue reading Fixing an OpenSSL issue with Curl and Autotools
I have recently created a new library called libMariaS3 for a couple of teams at MariaDB which provides a simple C API to Amazon’s S3. This was created because we needed a library which could link to GPLv2 software and Amazon’s own library is Apache 2.0 licensed which is incompatible.
It is not a perfect code base because I had a very short amount of time to get the first release out but it was a very fun project to work on. It led me to take a quick look this morning at a couple of other things I have created in the past to see where they are at today.
Continue reading My Open Source projects that still live on
Gource is a tool which can take a source code tree and create beautiful visualisations out of it. I’ve used it a few times before for various projects. This weekend I spent a little bit of time playing with it and applying it to MairaDB Server to see what it would produce.
The end result can be seen on YouTube.
Continue reading MariaDB source visualisation with Gource
All software has bugs. Even if you could possibly write the perfect bug free software all the layers down have bugs. Even CPUs as can be seen with the recent Meltdown and Spectre bugs. This means unfortunately sometimes software will crash. When this happens it is useful to capture as much information as possible to try and stop it happening again.
One of the first things I did when coming back to work from the holiday break is code a new crash dump handler to be used in MariaDB ColumnStore. This will spit out a stack trace for the current thread into a file upon a crash. It is very useful for daemons to try and find the root cause of a problem without running through a debugger. Continue reading Coding and decoding crash dump handlers
With MariaDB ColumnStore 1.1 Beta now released I quickly checked Twitter today to see what the response so far has been. I noticed that someone had posted up a benchmark comparison of MariaDB ColumnStore against a couple of other databases with data that doesn’t quite add up.
Continue reading Correcting MariaDB ColumnStore Benchmarks
Unlike most storage engines, MariaDB ColumnStore does not store its data files in the datadir. Instead these are stored in the Performance Modules in what appears to be a strange numbering system. In this post I will walk you through deciphering the number system.
If you are still using InfiniDB with MySQL, the system is exactly the same as outlined in this post, but the default path that the data is stored in will be a little different.
Continue reading How MariaDB ColumnStore’s filenames work
Sometimes network protocols don’t entirely behave as documented. Other times there is no documentation at all beyond code. Either way you can sometimes find a need to sniff the traffic of a connection to find out what is really going on.
Continue reading Protocol reverse engineering with tcpdump