CN106648442A - 一种元数据节点的内存镜像方法、装置 - Google Patents
一种元数据节点的内存镜像方法、装置 Download PDFInfo
- Publication number
- CN106648442A CN106648442A CN201510718506.0A CN201510718506A CN106648442A CN 106648442 A CN106648442 A CN 106648442A CN 201510718506 A CN201510718506 A CN 201510718506A CN 106648442 A CN106648442 A CN 106648442A
- Authority
- CN
- China
- Prior art keywords
- data
- internal storage
- data block
- threshold
- storage data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种元数据节点的内存镜像方法、装置,其中,所述方法包括在检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块,每个数据块的大小不超过所述第一阈值;对每个数据块进行压缩,并将压缩后的数据块写入磁盘。可以解决现有的dump内存镜像时磁盘空间压力较大问题。
Description
技术领域
本申请涉及分布式存储***,具体地说,涉及一种元数据节点的内存镜像方法、装置。
背景技术
在大规模分布式存储***中,为了实现集中权限认证、配额控制,大部分采用了集中式元数据管理的方法,即将整个存储***中所有数据的元数据集中存放在若干个元数据节点(NameNode)进行存储。这样的架构中,元数据节点的可用性直接关系到整个存储***的可用性。当元数据节点出现升级或者是进程重启时,快速恢复元数据节点的内存数据成为主要的需求点,因此,在存储***中会采用定期将元数据节点中的内存数据写到磁盘中(即dump内存镜像),并记录数据操作日志来做到尽快恢复元数据节点中的内存数据,也就是说将磁盘中的保存的内存镜像读出来重新加载到内存中,其中,数据操作日志是对真正存储的数据的修改(如增加或删除等)记录。例如在Hadoop分布式文件***中,元数据节点每次收到数据节点(真正存储数据的节点)写数据操作成功之前,修改元数据节点的数据操作日志并且同步到数据节点的文件***。
发明人在实现本发明的过程中发现:随着元数据的指数级增长,现有的dump内存镜像时,磁盘成为内存镜像的瓶颈,大量的元数据节点在dump内存镜像时需要占用的磁盘空间大,给磁盘造成较大的空间压力问题。
发明内容
有鉴于此,本申请提供一种元数据节点的内存镜像方法、装置,可以解决现有的dump内存镜像时磁盘空间压力较大问题。
为了解决上述技术问题,本申请第一方面提供一种元数据节点的内存镜像方法,包括:
在检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块,每个数据块的大小不超过所述第一阈值;
对每个数据块进行压缩,并将压缩后的数据块写入磁盘。
可选地,所述的方法还包括:
在检测到内存数据的大小等于预设的第一阈值时,对所述内存数据进行压缩,并将压缩后的内存数据写入磁盘。
可选地,所述的方法还包括:
在检测到内存数据的大小小于预设的第二阈值时,将小于所述第二阈值的内存数据写入磁盘。
可选地,在检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块之后,若存在小于所述第二阈值的数据块时,则所述方法还包括:
将小于所述第二阈值的数据块写入磁盘。
可选地,将小于所述第二阈值的内存数据或数据块写入磁盘,包括:
将小于所述第二阈值的内存数据或数据块连续写入磁盘,且记录每个小于所述第二阈值的内存数据或数据块的起始位置和数据长度,即小于所述第二阈值的内存数据或数据块之间不存在大于等于所述第二阈值的数据块或内存数据。
可选地,对每个数据块或内存数据进行压缩,包括:
采用多个线程对每个需要压缩的数据块或内存数据进行压缩。
可选地,采用多个线程对每个需要压缩的数据块或内存数据进行压缩,包括:
在对每个需要压缩的数据块或内存数据进行压缩,生成每个需要压缩的数据块或内存数据对应的校验值。
本发明还提供一种元数据节点的内存镜像装置,包括:
数据拆分模块,用于在检测模块检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块,每个数据块的大小不超过所述第一阈值;
压缩模块,用于对所述数据拆分模块拆分后的每个数据块进行压缩,并将压缩后的数据块通过写入模块写入磁盘。
可选地,所述压缩模块,还用于在所述检测模块检测到内存数据的大小等于预设的第一阈值时,对所述内存数据进行压缩,并将压缩后的内存数据通过所述写入模块写入磁盘。
可选地,所述写入模块,还用于所述检测模块在检测到内存数据的大小小于预设的第二阈值时,将小于所述第二阈值的内存数据写入磁盘。
可选地,所述写入模块,还用于在所述检测模块检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块之后,若存在小于所述第二阈值的数据块时,将小于所述第二阈值的数据块写入磁盘。
可选地,所述写入模块,具体用于将小于所述第二阈值的内存数据或数据块连续写入磁盘,且记录每个小于所述第二阈值的内存数据或数据块的起始位置和数据长度,即小于所述第二阈值的内存数据或数据块之间不存在大于等于所述第二阈值的数据块或内存数据。
可选地,所述压缩模块,具体用于采用多个线程对每个需要压缩的数据块或内存数据进行压缩。
可选地,所述压缩模块,具体用于在对每个需要压缩的数据块或内存数据进行压缩,生成每个需要压缩的数据块或内存数据对应的校验值。
本发明还提供一种元数据节点,包括:上述的内存镜像装置。
本发明实施例通过在dump内存镜像时,当内存数据较大时,对内存数据进行拆分为数据块,且对每个拆分后的数据块进行多线程的压缩,不仅可以加快dump内存镜像速度,而且可以提高磁盘的空间利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一种分布式存储***的构架图;
图2为本发明实施例提供的一种元数据节点的内存镜像方法的流程图;
图3为本发明实施例提供的一种元数据节点的内存镜像方法的流程图;
图4为本发明实施例提供的一种元数据节点的内存镜像方法的流程图;
图5为本发明实施例提供的一种元数据节点的内存镜像装置的结构图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者***中还存在另外的相同要素。
图1为一种分布式存储***的构架图,如图1所示,其中,datanodes是真正存储数据的数据节点,本发明所述的数据节点不限于图1所示,可以有多个;namenodes是存储数据的元数据的节点(简称元数据节点),本发明的元数据节点不限于图1所示,可以包括多个。
基于图1所示的***架构图,例如,当终端想在数据节点中写数据时,数据节点首先向元数据节点发起写请求(如图1中的DFSclient,一种请求消息),元数据节点接收到写请求之后,元数据节点的内存中保存有该写请求中包括的待写入数据的大小、存储位置、名称或标识等元数据信息,记录本次写数据的日志,之后向数据节点返回写请求的响应消息并携带本次写数据的日志,以使数据节点根据元数据节点返回的响应消息将待写入数据真正保存到数据节点中。
又例如,终端向从数据节点中读数据时,数据节点首先向元数据节点发起读请求,元数据节点的内存接收到读请求之后,获取读请求中携带的待读取数据的名称或标识等信息,元数据节点查询元数据信息库,获取到与待读取数据的名称或标识匹配的元数据信息,将获取的元数据信息返回给数据节点,数据节点根据元数据节点返回的元数据信息,其中,元数据信息中有待读取数据的存储位置等信息,数据节点根据元数据信息可以将待读取数据读出展示给终端用户。
因此,当数据节点每操作一次数据时,元数据节点都保存了该次操作数据的元数据信息以及操作日志,这样元数据节点中保存有大量的元数据信息。元数据节点的可用性直接关系到整个存储***的可用性。当元数据节点出现升级或者是进程重启时,快速恢复元数据节点的内存数据成为主要的需求点。
发明人在实现本发明的过程中发现:现有技术中,在dump内存镜像时,是直接将内存的数据拷贝到磁盘中,随着元数据的指数级增长,磁盘成为内存镜像的瓶颈,大量的元数据节点在dump内存镜像时需要占用的磁盘空间大,给磁盘造成较大的空间压力问题。
本发明实施例采用的方案是:在dump内存镜像时,根据内存数据的大小采取不同的压缩策略的方法,当内存数据小于一定阈值时,不对内存数据压缩,当内存数据大于一定阈值时,对内存数据进行压缩。
本发明人在实现本发明的过程中发现:
对于小于4k的数据,如果每次都组成一个512k的缓存(buffer)进行压缩,并不能很多的减少数据大小,反而浪费了处理器的处理资源,增加了内存拷贝的时间,造成dump内存镜像的速度降低。因此,对于小于4k的数据,采用将这部分小于4k的数据放置到一个非压缩的buffer中,而这个buffer中存放的小于4k的数据一定是连续的,就是说相邻的小于4k的数据块间不能出现大于等于4k的数据。
例如,一个buffer是512k,那么buffer中的数据放置的过程可能是1k,2k,3k,不可能是1k,5k,2k,因为出现5k时,会换一个buffer来写,这个buffer就将1k的数据写下去。
进一步地,Buffer中会记录这段小于4k的数据的起始位置以及长度,通常,每一个buffer还有一个附属记录的变量,来记录这个数据的起始位置。
对于大于等于4k的数据:首先会将大于等于4k的数据拆包,一个数据最大为512k,在将拆包后的数据进行压缩时,会自动识别数据的大小,将小于4k数据的buffer解锁掉,即直接进行写磁盘,然后将这部分小于4k的数据存放到buffer中。对于大于等于4k的数据采用多个线程进行压缩,每个线程会不断的从需要压缩的队列中取出需要压缩的大于等于4k的数据,然后对大于等于4k的数据进行压缩。之后,将压缩后的数据放到需要写的队列中,写线程会不断的从写队列中取出需要写的压缩后的数据,写到写数据的buffer中。
需要注意的是,在写数据到磁盘时,为减少磁盘的输入和输出操作,写数据时,每2M数据写一次磁盘,这样就不会浪费磁盘的输入和输出资源,也减少了对磁盘的操作压力。
因此,本发明的技术方案中对内存数据进行压缩后再写磁盘,可以缓解dump内存镜像时的磁盘空间压力,提高磁盘空间利用率;而且对内存数据采用多线程进行压缩,提高dump内存镜像的速度和效率。
图2为本发明实施例提供的一种元数据节点的内存镜像方法的流程图,如图2所示,包括:
201、检测内存数据大小;
具体应用场景是,元数据节点每隔一定时间去检查内存数据(如fsimage文件,该文件其实是元数据信息的文件),在每个检查时间点(checkpoint)写下内存数据(如fsimage文件)。根据本发明的技术方案,在每个检查时间点(checkpoint)写下内存数据(如fsimage文件)之前,需要检测内存数据大小,且根据内存数据(如fsimage文件)的大小进行不同的压缩策略。
202、在检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块;
其中,每个数据块的大小不超过所述第一阈值,本发明实施例中,第一阈值例如可以设置为512k;
例如,当检测到fsimage文件的大小大于512k时,将fsimage文件拆分为多个子文件,每个子文件的大小不超过512k。
需要说明的是,为了能够识别子文件,每个拆分后的子文件携带有拆分前的母文件的标识。
203、对每个数据块进行压缩,并将压缩后的数据块写入磁盘。
具体地,为了减少写磁盘的空间压力,本发明实施例对每个数据块进行压缩,并将压缩后的数据块写入磁盘;
进一步地,为了提高写磁盘的速度,节省写磁盘的时间,本发明实施例可以采用多个线程对每个需要压缩的数据块或内存数据进行压缩;
进一步地,在对每个需要压缩的数据块进行压缩,生成每个需要压缩的数据块对应的校验值,这里的校验值可以根据每个需要压缩的数据块内容生成的一串字符,用这个来校验值对每个数据块内容做校验,从而可以保证数据正确性,防止错误数据的发生。
在发明另一个可选的实施方式中,在检测到内存数据的大小等于预设的第一阈值时(例如,当检测到fsimage文件的大小刚好等于512k时),对该内存数据采用多线程进行压缩,并且生成该内存数据的校验值,并将压缩后的内存数据写入磁盘。
本发明实施例通过在dump内存镜像时,当内存数据较大时,对内存数据进行拆分为数据块,且对每个拆分后的数据块进行多线程的压缩,不仅可以加快dump内存镜像速度,而且可以提高磁盘的空间利用率。
图3为本发明实施例提供的一种元数据节点的内存镜像方法的流程图,如图3所示,包括:
301、检测内存数据大小;
参考图2所示实施例的步骤201;
302、在检测到内存数据的大小小于预设的第二阈值时,将小于所述第二阈值的内存数据写入磁盘;
其中,发明人在实现本发明的过程中发现:对于小于4k的数据,如果每次都组成一个512k的缓存进行压缩,并不能减少很多的内存数据的大小,反而浪费了因为压缩需要消耗的处理资源,增加了内存拷贝的时间,造成写checkpoint会比较慢,即导致dump内存镜像速度的降低,因此,本发明实施例中,将4k设置为第二阈值,小于4k的内存数据不进行压缩。
进一步地,在如图2所示实施例的步骤202中,当将内存数据拆分为一个以上的数据块,其中存在小于第二阈值的数据块时,将小于第二阈值的数据块写入磁盘。
进一步地,本发明实施例中,将小于第二阈值的内存数据或数据块连续写入磁盘,且记录每个小于所述第二阈值的内存数据或数据块的起始位置和数据长度,即小于所述第二阈值的内存数据或数据块之间不存在大于等于所述第二阈值的数据块或内存数据。具体实现时,例如,会将小于4k的数据放置到一个非压缩的缓存(buffer)中,而这个非压缩的buffer中存放的数据一定是连续的,就是说相邻的小于4k的数据块间不能出现大于等于4k的数据块,这个非压缩的Buffer中会记录这段小于4k的数据块的起始位置以及长度。
本发明实施例通过在dump内存镜像时,当内存数据或数据块较小,即小于4k时,对小于4k的数据块不进行压缩,而是采用将小于4k的数据块连续存放非压缩的缓存中,不会消耗额外的处理资源,保证dump内存镜像速度,可以实现dump内存镜像速度和处理资源的平衡。
下面通过具体应用对本发明实施例所述的方法进行说明:
图4为本发明实施例提供的一种元数据节点的内存镜像方法的流程图,如图4所示,包括:
401、检测内存数据大小;
在内存数据的大小大于512k时执行步骤402,在内存数据小于4k时执行步骤405。
402、将内存数据拆分为多个数据块;
假设内存数据大小为10M(即10000k),每个数据块的大小最大不超过512k,这样,可以拆分为19个512k大小的数据块,1个272k大小的数据块;
假设内存数据大小为1025k,按照每个数据块的大小最大不超过512k,这样,可以拆分为2个512k大小的数据块,1个1k的数据块;
当数据块的大小超过4k时,执行步骤403,当数据块的大小小于等于4k时,执行步骤404;
403、对于大于4k的数据块采用多线程进行压缩;
例如,本发明实施例中设置一个512k的压缩缓存(buffer),即给压缩缓存打上需要压缩的标签,对于超过4k的数据块,将这些数据放入这个512k的压缩缓存,然后放入到压缩队列中等待压缩;为了加快压缩速度,采用多线程进行压缩。
进一步地,在压缩每个数据块时,可以根据每个数据块内容产生该压缩数据块的校验值,用于保证该压缩数据块的正确性。
404、对压缩后的数据块写入磁盘;
将每个压缩后的数据块放入到写磁盘队列中,在写磁盘时,为减少磁盘的输入和输出操作,每2M数据写一次磁盘,也就是说,当压缩后的数据块到2M时才进行一次写磁盘,这样就不会浪费磁盘的输入和输出资源,也减少了对磁盘的操作压力。
405、对小于4k的数据块不压缩写入磁盘。
例如,对小于4k的数据块,将这些小于4k的数据块放入512k的非压缩缓存中,对于非压缩缓存需要解锁压缩标签,即不放入压缩队列中,而是直接放入写磁盘队列中;
需要说明的是,在将小于4k的数据块放入非压缩的buffer中时,存放的小于4k的数据块在非压缩的buffer中一定是连续的,就是说相邻的小于4k的数据块间不能出现大于等于4k的数据块,这个非压缩的Buffer中会记录每一段小于4k的数据块的起始位置以及长度。
在写磁盘时,为减少磁盘的输入和输出操作,每2M数据写一次磁盘,也就是说,当小于4k的数据块放入非压缩的buffer中达到2M时才进行一次写磁盘,这样就不会浪费磁盘的输入和输出资源,也减少了对磁盘的操作压力。
如果没有数据可以压缩,那么线程会处于等待(condition wait)的状态,当有新的数据需要压缩时写线程会发信号给(signal)压缩线程。
本发明的技术方案中对内存数据进行压缩后再写磁盘,可以缓解dump内存镜像时的磁盘空间压力,提高磁盘空间利用率;而且对内存数据采用多线程进行压缩,提高dump内存镜像的速度和效率。
图5为本发明实施例提供的一种元数据节点的内存镜像装置的结构图,如图5所示,包括:
检测模块51,用于检测到内存数据的大小
数据拆分模块52,用于在检测模块检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块,每个数据块的大小不超过所述第一阈值;
压缩模块53,用于对所述数据拆分模块拆分后的每个数据块进行压缩,并将压缩后的数据块通过写入模块54写入磁盘。
可选地,所述压缩模块53,还用于在所述检测模块51检测到内存数据的大小等于预设的第一阈值时,对所述内存数据进行压缩,并将压缩后的内存数据通过所述写入模块54写入磁盘。
可选地,所述写入模块54,还用于所述检测模块51在检测到内存数据的大小小于预设的第二阈值时,将小于所述第二阈值的内存数据写入磁盘。
可选地,所述写入模块54,还用于在所述检测模块51检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块之后,若存在小于所述第二阈值的数据块时,将小于所述第二阈值的数据块写入磁盘。
可选地,所述写入模块54,具体用于将小于所述第二阈值的内存数据或数据块连续写入磁盘,且记录每个小于所述第二阈值的内存数据或数据块的起始位置和数据长度,即小于所述第二阈值的内存数据或数据块之间不存在大于等于所述第二阈值的数据块或内存数据。
可选地,所述压缩模块53,具体用于采用多个线程对每个需要压缩的数据块或内存数据进行压缩。
可选地,所述压缩模块53,具体用于在对每个需要压缩的数据块或内存数据进行压缩,生成每个需要压缩的数据块或内存数据对应的校验值。
图5所示装置可以执行上述图2-图3任一实施例所述的方法,其实现原理和技术效果不再赘述。
本发明实施例还提供一种元数据节点,包括图3所示实施例所述的内存镜像装置。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (15)
1.一种元数据节点的内存镜像方法,其特征在于,包括:
在检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块,每个数据块的大小不超过所述第一阈值;
对每个数据块进行压缩,并将压缩后的数据块写入磁盘。
2.根据权利要求1所述的方法,其特征在于,还包括:
在检测到内存数据的大小等于预设的第一阈值时,对所述内存数据进行压缩,并将压缩后的内存数据写入磁盘。
3.根据权利要求1所述的方法,其特征在于,还包括:
在检测到内存数据的大小小于预设的第二阈值时,将小于所述第二阈值的内存数据写入磁盘。
4.根据权利要求1所述的方法,其特征在于,在检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块之后,若存在小于所述第二阈值的数据块时,则所述方法还包括:
将小于所述第二阈值的数据块写入磁盘。
5.根据权利要求3或4所述的方法,其特征在于,将小于所述第二阈值的内存数据或数据块写入磁盘,包括:
将小于所述第二阈值的内存数据或数据块连续写入磁盘,且记录每个小于所述第二阈值的内存数据或数据块的起始位置和数据长度,即小于所述第二阈值的内存数据或数据块之间不存在大于等于所述第二阈值的数据块或内存数据。
6.根据权利要求1或2所述的方法,其特征在于,对每个数据块或内存数据进行压缩,包括:
采用多个线程对每个需要压缩的数据块或内存数据进行压缩。
7.根据权利要求6所述的方法,其特征在于,采用多个线程对每个需要压缩的数据块或内存数据进行压缩,包括:
在对每个需要压缩的数据块或内存数据进行压缩,生成每个需要压缩的数据块或内存数据对应的校验值。
8.一种元数据节点的内存镜像装置,其特征在于,包括:
数据拆分模块,用于在检测模块检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块,每个数据块的大小不超过所述第一阈值;
压缩模块,用于对所述数据拆分模块拆分后的每个数据块进行压缩,并将压缩后的数据块通过写入模块写入磁盘。
9.根据权利要求8所述的装置,其特征在于:
所述压缩模块,还用于在所述检测模块检测到内存数据的大小等于预设的第一阈值时,对所述内存数据进行压缩,并将压缩后的内存数据通过所述写入模块写入磁盘。
10.根据权利要求8所述的装置,其特征在于,还包括:
所述写入模块,还用于所述检测模块在检测到内存数据的大小小于预设的第二阈值时,将小于所述第二阈值的内存数据写入磁盘。
11.根据权利要求8所述的装置,其特征在于:
所述写入模块,还用于在所述检测模块检测到内存数据的大小大于预设的第一阈值时,将所述内存数据拆分为一个以上的数据块之后,若存在小于所述第二阈值的数据块时,将小于所述第二阈值的数据块写入磁盘。
12.根据权利要求10或11所述的装置,其特征在于:
所述写入模块,具体用于将小于所述第二阈值的内存数据或数据块连续写入磁盘,且记录每个小于所述第二阈值的内存数据或数据块的起始位置和数据长度,即小于所述第二阈值的内存数据或数据块之间不存在大于等于所述第二阈值的数据块或内存数据。
13.根据权利要求8或10所述的装置,其特征在于:
所述压缩模块,具体用于采用多个线程对每个需要压缩的数据块或内存数据进行压缩。
14.根据权利要求13所述的装置,其特征在于:
所述压缩模块,具体用于在对每个需要压缩的数据块或内存数据进行压缩,生成每个需要压缩的数据块或内存数据对应的校验值。
15.一种元数据节点,其特征在于,包括:
如权利要求8-14中任一项所述的内存镜像装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510718506.0A CN106648442A (zh) | 2015-10-29 | 2015-10-29 | 一种元数据节点的内存镜像方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510718506.0A CN106648442A (zh) | 2015-10-29 | 2015-10-29 | 一种元数据节点的内存镜像方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106648442A true CN106648442A (zh) | 2017-05-10 |
Family
ID=58829810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510718506.0A Pending CN106648442A (zh) | 2015-10-29 | 2015-10-29 | 一种元数据节点的内存镜像方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648442A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436738A (zh) * | 2017-08-17 | 2017-12-05 | 北京理工大学 | 一种数据存储方法及*** |
CN107450856A (zh) * | 2017-08-10 | 2017-12-08 | 北京元心科技有限公司 | 存储数据的写入方法、读取方法以及相应的装置、终端 |
CN108170455A (zh) * | 2018-03-12 | 2018-06-15 | 晶晨半导体(上海)股份有限公司 | 升级包的打包方法以及升级方法 |
CN108345434A (zh) * | 2018-03-12 | 2018-07-31 | 广州酷狗计算机科技有限公司 | 数据写入方法、装置、计算机设备及可读存储介质 |
CN109240993A (zh) * | 2018-07-24 | 2019-01-18 | 郑州云海信息技术有限公司 | 元数据管理方法以及存储服务器 |
CN109413497A (zh) * | 2018-09-12 | 2019-03-01 | 青岛海信电器股份有限公司 | 一种智能电视机及其***启动方法 |
CN109491611A (zh) * | 2018-11-07 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种元数据落盘方法、装置及设备 |
CN109582244A (zh) * | 2018-12-05 | 2019-04-05 | 广东浪潮大数据研究有限公司 | 一种元数据落盘方法、装置、终端及计算机可读存储介质 |
CN114063888A (zh) * | 2020-07-31 | 2022-02-18 | 中移(苏州)软件技术有限公司 | 数据存储***、数据处理方法、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102203718A (zh) * | 2011-05-26 | 2011-09-28 | 华为技术有限公司 | 内存转储处理方法和装置及内存转储*** |
CN103747060A (zh) * | 2013-12-26 | 2014-04-23 | 惠州华阳通用电子有限公司 | 一种基于流媒体服务集群的分布式监控***及方法 |
CN104123300A (zh) * | 2013-04-26 | 2014-10-29 | 上海云人信息科技有限公司 | 数据分布式存储***及方法 |
CN104571955A (zh) * | 2014-12-27 | 2015-04-29 | 华为技术有限公司 | 提高存储容量的方法和装置 |
-
2015
- 2015-10-29 CN CN201510718506.0A patent/CN106648442A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102203718A (zh) * | 2011-05-26 | 2011-09-28 | 华为技术有限公司 | 内存转储处理方法和装置及内存转储*** |
CN104123300A (zh) * | 2013-04-26 | 2014-10-29 | 上海云人信息科技有限公司 | 数据分布式存储***及方法 |
CN103747060A (zh) * | 2013-12-26 | 2014-04-23 | 惠州华阳通用电子有限公司 | 一种基于流媒体服务集群的分布式监控***及方法 |
CN104571955A (zh) * | 2014-12-27 | 2015-04-29 | 华为技术有限公司 | 提高存储容量的方法和装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450856A (zh) * | 2017-08-10 | 2017-12-08 | 北京元心科技有限公司 | 存储数据的写入方法、读取方法以及相应的装置、终端 |
CN107436738B (zh) * | 2017-08-17 | 2019-10-25 | 北京理工大学 | 一种数据存储方法及*** |
CN107436738A (zh) * | 2017-08-17 | 2017-12-05 | 北京理工大学 | 一种数据存储方法及*** |
CN108345434B (zh) * | 2018-03-12 | 2021-03-30 | 广州酷狗计算机科技有限公司 | 数据写入方法、装置、计算机设备及可读存储介质 |
CN108345434A (zh) * | 2018-03-12 | 2018-07-31 | 广州酷狗计算机科技有限公司 | 数据写入方法、装置、计算机设备及可读存储介质 |
CN108170455A (zh) * | 2018-03-12 | 2018-06-15 | 晶晨半导体(上海)股份有限公司 | 升级包的打包方法以及升级方法 |
CN108170455B (zh) * | 2018-03-12 | 2021-04-27 | 晶晨半导体(上海)股份有限公司 | 升级包的打包方法以及升级方法 |
CN109240993A (zh) * | 2018-07-24 | 2019-01-18 | 郑州云海信息技术有限公司 | 元数据管理方法以及存储服务器 |
CN109413497A (zh) * | 2018-09-12 | 2019-03-01 | 青岛海信电器股份有限公司 | 一种智能电视机及其***启动方法 |
CN109413497B (zh) * | 2018-09-12 | 2021-04-13 | 海信视像科技股份有限公司 | 一种智能电视机及其***启动方法 |
CN109491611A (zh) * | 2018-11-07 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种元数据落盘方法、装置及设备 |
CN109491611B (zh) * | 2018-11-07 | 2021-11-09 | 郑州云海信息技术有限公司 | 一种元数据落盘方法、装置及设备 |
CN109582244A (zh) * | 2018-12-05 | 2019-04-05 | 广东浪潮大数据研究有限公司 | 一种元数据落盘方法、装置、终端及计算机可读存储介质 |
CN114063888A (zh) * | 2020-07-31 | 2022-02-18 | 中移(苏州)软件技术有限公司 | 数据存储***、数据处理方法、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648442A (zh) | 一种元数据节点的内存镜像方法、装置 | |
US20180260114A1 (en) | Predictive models of file access patterns by application and file type | |
CN107045531A (zh) | 一种优化hdfs小文件存取的***及方法 | |
CN106201771B (zh) | 数据存储***和数据读写方法 | |
US8214376B1 (en) | Techniques for global single instance segment-based indexing for backup data | |
CN103595797B (zh) | 一种分布式存储***中的缓存方法 | |
CN109960686A (zh) | 数据库的日志处理方法和装置 | |
CN106980665B (zh) | 数据字典实现方法、装置及数据字典管理*** | |
CN106909651A (zh) | 一种基于hdfs小文件写入和读取的方法 | |
CN104657366B (zh) | 海量日志写入数据库的方法、装置和日志容灾*** | |
KR20160003682A (ko) | 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법 | |
CN109726175A (zh) | 一种基于HBase的海量文件离线分区管理方法 | |
CN112347076B (zh) | 分布式数据库的数据存储方法、装置和计算机设备 | |
KR970059960A (ko) | 데이터 전송 제어 방법 | |
TW200725298A (en) | System and method for storage management | |
CN109005226A (zh) | 服务器中传感器数据的获取方法、获取***和相关装置 | |
US20130198117A1 (en) | Systems and methods for semantic data integration | |
CN104156381A (zh) | Hadoop分布式文件***的副本存取方法、装置和Hadoop分布式文件*** | |
CN104965835B (zh) | 一种分布式文件***的文件读写方法及装置 | |
CN109767274B (zh) | 一种对海量***数据进行关联存储的方法及*** | |
CN110727406A (zh) | 一种数据存储调度方法及装置 | |
CN107506466B (zh) | 一种小文件存储方法及*** | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN112597348A (zh) | 一种大数据存储优化的方法及装置 | |
CN106708911A (zh) | 一种云环境下数据文件同步的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170510 |
|
RJ01 | Rejection of invention patent application after publication |