让内存数据网格物尽其用

日期: 2012-12-06 作者:George Lawton翻译:boxi 来源:TechTarget中国 英文

在加速大型可伸缩应用的处理和分析方面,内存数据网格已经显示出了潜力。它们通常会在后端数据库和前端Web应用之间提供一个有用的中间层。现在,它们也开始在所谓的大数据应用中露脸了。

  尽管如此,应用内存数据网格(IMDG)时软件架构师还是必须要仔细考虑限制。对于定期调用的一组特定数据IMDG工作得很好。但是如果是不同的数据偶尔被查询的话,IMDG可能并不是最佳的途径。

  有时候,对记录的SQL数据系统的需求意味着IMDG的地位要比传统的关系数据库(RDB)低。硬件配置也会影响IMDG对整体系统架构的适应能力。最后管理IMDG的责任有时候会成为IT部门不同部分之间的问题。

  Oracle负责开发的副总裁,同时也是Tangosol(现在已是Oracle的一部分)内存数据网格技术的关键开发者的Cameron Purdy说,有两个特别重要的办法可以帮助IMDG减少应用延时。一是降低网络和基于磁盘的通讯,二是以可以更好地在应用中工作的对象格式来展示数据。

  Purdy解释说:“IMDG对很多东西都有好处,但是如果把它用在错误的问题上则会适得其反。它们可以很好地应用在内存数据集上。在内存中处理PB级的信息并非你想去尝试的东西。这方面有许多专门的系统能够把这种规模的信息分析处理得更好。”

  另一个因素是使用的数据模型。Purdy说:“如果应用把数据当做对象处理,那么用数据网格就很好。可是如果应用把数据当做SQL数据的话,可能最好还是用SQL数据库。如果应用与SQL语言对话,用数据网格去加速实现的效果往往是糟糕的。”

  数据分区和数据关联是部分非常适合于数据网格架构的概念。当存在一个可工作好的领域模型时,数据网格工作得最好。“有较弱的数据模型或没有数据模型的应用在采用数据网格时的问题最大,”Purdy说。问题还需要在多个服务器之间方便地进行分割。

  “分布式缓存只有在应用本身也是分布式的情况下才有意义—也就是说,出于伸缩性和/或可用性的原因需要运行在超过一台机器上,”Ron Pressler说:“如果分布式缓存是为了提供对数据的低延时访问,那它就必须距离运行的应用代码很近—比方说,驻留在运行应用的同一台机器上,或者通过复制来提供可伸缩性。在其他情况下,缓存会把自己的数据存储到多台机器上。”Ron Pressler是以色列技术公司Parallel Universe的创始人兼CEO。

  应用的数据访问行为在确定数据网格是否最佳方案中可以扮演重要角色。Pressler解释说:“如果应用显示出一致的数据访问模式,像不断访问一个数据子集,或者同时访问可轻易识别的条目组,我们就可以说该应用有着好的数据局部性,缓存将会显著改善其性能。对于应用分布式缓存的应用来说,最大的挑战是提高数据局部性。这往往要通过对领域进行认真思考,并找出要缓存的东西是什么,以及如何展现缓存的数据—如非标准化来达到。”

  内存数据网格开始在分析金融等领域的实时大数据应用中扮演角色,这些领域的数据集往往有着数TB之巨大的热门数据。尽管它们也可以用在其他地方,如根据Web日志重构用户会话,但Purdy说,别的解决方案,如Hadoop可能会更合适。此外,IMDG也可以作为可伸缩云应用的使能技术。

  “数据网格是云基础设施的关键组件之一,”Purdy说。IMDG有希望能够根据需求变化简化伸缩的流程。比方说,如果你使用的是EC2,增加了100台服务器,有一个数据网格来在这些服务器之间伸缩变化,看到的都是相同的实时信息,相互都了解对方,且不是100个不同的app,那么数据网格就会变得非常宝贵。如果你没有能力以一种安全可靠的方式进行管理、可视化以及访问,那么在云端建系统就会变得更加困难。

  缺少标准接口是个值得注意的问题。为了解决这一需求,行业正在联合推动即将出台的javax.cache规范(在JSR107框架内)。

  “对于云计算,我们已经看到所有主流IaaS供应商都引入了缓存作为服务。因此这已经成为了基础设施的一个标准部分。而面向云部署的Java EE 7,也将会出于同样的原因吸纳javax.cache,”Greg Luck说。Luck是Terracotta的CTO,也是基于标准的开源缓存Ehcache的原始开发者。

  跟其他人一样,Luck也看到了IMDG和云计算之间天然的紧密关系。他指出,相对于磁盘内存,云对IMDG使用的固态内存有一点偏好。

  “磁盘很慢,可是由于虚拟化以及NIC(网络适配器)共享、网络连接、物理驱动器的原因,云磁盘比它还要慢得多,”他说。但是IMDG并非适合于所有的大型应用。Luck说:“在多次读取相同的数据时缓存工作得很好。”

  各种类型的数据都非常适合于内存数据网格,但是有些类型也许需要特殊的处理。Jason Andersen是Red Hat的资深产品经理,他负责的是JBoss Enterprise Portal Platform。Jason说:“如果有监管或审计要求,那么可能需要有手段能够将数据推到像关系数据库那样的基于磁盘的数据解决方案上。当数据网格被用于所谓的数据库起搏器时往往就会看见这种需求。所谓数据库起搏器就是用数据网格来加速应用对数据库的访问。不过最终记录的系统还是数据库。”

  另一个问题是管理IMDG的责任分配。Andersen指出:“数据在习惯上一般由DB管理员和操作员管理,而缓存往往是应用结构的一部分。我们已经看到出现了一些情况,在确定由谁来对解决方案负责这个问题有一点纠结。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

boxi
boxi

相关推荐