论文部分内容阅读
随着天文观测设备和技术的进步,天文观测数据规模的迅速增长使得如何存储海量观测数据以及如何能够迅速从中获取想要的信息成为难题。传统单节点的文件系统和关系型数据库在处理海量天文数据方面的性能无法让人接受。因此,设计一套针对海量天文数据处理的分布式存储引擎便显得十分的必要和重要。天文数据可以分为星表数据和星图数据,这两种数据有不同的格式和应用场景。本文针对天文星表和星图的特点,分别设计了两种分布式存储方案,进而加快对这两种数据的存取。星图数据采用分布式文件系统来存取,本文基于星图数据的特点首先提出了混合数据访问模型以减轻分布式文件系统中的网络开销,然后在开源分布式文件系统OrangeFS上实现了该模型。星表数据则采用基于位图索引的列式存储引擎FastBit,本文针对单节点版本的FastBit在处理海量天文数据时会遇到的内存问题,设计并实现了FastBit的分布式数据存储引擎,提出了FastBit的分布式数据划分算法以及基于SQL分析的并行查询算法。本文主要分为两部分,第一部分首先分析了分布式文件系统中客户端节点在不同文件大小与不同数据规模下的吞吐率瓶颈,并根据天文星图的特征提出了混合数据访问模型。从模型的意义和目的角度,对其进行了分析和介绍。接着描述了模型的原理和流程,以及如何将该模型应用到实际的OrangeFS分布式文件系统中。通过benchmark以及真实天文应用的测试,验证了采用该模型的分布式存储对天文星图读写的加速效果。第二部分首先分析传统关系型数据库在处理海量天文星表数据时所存在的问题,并介绍了基于位图索引的列式存储引擎FastBit以及它在处理海量天文数据时所存在的内存问题。然后提出了FastBit的分布式数据划分算法以及基于SQL分析的并行查询算法,描述了FastBit分布式存储的整体架构,最后通过天文星表数据进行实验验证,并对实验结果进行了性能分析。