MariaDB 10.0.10 uploaded to Debian experimental

If you’re watching the NEW queue, you’ll notice that MariaDB 10.0.10 has been uploaded targeting Debian/experimental. Package description, and to think the bug was only opened on April 2nd – pretty quick turnaround.

Ubuntu 14.04 – some MySQL ecosystem notes

Following my previous post on the launch, I just rolled Ubuntu 14.04 LTS on an Amazon EC2 t1.micro instance (not something you expect to run a database server on, for sure – 1 vCPU, 0.613GiB RAM). If you do an apt-cache search mysql you get 435 return result sets with the default configuration (trusty: main & universe).

If you do apt-get install mysql-server, you get MySQL 5.5. You enter the password of choice, and before you know it, MySQL is installed (a SELECT VERSION() will return 5.5.35-1ubuntu1).

Next you decide to install MariaDB. I run an apt-get install mariadb-server. It pulls in libjemalloc (for TokuDB) and I expect future releases to ship this engine by default. You enter the password, and you get a new message (as pictured).

MariaDB Ubuntu 14.04 LTS
 

I verify my test database that I created exists. It does. A SELECT VERSION() returns 5.5.36-MariaDB-1. The innodb_version returns 5.5.36-MariaDB-33.0.

I’m curious about MySQL 5.6 now. So I run apt-get install mysql-server-5.6. Not so straightforward. 

start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.6 (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
Errors were encountered while processing:
 mysql-server-5.6
E: Sub-process /usr/bin/dpkg returned an error code (1)

Looks like MySQL 5.6 is more memory hungry… I edited /etc/mysql/my.cnf to ensure that innodb_buffer_pool_size = 64M (I increased this to 128M and it worked too) was set (there was nothing in the default config) and re-ran apt-get install mysql-server-5.6 and it started. My test database was still around ;-)

I wanted to make sure that MySQL 5.6 isn’t more memory hungry just on that instance so I created yet another clean t1.micro instance and did an apt-get install mysql-server-5.6. Same error. Reported lp#1311387.

Nothing to report in particular about Percona – 5.5.34 Percona XtraDB Cluster (GPL), Release 31.1 (Ubuntu), wsrep_25.9.rXXXX. One thing is for sure – if you’re playing around with the ecosystem, installs and upgrades aren’t exactly straightforward.

MySQL Community Awards: Community Contributor of the Year 2014

MySQL Community Contributor of the Year 2014As one decompresses from the active month that April brings to the MySQL ecosystem, its worth noting that I received a MySQL Community Award – Community Contributor of the Year 2014 award at the Percona Live MySQL Conference & Expo 2014 in Santa Clara. I was extremely happy and thankful to receive such an award and I still am. Thank you MySQL Community.

My reason for winning, now immortalised:

Colin’s list of service to the MySQL Community goes back almost 10 years. He was a community engineer starting in 2005, chaired some of the O’Reilly MySQL conferences, ran the MySQL projects for Google Summer of Code. As a partner and Chief Evangelist for Monty program, he continues to promote and grow the MySQL ecosystem. Though it’s his job, he goes above and beyond, driven by his passion for open source and MySQL.

I was amongst very good company (congratulations to all the winners). Thank you to whom nominated me, and to the committee for vetting it. Frederic wrote a nice post with a little selfie. Tomas expresses heartfelt thanks from Oracle.

Anyway, not to rest on one’s laurels – while its great to be given an award after years of being involved in the community, I will work harder in the coming months to make things better in any way I can. Thank you again, MySQL Community.

(more pics of the award: #1, #2)

Apps should be conduits for web services

Beautiful designed apps should be conduits for web services. Or provide some form of “desktop” capability. Sync is important.

Brent Simmons recently wrote of Marco Arment

You know him from Tumblr, Instapaper, The Magazine, and (coming soon) Overcast.

You may think of Marco as an iOS developer — but every single one of those apps is a web service.

This thought process works very well with a presentation John Gruber gave at Web 2.0 Expo NY – watch the 10 minute video on Apple and the Open Web. He describes Apple as a “ht” company: they’ve embraced HTML and HTTP.

I look at my iPhone and think to myself what apps I use (i.e. have an icon on my screen) that are web apps:

  1. Google Calendar (direct web app, opens a browser window)
  2. RunKeeper
  3. Fitbit
  4. Withings
  5. Cardiio
  6. MyFitnessPal
  7. Chrome
  8. Mail
  9. TripIt
  10. Evernote
  11. Instapaper
  12. Kindle
  13. NewsBlur
  14. Hello (by Evernote)
  15. Skype
  16. Instagram
  17. Vine
  18. Rdio
  19. Spotify
  20. Google
  21. Reminders (stock Apple app, wonderful sync at work)
  22. Safari
  23. Facebook
  24. Foursquare
  25. Twitter
  26. KakaoTalk
  27. Line
  28. Messenger
  29. Hangouts
  30. Telegram
  31. Tweetbot
  32. Google+
  33. Dropbox
  34. 1Password
  35. Expensify
  36. MyTeksi
  37. Uber
  38. YouTube
  39. Paper
  40. Bloomberg

What isn’t a web app? Photos (though there is an iCloud Sync that I don’t use – I prefer it going to Dropbox), Camera, most of Apple’s standard apps (of course, FaceTime, Notes, Calendar – they all sync), DocScanner (syncs to Dropbox, but has no web app behind it), Snapseed, Camera+, 360 (has a web component though I never use it). Music/Podcasts theoretically sync with the web, but again, not my use case. I don’t consider Google Authenticator a web app either though I use it in conjunction with the web. Messages has iMessage but there isn’t a web interface (yet?).

We can argue that the messaging apps aren’t really web services. KakaoTalk/Line have desktop clients. Whatsapp is notoriously mobile-only. Viber/WeChat seem to be mobile only for me. Telegram leads the way by having a nice Chrome browser plugin. Skype is a desktop app.

That makes the majority of my apps that I use, really, web apps. My phone is a conduit to the Internet. This is why I consume data and WiFi.

My iPad is not much different – I use it a lot more for reading, and that includes the FT (fully HTML5 web + mobile app), WSJ, NYTimes, New Yorker, The Economist. OK, there’s GoodReader, iBooks, Zinio for offline reading too, a lot more magazines, and some office software – the iWork suite (which syncs to iCloud). A cool app like Penultimate (now free after Evernote purchased them – again syncs online).

This is the success metric for an app. No point building an application to have a F1 racing timetable (I get that from F1.com or a simple Google search). No point building an application that collects Malay proverbs (I can search for that if I was interested; or if it was the English context, I’d just look up wikiquote).

Games seem to be an exception to this, but as I have never played games and don’t intend to start (I don’t grok the mind of a gamer, sorry), I’ll pass on overall commentary. 

Congratulations Ubuntu, for the wide choice!

Inspired by Yngve Svendsen’s post, I too think it makes absolute sense to congratulate Ubuntu on the 14.04 LTS release (some server notes - MySQL has a section dedicated to it). Ubuntu users have a lot of server choice today (that’s from all major MySQL ecosystem vendors):

  • MySQL 5.5.35 ships in main. It is the default MySQL. Oracle has committed to providing updates to 5.5 throughout the LTS release cycle of Ubuntu (which is longer than the planned EOL for 5.5). This is why the grant of a Micro Release Exception (MRE).
  • MySQL 5.6.16 ships in universe
  • MariaDB 5.5.36 ships in universe.
  • Percona XtraDB Cluster 5.5.34 ships in universe

Ubuntu’s pitch is being the cloud platform of choice, with OpenStack support. This explains why Percona XtraDB Cluster (the only shipping Galera Cluster variant — no upstream Codership release, and no MariaDB Galera Cluster) is critical infrastructure as its used widely in OpenStack deployments. 451Research estimates that the OpenStack distributions market is worth $82 million in 2014 and $119 million in 2015.

Press release had a choice quote from Percona CEO, Peter Zaitsev:

“We are very pleased that Percona XtraDB Cluster is included in Ubuntu 14.04 LTS. Many organisations that use MySQL need high availability solutions to ensure that their applications meet the expectations of their users. Percona XtraDB Cluster is an easy to use, open source solution for MySQL clustering which addresses these high availability needs. We continue to see growth in Ubuntu usage by our customers and our open source software users so we are confident that the inclusion of Percona XtraDB Cluster in Ubuntu 14.04 will help spread the adoption of cost-effective, high availability MySQL.” Peter Zaitsev, Co-Founder and CEO at Percona

 

SSL and MariaDB/MySQL

With the recent Heartbleed bug, people are clearly more interested in their MariaDB/MySQL running with SSL and if they have problems. First up, you should read the advisory notes: MariaDB, Percona Server (blog), and MySQL (blog).

Next, when you install MariaDB (or a variant) you are usually dynamically linked to the OpenSSL library that the system provides. Typically on startup of MariaDB 10.0.10 on CentOS 6.5 (packages from the MariaDB repository), you can check what your status of SSL is.

MariaDB [(none)]> show variables like 'have_ssl';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| have_ssl      | DISABLED |
+---------------+----------+
1 row in set (0.00 sec)

This means that SSL options are compiled, but mysqld didn’t start with it. You can verify SSL is linked dynamically:

ldd `which mysqld` | grep ssl
	libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007ff82d1b1000)

If you are running with SSL enabled (some documentation at MySQL) you will have different options naturally. You can do this via: /etc/init.d/mysql start --ssl. Output now changes:

MariaDB [(none)]> show variables like 'have_ssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl      | YES   |
+---------------+-------+
1 row in set (0.00 sec)

The value NO will be displayed if the server is not compiled with SSL support. See SSL Server System Variables for more.


i