分布式缓存系统 Xixibase
fmms
13年前
<p><img title="分布式缓存系统 Xixibase" border="0" alt="分布式缓存系统 Xixibase" src="https://simg.open-open.com/show/60e3bdbf3196b3d8982406fb9d49b8e2.png" width="149" height="53" /><br /> Xixibase是一个高性能,跨平台的分布式缓存系统。Xixibase server 采用 C++ 实现,底层网络库采用的是Boost Asio。</p> <h3>Xixibase 主要特点:</h3> <p>1. 实现'Local Cache'功能, 当客户端打开'Local Cache'选项, 客户端可以将数据同时存储在Server 端和本地,并且保证本地数据和Server 端的数据的一致性。当Server 端的数据被更新、删除或者过期,本地的数据会立即被删除,下次再对该数据的访问,请求会直接到达Server 。<br /> 'Local Cache'的优点:<br /> a. 极大地提高了性能:特别是对那些读操作远远大于写操作的数据,可以提供1000万以上的TPS.参考:<a href="/misc/goto?guid=4958197879665432310">http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html</a> <br /> b. 提高了应用的服务质量和用户体验:在'Local Cache'命中的情况下,请求不需要通过网络到远程Cache Server上查询,减少了总体的处理的时间,提高用户体验。<br /> c. 降低了Cache Server 的压力,原先需要10台Cache Server ,现在可能只要5台就够了。可降低成本,保护环境。<br /> d. 降低网络流量,减少网络设备的成本。<br /> e. 提高整个Cache 系统的总体吞吐量。综合a, c, d三点,系统的总体吞吐量会得到极大的提升。</p> <p>2. 支持虚拟化, 采用分Group的方法,不同的应用可以使用不同的GroupID,这样当不同的应用在访问同一个Cache Server时,不会相互干扰。<br /> a. GroupID类似与命名空间,每个应用不需要考虑:某个Key 是否会和其它应用的Key 冲突。<br /> b. 当某个应用要清空自己相关的Cache,不需要一个Key 一个Key 的去Delete ,可以直接调用Flush ,不用担心Flush 会影响其它应用的数据。<br /> c. 可以对每个Group 单独统计读写、存储的信息。</p> <p>3. 支持'MultiAPI', 如multiGet, multeUpdate, multiDelete。测试表明'MultiAPI'在提升性能方面,非常明显。参考:<a href="/misc/goto?guid=4958197880420556379">http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html</a></p> <p>4. 超高性能. 无论'Local Cache'还是'MultiAPI'都在不同方面,极大地提升了性能。</p> <p>5. 跨平台, Xixibase server由C++实现,底层网络库采用的是Boost Asio。理论上,只要Boost Asio支持的平台,Xixibase server都可以支持。目前,已经测试了Linux, Windows, Mac。</p> <p>6. 部分地支持HTTP协议,可以直接在浏览器上访问Xixibase Server。我们可以使用JavaScript 非常方便地访问Xixibase Server。再加上Xixibase 的Local Cache 功能,将极大地减少Server 的压力,提升用户的体验。</p> <h4>性能:</h4> <p>读写TPS :150,000以上</p> <p>启动Local Cache高命中情况下,读TPS:10,000,000以上。</p> <p>MultiAPI, TPS: 不同条件下,差异较大,详情参考一下链接:</p> <p><strong>Performance Benchmark:</strong><br /> <a href="/misc/goto?guid=4958197879665432310">http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html</a></p> <p><strong>和Memcached的几个Client 比较:</strong><br /> <a href="/misc/goto?guid=4958197880420556379">http://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html</a></p> <p> </p> <p><strong>项目:</strong></p> <p><a href="/misc/goto?guid=4958195309325842019">http://code.google.com/p/xixibase/</a><br /> 包含:Xixibase Server 和Xixibase Java Client</p> <p>目前Client 只实现了Java Client,欢迎有兴趣的朋友可以实现其它平台的Client。<br /> 关于Xixibase Java Client 的使用,test包里有几个例子,大家可以参考一下。<br /> </p>