数据分区技术和数据网格的集成
概述:
当处理大量数据的时候,常常值得推荐的是跨节点把数据分隔开处理。基本上,每个点负责处理数据的一部分。这种方法基本上允许从数据库数据中加载大量的数据到缓存,然后配置你的电脑区执行这些数据。为什么?为了避免数据在各节点的重复缓冲,这样往往可以提升性能,防止服务器瘫痪。
使用gridgain,使用Affinity Load Balancing这样的设计非常完美的解决了这个问题,而且可以和分布式缓存集成,解决数据网格。
Affinity Load Balancing
在GridGain中Affinity Load Balancing是通过GridAffinityLoadBalancingSpi.提供。
下图说明是使用数据网格和不适用数据网格的差别。左面的图表示没使用GridGain的执行流程,其中远程数据库服务器负责查询数据,然后传递到主调用服务器。这种比数据库访问要快,但是结果计算使使用很多不必要的流量。
右图,使用了Gridgain。整个逻辑计算与数据访问整合到本地节点。假设大量逻辑计算比数据序列到数据库要轻巧(即大量计算),那么网络流量将是最小的。此外,您的计算都可以访问节点2和节点3的数据。在这种情况下,GridGain将分为逻辑计算jobs和合适的逻辑计算路由到相应的数据服务中进行计算。以确保所有计算都在本地节点中计算。现在,如果数据服务节点崩溃时,您的失败jobs会自动转移到其他节点,这种是允许失败的(数据网格和分布式缓存提供这种方式)。
[img][/img]
数据网格集成
GridGain没有实现数据高速缓存,但是与现有的数据高速缓存或数据网格解决方案进行了集成。这使用户可以使用几乎任何的分布式缓存来实现自己喜欢的方案。
比如:GridGain提供了一个JBoss Cache Data Partitioning Example 告诉用户如何来使用Attinty Load Balancing。事实上,JBOSSCache没有提供数据分区的功能。由于使用了GridGain的GridAffinityLoadBalancingSpi提供的Attinity Load Balancing让JBoss