本文主要內容是測試了不同NoSQL數(shù)據(jù)庫在測試工具YCSB中的表現(xiàn)。我們選取了3款流行的內存(in-memory)數(shù)據(jù)庫管理系統(tǒng):Redis,Tarantool 以及 CouchBase,還有緩存系統(tǒng)Memchached。Memchached雖然不屬于數(shù)據(jù)庫管理系統(tǒng)但常作為快速存儲系統(tǒng)使用。 測試環(huán)境由4臺在Microsoft Azure Cloud中的虛擬機組成的計算機組組成。這些虛擬機同屬于一個數(shù)據(jù)中心。nosql-1和nosql-2用作測試Tarantool和CouchBase,nosql-3和nosql-4用作測試Redis,Azure Redis Cache 以及 Memcached。這些機器都安裝和配置了相應數(shù)據(jù)庫和測試項目。虛擬機的配置為4核A3 CPU,7GB RAM,120GB硬盤。 數(shù)據(jù)庫及設置 內存數(shù)據(jù)庫管理系統(tǒng)會存儲所有在主內存中的數(shù)據(jù)并在磁碟上進行持續(xù)更新操作;透過日志記錄每個數(shù)據(jù)的修改以確保連貫性。由于是以append-only方式進行日志寫入,因此它很少遇到瓶頸問題;讀取/寫入都不會造成頻繁的磁碟頭移動。 Redis在2009推出,目前的最新版本是3.0.5。我們這里使用的版本是3.0.4,以append-only(只附加)方式進行數(shù)據(jù)管理,與其配合使用的是Microsoft Azure Redis Cache工具。 Tarantool是一款開源NoSQL數(shù)據(jù)庫管理系統(tǒng)。我們使用的是Tarantool 1.6.7-126-gb35aff9,日志采用write-ahead(先寫)模式。Memcached是一款分布式內存緩存系統(tǒng),這里使用是Memcached 1.4.14-0ubuntu9。 Couchbase Server是開源分布式NoSQL面向文檔數(shù)據(jù)庫,這里使用的版本是Couchbase 4.0.0-4047-1。 YCSB測試工具 Yahoo! Cloud Serving Benchmark(YCSB)是功能強大的NoSQL數(shù)據(jù)庫性能測試工具,它提供了6種主要的負載工作類型,以字母A到F來區(qū)分。 負載A負責更新操作,極值是50/50的讀寫操作,如用于進行新近操作記錄。負載B負責讀取操作,極值是95/5的讀寫操作,如用于進行圖片標簽管理,多進行標簽讀取操作。負載C負載100%的讀取操作,如用于進行用戶屬性獲取。負載D以先進先出方式進行插入操作,如用戶進行最新數(shù)據(jù)讀取。負載E負責小范圍記錄讀取而不是單個記錄讀取,如線程會話。負載F負責記錄的讀取,修改和寫入,如用戶信息管理。 我們對配置文件作了兩處參數(shù)修改:數(shù)據(jù)條目recordcount設為200000,操作條目operationcount設為5000000。YCSB是多線程工具,我們將以8, 16, 32, 64, 128 及256 線程來進行測試。詳細的測試腳本請點擊這里進行下載。 下列測試結果圖以顏色進行測試對象區(qū)分,
更多圖片請點擊[這里]查看。 結論 Tarantool在所有負載類型測試中皆取得了最優(yōu)成績。它創(chuàng)建了一個無鎖內存引擎,以協(xié)同多任務方式進行操作而不是互斥或并行處理方式。根據(jù)以下性能圖表現(xiàn),我們的結論是Tarantool的高吞吐量處理是其最大優(yōu)勢之一。因此在多數(shù)場合下,Tarantool是用戶的最佳選擇。 譯者/伍昆,現(xiàn)就職于必維集團IT信息部,擔任IT運營主管一職。熱衷于計算機編程和數(shù)據(jù)庫技術。 (責編/夏夢竹) |
|
來自: richard_168 > 《待分類》