分布式缓存系统 Xixibase
本文导语: Xixibase是一个高性能,跨平台的分布式缓存系统。Xixibase server 采用 C++ 实现,底层网络库采用的是Boost Asio。 Xixibase 主要特点: 1. 实现'Local Cache'功能, 当客户端打开'Local Cache'选项, 客户端可以将数据同时存储在Server 端和本地,...
Xixibase是一个高性能,跨平台的分布式缓存系统。Xixibase server 采用 C++ 实现,底层网络库采用的是Boost Asio。
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包里有几个例子,大家可以参考一下。
有任何问题、建议或者发现Bug可以联系本人。