Recently, I’ve been writing based on my linux.conf.au 2014 talk, which you can watch the recording of. Also see Part 1, Part 2, Part 3, Part 4,[Read more...]
Lets start by considering a scenario where records are being inserted in a single auto-increment table via different nodes of a multi-master cluster. One issue that might arise is ‘collision’ of generated auto-increment values on different nodes, which is precisely the subject of this article.
As the cluster is multi-master, it allows writes on all master nodes. As a result of which a table might get same auto-incremented values on different nodes on INSERTs. This issue is discovered only after the writeset is replicated and that’s a problem!
Galera cluster suffers with the similar problem.
Lets try to emulate this on a 2-node Galera cluster :
1) On node #1: MariaDB [test]> CREATE TABLE t1(c1 INT AUTO_INCREMENT PRIMARY KEY, c2 INT)ENGINE=InnoDB; Query OK, 0 rows affected (0.07 sec) MariaDB [test]> START TRANSACTION; Query OK, 0[Read more...]
I’ve continued building on my MariaDB GIS and node.js example application that I wrote about two weeks back, https://blog.mariadb.org/node-js-mariadb-and-gis/. The application shows how to load GPX information into MariaDB, using some MariaDB GIS functionality, and making use of the node.js platform together with MariaDB’s non-blocking client.
With the GPX data converted into GIS points in the MariaDB database, I wanted to further expand a little on both the GIS aspect and also look at how some additional data could be shown in the application by using jQuery’s Ajax calls to update a piece of the web based application UI.
To start with, an interesting thing to do when you have a bunch of GIS[Read more...]
We rejoin our story with a lawsuit. While MySQL suing Progress NuSphere is not perhaps the first GPL lawsuit that comes to mind, it was the first time that the GPL was tested in court. Basically, the GEMINI storage engine was a proprietary storage engine bundled with a copy of MySQL. Guess what? The GPL was found to be valid and GEMINI was eventually GPLed, and it didn’t really go anywhere after that. Why? Probably some business reasons and also, InnoDB was actually rather good and there wasn’t a lawsuit to enforce the GPL there, making[Read more...]
Way back in May in the year 2000, a feature was added to MySQL that would keep many people employed for many years – replication. In 3.23.15 you could replicate from one MySQL instance to another. This is commonly cited as the results of two weeks of work by one developer. The idea is simple: create a log of all the SQL queries that modify the database and then replay them on a slave. Remember, this is[Read more...]
Configuring the character set for MySQL is confusing. It is so confusing that there are roughly 25 different places to configure a character set. Don’t believe me? Add them up. The real number may be closer to 30. I realize a lot of this is due to the age of MySQL and the extent of it’s character set support. MySQL does support character set configuration in many different places which is usually a good thing.
I often complain about defaults that make no sense like lock_wait_timeout=1 year. In this case there is a default that makes absolutely no sense to me. The manual says that select into outfile is the complement of load data infile. It isn’t completely true. They differ in one key aspect, the default character set!. By default select into outfile now does the right thing by using binary character set and[Read more...]
The availability of the node.js binding for MariaDB’s non-blocking client library together with the GIS capabilities of MariaDB inspired me to make an example of using node.js and MariaDB to import so-called GPX tracks to a MariaDB database and then show them on a map. GPX tracks are what are stored by many GPS devices including running watches and smartphones.
My project makes use of MariaDB’s non-blocking client library together with the node.js platform and on top of that uses the GIS functionality found in MariaDB 5.5 and 10.0.
To start with let’s go through the software and components I’m using:
Last night, after my previous blog post, everyone in attendance at the SkySQL developer meeting in Barcelona gathered for dinner at El Cangrejo Loco, which, if my High School Spanish is working, translates as The Crazy Crab. After the excellent food, the tradition of singing at MySQL/MariaDB developer meetings was preserved.
Today the MariaDB developers in attendance at the SkySQL developer meeting in Barcelona got together to work on plans for MariaDB 10.1. We also paused for a group photo:
Many tasks have been identified for possible inclusion in 10.1. Some have already been marked as such in JIRA. A summary is[Read more...]
Several MariaDB developers are attending SkySQL’s annual engineering meeting being held this week in Barcelona. While some of the discussions are SkySQL-specific (customers, internal projects, and so on), there are, naturally, lots of MariaDB discussions happening.
Patrik Sallner, CEO of SkySQL, opened the meeting this morning with a short presentation about SkySQL’s goals for 2014. While the plan includes standard business-like things that include growing the company and sales goals, the top two goals for 2014 are:
Help make MariaDB into the leading open source database
Help increase awareness and adoption of MariaDB
Looking back at 2013, it was an excellent year for MariaDB. It is now the default database in[Read more...]