分布式緩存系統 Xixibase 0.3 緊急發布

openkk 13年前發布 | 9K 次閱讀 分布式緩存

Xixibase是一個高性能,跨平臺的分布式緩存系統。Xixibase server 采用 C++ 實現,底層網絡庫采用的是Boost Asio。

Xixibase 0.2版本在URI decode函數中有一個Bug,會錯誤地Decode '+'。這個bug會影響HTTP協議,二進制協議不受影響。

Xixibase 0.3

Xixibase Server
Bug fix
URI decode error for '+'
Support HTTP 'HEAD' method
Support ETag
Other little change

Xixibase Java Client
Other little change

Xixibase 主要特點:

1. 實現'Local Cache'功能, 當客戶端打開'Local Cache'選項, 客戶端可以將數據同時存儲在Server 端和本地,并且保證本地數據和Server 端的數據的一致性。當Server 端的數據被更新、刪除或者過期,本地的數據會立即被刪除,下次再對該數據的訪問,請求會直接到達Server 。
'Local Cache'的優點:
    a. 極大地提高了性能:特別是對那些讀操作遠遠大于寫操作的數據,可以提供1000萬以上的TPS.參考:http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html 
    b. 提高了應用的服務質量和用戶體驗:在'Local Cache'命中的情況下,請求不需要通過網絡到遠程Cache Server上查詢,減少了總體的處理的時間,提高用戶體驗。
    c. 降低了Cache Server 的壓力,原先需要10臺Cache Server ,現在可能只要5臺就夠了。可降低成本,保護環境。
    d. 降低網絡流量,減少網絡設備的成本。
    e. 提高整個Cache 系統的總體吞吐量。綜合a, c, d三點,系統的總體吞吐量會得到極大的提升。

2. 支持虛擬化, 采用分Group的方法,不同的應用可以使用不同的GroupID,這樣當不同的應用在訪問同一個Cache Server時,不會相互干擾。
    a. GroupID類似與命名空間,每個應用不需要考慮:某個Key 是否會和其它應用的Key 沖突。
    b. 當某個應用要清空自己相關的Cache,不需要一個Key 一個Key 的去Delete ,可以直接調用Flush ,不用擔心Flush 會影響其它應用的數據。
    c. 可以對每個Group 單獨統計讀寫、存儲的信息。

3. 支持'MultiAPI', 如multiGet, multeUpdate, multiDelete。測試表明'MultiAPI'在提升性能方面,非常明顯。參考:http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html

4. 超高性能. 無論'Local Cache'還是'MultiAPI'都在不同方面,極大地提升了性能。

5. 跨平臺, Xixibase server由C++實現,底層網絡庫采用的是Boost Asio。理論上,只要Boost Asio支持的平臺,Xixibase server都可以支持。目前,已經測試了Linux, Windows, Mac。

6. 部分地支持HTTP協議,可以直接在瀏覽器上訪問Xixibase Server。我們可以使用JavaScript 非常方便地訪問Xixibase Server。再加上Xixibase 的Local Cache 功能,將極大地減少Server 的壓力,提升用戶的體驗。

性能:

讀寫TPS :150,000以上

啟動Local Cache高命中情況下,讀TPS:10,000,000以上。

MultiAPI, TPS: 不同條件下,差異較大,詳情參考一下鏈接:

Performance Benchmark:
http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html

和Memcached的幾個Client 比較:
http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html

 

項目:

http://code.google.com/p/xixibase/
包含:Xixibase Server 和Xixibase Java Client

目前Client 只實現了Java Client,歡迎有興趣的朋友可以實現其它平臺的Client。
關于Xixibase Java Client 的使用,test包里有幾個例子,大家可以參考一下。

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!