关键词:
动态数据划分
通信开销
关联度
负载均衡
organization
摘要:
数据划分是分布式环境中一个非常重要的问题,数据是否划分合理不仅会影响分布式环境的负载均衡,同时也会导致节点间不必要的通信开销,降低分布式环境中的查询性能,尤其是对于相互之间关联较多的数据。在信息网模型中,现实世界的实体被抽象成对象,实体之间的关联被抽象成对象之间的关联。一个数据对象中包含的信息包括该数据对象的属性以及与其他数据对象之间的关联。在信息网模型中,当从一个数据对象出发,想要查询另一个数据对象的内容时,只需要沿着指定路径“跳入”目标对象中进行数据查询即可,不需要繁琐的join操作。然而分布式环境下,数据被划分到各个处理节点上,如果相互之间关联的数据对象没有被划分到同一个处理节点,那么频繁的“跳对象”操作会产生很大的通信开销。在分布式信息网数据库系统中,减少节点间通信开销的主要思路是通过数据的动态划分,使得相互之间密切关联的数据对象尽可能划分到同一个处理节点,进而使查询尽可能的在一个处理节点上完成。为了实现这个目标,本文结合信息网模型的特点提出了一种基于organization的动态数据划分算法。本文首先引入关联度的概念,用于衡量数据对象之间的紧密程度,同时通过查询统计信息动态修正数据对象之间的关联度,能够有效的挖掘数据对象之间的潜在关联;其次,结合信息网模型的特点,抽象出organization的概念,表示相互之间关联度较高的数据对象构成的集合,并制定organization检测规则,实现数据对象所属organization的判断;再次,制定移动计划,将属于一个organization的数据对象尽可能移动到同一个处理节点,同时最小化数据移动过程中的通信开销,并针对fat organization制定切分策略;最后通过限制各个处理节点的最大可用空间,保证动态数据划分算法的负载均衡。动态数据划分算法通过关联度的挖掘,将相互之间关联度较高的数据对象移动到同一个处理节点,进而使得查询在一个节点处理完成,减少节点之间不必要的通信开销,提高查询速度,优化分布式环境下的查询性能。