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 cursscription
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/p/vitess/
分享到: