Xixibase分布式緩存系統(tǒng)
Xixibase是一個(gè)高性能,跨平臺(tái)的分布式緩存系統(tǒng)。Xixibase server 采用 C++ 實(shí)現(xiàn),底層網(wǎng)絡(luò)庫(kù)采用的是Boost Asio。
Xixibase 主要特點(diǎn):
1. 實(shí)現(xiàn)'Local Cache'功能, 當(dāng)客戶端打開'Local Cache'選項(xiàng), 客戶端可以將數(shù)據(jù)同時(shí)存儲(chǔ)在Server 端和本地,并且保證本地?cái)?shù)據(jù)和Server 端的數(shù)據(jù)的一致性。當(dāng)Server 端的數(shù)據(jù)被更新、刪除或者過(guò)期,本地的數(shù)據(jù)會(huì)立即被刪除,下次再對(duì)該數(shù)據(jù)的訪問,請(qǐng)求會(huì)直接到達(dá)Server 。
'Local Cache'的優(yōu)點(diǎn):
a. 極大地提高了性能:特別是對(duì)那些讀操作遠(yuǎn)遠(yuǎn)大于寫操作的數(shù)據(jù),可以提供1000萬(wàn)以上的TPS.參考:http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html
b. 提高了應(yīng)用的服務(wù)質(zhì)量和用戶體驗(yàn):在'Local Cache'命中的情況下,請(qǐng)求不需要通過(guò)網(wǎng)絡(luò)到遠(yuǎn)程Cache Server上查詢,減少了總體的處理的時(shí)間,提高用戶體驗(yàn)。
c. 降低了Cache Server 的壓力,原先需要10臺(tái)Cache Server ,現(xiàn)在可能只要5臺(tái)就夠了。可降低成本,保護(hù)環(huán)境。
d. 降低網(wǎng)絡(luò)流量,減少網(wǎng)絡(luò)設(shè)備的成本。
e. 提高整個(gè)Cache 系統(tǒng)的總體吞吐量。綜合a, c, d三點(diǎn),系統(tǒng)的總體吞吐量會(huì)得到極大的提升。
2. 支持虛擬化, 采用分Group的方法,不同的應(yīng)用可以使用不同的GroupID,這樣當(dāng)不同的應(yīng)用在訪問同一個(gè)Cache Server時(shí),不會(huì)相互干擾。
a. GroupID類似與命名空間,每個(gè)應(yīng)用不需要考慮:某個(gè)Key 是否會(huì)和其它應(yīng)用的Key 沖突。
b. 當(dāng)某個(gè)應(yīng)用要清空自己相關(guān)的Cache,不需要一個(gè)Key 一個(gè)Key 的去Delete ,可以直接調(diào)用Flush ,不用擔(dān)心Flush 會(huì)影響其它應(yīng)用的數(shù)據(jù)。
c. 可以對(duì)每個(gè)Group 單獨(dú)統(tǒng)計(jì)讀寫、存儲(chǔ)的信息。
3. 支持'MultiAPI', 如multiGet, multeUpdate, multiDelete。測(cè)試表明'MultiAPI'在提升性能方面,非常明顯。參考:http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html
4. 超高性能. 無(wú)論'Local Cache'還是'MultiAPI'都在不同方面,極大地提升了性能。
5. 跨平臺(tái), Xixibase server由C++實(shí)現(xiàn),底層網(wǎng)絡(luò)庫(kù)采用的是Boost Asio。理論上,只要Boost Asio支持的平臺(tái),Xixibase server都可以支持。目前,已經(jīng)測(cè)試了Linux, Windows, Mac。
6. 部分地支持HTTP協(xié)議,可以直接在瀏覽器上訪問Xixibase Server。我們可以使用JavaScript 非常方便地訪問Xixibase Server。再加上Xixibase 的Local Cache 功能,將極大地減少Server 的壓力,提升用戶的體驗(yàn)。
性能:
讀寫TPS :150,000以上
啟動(dòng)Local Cache高命中情況下,讀TPS:10,000,000以上。
MultiAPI, TPS: 不同條件下,差異較大,詳情參考一下鏈接:
Performance Benchmark:
http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html
和Memcached的幾個(gè)Client 比較:
http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html
項(xiàng)目:
http://code.google.com/p/xixibase/
包含:Xixibase Server 和Xixibase Java Client
目前Client 只實(shí)現(xiàn)了Java Client,歡迎有興趣的朋友可以實(shí)現(xiàn)其它平臺(tái)的Client。
關(guān)于Xixibase Java Client 的使用,test包里有幾個(gè)例子,大家可以參考一下。
有任何問題、建議或者發(fā)現(xiàn)Bug可以聯(lián)系本人。
