Databases Reference
In-Depth Information
Drizzle
Drizzle is a true fork of MySQL, not just a variant or enhancement. It is not compatible
with MySQL, although it's not so different that it's unrecognizable. In most cases, you
won't simply be able to switch out your MySQL backend and replace it with Drizzle,
due to changes such as different SQL syntax.
Drizzle was created in 2008 to better serve the needs of MySQL users. It is built to
satisfy the core functionality needed by web applications. It is greatly streamlined and
simplified compared to MySQL, with many fewer choices; for example, it uses only
utf8 for character storage, and there is only one type of BLOB . It is built primarily for
64-bit hardware, and it supports IPv6 networking.
One of the key goals of the Drizzle database server is to eliminate surprises and legacy
behaviors that exist in MySQL, such as declaring a column NOT NULL and then finding
that the database somehow stored a NULL into it. The poorly implemented or unwieldy
features you can find in MySQL, such as triggers, the query cache, and INSERT ON
DUPLICATE KEY UPDATE , are simply removed.
At the code level, Drizzle is built on a microkernel architecture with a lean core and
plugins. The core of the server has been stripped down to a much smaller codebase
than MySQL. Nearly everything is a plugin—even functions such as SLEEP() . This
makes Drizzle very easy and productive to work with on the source code level.
Drizzle uses standard open-source libraries such as Boost, and complies to standards
in code, build infrastructure, and APIs. It uses the Google Protocol Buffers open mes-
saging format for purposes such as replication, and it uses a modified version of
InnoDB as its default storage engine.
The Drizzle team began benchmarking the server very early, using industry-standard
benchmarks with up to 1,024 threads to measure performance at high concurrencies.
Performance gains at high concurrency are prioritized over low-end gains, and there
has been much progress on improving performance.
Drizzle is a community-developed project, and it has attracted more open source con-
tributions than MySQL was ever able to. The server's license is pure GPL, with no dual
licensing. However—and this is one of the most important aspects for developing a
commercial ecosystem—there is a new client library that speaks the MySQL client-
server protocol but is BSD-licensed. This means that you can build a proprietary ap-
plication that connects to MySQL through the Drizzle client library, and you do not
need to purchase a commercial license to the MySQL client library or make your soft-
ware available under the GPL license. The libmysql client library for MySQL was one
of the primary reasons that companies purchased commercial licenses for MySQL—
without the commercial license that permitted them to link to libmysql , they would
have been forced to release their software under the GPL. This is no longer necessary,
because now they can use the Drizzle library instead.
 
Search WWH ::




Custom Search