一种基于血统和检测点技术的分布式内存文件系统技术方案

技术编号:12589530 阅读:76 留言:0更新日期:2015-12-24 14:43
本发明专利技术公开了一个基于血统和检测点技术的分布式内存文件系统,该分布式内存文件系统,能够在保证容错性的情况下提高数据的读写吞吐量,利用血统的概念来规避由于复制数据造成的吞吐量降低的问题,即在任务失败时通过重新计算恢复数据,并且使用检测点技术来控制失败节点数据重新计算所需要的时间,利用严格优先权模型和加权公平共享模型,为失败节点的重新计算提供了足够的计算资源,同时这样也不会影响到其他作业的运行。

【技术实现步骤摘要】

本专利技术涉及文件在运算过程中的DAG图,文件备份技术,以及数据重算机制,并且具备资源的调度功能。
技术介绍
尽管目前缓存技术提高了读数据的速度,但是写数据时依旧是通过网络或硬盘,并且通过复制来保证数据的容错。近些年来,已经有很多努力来提高大规模并行数据处理系统的速度和复杂度。开发者和研究者已经构建了很多编程框架和存储系统来处理各种各样的作业。由于这些系统都是I/O相关的,传统上一般引入缓存来提升性能,但传统意义上在分布式计算系统中使用缓存虽然能极大提升读数据的速度,对于写数据的性能却帮助不大,这是因为分布式系统需要提供容错,而对于容错数据一般采用在多个不同节点上保存副本来实现。在内存中产生数据副本对于写数据的性能有较大影响,并且节点之间副本的传输受限于网络时延和吞吐量,相比直接使用本地内存进行缓存性能会差很多。写数据的性能严重影响了流水线式的作业,这种任务的一个作业会用到另一个作业的输出,这些作业一般用Oozie和Luigi框架进行管理,例如,首先利用MapReduce来提取数据,然后利用这些数据进行数据库查询,再之后在数据库查询的结果上使用机器学习算法。另外,许多高级编程接口,比如Pig和Flumejava,把程序编译成多个MapReduce作业然后顺序执行。这些案例,每一步之间都要通过网络进行数据备份。硬件性能的提高并不能解决这些问题,在一个节点上,内存的带宽是硬盘的I到3个数量级,内存和硬盘之间带宽的差别越来越大。固态硬盘的出现也不会对这个问题带来影响,因为固态硬盘的主要优势是减少随机访问的延迟,不能增加顺序I/O的带宽,而这是数据密集型任务要求的。此外,网络吞吐量的增加表明通过网络进行内存数据复制是可行的。但是,为了使得数据中心在断电的情况下具备容错的能力,就需要至少一份数据进行硬盘备份。因此,为了提高系统的吞吐量,存储系统必须不通过数据备份就能够具备容错的能力。为了提高写数据的性能,我们提出了基于血统和检测点技术分布式内存文件系统,能够在保证容错性的情况下提高数据的读写吞吐量。该系统利用血统的概念来规避由于复制数据造成的吞吐量降低的问题,即在任务失败是通过重新计算恢复数据,也就是说,血统不需要数据的备份来提供容错。
技术实现思路
本专利技术目的在于,提出一个分布式内存文件系统,在保证分布式应用程序数据容错性的情况下,提升数据读写的吞吐量。本专利技术包含两层架构:血统层和持久层。血统层主要提供较高的I/O吞吐量,并且能够跟踪创建特定数据输出的作业序列。持久层则将数据持久化到存储介质中,主要用到异步备份技术。持久层可以是任何现存的基于存储系统的数据备份系统,比如HDFS,S3和Glusterfs0为了能够管理元素据,主节点也包含工作流的管理模块。这个管理模块是为了能够跟踪血统的信息、计算检测点的序列和管理集群资源为重新计算分配资源。每一个工作节点都运行一个守护进程来管理本地资源并且定期向主节点报告状态信息。另外,每一个工作节点使用虚拟硬盘来存储内存映射文件。一个用户应用程序能够访问守护进程和直接与虚拟硬盘进行交互。这样,使用本地数据的用户程序就可以以内存访问的速度进行数据处理,避免了额外的数据拷贝。就存储而言,任务的二进制文件是血统信息最大的组成部分。但是,根据微软的数据显示,一个典型的数据中心平均每天运行1000个任务,每年用于存储未经压缩的作业二进制文件高达ITB。同时,该系统可以回收血统信息。特别是在设置输出数据的检测点后,该系统会删除血统记录,这将会大大减少血统信息的数量。另外,在生产环境中,同一个二进制文件会执行很多次,例如,只需要不同参数的周期性作业。在这种情况下,只需要一个数据备份就可以了。该系统使用LRU作为默认的内存替换策略。但是,由于LRU可能不是在所有的情形下都能够有很好的表现,本文件系统允许用户使用其他的回收策略。最后,除了一些最大的文件,存储所有文件在内存。其他的数据直接存储在持久层。用被动后备式的方法来保证主节点的容错性,主节点把每一步的操作都以日志的形式同步到持久层,当主节点失败时,一个新的主节点将从备用节点选出新的主节点,新的主节点依靠读取日志来恢复原来节点的状态。注意,由于元数据相对与输出数据的大小来说是非常小的,所以这些存储和复制是微不足道的。【附图说明】图1本专利技术的架构示意图图2气球驱动过程图 图3物理页到机器页的映射示意图图4收集、平衡过程图【具体实施方式】如图1所示,是本专利技术实例所提供的技术框架,整个框架采用类似Hadoop的Master-Slave结构,该系统架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件。主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率。同时可以减少内存冗余,GC时间等。该系统利用被动后备式的方法来保证主节点的容错性,主节点把每一步的操作都以日志的形式同步到持久层,当主节点失败时,一个新的主节点将从备用节点选出新的主节点,这里使用到了 paxos算法来进行主节点的选取,新的主节点依靠读取日志来恢复原来节点的状态。每一个工作节点都运行一个守护进程来管理本地资源并且定期向主节点报告状态信息。另外,每一个工作节点使用虚拟硬盘来存储内存映射文件。一个用户应用程序能够访问守护进程和直接和虚拟硬盘进行交互。血统的具体实施过程如图2所示,本文件系统主要基于这样的血统图来实现容错,整个血统信息以二进制可执行代码的形式存储了文件经过相应的操作产生的新文件的逻辑结构图,这个结构图可以使用DAG图来表示,这相对与要存储所有的文件的内容来说,大大降低了要存储的文件的数量,以此来提高保证数据容错性的性能。本文件系统是一个类似HDFS的文件系统,支持数据的追加和一些标准文件操作(创建、打开、读取、写入、关闭和删除),另外,还提供处理不同的当前第1页1 2 本文档来自技高网
...

【技术保护点】
一种基于血统和检测点技术的分布式内存文件系统,其特征在于包含两层架构:血统层和持久层,血统层主要提供较高的I/O吞吐量,并且能够跟踪创建特定数据输出的作业序列;持久层则将数据持久化到存储介质中,主要用到异步备份技术,持久层是任何现存的基于存储系统的数据备份系统;主节点包含工作流的管理模块,管理模块是为了能够跟踪血统的信息、计算检测点的序列和管理集群资源重新计算分配资源;每一个工作节点都运行一个守护进程来管理本地资源并且定期向主节点报告状态信息;每一个工作节点使用虚拟硬盘来存储内存映射文件;一个用户应用程序能够访问守护进程和直接与虚拟硬盘进行交互,这样,使用本地数据的用户程序就可以以内存访问的速度进行数据处理,避免了额外的数据拷贝;在设置输出数据的检测点后,该系统会删除血统记录,这将会大大减少血统信息的数量;系统使用LRU作为默认的内存替换策略,并允许用户使用其他的回收策略;用被动后备式的方法来保证主节点的容错性,主节点把每一步的操作都以日志的形式同步到持久层,当主节点失败时,一个新的主节点将从备用节点选出新的主节点,新的主节点依靠读取日志来恢复原来节点的状态。

【技术特征摘要】

【专利技术属性】
技术研发人员:雷州朱俊曹纪中
申请(专利权)人:江苏南开之星软件技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1