Just a few days ago, I presented at the MariaDB Roadshow in London, and I had a lot of fun. While I had canned slides, I did know the topic intimately well, so it was good to get further in-depth. In addition, we had these MasterMind sessions, basically the place to get one-on-one time with Anders/Luisa/or me, I noticed that pretty much everyone said they were buying services afterwards (which more or less must mean the event was rather successful from that standpoint!).
In addition to that, I was happy to see that from attendee feedback, I did have the highest averages – thank you!
So here’s to repeating this in Paris next week — Gestion des données pour les applications vitales – MariaDB Roadshow Paris. I look forward to seeing you there, and I know we are repeating the MasterMind sessions. To fine-tune it, try to bring as much information as you possibly can so our time can be extremely effective.
I’m happy to be back in London in May 2016, to talk at two events:
- The London MySQL Meetup Group – Monday May 9 – 6.30 PM – 9.00 PM – options for High Availability in the ecosystem that one would consider today. This is a cut down from my Percona Live tutorial, which had about 88 registered attendees and about that amount showed up and asked questions even through the break and after. I had a lot of fun, and I expect I will have similar fun in London talking about this area that has changed a lot in recent times.
- Data for the Enterprise – MariaDB Roadshow in London – Wednesday, May 11, 2016 from 9:30 AM to 2:00 PM – this should be a fun gathering, and you would think its just for MariaDB Corporation customers, but it isn’t – all are welcome and you should register!
Looking forward to seeing you at these events. And if you want to chat about MariaDB Server, MySQL or anything related in the opensource world, don’t hesitate to drop me a line via email or Twitter @bytebot.
We had the first MariaDB Berlin Meetup on Tuesday 12.04.2016 at the Wikimedia Berlin offices at 7pm. More or less there were over 54 people that attended the event, a mix of MariaDB Corporation employees and community members. We competed with the entertainment at the AWS Summit Berlin which was apparently about 400m away! Food and drink were enjoyed by all, and most importantly there were many, many lightning talks (minimum 5 minutes, maximum 10 minutes – most were about 6-7 minutes long).
The bonus of all of this? Lots and lots of slides for you to see. Grab them from the Google Drive folder MariaDB Berlin meetup April 2016.
- Monty talked about improving the speed of connections to MariaDB Server, some work he’s just pushed fairly recently to the 10.2 tree.
- Dipti spoke about MariaDB ColumnStore and it is now clear we’ll see some source/binary drop by the end of May 2016.
- Sergei Petrunia and Vicentiu Ciorbaru spoke about the upcoming window functions that MariaDB Server 10.2.0 will see (yes, the alpha should be out real soon now).
- Jan spoke about InnoDB in 10.2.
- Lixun Peng spoke about a fairly interesting feature, the idea to flashback via
mysqlbinlog and how you can have a “Time Machine”. I can’t wait for flashback/time machine to appear in 10.2. The demo for this is extremely good.
- Kolbe spoke about data at rest encryption using the MariaDB Amazon AWS KMS plugin.
- Sanja and Georg went up together to speak about 10.2 protocol enhancements as well as what you’ll see in Connector/C 3.0.
- Wlad gave us a good rundown on authenticating with GSSAPI, something you will notice is also available in MariaDB Server 10.1’s later releases.
- Johan Wikman gave us an introduction to MariaDB MaxScale, which started off the talks on MaxScale.
- Markus talked about the readwritesplit plugin.
- Massimiliano went into the Binlog server.
- Martin didn’t use slides but gave us an amazing talk titled “Rival concepts of SQL Proxy”; it was very well given and I’ve encouraged him to write a blog post about it.
- Community member Ben Kochie, an SRE at SoundCloud gave us a quick talk on Monitoring MySQL with Prometheus and how much they depend on the PERFORMANCE_SCHEMA.
- Diego Dupin spoke a little about the MariaDB Java Connector, and the idea was to do a demo but the projector via HDMI seemed to be a bit wonky (this was also true of using my Mac; the VGA output however worked fine). So it was just a quick talk without any deck.
We ended with a quick Q&A session with Monty dominating it. Lots of interesting questions around why the name Maria, licensing thoughts, ensuring all the software we have are in distributions, etc. Some ended up going for pizza while others ended up in a hotel bar at the Crowne Plaza Potsdamer Platz — and the chatter went on till at least 11pm.
Thanks again to Georg Richter who found us the venue and also did a lot of the legwork with Wikimedia Foundation.
mysql-5.7.12/rapid/) (which now makes use of protocol buffers (see:
mysql-5.7.12/extra/protobuf/)). I will agree, this is more than just a maintenance release.
Do get started playing with MySQL Shell. If you’re using the yum repository, remember to ensure you have enabled the
/etc/yum.repos.d/mysql-community.repo. And don’t forget to load the X Plugin in the server! I can’t wait for the rest of the blog posts in the series, and today just took a cursory look at all of this — kudos Team MySQL @ Oracle.
However, I’m concerned that the GA is getting what you would think of as more than just a maintenance release. We saw 5.7.11 get at rest data encryption for InnoDB, and now 5.7.12 getting even more changes. This is going to for example, ship in the next Ubuntu LTS, Xenial Xerus. Today it has 5.7.11, but presumably after release it will be upgrade to 5.7.12. I am not a huge fan of surprises in LTS releases (predictability over 5 years is a nice thing; this probably explains why I still have a 5.0.95 server running), but I guess this small band-aid is what we need to ensure this doesn’t happen going forward?
As for the other question I’ve seen via email from several folk so far: will MariaDB Server support this? I don’t see why not in the future, so why not file a Jira?
I have never been to Sofia, Bulgaria till this past February 2016, and boy did I enjoy myself. I visited the Bulgaria Web Summit and spoke there amongst many others. A few notes:
- Almost 800 people (so more than last year); hence the event was sold out
- Missed the RocksDB talk due to the massive Q&A session that went on afterwards.
- Very interesting messaging
- LinvoDB (embeddable MongoDB alternative) — LinvoDB / www.strem.io
- Use case: < 1 million objects (indexes are in memory using a binary search tree; so don’t use it for more). HTML5/Electron/NW.js. Best used with AngularJS/React and maybe Meteor. Can also use NativeScript or React Native. You can use it with node.js but its not recommended for server use cases.
- Works with SQLite or LevelDB (why not RocksDB yet?). Can also use with IndexedDB/LocalStorage
- Implemented almost entirely the MongoDB query language. Gives you automatic indexes.
- FTS in memory (linvodb-fts) – uses trie/metaphone modules for node.js. Can also do p2p replication, persistent indexes, compound indexes
I enjoyed speaking about MariaDB Server as always, and its clear that many people had a lot of questions about it. Slides. Video. It was tweeted that I had to answer questions for about as long as my talk, afterwards, and it was true :)
I got to meet Robert Nyman at the social event (small world, since he works at the office where Jonas of ex-MySQL fame does). Also met someone very interested in contributing to InfiniDB. It was nice having a beer with my current colleague Salle too. And speaking to the track moderator, Alexander Todorov was also a highlight – since we had many common topics, and he does an amazing amount of work around automation and QA. His blog is worth a read.
While being on the committee for the FOSDEM MySQL & friends devroom, I didn’t speak at that devroom (instead I spoke at the distributions devroom). But when I had time to pop in, I did take some notes on sessions that were interesting to me, so here are the notes. I really did enjoy Yoshinori Matsunobu’s session (out of the devroom) on RocksDB and MyRocks and I highly recommend you to watch the video as the notes can’t be very complete without the great explanation available in the slide deck. Anyway there are videos from the MySQL and friends devroom.
MySQL & Friends Devroom
MySQL Group Replication or how good theory gets into better practice – Tiago Jorge
- Multi-master update everywhere with built-in automatic distributed recovery, conflict detection and group membership
- Group replication added 3
- If a server leaves the group, the others will be automatically informed (either via a crash or if you execute
STOP GROUP REPLICATION)
- Cloud friendly, and it is self-healing. Integrated with server core via a well-defined API. GTIDs, row-based replication,
PERFORMANCE_SCHEMA. Works with MySQL Router as well.
- Multi-master update everywhere. Conflicts will be detected and dealt with, via the first committer wins rule. Any 2 transactions on different servers can write to the same tuple.
- labs.mysql.com / mysqlhighavailability.com
- Q: When a node leaves a group, will it still accept writes? A: If you leave voluntarily, it can still accept writes as a regular MySQL server (this needs to be checked)
- Online DDL is not supported
- Checkout the video
ANALYZE for statements – Sergei Petrunia
- a lot like EXPLAIN ANALYZE (in PostgreSQL) or PLAN_STATISTICS (in Oracle)
- Looks like explain output with execution statistics
- slides and video
Preparse Query Rewrite Plugins – Sveta Smirnova / Martin Hansson
- Query rewwriting with a proxy might be too complex, so they thought of doing it inside the server. There is a pre-parse (string-to-string) and a post-parse (parse tree) API. Pre-parse: low overhead, but no structure. Post-parse: retains structure, but requires re-parsing (no destructive editing), need to traverse parse tree and will only work on select statements
- Query rewrite API builds on top of teh Audit API, and then you’ve got the pre-parse/post-parse APIs on the top that call out to the plugins
Fedora by the Numbers – Remy DeCausemaker
MyRocks: RocksDB Storage Engine for MySQL (LSM Databases at Facebook) – Yoshinori Matsunobu
- SSD/Flash is getting affordable but MLC Flash is still expensive. HDD has large capacity but limited IOPS (reducing rw IOPS is very important and reducing write is harder). SSD/Flash has great read iops but limited space and write endurance (reducing space here is higher priority)
- Punch hole compression in 5.7, it is aligned to the sector size of your device. Flash device is basically 4KB. Not 512 bytes. So you’re basically wasting a lot of space and the compression is inefficient
- LSM tends to have a read penalty compared to B-Tree, like InnoDB. So a good way to reduce the read penalty is to use a Bloom Filter (check key may exist or not without reading data, and skipping read i/o if it definitely does not exist)
- Another penalty is for delete. It puts them into tombstones. So there is the workaround called SingleDelete.
- LSMs are ideal for write heavy applications
- Similar features as InnoDB, transactions: atomicity, MVCC/non-locking consistent read, read committed repeatable read (PostgreSQL-style), Crash safe slave and master. It also has online backup (logical backup by mysqldump and binary backup by myrocks_hotbackup).
- Much smaller space and write amplification compared to InnoDB
- Reverse order index (Reverse Column Family). SingleDelete. Prefix bloom filter. Mem-comparable keys when using case sensitive collations. Optimizer statistics for diving into pages.
- RocksDB is great for scanning forward but ORDER BY DESC queries are slow, hence they use reverse column families to make descending scan a lot faster
- watch the video