TokuDB
{{short description|Storage engine for MySQL, MariaDB and Percona Server}}
{{Infobox software
| name = TokuDB
| logo =
| caption =
| developer = [https://www.percona.com/software/mysql-database/percona-tokudb Percona]
| latest release version = 7.5.5{{cite web|url=https://www.percona.com/doc/percona-tokudb/release-notes.html|title=Release Notes|access-date = 2015-10-20}}
| latest release date = January 29, 2015{{Citation needed|date=October 2015}}
| operating system =
| genre = Database engine
| license = GNU General Public License (version 2){{cite web
|url = https://github.com/percona/percona-server/blob/master/COPYING
|title = Percona Server COPYING
|access-date = 2015-12-17
}}
| website = [https://www.percona.com/software/mysql-database/percona-tokudb Percona TokuDB]
}}
TokuDB is an open-source, high-performance storage engine for MySQL and MariaDB. It achieves this by using a fractal tree index. It is scalable, ACID and MVCC compliant, provides indexing-based query improvements, offers online schema modifications, and reduces replication lag for both hard disk drives and flash memory.
TokuDB is included in Percona Server, MariaDB and Nagios based opmon. However, it is deprecated in Percona Server 8 and MariaDB 10.5.
Fractal tree indexes
=Overview=
TokuDB uses a Fractal tree index tree data structure that keeps data sorted and allows searches and sequential access in the same time as a B-tree but with insertions and deletions that are asymptotically faster than a B-tree. Fractal trees also allow for messages to be injected into the tree in such a fashion that schema changes (such as adding or dropping a column, or adding an index) can be done online and in the background.
{{cite web
|url = http://www.percona.com/ppc2009/PPC2009_Covering_Indexes_Tokutek.pdf
|title = Covering Indexes: Orders-of-Magnitude Improvements
|publisher = Percona
|access-date = 2011-01-17
}}
As a result, more indexes can be maintained without a drop in performance. This is because adding data to indexes tends to stress the performance of B-trees, but performs well in fractal tree indexes.
{{cite web
|url = http://www.mysqlperformanceblog.com/2009/04/28/detailed-review-of-tokutek-storage-engine/
|title = Detailed review of Tokutek storage engine
|publisher = Percona
|access-date = 2012-02-22
}}
=Uses=
Fractal tree indexes can be applied to a number of applications characterized by near-real time analysis of streaming data. They can be used as the storage layer of a database or as the storage layer of a file system. When used in a database, they can be used in any setting where a B-tree is used, with improved performance. Examples include: network event management, online advertising networks, clickstream analytics, and air traffic control management.
{{cite web
|url = http://www.mysqlperformanceblog.com/2009/11/05/air-traffic-queries-in-myisam-and-tokutek-tokudb/
|title = Air traffic queries in MyISAM and Tokutek (TokuDB)
|publisher = MySQL Performance Blog
|access-date = 2011-01-17
}}
Other uses include accelerated crawler performance for search engines for social media sites. It can also be used to create indexes and columns online, enabling query flexibility for e-commerce personalization. It is also suited to improving performance and reducing existing loads on transactional websites. In general, it performs well in applications that must simultaneously store log file data and execute ad hoc queries.
=Origins=
This approach to building memory-efficient systems was originally jointly developed by researchers at the Massachusetts Institute of Technology,
{{cite web
|url = http://en.oreilly.com/mysql2010/public/schedule/detail/13265
|title = How TokuDB Fractal Tree Databases Work
|publisher = O'Reilly
|access-date = 2011-01-17
{{cite web
|url = http://supertech.csail.mit.edu/cacheObliviousBTree.html
|title = Cache-Oblivious Search Trees Project
|publisher = Massachusetts Institute of Technology
|access-date = 2011-01-17
}}
{{cite web
|url = http://www.cs.rutgers.edu/~farach/pubs/cache-oblivious-Btree-full.pdf
|title = Cache-Oblivious B-trees
|publisher = Rutgers University
|access-date = 2011-01-17
}}
and the Stony Brook University.
{{cite web
|url = http://www.cs.sunysb.edu/~bender/pub/sicomp05-BenderDeFa.ps
|title = Cache Oblivious B-trees
|publisher = State University of New York (SUNY) at Stony Brook
|access-date = 2011-01-17
}}
=Role on the big data market=
TokuDB is named as one of the technologies that enable big data in MySQL.
{{cite web
|url = https://www.forbes.com/sites/siliconangle/2012/02/29/big-data-is-creating-the-future-its-a-50-billion-market/2/
|title = Big Data is Creating The Future - It's A $50 Billion Market
|work = Forbes
|access-date = 2012-05-21
}}
Tokutek was a Startup Showcase Finalist at the O'Reilly Strata Conference 2012 on big data.
{{cite web
|url = http://strataconf.com/strata2012/public/cfp/202
|title = Strata 2012 Startup Showcase
|publisher = O'Reilly
|access-date = 2012-05-21
}}
See also
References
{{Reflist|30em}}
External links
- {{Official website|https://www.percona.com/software/mysql-database/percona-tokudb}}
- [https://web.archive.org/web/20150726100738/http://www.tokutek.com/ TokuTek website] before it was acquired by Percona, from the Wayback Machine
- [http://www.dbms2.com/2013/01/15/tokutek-update/ DBMS2.com Overview of Tokutek]
- [https://github.com/Tokutek TokuTek organization on GitHub]
{{MySQL}}