Today new version of JSON UDF functions: 0.2.1 was released. This is maintenance release which added no new functionality and only contains bug fixes. However, it also includes improvements for build ans test procedures. As usual, you can download source and binary packages at MySQL Labs. Binary packages were build for MySQL server 5.6.14. If you want to use other version of the server, you need to recompile functions.
What was changed? Let me quote the ChangeLog.
Functionality added or changed:
Added cmake option WITH_PCRE which alolows to specify if existent or bundled version of PCRE should be used. Bundled is default on Windows. To compile with bundled version, run: "cmake . -DMYSQL_DIR=/path/to/mysql/dir -DWITH_PCRE=bundled",
Before there was
PERFORMANCE_SCHEMA, there was
SHOW ENGINE INNODB MUTEX. As I wrote yesterday, these commands are useful for exposing internal locking operations that happen inside of MySQL. They are mainly useful for MySQL developers, but have some appeal for DBAs as well.
As part of an ongoing effort to cleanup the MySQL code-base and increase usability, the MySQL development team is interested in hearing feedback from users who currently use the command
SHOW ENGINE INNODB MUTEX.
SHOW ENGINE INNODB MUTEXwere to be
I took the MySQL 5.6-Exam today and it really is not easy. Lets get straight to the facts i remember:
What you should learn in the following order:
I had 3 or 4 questions where i thought that the answers (or the[Read more...]
So, after installing Workbench 6.0.7 on my pc, and playing around with the MySQL Utilities that are included, I thought I’d do similar to what others have done (Thanks Tony D.) and share my experience on how I’ve used them. If you haven’t installed Workbench before, you might want to check your platform first: http://www.mysql.com/support/supportedplatforms/workbench.html (http://www.mysql.com/support/supportedplatforms/workbench.html).
So, even if you’re not using any of the recent versions and editions of Workbench (Utilities comes with all of them, Tools menu -> “Start Shell for MySQL Utilities“) you can[Read more...]
I took a quick look at MariaDB 10.0 single-treaded performance (simple read-only sysbench). One thing immediately leaps to the eye, and I thought it worthy of mention. It contains an important lesson about the use of synchronisation primitives and in particular "atomic operations" in MariaDB (and MySQL).
I am using the Linux
perf tool on this
sysbench --num-threads=1 --test=oltp --oltp-test-mode=simple --oltp-read-only --oltp-skip-trxLook at the top offender in the output from
1,54% mysqld mysqld [.] set_thread_state_v1The only thing this does is set a string for SHOW PROCESSLIST (and the like) about what the thread is doing. And we are spending a whopping 1.5% of the total time doing this.
And why? That becomes clear when looking[Read more...]
We have always received quite few questions here at Percona Support on how to avoid the dreaded “Too many connections” error, as well as what is the recommended value for max_connections. So, in this article I will try to cover best possible answers to these questions so others can mitigate similar kinds of issues.
My colleague Aurimas wrote a wonderful post some time back about changing max_connections value via GDB when MySQL server is running to get rid of the “Too many connections” error without restarting[Read more...]
MySQL Enterprise Monitor (MEM) (https://www.mysql.com/products/enterprise/monitor.html" target="_blank) is the monitoring solution offered as part of MySQL Enterprise Edition and MySQL Cluster Carrier Grade Edition (https://www.mysql.com/products/" target="_blank). In this blog, I will not go into details of the features of MEM, but rather focus on the case where you want to install MEM 3.0 to try it out on your personal desktop or laptop.
A trial version (the full product, but the can only be used for 30 days) is available from Oracle’s Software Delivery Cloud. If you are a MySQL customer, it is recommended that you download MEM from My Oracle Support (MOS).
Once you have downloaded and extracted the installation binaries, you can start the installation. You have the choice between using a GUI,[Read more...]
With the holiday season fast approaching (or is it slow?), data bloggers have already adopted a festive mood, and this Log Buffer edition jubilantly captures and reflects that, and much more.
On December 4, 2013, Oracle will host a customer webcast to acquaint customers with the Oracle SuperCluster M6-32, Oracle’s most powerful engineered system for in-memory Oracle Database performance, Database-as-a-Service and application consolidation.
The ETL logic in BI Apps uses parameters in packages, interfaces, load plans, and knowledge modules (KM) to control the ETL behaviors.[Read more...]
When I designed first version of JSON UDFs which was reviewed only internally, I let all functions to validate input and output JSON. But my colleagues told me to remove this functionality, because it makes such functions, as json_search, json_replace or json_contains_key deadly slow if they find the occurrence in the beginning of the long document. And first published version of JSON UDFs: 0.2.0 has not this functionality. What we expected is that users would call json_valid if they want to be 100% sure the document is valid.
But I was not surprised that some users expect JSON functions to work as it was in the first version: validate first, then process. For example, Ammon Sutherland writes: "json_set - according to the documentation a
Yesterday we had our third Madrid MySQL users group meeting. That was quite interesting. Thanks go to Juan for his presentation.
We plan the next meeting on January 16th after the New Year is out of the way. If you are interested in MySQL and happen to be in Madrid please consider coming to see us.
More information about the next meeting can be found on the group’s web page. Note: The meeting will be in Spanish. I look forward to seeing you.
While I was working on the MySQL Workbench booth at MySQL Connect this year, an attendee came up and asked what a mutex was and how important it is to them in their function as a DBA.
It’s a good question. The short answer is:
Mutexes are mutually exclusive locks and are designed to prevent concurrent access to resources that in doing so may result in unsafe conditions.
They are required as part of virtually all multi-threaded applications (not just MySQL), and are not something that you can specifically prevent from happening. This is a different concept to row-locks and table locks.
If the InnoDB buffer pool is full, internally free space needs to be created in order to be able to load your desired page into memory. What you don’t want, is in between freeing and[Read more...]
I recently conducted a test backup of my “master-slave” setup in my VirtualBox as I was migrating from Percona Server 5.6.12 to version 5.6.13-rel61.0 with Percona XtraBackup v2.2.0 rev. 4885. However, doing the backup on my slave, I encountered this problem:
 Compressing and streaming ./test/checksum.ibd  Compressing and streaming ./mysql/slave_master_info.ibd Assertion "to_read % cursor->page_size == 0" failed at fil_cur.cc:293 innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2641.
This is related to a bug posted by my colleague[Read more...]
You may think that you already know what's the opposite of "DISABLED", but with MySQL Event Scheduler you'll be wrong.
In fact MySQL Event Scheduler may have three different states:
DISABLED - The Event Scheduler thread does not run . In addition, the Event Scheduler state cannot be changed at runtime. OFF (default) - The Event Scheduler thread does not run . When the Event Scheduler is OFF it can be started by setting the value of event_scheduler to ON. ON - The Event Scheduler is started; the event scheduler thread runs and executes all scheduled events.
So if you're going to find it in the DISABLED state and instinctively set it to ENABLED you'll end up with a non-starting MySQL daemon.
Be warned and stay safe out there!
I just tried out EXPLAIN UPDATE in MySQL 5.6 and found unexpected results. This query has no usable index:
EXPLAIN UPDATE ... WHERE col1 = 9 AND col2 = 'something'\G
*************************** 1. row ***************************
Extra: Using where
The EXPLAIN output makes it seem like a perfectly fine query, but it’s a full table scan. If I do the old trick of rewriting it to a SELECT I see that:
*************************** 1. row ***************************
MySQL has exceptional track of record by introducing minor fixes that cause major breakages. Though usually I could blame naiveté of engineers, who did not really ever have to deal with production implications, but lately I can start sensing various business implications against open-source offerings.
As an original author of mydumper I really cannot get out of my mind that 5.5 and 5.6 metadata locking changes are there to screw with anyone who is building a backup solution using stable snapshot views of MySQL (for example, mysqldump –single-transaction, the golden standard of backing things up in MySQL world).
As seen in a bug #71017 (palindrome!) filed by my esteemed colleague Eric, newly[Read more...]
We thought we’d get the festivities started a little early by offering a 20% flat discount on all Webyog products. Offer expires on November 27, 2013 at 23:59 PST. Grab the offer before it’s gone.
Head right away to the Online Shop and apply[Read more...]
You should take care when changing schema in a MySQL/InnoDB database cluster. But exactly how much care? that you can find out in next Galera webinar session hosted together with Severalnines:
The webinar goes through best practices for database schema changes in online system, with all Do's and Dontcha's listed. Session date will be Dec 3 and there will be two sessions targeted conveniently for EMEA and US timezones. You can register your seat through following links:
Guess no more, join the session!
This week we talk about how to install and use the MariaDB Audit plugin, and what the audit log looks like. Ear Candy presents a gotcha with MySQL and temporary directories, and At the Movies is about using Dynamo for more than just a data store.
DB Hangops - every other Wednesday at noon Pacific time
Upcoming MySQL events (http://www.mysql.com/news-and-events/events/)
Connector/Python v1.1.3 is available for testing since last week. It is a “beta” release, so it would be great if we even get more feedback. Check out the Change History if you want to keep up with what is being added and changed.
Notable changes for v1.1.3 include a fix for encoding using \x5c or backslashes in multi-byte characters. We also made the code more PEP-8 compliant, which we think is quiet important.
Some useful links:
Please check out the recording below!
Join in #DBHangOps this Wednesday, November 27th, 2013 at 12:00pm pacific (19:00 GMT), to participate in the discussion about:
See all of you on Wednesday!
Now this is really getting to be ridiculous. Finally was able to obtain a machine with 24 cores (48 with HT) and ran benchmarks. My colleague was able to come fairly close to Dmitri’s 500K numbers. I was getting nowhere with a 12 core (24 with HT) machine, as MySQL 5.5 was routinely faster in simple readonly sysbench benchmarks (both point queries and range selects). If I have to go to management and ask for these types of machines, they would be justified in sending me off to the funny farm.
Today I wanted to look at the relative merits of different optimization paths that can be taken on a Greenfield project. That is to say, one that has no constraints imposed on it by previous decisions made, and has received little to no optimization work to date.
Specifically, the two optimizations I wanted to compare are optimizing mysql versus caching. I should point out in advance that these optimizations are really orthogonal. The only thing that ties you to doing one versus the other is that they both consume the resource developer time.
This optimization typically starts by taking a look at the queries that are being sent to[Read more...]
Kauli – Open Source Grown Up
Kuali is proof that the Open Source model works for more than nerds and geeks. Kuali is a movement where colleges and universities pool resources to develop the software they need to run their institutions. The parties involved provide money and bodies to work on the various projects. And if an school needs a feature in a hurry, they provide money or bodies to get the work done. This is a highly collaborative effort spans the globe.
Many of these same schools found themselves locked into very expensive software that had to be extensively tailored to meet their needs. Each upgrade was an expensive and time consuming process in an era of shrinking staffs and budgets. Regular upgrades were needed to support changes in regulations or latent needs. The cost of upgrades and customization[Read more...]
Or I could place in the title – “Yes, we done it!”
After reaching 500K QPS in Read-Only on SQL queries, it was natural to expect a much higher performance level from InnoDB Memcached Plugin which is by-passing all SQL related layers.. However the story is not simple, and yet far from finished
While for today we have already our first “preview” results showing that we’re able to reach over 1,000,000 Query/sec level with the latest MySQL 5.7 code:
Join 15,000 others and follow Sean Hull on twitter @hullsean. 1. MySQL does not compete with Oracle It’s a myth that MySQL somehow poses a threat to Oracle. Oracle’s customers tend to be large enterprises running apps like e-business suite. These are certified to run on Oracle, and further they sit close to finance. MySQL […]