Tokutek发布新版本的TokuDB和TokuMX

Tokutek已经发布了其存储引擎产品的新版本。TokuDB for MySQL已经到了7.5版本,包含两项重要的性能特性。TokuMX for MongoDB已经到了2.0版本,包含各种新特性,其中包括其本身性能的提升。

对于简单的select,TokuDB先前的版本已经支持行的批量获取。Rich Prohaska是Tokutek的一名工程师,他解释了这样做的动机:

MySQL使用Handler API从TokuDB(和其它存储引擎)一次获取一行数据。遗憾的是,就每次Handler调用从分形树上获取下一行或上一行数据而言,分形树搜索过于复杂而难以使用。TokuDB在Handler中使用了一个批量获取缓冲区,其中包含了一次分形树搜索的结果。当MySQL调用下一个或上一个TokuDB Handler而且批量获取缓冲区非空时,就从批量获取缓冲区中弹出一行返回给MySQL。否则,用一次分形树搜索返回的多行结果填充批次获取缓冲区。

在TokuDB 7.5中,该特性经过了扩展,支持更复杂的select语句了,包括“INSERT [IGNORE] INTO … SELECT”、“INSERT INTO … ON DUPLICATE KEY UPDATE”、“REPLACE INTO … SELECT”和“CREATE TABLE … SELECT”。

除改进了批量获取特性外,TokuDB 7.5还引入了执行读取无关复制的功能。Prohaska是这样阐释该特性的:

当使用基于行的复制时,该行的映像会写入二进制日志,用于写入、删除和更新操作。从节点可以从二进制日志中使用该行映像,从而避免了从表中读取该行。这种读取无关复制的设计可以显著降低从节点的I/O负载。

Tokutek做了一次基准测试,声称使用读取无关复制时性能提升了20倍。不过,Tokutek提醒说,在可以使用该项特性前需要首先满足一些条件。

TokuMX 2.0带来了自己的一套广受欢迎的改进。首先是将Ark一致性算法用于复制。Ark算法由Tokutek创建,与MongoDB的默认算法相比,它可以提供更好的复制保障。尤其是,Ark可以确保实现了acknowledged级别majority write concern的写操作将永远不会因为随后的故障回滚。

除了Ark算法,TokuMX 2.0还增加了其它两项重要特性。第一项是,分区集合增加了分片支持。分区集合考虑了数据的范围删除,这在对时间序列数据做时效处理时尤其重要。第二项是,TokuMX现在支持MongoDB 2.4的所有地理索引和查询特性。

最后,TokuMX 2.0增加了快速更新支持。Tokutek声称,这带来了10倍的性能提升。在TokuMX先前的版本中,更新会执行一个查询读取现有文档,然后更改相关索引。借助快速更新,如果更新没有更改任何索引字段,那么开始时的查询就可以完全避免。

TokuDB和TokuMX基于Tokutek的分形树索引技术。TokuDB遵循GPLv2许可协议,TokuMX遵循AGPL许可协议。

查看英文原文:Tokutek Releases New Versions of TokuDB and TokuMX

你可能感兴趣的:(Tokutek发布新版本的TokuDB和TokuMX)