The server weighting feature of MaxScale may initially be seen as a way to influence load balancing for unequal servers, but it can also be useful for other reasons. Here we look at how we can use it to segregate different workloads within a cluster of MariaDB or MySQL servers.
The need for this post became obvious after receiving an increasing amount of questions which were related to linking, library versions and paths in MaxScale. Moreover, I know that there are many who want to make things with their bare hands so it is good to have something which hopefully makes the whole process smoother.
MaxScale is a modular proxy application, the modules can be considered as the building blocks of your proxy implementation within your MySQL database environment. It is important to know what building blocks you have at your disposal. The release of version 1.0 as a beta means that the number of available modules has grown once again. Normally I post about the incremental changes in what is available, but I thought that maybe it was a good time to post a short summary of all the modules.
It was back in the 1980's when I was first introduced to Unix, the concept of scripting and in particular pipes. At that time I remember being really impressed by the concept of small utilities that could be easily strung together to quickly create tools. It was a great way to implement those one off jobs or things that would not warrant the development of a specific tool, or so it seemed. I soon realised that actually, for some purposes, there was no need to go on a develop a bespoke tool to do the job, scripts were good enough. What does this have to do with MySQL and MaxScale?
The latest set of updates for MaxScale has just been released, among the highlights of this alpha release are improved Galera support, the introduction of the first phase of the filter API and server maintenance mode.
MaxScale 0.7.0 was recently released (it is the 4th alpha, with the beta on the near horizon), and is available for download here. The release contains a number of new enhancements as well as 8 bugs fixes. Enhancements:
MaxScale 0.6.0 was recently released (it is the 3rd alpha, with the beta on the near horizon), and is available for download here. The particular release only contains 2 great additions and 2 important fixes (and note development continues with the 1.0 (GA) features, but these have not been put into this alpha version). Important Additions:
- A feature-complete read/write splitting module, i.e. read and write operations are now balanced in a smarter way to master or slave servers.
It is now 3 months since we put MaxScale out in the public domain in GitHub, we have not been sitting idle during that time, rather we have been adding some new features and fixing some bugs. We focused on three main areas of functionality; statement routing, authentication and network support.
If you have followed this series of blogs (Introduction in part 1, Setting up the cluster in part 2 and Installing and configuring MaxScale in part 3), you should now have MaxScale up and running on a Cluster using MariaDB Replication. But as I said when I left off in Part 3, there is more to it.
It seems that in all the writing around what MaxScale is, why I think we need it and what we plan to do with it, we have created some confusion as regards what it can do as of today, mid-February 2014. So I thought I would try to clear it up a little my writing this short post.