分布式文件系统中可配置的透明压缩方法技术方案

技术编号:18591955 阅读:22 留言:0更新日期:2018-08-04 20:01
本发明专利技术提供一种分布式文件系统中可配置的透明压缩方法,包括:检查DataNode独立进程是否存在闲置的压缩工作线程,若存在,根据设定的优先级规则以查找对应磁盘中压缩优先级最高的待压缩分块文件;调用压缩工作线程对该分块文件进行试压,估算出该分块文件的期望压缩比:1)响应于期望压缩比大于设定阈值,调用压缩工作线程根据设定的压缩规则对该分块文件进行压缩。本发明专利技术提及的压缩方法是一种异步压缩方法,集群会选择在CPU和IO相对空闲的时候,执行数据压缩,并且对待压缩的数据文件做优先级设定,在确保压缩效果的同时,达到对CPU/IO削峰填谷的效果。

Configurable transparent compression method for distributed file systems

The invention provides a configurable and transparent compression method in the distributed file system, including checking whether there is an idle compressed working thread in the DataNode independent process. If there is a set priority rule to find the uncompressed block file with the highest compression priority in the corresponding disk, the compression working thread is called. The desired compression ratio of the block file is estimated by the block file test pressure: 1) in response to the expected compression ratio is greater than the set threshold, the call compression working thread compresses the block file according to the set compression rule. The compression method mentioned in this invention is an asynchronous compression method. The cluster will choose to compress the data when the CPU and IO are relatively free, and the compressed data file is prioritized. While the compression effect is ensured, the effect of peeling and filling the valley to the CPU/IO is achieved.

【技术实现步骤摘要】
分布式文件系统中可配置的透明压缩方法
本专利技术涉及压缩方法领域,属于分布式文件系统中可配置的透明压缩方法。
技术介绍
分布式存储技术是企业应对大规模数据存储问题的常用手段之一。然而,随着集群规模的增长,集群存储空间的问题逐渐凸显。如何降低数据拥有成本,提高现有集群的存储能力成为了企业技术部门需要思考和解决的问题。本方法在传统分布式文件系统的基础上,为数据存储节点的设计做了改进,加入了透明压缩特性,从而实现节省存储空间,避免压缩影响存储上层的计算作业及对用户透明的目的。文件系统中的透明压缩方法,多为同步压缩方法,在数据流动前进行压缩,以提高网络及硬盘的数据传输效能,并同时在一定程度上降低磁盘用量,代价是会占用一定的计算资源用于数据的压缩和解压。线上集群的CPU使用率较高,向分布式文件系统写数据时进行同步压缩会占用CPU计算资源,导致计算任务被拖慢,并且反过来也会影响写数据速度。
技术实现思路
本专利技术的目的在于提供一种分布式文件系统中可配置的透明压缩方法,本压缩方法是一种异步压缩方法,集群会选择在CPU和IO相对空闲的时候,执行数据压缩,并且对待压缩的数据文件做优先级设定,在确保压缩效果的同时,达到对CPU/IO削峰填谷的效果。为达到上述目的,本专利技术提供如下技术方案:一种分布式文件系统中可配置的透明压缩方法,包括:步骤1、提供一作为分布式存储集群数据节点、用于以本地文件形式保存文件分块的DataNode独立进程,提供一用以执行压缩任务Compressorworker独立进程,Compressorworker独立进程包括若干个CompressorworkerThread工作线程,为每个磁盘分配一个独立的CompressorworkerThread工作线程,CompressorworkerThread工作线程用以执行当前磁盘被分配的压缩任务;步骤2、通过Compressorworker独立进程定期向本地的DataNode独立进程发起心跳汇报,以告知DataNode独立进程当前压缩任务状态;步骤3、响应于Compressorworker独立进程发送的心跳汇报,检查DataNode独立进程是否存在闲置的CompressorworkerThread工作线程,若存在,调用DataNode独立进程,根据设定的优先级规则以查找对应磁盘中压缩优先级最高的待压缩分块文件,并将该分块文件所对应的压缩任务作为返回值反馈至Compressorworker独立进程;步骤4、响应于接收到任意一个分块文件的压缩任务,调用Compressorworker独立进程,将该分块文件的压缩任务分配至对应磁盘的CompressorworkerThread工作线程,CompressorworkerThread工作线程对该分块文件进行试压,估算出该分块文件的期望压缩比:1)响应于期望压缩比大于设定阈值,调用CompressorworkerThread工作线程根据设定的压缩规则对该分块文件进行压缩;2)响应于期望压缩比小于等于设定阈值,判定该分块文件不需要压缩,并且将该判定结果在下一次心跳汇报中发送至DataNode独立进程,告知DataNode独立进程不再标记该分块文件为待压缩分块文件。本专利技术的有益效果在于:集群会选择在CPU和IO相对空闲的时候,执行数据压缩,并且对待压缩的数据文件做优先级设定,在确保压缩效果的同时,达到对CPU/IO削峰填谷的效果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明图1为本专利技术的CompressorWorker的工作流程图。图2是本专利技术的透明压缩架构图。图3为本专利技术的CompressorWorkerThread工作流程图。图4为本专利技术的压缩块管理方法示意图。图5为一个压缩后的block的示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。为了便于描述,首先定义下文中可能涉及到的名词解释。NameNode:独立进程,分布式存储集群元数据节点,管理文件系统元信息以及维护数据库与文件的映射关系。DataNode:独立进程,分布式存储集群数据节点,以本地文件形式保存文件分块(Block)。Compressorworker(简称:CW):独立进程,部署到DataNode机器上。执行压缩任务。该角色为是否进行压缩的决定者和压缩执行者。CompressorworkerThread(简称:CWT):Compressorworker中的工作线程,每个磁盘分配一个处理线程。用于执行压缩任务。Compressoradmin:外带工具,主要用于人工干涉block压缩的优先级,对于压缩任务本身起建议作用。Codectype:压缩算法,本方法会采用多种方法对文件进行试压,选用压缩比最好的算法进行压缩。在本专利技术所提及的异步压缩过程中,主要包括前述名词中的其中三个:NameNode,DataNode,CW。为使异步压缩能够批量上线,在异步压缩过程中,本压缩方法避免对NameNode逻辑的修改,使压缩对NameNode透明。而DataNode在异步压缩的过程中,相当于master,主要用来决定哪些块需要优先被压缩,以及块压缩任务的分配。CW则负责执行DataNode分配给它的压缩任务。下面进行本专利技术所提及的异步压缩方法的具体阐述。结合图1、图2,本专利技术提及一种分布式文件系统中可配置的透明压缩方法,包括:步骤1、提供一作为分布式存储集群数据节点、用于以本地文件形式保存文件分块的DataNode独立进程,提供一用以执行压缩任务Compressorworker独立进程,Compressorworker独立进程包括若干个CompressorworkerThread工作线程,为每个磁盘分配一个独立的CompressorworkerThread工作线程,CompressorworkerThread工作线程用以执行当前磁盘被分配的压缩任务。步骤2、通过Compressorworker独立进程定期向本地的DataNode独立进程发起心跳汇报,以告知DataNode独立进程当前压缩任务状态。CW定期向本地的DataNode发起heartbeatRPC。告诉DataNode当前有多少块压缩任务正在运行,有哪些块已经完成压缩以及哪些块不用压缩。DataNode收到此RPC后,分配任务给CW,RPC的返回值为CW需要进行压缩的块。步骤3、响应于Compressorworker独立进程发送的心跳汇报,检查DataNode独立进程是否存在闲置的CompressorworkerThread工作线程,若存在,调用DataNode独立进程,根据设定的优先级规则以查找对应磁盘中压缩优先级最高的待压缩分块文件,并将该分块文件所对应的压缩任务作为返回值反馈至Compressorworker独立进程。步骤4、响应于接收到任意一个分块文件的压缩任务,调用Compressorworker独立进程,将该分块文件的压缩任务分配至对应磁盘的CompressorworkerThread工作线程,Compress本文档来自技高网...

【技术保护点】
1.一种分布式文件系统中可配置的透明压缩方法,其特征在于,包括:步骤1、提供一作为分布式存储集群数据节点、用于以本地文件形式保存文件分块的DataNode独立进程,提供一用以执行压缩任务Compressor worker独立进程,Compressor worker独立进程包括若干个Compressor workerThread工作线程,为每个磁盘分配一个独立的Compressor workerThread工作线程,Compressor workerThread工作线程用以执行当前磁盘被分配的压缩任务;步骤2、通过Compressor worker独立进程定期向本地的DataNode独立进程发起心跳汇报,以告知DataNode独立进程当前压缩任务状态;步骤3、响应于Compressor worker独立进程发送的心跳汇报,检查DataNode独立进程是否存在闲置的Compressor workerThread工作线程,若存在,调用DataNode独立进程,根据设定的优先级规则以查找对应磁盘中压缩优先级最高的待压缩分块文件,并将该分块文件所对应的压缩任务作为返回值反馈至Compressor worker独立进程;步骤4、响应于接收到任意一个分块文件的压缩任务,调用Compressor worker独立进程,将该分块文件的压缩任务分配至对应磁盘的Compressor workerThread工作线程,Compressor workerThread工作线程对该分块文件进行试压,估算出该分块文件的期望压缩比:1)响应于期望压缩比大于设定阈值,调用Compressor workerThread工作线程根据设定的压缩规则对该分块文件进行压缩;2)响应于期望压缩比小于等于设定阈值,判定该分块文件不需要压缩,并且将该判定结果在下一次心跳汇报中发送至DataNode独立进程,告知DataNode独立进程不再标记该分块文件为待压缩分块文件。...

【技术特征摘要】
1.一种分布式文件系统中可配置的透明压缩方法,其特征在于,包括:步骤1、提供一作为分布式存储集群数据节点、用于以本地文件形式保存文件分块的DataNode独立进程,提供一用以执行压缩任务Compressorworker独立进程,Compressorworker独立进程包括若干个CompressorworkerThread工作线程,为每个磁盘分配一个独立的CompressorworkerThread工作线程,CompressorworkerThread工作线程用以执行当前磁盘被分配的压缩任务;步骤2、通过Compressorworker独立进程定期向本地的DataNode独立进程发起心跳汇报,以告知DataNode独立进程当前压缩任务状态;步骤3、响应于Compressorworker独立进程发送的心跳汇报,检查DataNode独立进程是否存在闲置的CompressorworkerThread工作线程,若存在,调用DataNode独立进程,根据设定的优先级规则以查找对应磁盘中压缩优先级最高的待压缩分块文件,并将该分块文件所对应的压缩任务作为返回值反馈至Compressorworker独立进程;步骤4、响应于接收到任意一个分块文件的压缩任务,调用Compressorworker独立进程,将该分块文件的压缩任务分配至对应磁盘的CompressorworkerThread工作线程,CompressorworkerThread工作线程对该分块文件进行试压,估算出该分块文件的期望压缩比:1)响应于期望压缩比大于设定阈值,调用CompressorworkerThread工作线程根据设定的压缩规则对该分块文件进行压缩;2)响应于期望压缩比小于等于设定阈值,判定该分块文件不需要压缩,并且将该判定结果在下一次心跳汇报中发送至DataNode独立进程,告知DataNode独立进程不再标记该分块文件为待压缩分块文件。2.如权利要求1所述的分布式文件系统中可配置的透明压缩方法,其特征在于,所述设定的压缩规则是指,对具有压缩任务的分块文件,分chunk进行压缩,每读取一个chunk,将压缩数据写入到tmp目录下对应文件夹内,并生成一Index文件。3.如权利要求1所述的分布式文件系统中可配置的透明压缩方法,其特征在于,所述设定的优先级规则是指,给DataNode独立进程中的每个分块文件均增加用以表达访问时间的字段accesstime,accesstime表示的上一次的访问时间...

【专利技术属性】
技术研发人员:李新明刘斌
申请(专利权)人:中科边缘智慧信息科技苏州有限公司
类型:发明
国别省市:江苏,32

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

1