What do you want to know about glimpsee?

June 17th, 2013 No comments

glimpsee_coming_soon

We have had some success with the introduction of glimpsee last month. Merci !
I would like to thanks all of you who have registered and those who are interested in glimpsee without even really knowing what’s going on.
It is really important for us to feel enthusiasm about our work, because we work hard to provide a tool that could improve your life.

We hope to offer a public beta release of glimpsee before the end of the year and many more surprises before. Meanwhile, we would like to offer you an incomplete FAQ about glimpsee, enjoy :
 

What is glimpsee?

 

glimpsee is a smart dashboard for lazy DBA (devops included)
The dashboard provides, as Software-as-a-Service, a new way to view the status of all your databases securely, anytime, everywhere and at a glance.

 

Does glimpsee may replace my current monitoring tool?

 

Not really, glimpsee is not another monitoring tool.
We would like to offer you a simple tool you want to use in “real time”, something like a companion who helps you all day long.
Now, monitoring will be no longer boring, just pretty.

 

Does glimpsee is in the cloud?!

 

glimpsee is behind the cloud, it will be your daily sunshine…

 

How does it work?

 

As part of our overall system, the glimpsee agent is the interface between your servers and our API.
We wanted to make a simple tool carried by a simple architecture.
A picture is worth than a long speech, welcome to the glimpsee‘s House!

 
glimpseeHouse

What about security?

 

Be sure that all the communications between you and us are secured and encrypted.
Moreover, we emphasize that only “monitoring data” transit between your servers and our API.
That’s mean no server addresses, no queries, no user data, just love… Cause we love your data!

 

Does glimpsee will be open source?

 

No, glimpsee is a Software-as-a-Service tool.
But we care that everyone can use glimpsee, so, we prepare nice stuff and an enjoyable pricing plan.

 

Why I would like to use glimpsee after all?

 

Because you are so lazy and you would like to enjoy your life.

 

This is an incomplete FAQ because we would like to hear your questions, please comment.
Continue to support us, we need you!

 

www.glimpsee.net

 

Categories: Glimpsee

Why I do what I do?

May 20th, 2013 2 comments

I was sincerely affected by this last MySQL post and this other very long post from Jeremy Cole.
Yes, these two guys are MySQL rock stars and they are really impressives, their involvement in the MySQL community is utter!

I don’t want to write a long long speech about my simple life…
I just want to clarify why I do what I do.

Many people have asked or wondered without asking why I do what I do
(Jeremy Cole - 2013)

A few years ago Ashley Unitt asked me what I was most proud of, and now, I can make a complete answer. I’m very proud to take part of a community, MySQL has transformed my job into a passion and an incredible desire to share this passion, as honestly as possible.

What does it mean in real life?

If I can help in decision making or take part of a discussion, without any bad motivations, independently, I do it!

If the opportunity arises to have a good time over a glass of rosé and discussing open source with Stéphane Varoqui, I do it!

If I have suddenly an idea and a friend with me for several nights and weekends to achieve it, oh yes, I do it!

I do it because it’s terribly exciting and fun, even if I’ve just did it for myself… on a whim.

Yes, I’m very proud when we made MYXPLAIN.net with Max, I’m proud to work for an amazing company, I’m proud to advise someone who challenge me from the other side of the world, I’m proud to read an email from Rick James in my inbox…

I’m proud to be honest!

Categories: Admin

Your databases in a glance with Glimpsee (sign up now!)

glimpsee_plus

During the last months we’ve worked hard on a new and exiting project!

“We’re making it easier

to show your databases in a glance”

 

I’m very proud to reveal the project for the first time because I am convinced that Glimpsee will change the way you “watch” the status of your databases…

Glimpsee is not another monitoring tool, it is the easiest way we’ve found to make DBA’s life easier.

I can’t say more about Glimpsee at this point but keep in mind these few words: simple, simple and… simple!

An alpha release of Glimpsee is already running for a lucky few. Register now to be the firsts to discover Glimpsee!
 

www.glimpsee.net

 

Categories: Glimpsee

MySQL Conference and Expo 2013 feelings (#perconalive)

I wasn’t at the MySQL Conference this year but it was very nice to follow this event from Paris.
Of course I didn’t feel the general atmosphere by visiting booths or met fabulous people.
But it was a great opportunity to offer you a live post about the conference with an external point of view.

Twitter, RSS feeds (yes Google, I still use RSS), Planet MySQL and infiltrators were my best friends during this crazy week.

I would like to summarize the major announcements and events occurs during this tenth edition.
 

Oracle at Percona Live!

 
Yes, Oracle was at Percona Live 2013 and it was for the best.
I invite you to watch this keynote from Tomas Ulin about Oracle’s Investment in MySQL, read this post from Sheeri and this one from Mikael Ronstrom.
Oracle promises a future for MySQL and I’m sure many of you were expecting this signal.

MySQL 5.7 and MySQL Applier for Hadoop were also announced during the conference.
MySQL Applier reveals a promising use case for the binary log API.
You can read this first look of MySQL 5.7 by Stewart Smith.
 

TokuDB and Tungsten Replicator become open source

 
TokuDB is now open source via a community edition! (An enterprise edition remains available)
The MySQL, MariaDB or Percona users can now freely use TokuDB.
And this engine deserves your attention, for more informations : http://www.tokutek.com/2013/04/announcing-tokudb-v7-open-source-and-more/

Tungsten Replicator is now 100% open source. You no longer have excuses to not use this tool.
Continuent was corporate contributor of the year through the MySQL community awards 2013.
 

SkySQL + MariaDB = Love (the community)

 
The next generation of open source database company was born, SkySQL merges with MariaDB Developers. This merge doesn’t affect the MariaDB Foundation, MariaDB will survive!
In the same time Wikipedia adopts MariaDB and shares his experience with the community.

Honestly, I’ve never really understand why SkySQL and MariaDB was two separate companies because the SkySQL’s message was confused.
From now, you can’t be surprised that SkySQL highlights MariaDB and it’s a good point because MariaDB is a great product.
This may affect the independence of SkySQL on MariaDB competitors but I’m convinced that people behind SkySQL could surprise you.

And the new SkySQL/MariaDB becomes a strong alternative to Oracle.
The ping pong between Oracle and MariaDB on their respective resources affected to MySQL/MariaDB development is also quite funny and interesting.

ishot-63BIjZ7CjCQAEt6pb.jpg-large

However, I think that MariaDB should stop criticizing Oracle and should focus and communicate more on its own features.
This kind of message is a perfect exemple of counterproductive communication :
(I know this comes from zdnet but reflects what MariaDB proclaims usually)

MariaDB deserves better, but this is only my opinion.
 

In the meantime…

 
.. you can pin on a map where you come from.
HP, Amazon, Continuent and Percona talks about the impact of MySQL and its future in the cloud.
- Brian Aker (HPCloud) asked Simone Brunozzi (AWS) : what is the engine of DynamoDB?
- Simone : we don’t disclose
- Brian : it’s MySQL!

Peter Zaitsev evokes the JaSON generation of developers.

LeapMotion announce a new shipping date, you will have to wait another 3 months.

Incredible small data stats from Facebook, again…

“the best answer of 99.9% database optimization questions is ‘it depends’”, really?

Some amazing pictures of a rather unusual booth appear on my twitter timeline.
And this post from Sheeri caught my attention, the comments too.
I believe that if someone is uncomfortable in a conference such as perconalive, there is a problem… (even if this affects only one person)
 

Slides and what’s next?

 
Slides from the conference are now available.
You can find these slides and much more on [Plus].
Next steps will be MySQL Connect 2013 and Percona Live London 2013 (hope to see you there)

Continue to follow me on Twitter or Facebook for the latest news about the MySQL Community.

And don’t forget to have fun…

Categories: Live !

Percona Live : MySQL Conference and Expo 2013 (Slides, tweets and more…)

April 22nd, 2013 No comments

on_air-istock_000005544549large_-_cropped

MySQL Conference & Expo

 

2013

 

LIVE BLOG!

 

This year again, the MySQL Conference and Expo, hosted by Percona, smells like a wonderful event.
I haven’t the chance to attend this event but I would like to share with you the soul of this one.
I’ll try to share latest news, tweets and slides from the event in this live post.

Stay tuned and come back!

Breaking news!

highlighted tweets

 

Slides

Categories: Live !

An incomplete list of what your developers would like to know before migrating to MySQL 5.5

April 21st, 2013 No comments

A few years ago, I asked to check with me in the long (very long) change history of MySQL 5.5 documentation what are the changes in relation to the SQL syntax.
Chris Calender helped me to retrieve a list of the main changes, thanks again Chris.

Today, I would like to share this list with you.
It is simply a curated transcript of what you might find in the documentation but I’m sure it can help some of you.
 

INTO clause in nested SELECT statements

 
Previously, the parser accepted an INTO clause in nested SELECT statements, which is invalid because such statements must return their results to the outer context. As of MySQL 5.5.3, this syntax is no longer permitted and statements that use it must be changed.
 

Table aliases in DELETE statements

 
In MySQL 5.5.3, several changes were made to alias resolution in multiple-table DELETE statements so that it is no longer possible to have inconsistent or ambiguous table aliases.

In MySQL 5.1.23, alias declarations outside the table_references part of the statement were disallowed for the USING variant of multiple-table DELETE syntax, to reduce the possibility of ambiguous aliases that could lead to ambiguous statements that have unexpected results such as deleting rows from the wrong table.

As of MySQL 5.5.3, alias declarations outside table_references are disallowed for all multiple-table DELETE statements. Alias declarations are permitted only in the table_references part.

Incorrect:

  • DELETE FROM t1 AS a2 USING t1 AS a1 INNER JOIN t2 AS a2;
  • DELETE t1 AS a2 FROM t1 AS a1 INNER JOIN t2 AS a2;

Correct:

  • DELETE FROM t1 USING t1 AS a1 INNER JOIN t2 AS a2;
  • DELETE t1 FROM t1 AS a1 INNER JOIN t2 AS a2;

Previously, for alias references in the list of tables from which to delete rows in a multiple-table delete, the default database is used unless one is specified explicitly. For example, if the default database is db1, the following statement does not work because the unqualified alias reference a2 is interpreted as having a database of db1:

  • DELETE a1, a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2 WHERE a1.id=a2.id;

To correctly match an alias that refers to a table outside the default database, you must explicitly qualify the reference with the name of the proper database:

  • DELETE a1, db2.a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2 WHERE a1.id=a2.id;

As of MySQL 5.5.3, alias resolution does not require qualification and alias references should not be qualified with the database name. Qualified names are interpreted as referring to tables, not aliases.

Statements containing alias constructs that are no longer permitted must be rewritten.
 

New reserved words

 
There are several new reserved words in 5.5 what were not reserved in 5.1.
So if you are using any of these as table names, etc., then you’ll need to surround them with backticks (`)

  •  GENERAL
  • IGNORE_SERVER_IDS
  • MASTER_HEARTBEAT_PERIOD
  • MAXVALUE
  • RESIGNAL
  • SIGNAL
  • SLOW

 

FLUSH TABLES and LOCK TABLES

 
As of MySQL 5.5.3, due to work done for Bug #989, FLUSH TABLES is not permitted when there is an active LOCK TABLES … READ.
To provide a workaround for this restriction, FLUSH TABLES has a new variant, FLUSH TABLES tbl_list WITH READ LOCK, that enables tables to be flushed and locked in a single operation.
As a result of this change, applications that previously used this statement sequence to lock and flush tables will fail:

  • LOCK TABLES tbl_list READ;
  • FLUSH TABLES tbl_list;

Such applications should now use this statement instead:

  •  FLUSH TABLES tbl_list WITH READ LOCK;

 

Fast truncation

 
As of MySQL 5.5.7, InnoDB always uses the fast truncation technique, equivalent to DROP TABLE and CREATE TABLE.
It no longer performs a row-by-row delete for tables with parent-child foreign key relationships.
TRUNCATE TABLE returns an error for such tables.
Modify your SQL to issue DELETE FROM table_name for such tables instead.
 

TIMESTAMP display width

 
In very old versions of MySQL (prior to 4.1), the TIMESTAMP data type supported a display width, which was silently ignored beginning with MySQL 4.1.
This is deprecated in MySQL 5.1, and removed altogether in MySQL 5.5.

The display width is no longer supporter for TIMESTAMP data type in MySQL 5.5
 

Aliases and wildcards

 
Aliases for wildcards (as in SELECT t.* AS 'alias' FROM t) are no longer accepted and result in an error.
Previously, such aliases were ignored silently. (Bug #27249)
 

Scientific notation

 
In addition to these official parts of the MySQL release notes, Sheeri write a post about floats, doubles ans scientific notation between MySQL 5.1 and MySQL 5.5 :

http://blog.mozilla.org/it/2013/01/17/mysql-5-1-vs-mysql-5-5-floats-doubles-and-scientific-notation/

 

This list is incomplete because I’m sure you have your own tips to share.

Source : http://dev.mysql.com/doc/relnotes/mysql/5.5/en/

Categories: Admin, Live !, Tips

The strange commit behavior and the invisible Xid_log_event

April 15th, 2013 No comments

Did you see this when you are migrating from your lovely MySQL 5.1 to MySQL 5.5?
Oh, sorry, you remain attached to your pretty 4.1. Yes, I know, MyISAM has become so important in your life…

Ok, seriously, I would like to share this little observation I made recently when switching to MySQL 5.5 on one slave.
You can see below two graphs for the transactional activity, there is exactly the same volume of update, delete and insert queries :

MySQL 5.1

Screenshot 2013-04-15 at 06.34.23 PM

MySQL 5.5Screenshot 2013-04-15 at 06.32.42 PM

But the gray area represents the number of commit per second.
I find that I have much more commit with MySQL 5.5, why?
The first question I asked to myself was whether MySQL was telling the truth…

And I had three options to know the truth :

  • The com_commit counter : I compared the number of begin and commit during ten minutes
    • MySQL 5.1 : I got much more begin than commit
    • MySQL 5.5 : I got exactly the same result between begin and commit
  • The relay logs : In a sample of logs, I compared the number of begin and commit 
    • MySQL 5.1 : I got exactly the same result between begin and commit
    • MySQL 5.5 : I got exactly the same result between begin and commit
  • The genaral log : I compared the number of begin and commit during ten minutes
    • MySQL 5.1 : I got exactly the same result between begin and commit
    • MySQL 5.5 : I got exactly the same result between begin and commit

Hum, ok, the com_commit counter want to play with me!

Let’s go in the general log, I had two kinds of commit output :

Query COMMIT
Query COMMIT /* implicit, from Xid_log_event */

So, I called a friend : Hey Google, what is this (f…) Xid_log_event?

http://ftp.nchu.edu.tw/MySQL/sources/doxygen/mysql-5.1/classXid__log__event.html 
http://bugs.mysql.com/bug.php?id=54605

Hum, it smells replication…

Yes, you guessed it, the commit statements from the replication stream are not recorded in the com_commit counter in 5.1.
But the begin statements are recorded in the com_begin counter…

Look at your own slave servers and compare!

 

Categories: Admin

An incomplete guide to linux system configuration for MySQL

April 11th, 2013 3 comments

As a former Oracle DBA, I know how the system and the database are linked.
The first one who told me that the installation of Oracle has never been a problem is a liar!
Yes, your database and your system are the best of friends, you must respect that.

I’d make a list of linux system settings to configure a MySQL databases server and share my sources with you.
In return, I would like you to share your sources with the community by publishing your tips in the comments.

swappiness

 

  • This parameter allows to specify how the kernel must manage the memory swap
  • Default value : 60 (Range 0 to 100)
  • Value to set : 0 (it will swap only to avoid an out of memory condition)
  • How to set a new non-persistent value :  sysctl -w vm.swappiness=0
  • How to store a new persistent value : add vm.swappiness=0 in the /etc/sysctl.conf file

 

I/O Scheduler

 

  • The I/O scheduler manages and optimizes priorities of I/O requests
  • Default value : device driver dependent
  • Range of values : noop / deadline / anticipatory / cfq
  • Value to set : noop
  • How to set a new persistent value : echo noop >/sys/block/[DEVICE]/queue/scheduler

 

Mounting options

 

  • These options are set during the filesystem mount process
  • Default value : rw
  • Value to set ext4 : rw,nosuid,noatime,data=ordered
  • Value to set xfs : nobarrier
  • How to store a new persistent value : add these options in the /etc/fstab file

 

I/O queue size

 

  • This queue stores incoming I/O requests
  • Default value : 128 (No range)
  • Value to set : Hey Dude, you have to test, no magic value for this parameter
  • How to set a new persistent value :  echo 100000 > /sys/block/[DEVICE]/queue/nr_requests

 

Dirty ratio

 

  • These settings are used to tune the VM subsystem about dirty data
  • Default value : 10 and 20
  • Value to set : Again, you should test. You can try 5 and 60 to begin
  • How to set a new non-persistent value :
    • echo 5 > /proc/sys/vm/dirty_background_ratio
    • echo 60 > /proc/sys/vm/dirty_ratio
  • How to store a new persistent value : Add these parameters to the /etc/sysctl.conf file
    • vm.dirty_background_ratio = 5
    • vm.dirty_ratio = 60

NUMA Architecture

 

Note that all of these tips focus on optimizing I/O.
The first three tips can be considered as really interesting.
I recommend you to read the sources before any change.

Remember to test every changes before to put them in production.

Now, let us know how you setup your system for MySQL.

Sources :
http://en.wikipedia.org/wiki/Swappiness
http://yoshinorimatsunobu.blogspot.fr/2009/04/linux-io-scheduler-queue-size-and.html
http://rackerhacker.com/2008/08/07/reduce-disk-io-for-small-reads-using-memory
http://assets.en.oreilly.com/1/event/21/Mastering%20the%20Art%20of%20Indexing%20Presentation.pdf
http://cdn.oreillystatic.com/en/assets/1/event/56/Linux%20and%20H_W%20optimizations%20for%20MySQL%20Presentation.pdf
http://www.mysqlperformanceblog.com/2013/01/03/is-there-a-room-for-more-mysql-io-optimization/
http://www.percona.com/files/presentations/UC2011-MySQL-and-SSD-Usage-Patterns.pdf
http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
http://blog.jcole.us/2012/04/16/a-brief-update-on-numa-and-mysql/

Categories: Admin, Live !

Does MariaDB kill the magic query?!

February 27th, 2013 5 comments

I’m sure that many of you use the magic query from Shlomi.
This query retrieves the difference between two status values with a single query.
I’m really fan of this kind of query and about this query in particular. This query is very useful to retrieve an information without to have to store a middle result.

Now, I tried this query on a MariaDB 5.5 server and I had a surprise :

Magic_query

The result was a bit strange, with negative or null values.

I’ve just had these server for few hours in my hands and I had no more time to analyze the situation.
I assume that the subquery optimisations in MariaDB can be involve here but it’s just an assumption.

Does anyone encountered the same issue? (with MariaDB or other distro)

Categories: Admin

FOSDEM 2013 Slides are available on [Plus]

February 26th, 2013 No comments

I was at FOSDEM for the first time this year and it was very exciting.
I was very glad to see Percona, MariaDB and Oracle together.
If you’ve never been at FOSDEM, I recommend you to join us next year, this is truly a magical event!

You can find some of the slides on [Plus], enjoy! :

If you would like to add your slides, post a comment with the link.
And remember to visit this page for more slides about MySQL : http://www.mysqlplus.net/mysql-docs/

Categories: Admin