標籤:
概述Vitess 是一個用於對 MySql 進行水平擴充的儲存平台。經過最佳化,它可以像在專用硬體上那樣有效地運行在雲體系。它集 MySql 資料庫的很多重要特性和 NoSQL 資料庫的可擴充性於一體。
可擴充性
- 消除了高記憶體開銷的 MySQL 串連
- 隨意擴充你的資料庫,無須添加分區邏輯到你的應用程式
- 提供內建分區
- 以最小隻讀停機時間支援現場重新切分
效能
- 對影響資料庫效能的查詢自動重寫
- 使用Proxy 伺服器緩衝機制來協調查詢並防止重複查詢同時達到你的資料庫
易管理性
- 使用一個鎖伺服器如 ZooKeeper 或 etcd 跟蹤和管理伺服器,讓你的應用程式和資料庫拓撲之間松耦合
- 自動處理功能,如主機容錯移轉和備份,最小化任何必要的停機時間
特性Vitess 的一些關鍵特性瀏覽:
串連池每個 MySql 串連都會有一個記憶體開銷,除了擷取串連的大量 CPU 開銷之外,預設 MySql 配置下的記憶體開銷是 256KB 左右。Vitess 基於 BSON 的協議建立的是非常輕量級的串連(每個串連在 32KB 左右),這使得 Vitess 伺服器能夠輕鬆同時處理數千個串連。Vitess 使用了 Go 語言的卓越的並發支援將這些串連映射到一個 MySql 串連池。
分區管理隨著你的資料庫儲存的增長,你可能會想要對其進行水平切分。悲劇的是 MySql 天生不支援分區,所以你將需要自己寫分區代碼並將分區邏輯添加到你自己的應用程式。
Vitess 能夠以最小的唯讀停機時間進行切分。例如,它支援分裂複製,把複製流分開這樣以後的一台分區主機只會接收到會影響到其自身新分區中的某行的事務。此外,Vitess 還支援自訂分區方案,如果你已經有一個現成方案可以直接應用於 Vitess。
流程管理Vitess 通過各種情境下(如容錯移轉、主從複製)的自動處理來協助你管理你的資料庫執行個體的生命週期。Vitess 也跟蹤所有叢集配置中的的中繼資料這樣不同的叢集視圖始終是最新的而且對於不同的用戶端也能始終保證其一致性。此外,你自己的應用程式也無需去追蹤資料庫拓撲的改變。
原文連結:http://vitess.io/。
開來源資料庫中介軟體 Vitess:一組旨在使 web 應用的 MySql 資料庫的水平擴充簡單化的伺服器和工具集