key-value分布式存儲系統(tǒng)查詢速度快、存放數(shù)據(jù)量大、支持高并發(fā),非常適合通過主鍵進行查詢,但不能進行復(fù)雜的條件查詢。如果輔以Real- Time Search Engine(實時搜索引擎)進行復(fù)雜條件檢索、全文檢索,就可以替代并發(fā)性能較低的MySQL等關(guān)系型數(shù)據(jù)庫,達到高并發(fā)、高性能,節(jié)省幾十倍服務(wù)器數(shù)量的目的。以MemcacheDB、Tokyo Tyrant為代表的key-value分布式存儲,在上萬并發(fā)連接下,輕松地完成高速查詢。而MySQL,在幾百個并發(fā)連接下,就基本上崩潰了。
雖然key-value分布式存儲具有極高的性能,但是只能做類似于MySQL的SELECT * FROM table WHERE id = 123;簡單主鍵查詢。
“搜索索引引擎+key-value分布式存儲”能夠?qū)崿F(xiàn)高并發(fā)的復(fù)雜條件查詢、全文檢索與數(shù)據(jù)顯示。但是,由于索引更新需要時間,目前還不能實現(xiàn)完全意義上的Real-Time Search(實時搜索),只能稱之為Near Real-Time Search(準實時搜索)。“搜索索引引擎+key-value分布式存儲”除了做全文檢索外,還可以在允許的索引延遲范圍內(nèi),取代MySQL進行復(fù)雜條件查詢。
我的文章《億級數(shù)據(jù)的高并發(fā)通用搜索引擎架構(gòu)設(shè)計》的程序編碼已經(jīng)完成,第一輪測試昨天已經(jīng)結(jié)束,能夠在高并發(fā)情況下實現(xiàn)1分鐘內(nèi)索引更新,屬于“Near Real-Time Search Engine(準實時搜索引擎)+key-value分布式存儲”應(yīng)用。其中,索引引擎采用Sphinx,存儲采用key-value分布式數(shù)據(jù)庫Tokyo Tyrant。
以下是常見的key-value分布式存儲系統(tǒng):

其中,以下幾款值得關(guān)注:
1、Hypertable:它是搜索引擎公司Zvents根據(jù)Google的9位研究人員在2006年發(fā)表的一篇論文《Bigtable:結(jié)構(gòu)化數(shù)據(jù)的分布存儲系統(tǒng)》開發(fā)的一款開源分布式數(shù)據(jù)儲存系統(tǒng)。Hypertable是按照1000節(jié)點比例設(shè)計,以 C++撰寫,可架在 HDFS 和 KFS 上。盡管還在初期階段,但已有不錯的效能:寫入 28M 列的資料,各節(jié)點寫入速率可達7MB/s,讀取速率可達 1M cells/s。Hypertable目前一直沒有太多高負載和大存儲的應(yīng)用實例,但是最近,Hypertable項目得到了百度的贊助支持,相信其會有更好的發(fā)展,地址:http://www.bt285.cn BT下載。

2、Tokyo Tyrant:它是日本最大的SNS社交網(wǎng)站mixi.jp開發(fā)的 Tokyo Cabinet key-value數(shù)據(jù)庫網(wǎng)絡(luò)接口。它擁有Memcached兼容協(xié)議,也可以通過HTTP協(xié)議進行數(shù)據(jù)交換。對任何原有Memcached客戶端來講,可以將Tokyo Tyrant看成是一個Memcached,但是,它的數(shù)據(jù)是可以持久存儲的。Tokyo Tyrant 具有故障轉(zhuǎn)移、日志文件體積小、大數(shù)據(jù)量下表現(xiàn)出色等優(yōu)勢,詳見:http://www.bt285.cn/aidesefang/
Tokyo Cabinet 2009年1月18日發(fā)布的新版本(Version 1.4.0)已經(jīng)實現(xiàn) Table Database,將key-value數(shù)據(jù)庫又擴展了一步,有了MySQL等關(guān)系型數(shù)據(jù)庫的表和字段的概念,相信不久的將來,Tokyo Tyrant 也將支持這一功能。值得期待。詳見:http://www.bt285.cn/sejishikong/

3、CouchDB:它是Apache社區(qū)基于 Erlang/OTP 構(gòu)建的高性能、分布式容錯非關(guān)系型數(shù)據(jù)庫系統(tǒng)(NRDBMS)。它充分利用 Erlang 本身所提供的高并發(fā)、分布式容錯基礎(chǔ)平臺,并且參考 Lotus Notes 數(shù)據(jù)庫實現(xiàn),采用簡單的文檔數(shù)據(jù)類型(document-oriented)。在其內(nèi)部,文檔數(shù)據(jù)均以 JSON 格式存儲。對外,則通過基于 HTTP 的 REST 協(xié)議實現(xiàn)接口,可以用十幾種語言進行自由操作。

4、MemcacheDB:它是新浪互動社區(qū)事業(yè)部為在Memcached基礎(chǔ)上,增加Berkeley DB存儲層而開發(fā)一款支持高并發(fā)的分布式持久存儲系統(tǒng),對任何原有Memcached客戶端來講,它仍舊是個Memcached,但是,它的數(shù)據(jù)是可以持久存儲的。

- 大小: 76.4 KB