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時的內存拷貝
淺談分散式存儲系統數據分布方法
阿里雲做存儲的盤古團隊如何?
關於分散式文件系統負載均衡有哪些資料值得閱讀?

TAG:NoSQL | Cassandra | 分布式存储 |