分布式环境下可扩展数组的共享
1. 引言
科学应用常常需要对多维数组进行计算,以对科学现象进行建模和分析。高效处理大规模科学数据的强烈需求,推动了在计算机内存或二级存储上对多维数组的组织和实现方案的广泛研究。近年来,采用多维数组的在线分析处理(OLAP)变得越来越重要,因为当今的组织经常根据对企业数据的统计分析来做出业务决策。这些数据通常是多维的,需要沿着每个维度进行分析,因此多维数组在OLAP应用中也起着重要作用。OLAP系统的一个基本要求是对针对这些多维数组发出的多维查询具有极快的响应时间。
除了元素访问速度外,多维数组在语言方面的操作能力也是此类科学应用或OLAP应用的另一个重要需求。然而,在大多数研究中,所采用的多维数组是固定大小的,以免牺牲通过快速寻址函数获得的访问速度。
与之相反,可扩展数组可以在执行期间的任何方向上动态扩展其大小。与动态数组不同,可扩展数组在扩展时,所有现有元素都保持不变,仅动态分配扩展部分。一般来说,可扩展数组可以在任何方向上扩展,而无需重新定位已存储的数据。这种优势使得可扩展数组能够应用于广泛的领域,包括那些无法预测所需数组大小且其大小会根据系统执行或运行时的动态环境而变化的领域。
实现可扩展数组的困难在于,沿任意方向的轻松扩展与高内存利用率或能够快速随机访问数组元素的寻址函数的构建不兼容。本文基于索引数组模型,提出了一种共享可扩展数组的方案,并描述了采用该方案的分布式系统架构。
2. 可扩展数组的模型
一个n维可扩展数组A在每个可扩展维度i(i = 1, …, n)上有两种辅助表。一种是历史表Hi,用于记录扩展历史;另一种是地址表Li,用于保存扩展时动态分配的每个子数组的第一个地址
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



