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 的模組:
![http://static.oschina.net/uploads/img/201203/04095004_RX5O.png image](/_next/image?url=http%3A%2F%2Fstatic.oschina.net%2Fuploads%2Fimg%2F201203%2F04095004_RX5O.png&w=1200&q=75)
獲取源碼的方法:hg clone https://code.google.com/p/vitess/