GemFire 5.5 增加对持续查询和重复读取的支持

  • Alexander Olaru
  • 张龙

2008 年 5 月 13 日

话题:Java语言 & 开发架构

GemFire 企业数据中心是一个兼容于 JCache(JSR 107)的内存式数据管理解决方案,它位于应用和数据源之间的中间层上,提供分布式缓存、持续语义分析及消息总线服务,并提供内存级别的操作速度。在 GemFire 5.5 的新闻发布中,GemStone 的首席架构师 Jags Ramnarayan 谈到了 GemFire 5.5 对其客户的重要意义:

GemFire 企业版 5.5 的发布对于我们的客户来说是一个重要的里程碑,因为他们将可以将整个 SLA 进程的管理推到一个新的高度。根据市场需要,新特性的组合向客户提供了能够创建大范围和安全的数据基础构架的工具,从而将网络上的节点转化为可操作的数据仓库。

Ramnarayan 与 InfoQ 讨论了 GemFire 5.5 的新特性:

1 - 安全——认证和授权服务

GemFire 企业版 5.5 通过一个插件式架构增强了当前基于 SSL 的安全模型,使得企业可以使用现存的认证和授权框架保护缓存成员和客户端。Ramnarayan 指出他们很多金融领域的客户将很可能利用到该新特性,另外,他说由于对安全认证引入了缓存机制,该安全服务的最新实现将提高整个产品的性能。

2 - 持续查询

持续查询使得客户端应用能注册对移动存储在缓存服务器集群上的数据的查询。Ramnarayan 提到可以用对象查询语言(Object Query Language,即 OQL——GemFire 之前的版本也支持此标准)来表示这些查询。一旦将这些查询在服务器上注册,数据就可以通过 Java、C++ 或 C# 编写的客户端应用被调用,所有底层的数据变化可以经由事件通知发送到对其感兴趣的应用。

3 - 可以持久订阅客户端 / 服务器的安装

客户端应用能够通过使用应用对象键(application object keys)或者持续查询(continuous queries)来注册订阅数据中心(缓存服务器集群)的数据。服务器通过持久订阅(durable subscription)对客户端消息排队,并使这些事件在多个节点上冗余以求高效。在失败的事件中,客户端应用一旦重新连接上服务器就可以恢复已订阅的数据。

4 - 增强的分割数据管理

由于负载均衡算法的强化,数据在多个可用节点上更加均衡。根据 Ramnarayan 所述,在某些情况下,该算法的改进能够提高 50% 的吞吐量。

5 - “可重复读取”事务

GemFire 企业版 5.5 在支持“读取提交(Read Committed)”和“未提交读取(Uncommitted Read)”两种读取级别的基础上,又增加了新的对“可重复读取(Repeatable Read)”缓存事务隔离的支持。在相同事务下对“可重复读取”区域内数据的多次请求的结果是相同的,但能够带来更好的应用吞吐量。

6 - 针对分布式系统监控的新控制台(GFMon)

GFMon GUI 监控工具对状态、事件和运行于节点上的每个缓存成员的内存使用(这些节点可以是单独的数据中心,也可以通过 WAN 连接横跨多个数据中心)提供了全局视图。Ramnarayan 补充说,GFMon 通过 OQL 还能够提供 ad-hoc 查询设备。

系统控制台视图



系统成员视图



GemFire 5.5 与之前的版本是完全兼容的。最后,Ramnarayan 以对该产品未来路线图的展望作为此次讨论的结束语:

  • 在 GemFire 5.5 beta 版中出现的新的“数据中心编程模型”将在未来发布 GA 版。该编程模型使得开发者能够编写发送到 GemFire 远程节点上去执行的函数或数据解析算法,这样就可以尽可能对数据进行就近处理。
  • GemFire 的未来版本还计划包括动态资源分配功能,通过基于硬件资源的智能负载均衡来进一步改善性能。

在该产品的站点上可以下载到 GemFire 5.5。

查看英文原文:GemFire 5.5 Adds Continuous Query and Repeatable Read Support

Java语言 & 开发架构