ScyllaDB簡介
1. ScyllaDB 是什麼
ScyllaDB 是兼容Apache Cassandra 協議的NoSQL資料庫。有Avi Kivity 帶領的團隊,採用C++語言實現的高性能NoSQL資料庫。目前,該項目已開源,開源協議為 Free Software Foundation』s GNU AGPL v3.0。
據官方給出的壓測數據,在等同條件配置下,ScyllaDB 性能10倍於Apache Cassandra資料庫。
我們看看ScyllaDB官網給的壓測數據,ScyllaDB的QPS具有壓倒性優勢。
那為什麼ScyllaDB具有高性能?這要得益於其底層使用的非同步編程框架——Seastar。Seastar是一個高性能的非同步編程框架,實現了用戶態TCP/IP協議棧,實現了用戶態磁碟IO調度器,實現了feature-promise-task的非同步編程模型。Seastar項目代碼約8萬行,閱讀難度適中。
那我們看看基於Seastar的其他項目的壓測數據吧。
基於Seastar實現的memcached 程序與開源memcached 性能對比
基於Seastar實現的Redis(名稱為Pedis) 與開源Redis性能對比2. ScyllaDB 開發團隊
ScyllaDB 的開發團隊由原KVM hypervisor 開發者Avi Kivity, Dor Laor等人率領。KVM 是當下眾多雲計算公司默認的Hypervisor。
該團隊還開發了另外2個有意思的項目:
- Seatar: 高性能非同步編程框架,非常方便c++非同步編程;
- OSv: 轉為雲計算環境設計的高性能OS,兼容linux 可執行程序;
目前,包括ScyllaDB在內的3個項目都已開源。
3. ScyllaDB 當前發展
當前,ScyllaDB的版本為1.3.1。官方發布了Ubuntu, Fedora 的安裝包,也可以通過源碼自己打包。在RedHat上打包,可能會遇到依賴不全問題,但最終還是能打包。
ScyllaDB 當前版本兼容了Cassandra 2.1.8 的文件格式,並支持其所有介面。在計劃在1.4版本中支持Cassandra 2.x, 3.x 版本的文件格式,以及其介面。
需要注意的是,這裡只是兼容協議與數據格式,並不是說ScyllaDB節點可以和Cassandra節點組成一個集群。
除了兼容Cassandra協議與數據格式,ScyllaDB也有自己的features:
- 完備的統計監控數據,通過http api吐出來;
- 系統參數少,可以通過工具跑出系統最優參數;
- 運維簡單;
- 低延遲,高性能;
ScyllaDB還有很多好玩的東西等待去挖掘。
歡迎轉載,請註明出處。
推薦閱讀:
※數據倉庫Hive的使用
※【rocksdb源碼分析】使用PinnableSlice減少Get時的內存拷貝
※淺談分散式存儲系統數據分布方法
※阿里雲做存儲的盤古團隊如何?
※關於分散式文件系統負載均衡有哪些資料值得閱讀?