免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4551 | 回复: 4
打印 上一主题 下一主题

【求助】分布式内存数据网格 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-10 23:26 |只看该作者 |倒序浏览
本帖最后由 dremi 于 2012-05-10 23:26 编辑

最近研究了一下分布式内存数据网格,资料比较少,大部分可以借鉴的都是分布式数据库,内存数据库,分布式缓存。

内存数据网格(in-memory data grid)
   网格式分布式存储。
   所有数据存于内存(RAM)。
   存储服务器数量可随时增减。
   数据模型是非关系模型,而是基于对象模型。
   在网格内的某一台存储服务器的启动和关闭不会影响到网格内的其他服务器。

当前内存数据网格的开源有:
hazelcast, 一个java开源分布式内存网格框架,支持节点动态,数据通过key-value方式存储。支持备份,某个节点故障,数据不丢失。
infinispan
Infinispan 是个开源的数据网格平台。它公开了一个简单的数据结构(一个Cache)来存储对象。虽然可以在本地模式下运行Infinspan,但其真正的价值在于分布 式,在这种模式下,Infinispan可以将集群缓存起来并公开大容量的堆内存。这可比简单的复制强大的多,因为它会为每个结点分配固定数量的副本——服 务器故障的一种恢复手段——同时还提升了可伸缩性,这是由于存储每个结点所需的工作量是与集群大小息息相关的。Infinispan提供了一种简单的机制来利用大容量的堆内存。如果对每个结点维护一个拷贝,假如集群当中有100个结点,每个结点分配2GB的堆内存, 那么网格中的任何实例都能使用多达100GB的空间,这可都是内存,显然速度会非常快。同时Infinispan还兼容于JTA,这样它就能很好地处理事务 了。我们还有一个超级强大的异步API,它可以保证同步的网络调用以及异步调用的并行性及可伸缩性。比方说:Future f = cache.putAsync(k, v) 可以阻塞线程,再调用f.get()可以让网络调用继续进行或是忽略掉f。更为重要的是,线程还可以做别的事情,这一点非常有用。然后再回来通过调用 f.get()来检查该网络调用是否能继续进行。可以将其看作是NIO与传统的阻塞性IO之间的关系。


非开源的软件有:
Coherence , Oracle的一个内存数据网格平台。
GigaSpaces XAP  ,一个内存数据网格。


现在分析中有一个疑问:上面存储方式都采用key-value方式进行存储,在整个集群节点上,通过hash算法,尽量把数据均匀分布在不同的节点上,保证数据分布均匀。
但每个节点固定共享的内存是有限的,例如2G,对于某种key,如果value值很大 例如1G,这样数据可能很快就把某个节点的内存占用了,而其他节点可能还是相对空闲的,并且数据
可能还分布不均匀。是否需要对该value值进行拆分。例如把1G数据拆分成1G/2M=512块。
对于这种场景,有没有人对于上面开源或者下面非开源软件是怎么解决的。

这几天看了memcache好像一个记录最大支持1M,即key-value中value最大支持1M, redis最大支持2G。

在这里请教大侠们?

论坛徽章:
0
2
发表于 2012-05-23 22:24
在公司用了款美~信CreCloud云网管,挺不错的,属于云计算技术理念和IT监控技术的完美结合,云网管的成功开发和应用,使云计算理念在IT监控领域落地,而且还是永久免费。http://www.mxsoft.com

论坛徽章:
0
3 [报告]
发表于 2012-07-26 12:19 |只看该作者
顶你,支持楼主!有意思

论坛徽章:
0
4 [报告]
发表于 2013-03-12 21:25 |只看该作者
LZ,有新情况分享没?

论坛徽章:
0
5 [报告]
发表于 2013-05-03 01:17 |只看该作者
还没有机会用到
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP