Vitess:打造高性能MySQL前端

关系型数据库(如MySQL)最初并没有针对大型Web应用进行构建和优化,Vitess项目的目标是推动MySQL数据库面向大型Web应用的扩展性。 Vtocc是vitess项目中第一个可用的产品,它的作用是作为MySQL的前端,为接收和发送SQL命令提供一个RPC接口。它能够在少量且吞吐量合理(~10kqps)的数据库连接上高效复。

项目简介

关系型数据库(如MySQL)最初并没有针对大型Web应用进行构建和优化,Vitess项目的目标是推动MySQL数据库面向大型Web应用的扩展性。

Vtocc是vitess项目中第一个可用的产品,它的作用是作为MySQL的前端,为接收和发送SQL命令提供一个RPC接口。它能够在少量且吞吐量合理(~10kqps)的数据库连接上高效复用大量的传入连接(10K+)。另外,它还内置了SQL语法分析器,使得服务器有能力理解并优化处理接收到的查询语句。

Vtocc已经在许多大型生产环境中有所应用,例如,YouTube全新的MySQL服务架构以其为核心。

特性概览

  • Python DBAPI 2.0兼容的客户端接口(vt_occ2.py)
  • Go语言数据库/SQL兼容的客户端接口
  • 支持基于HTTP或TCP套接字的多种协议
  • 支持绑定变量查询,支持查询缓存:可避免重复分析,高效复用查询计划
  • 支持连接池
  • 事务处理管理:可以限制事务处理的并发连接数
  • DML注释:每个DML语句都包含一个注释区域,以标识它所改动行的主键
  • 内置可靠性解决方案
    • 强化查询:可以为子查询重用正在执行的查询
    • 限制查询返回的行数量的最大值
    • 可终止运行时间过长无响应的事务
    • 可终止运行时间过长无法返回结果的查询
    • 可自动终止后台空闲连接,以避免出现脱机数据库错误

Vtocc未来可能会具备的新特性:

  • 支持行缓存的一致性,重写查询,以最大化行缓存的利用率
  • 内置binlog解释器,支持由vtocc注入的提供行变更更新流的DML文档分析
  • 支持DDL
  • 支持持久性连接 (张志平/编译)

github地址https://github.com/youtube/vitess

收藏

资源整理者简介:sunbiaobiao

(新浪微博:@sunbiao将军) 个人主页 · 贡献了178个资源 · 10


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer