Introduction So here’s a recent requirement that I’ve just encountered. I have a shared MySQL database I have several users that I want them to be able to create new databases However, I don’t want them to see each other’s databases And just to be absolutely clear, I obviously don’t want to give them all […]
Background:
Prior to version 3.10, MySQL Enterprise Backup (MEB) used zlib compression for in-memory compression of datafiles. The compression worked by splitting the innodb datafiles into fixed size blocks and compressing each block independently.After searching on the web we found there are many compression algorithms available which can be used for compression. This triggered the idea of testing the performance of available compression algorithms. If the benchmark shows improved performance we can make backup and/or restore faster by adding the new compression algorithm to MEB.
Implementation :
The idea to implement the algorithms procceded as follows .
1. Select a "long list" of algorithms based on literature and
what Google and other databases are using.
2. Create a prototype of MEB supporting the algorithms in the
long list.
3. Run comparison tests of algorithms with the MEB …
The MySQL Utilities Team is pleased to announce the latest
release candidate (RC) release of MySQL Utilities. This release
includes a number of improvements for useabilty, stability, and a
few enhancements. A complete list of all improvements can be
found in our release_notes.
New Utilities!
We have also included two new utilities.
- The mysqlrplsync utility was added, which checks data consistency between servers in a replicated setup.
- The mysqlrplms utility was added, which provides round-robin multi-source replication (a slave server continually cycles through multiple masters in order to store a consolidated data set).
How Can I Download MySQL Utilities?
You can download MySQL Utilities 1.4.2 from the following link
using one of the pre-built …
I've completed a new release of the Connector/Arduino! The new
release contains some major improvements with memory
handling.
- The library has been trimmed to save memory.
- Static strings moved to PROGMEM strings
- Unused structures removed (e.g. ok_packet)
- Moved two more methods to optional compilation
- The WITH_SELECT is turned *OFF* by default. If you want to use select queries, be sure to uncomment this in the mysql.h file.
- Added a CHANGES.txt file to track changes between releases.
Memory, What Memory?
If you have used previous versions of the connector in medium to
large sketches or have long query strings or even many variables,
chances are you have hit the memory limit for your wee Arduino
board.
This can manifest itself in a number of ways. Most notably, the
sketch may work …
Parallel replication is in MariaDB 10.0. I did some benchmarks on the code in 10.0.9. The results are quite good! Here is a graph that shows a 10-times improvement when enabling parallel replication:
The graph shows the transaction per second as a function of
number of slave worker threads, when the slave is executing
events from the master at full speed. The master binlog was
generated with sysbench oltp.lua. When the binlog is enabled on
the slave and made crash-safe (--sync-binlog=1
--innodb-flush-log-at-trx-commit=1
), the slave is about
ten times faster at 12 worker threads and above compared to the
old single-threaded replication.
These results are for in-order parallel replication. With in-order, transactions are committed on the …
[Read more]Data migrations always have a wide range of challenges. I recently took on a request to determine the difficulty of converting an ecommerce shop's MySQL 5.0 database to PostgreSQL 9.3, with the first (presumably "easier") step being just getting the schema converted and data imported before tackling the more challenging aspect of doing a full assessment of the site's query base to re-write the large number of custom queries that leverage MySQL-specific language elements into their PostgreSQL counterparts.
During the course of this first part, which had contained a number of difficulties I had anticipated, I hit one that I definitely had not anticipated:
ERROR: value too long for type character varying(20)
Surely, the error message is absolutely clear, but how could this possibly be? The obvious answer--that the varchar definitions were different lengths between MySQL and PostgreSQL--was sadly quite wrong (which you knew, …
[Read more]I have just implemented MASTER_GTID_WAIT() in MariaDB 10.0. This can be used to give a very elegant solution to the problem of stale reads in replication read-scaleout, without incuring the overheads normally associated with synchronous replication techniques. This idea came up recently in a discussion with Stephane Varoqui, and is similar to the concept of Lamport logical clock described in this Wikipedia article.
I wanted to describe this, hoping to induce people to test and maybe start using this, as it is a simple but very neat idea, actually.
A very typical use of MariaDB/MySQL …
[Read more]MySQL Cluster is a highly resilient and scalable database platform designed to deliver 99.999% availability with features such as self-healing and online operations, and capable of performing over 1,00,000,000 updates per minute. The full feature set includes development and management platforms alongside monitoring and administration tools, all backed by Oracle Premier Lifetime Support.
To learn more about MySQL Cluster, consider taking the MySQL Cluster training. Events already on the schedule for this 3-day instructor-led course include:
Location |
Date |
Delivery … |
I've completed a new release of the Connector/Arduino. The new
version supports a few refinements and a new feature.
- New! disconnect() method - enables disconnect from server. Note: you must call mysql_connect() to reconnect.
- Better error handling for dropped packets. No more random reboots when bad packet appears.
- Library can recover from short-term loss of connectivity. Along with bad packets is a check to make sure what is received is valid making the connector ignore garbage packets associated with a dropped connection.
- Detection of Out of Memory condition. Should there not be enough memory to allocate the buffer for the Connector, you will see an OOM error (enable the serial monitor to see the errors). This reduces random reboots when memory gets too low.
I made this release because a number of people were running into problems with noisy, tenuous, or just plain …
[Read more]
I believe in automation as much as possible, and I'm always
working to make the day to day tasks of operations as smooth as
possible. Also I try not to be afraid to take good tools
and make them better.
Here in Database Ops at Box, we use pt-kill running as a service
to constantly monitor our servers and help protect against long
running queries. But our thresholds are pretty generous,
and in some cases it's possible for unforeseen circumstances to
cause enough queries to storm the database such that we can have
problems before any of them hit the threshold for "busy time."
Ditto for idle connections.
The response is that someone has to be available to manually run
another copy of pt-kill with much lower thresholds to clear out
these thundering herds. But what if we could let pt-kill
handle both the "normal" mode and still protect us from
herds?
That's what we've done by adding a …