Vtocc - 高性能MySQL的前端


BSD
Windows
Python

软件简介

Vtocc 是 vitess 的首个可用的产品,它作为 MySQL 的前端提供一个 RPC 接口接收 SQL
语句并对这些语句进行转换。提供高效的多路大规模的数据库操作请求,超过10k+的并发处理能力。同时提供一个 SQL
解析器可以让服务器理解并智能的对查询进行优化。

Vtocc 已经在大规模的产品环境中使用,它是 YouTube 新的 MySQL 服务架构的核心。

示例代码:

from vtdb import vt_occ2 as db  
conn = db.connect('localhost:6510', timeout=5, dbname='mydb')  
curs = conn.cursor()  
curs.execute('select * from mytable limit 5', {})  
print curs.description  
for v in curs:  
  print v  
print curs.rowcount

主要功能:

  • A Python DBAPI 2.0 兼容的客户端接口 (vt_occ2.py)
  • 理解各种基于 HTTP 和 TCP 的协议
  • 支持查询变量以及查询缓存,可避免重复的 SQL 解析以及重用查询计划
  • 连接池
  • 事务管理,可限制并发事务数和管理事务失效
  • DML 注解: 每个 DML 将被重写并在结尾包含一个注释字段以标识出修改的行记录
  • 内置故障保险
    • Query 合并: The ability to reuse the results of an in-flight query to any subsequent requests that were received while the query was still executing.
    • 可限制查询结果数,如果超出则报错
    • 可删除一些超长的事务
    • 可删除一些时间太长的查询
    • 自动清理空闲连接

Vtocc 的模块:

获取源码的方法:hg clone https://code.google.com/p/vitess/