My friends at Sphinx Technologies have finally released new
beta of Sphinx – Sphinx 2.0.2. It includes about 6 months of
development and includes over 30 new features and tons of bug fixes. I’m
happy to see how Sphinx 2.0 is shaping up a lot of rough corners
are being polished and I’m hopeful we will see very solid Stable
Sphinx 2.0 within next 3 to 6 months. In fact Sphinx 2.0.3-rc is
promised within 1 month.
What MySQL Users will find interesting in this release is a lot
of work on SphinxQL the Sphinx’s language similar to SQL. Now it
support number of functions such as SET NAMES which make it
possible to connect to Sphinx as if it were MySQL Server with
more advanced connectors which issue such commands when they set
up connection. …
Every couple of weeks or so I get marketing email from a Continuent competitor advertising a closed-source clone of MySQL. It is said to be pumped up on illegal substances and therefore the solution to all my problems. I like this sort of spam because it makes it easier to track what the neighbors are up to. However it does bring up a question. Why are so many companies offering what amount to proprietary replacements of MySQL? This does not mean alternative builds like Percona or MariaDB. It means products like Clustrix, Schooner, or Xeround, which replace MySQL entirely, or like …
[Read more]
As you may know, since version 5.2.0 (released in April 2010) we
support Pluggable Authentication. Using this feature one
can implement an arbitrary user authentication and account
management policy, completely replacing built-in MariaDB
authentication with its username/password combination and
mysql.user
table.
Also, as you might have heard, Oracle has recently released a PAM authentication plugin for MySQL. Alas, this plugin will not run on MariaDB — although the MySQL implementation of pluggable authentication is based on ours, the API is incompatible. And, being closed source, this plugin cannot be fixed to run in MariaDB. And — I’m not making it up — this plugin does not support communication between the client and the server, so even with this plugin and all the power of PAM the only possible authentication …
[Read more]The catchy theme/motto of the PECL/mysqlnd_ms 1.2 release will be Global Transaction ID support. Hidden behind the buzzword are two features. We will allow users to request a certain level of service from the replication cluster (keyword: consistency) and we will do basic global transaction ID injection to help with master failover. Failover refers to the procedure of electing a new master in case of a master failure.
Global Transaction ID support is the 1.2 motto/theme
The two features are somewhat related, thus the theme. In very basic words, the idea of a global transaction ID is to have a sequential number in a table on the master. Whenever a client inserts data, the ID/counter gets incremented. The table is replicated to the slaves. If the master fails, the database administrator checks the slaves to find the one with the hightest global transaction ID. Please find details, for example, in …
[Read more]I tend to speak highly of the random query generator as a testing tool and thought I would share a story that shows how it can really shine. At our recent dev team meeting, we spent approximately 30 minutes of hack time to produce test cases for 3 rather hard to duplicate bugs. Of course, I would also like to think that the way we have packaged our randgen tests into unittest format for dbqp played some small part, but I might be mildly biased.
The best description of the randgen’s power comes courtesy of Andrew Hutchings – “fishing with dynamite“. This is a very apt metaphor for how the tool works – it can be quite effective for stressing a server and finding bugs, but it can also be …
[Read more]I love PHP's PDO (PHP Data Objects) extension; it gives a consistent, object-oriented interface to handling all kinds of relational database backends. One thing that annoys me is that the MySQL driver for PDO defaults to a silent error mode which can make SQL errors tricky to spot!
To give you an example, consider the query below (the correct
tablename is country
, so this SQL will fail):
$db = new PDO('mysql:host=localhost;dbname=sakila', 'user', 'pass'); $sql = 'select * from countrt'; $stmt = $db->query($sql); while(($row = $stmt->fetch()) != false) { echo $row['country'] . "\n"; }
The script will output an error because $stmt
is not
an object.
You have a few options here - you can check that you got an
object back before you try to do anything with it, for example.
Alternatively you can prepare()
and then …
I love PHP's PDO (PHP Data Objects) extension; it gives a consistent, object-oriented interface to handling all kinds of relational database backends. One thing that annoys me is that the MySQL driver for PDO defaults to a silent error mode which can make SQL errors tricky to spot!
To give you an example, consider the query below (the correct
tablename is country
, so this SQL will fail):
$db = new PDO('mysql:host=localhost;dbname=sakila', 'user', 'pass'); $sql = 'select * from countrt'; $stmt = $db->query($sql); while(($row = $stmt->fetch()) != false) { echo $row['country'] . "\n"; }
The script will output an error because $stmt
is not
an object.
You have a few options here - you can check that you got an
object back before you try to do anything with it, for example.
Alternatively you can prepare()
and then …
There may be some DBAs and database developers who love spending
hour after hour writing scripts for failover, monitoring and
alerts for their MySQL replication environment, not to mention
maintaining these scripts. And even with the best scripts,
failover and recovery usually require tedious error-prone manual
intervention. This complexity makes life harder for DBAs, who
have to spend too much of their time fighting fires instead of
spinning up new applications.
If you're a DBA or a Developer, Schooner feels your pain.
SchoonerSQL, our full high-availability build of MySQL and its
standard InnoDB storage engine, includes a Cluster Admin GUI that
radically simplifies cluster administration. The SchoonerSQL
Cluster Admin GUI is a powerful centralized management tool that
can monitor, manage, and backup your entire database servers
inside the datacenter. Replication setup has never been so easy
with just few clicks in our GUI.
…
As MLC-based SSD cards are raising popularity, there is also a
raising concern how long it can survive. As we know, a MLC NAND
module can handle 5,000-10,000 erasing cycles, after which it
gets unusable. And obviously the SSD card based on MLC NAND has a
limited lifetime. There is a lot of misconceptions and
misunderstanding on how long such card can last, so I want to
show some calculation to shed a light on this question.
For base I will take Virident FlashMAX M1400 (1.4TB) card.
Virident guarantees 15PB (PB as in petabytes) of
writes on this card.
15PB sounds impressive, but how many years it
corresponds to ? Of course it depends on your workload, and
mainly how write intensive it is. But there are some facts that
can help you to estimate.
On Linux you can look into the /proc/diskstats
file,
which shows something like:
251 0 vgca0 30273954 0 968968610 …[Read more]
451 Research has today published a report looking at the funding being invested in Apache Hadoop- and NoSQL database-related vendors. The full report is available to clients, but non-clients can find a snapshot of the report, along with a graphic representation of the recent up-tick in funding, over at our Too Much Information blog.