MySQL高压缩引擎TokuDB 揭秘( 六 )


ApsaraDB for MySQL对于日志场景做了优化,利用INSERT IGNORE语句保证pk键值唯一性,并且通过把二级索引键值1-1映射到pk键值空间的方法保证二级索引唯一性,将写操作转换成全异步写,大大降低了写延迟 。由于省掉唯一性检查的读过程,引擎在内存中缓存的数据量大大减少,缓存写请求的数据块受读干扰被释放的可能性大大降低,进而写路径上发生cachetable miss的可能性降低,写性能更加稳定 。
分布式业务场景
HybridDB for MySQL同时提供单分区事务和分布式事务支持,支持跨表、跨引擎、跨数据库、跨MySQL实例,跨存储节点的事务 。HybridDB for MySQL使用两阶段提交协议支持分布式事务,提交阶段proxy作为协调者将分布式事务状态记录到事务元数据库;分区事务恢复时,proxy从事务元数据库取得分布式事务状态,并作为协调者重新发起失败分区的事务 。
HybridDB for MySQL还可以通过判断WHERE条件是否包含分区键的等值条件,决定是单分区事务还是分布式事务 。如果是单分区事务,直接发送给分区MySQL实例处理 。
在线扩容/缩容场景
HybridDB for MySQL通过将存储分区无缝迁移到更多(或更少的)MySQL分区实例上实现弹性数据扩展(收缩)的功能,分区迁移完成之后proxy层更新路由信息,把请求切到新分区上,老分区上的数据会自动清理 。Proxy切换路由信息时会保持连接,不影响用户业务 。
数据迁移是通过全量备份+增量备份方式实现,全量备份不落地直接流式上传到oss 。增量备份通过binlog方式同步,HybridDB for MySQL不必自行实现binlog解析模块,而是利用ApsaraDB for MySQL优化过的复制逻辑完成增量同步,通过并行复制提升性能,并且保证数据一致性 。

MySQL高压缩引擎TokuDB 揭秘

文章插图
 
聚合索引提升读性能
TokuDB支持一个表上创建多个聚合索引,以空间代价换取查询性能,减少回pk取数据 。阿里云ApsaraDB for MySQL在优化器上对TokuDB聚合索引做了额外支持,在cost接近时可以优先选择聚合索引;存在多个cost接近的聚合索引,可以优先选择与WHERE条件最匹配的聚合索引 。
与单机版ApsaraDB for MySQL对比
MySQL高压缩引擎TokuDB 揭秘

文章插图
 
与阿里云OLTP+OLAP混合方案对比
MySQL高压缩引擎TokuDB 揭秘

文章插图
 
性能报告
高并发业务
压测配置:
  • 4节点,每节点8-core,32G,12000 iops,ssd盘

MySQL高压缩引擎TokuDB 揭秘

文章插图
 
高吞吐业务
压测配置:
  • 8节点,每节点16-core,48G,12000 iops,ssd盘

MySQL高压缩引擎TokuDB 揭秘

文章插图
 

【MySQL高压缩引擎TokuDB 揭秘】


推荐阅读