连续存储数据的修改方法、装置和系统制造方法及图纸

技术编号:24853215 阅读:22 留言:0更新日期:2020-07-10 19:07
本发明专利技术提供一种连续存储数据的修改方法、装置和系统。该方法包括:根据获取到的修改请求,获取修改数据在第一数据块中对应的源数据的索引信息;根据第一数据块中对应的源数据的索引信息,分配第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;第一数据块还第一源数据区;第一源数据区连续存储至少两条源数据;至少两条源数据包括所述修改数据对应的源数据;第一修改写入区用于存储第一源数据区中源数据对应的修改数据;在第一存储空间中写入修改数据,并更新第一数据块中修改数据对应的源数据的索引信息。该方法在保证数据连续提取性能的前提下,满足随机修改需求,并且在修改的过程中仍可以提取源数据,不中断业务。

【技术实现步骤摘要】
连续存储数据的修改方法、装置和系统
本专利技术涉及数据存储
,尤其涉及一种连续存储数据的修改方法、装置和系统。
技术介绍
在存储应用领域,存在小文件密集存储的需求,这些小文件都是一些几KB的文件,例如JSON文件、XML文件、TXT文件等,这些文件数据存在一些固有属性,可以使用一个类型值来表示,例如使用数字1表示交通车辆数据,数字2表示交通人脸数据等。同时,存在对同一类的小文件批量提取的需求。对于这些小文件存储若使用传统的随机存储方式,单条数据提取时,无性能差异;但如果是按某类型值数据进行批量提取时,随机存储的小文件需要每一个文件分别提取,产生大量小IO提取,性能极差。因此可以将同一类型的小文件连续存储在同一数据块中,需要批量提取某一类小文件时,只需要检索到所有的数据块信息,而后对每一个数据块进行读取即可。由于小文件均为连续存储,单次可以合并读取成千上万个小文件,合并小IO为大IO,达到提高数据提取效率的目的。但是,对于上述连续存储数据的方案,修改成为了一个难题。一种实现方式为:如果在原始数据块所对应的位置直接进行修改,若单条数据大小发生变化,则每次修改时需要将该数据块中的所有数据读出,修改其中一条数据后再写入块,该种方式性能极低,并且修改过程中会导致业务中断。另一种思路是将修改数据写入新的数据块中,更新索引中记录的位置为新的数据块位置,但这样就不满足数据连续存储的需求,极大程度降低了数据提取性能。
技术实现思路
本专利技术提供一种连续存储数据的修改方法、装置和系统,在保证数据连续提取性能的前提下,以实现随机修改。第一方面,本专利技术提供一种连续存储数据的修改方法,包括:根据获取到的修改请求,获取修改数据在第一数据块中对应的源数据的索引信息;根据所述第一数据块中对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块包括所述第一修改写入区和第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。第二方面,本专利技术实施例提供一种连续存储数据的修改装置,包括:获取模块,用于根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息;分配模块,用于根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块还包括第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;处理模块,用于在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。第三方面,本专利技术实施例提供一种集群系统,包括:第一集群节点,第二集群节点;其中,所述第一集群节点用于接收修改请求,并将所述修改请求发送给所述第二集群节点;所述修改请求包括:所述第二集群节点的标识,以及修改数据;所述第二集群节点,配置为执行如第一方面中任一项所述的方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。第五方面,本专利技术实施例提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。本专利技术实施例提供的连续存储数据的修改写方法、装置和系统,根据获取到的修改请求,获取修改数据在第一数据块中对应的源数据的索引信息;根据所述第一数据块中对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块还包括第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。该方法在保证数据连续提取性能的前提下,满足随机修改需求,将修改数据写入该数据块中第一修改写入区,并且在修改的过程中仍可以提取源数据区的源数据,不中断业务。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1为本专利技术一实施例提供的系统架构图;图2是本专利技术提供的连续存储数据的修改方法一实施例的流程示意图;图3是本专利技术提供的一实施例的数据块结构示意图;图4是本专利技术提供的方法一实施例的第一数据块存储原理示意图图5是本专利技术提供的方法一实施例的主备块存储原理示意图;图6是本专利技术提供的方法一实施例的整理前后的数据存储示意图;图7是本专利技术提供的方法一实施例的数据块整理流程示意图;图8是本专利技术提供的连续存储数据的修改装置实施例的结构示意图;图9是本专利技术提供的电子设备实施例的结构示意图;图10是本专利技术提供的集群系统实施例的结构示意图。通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。本专利技术的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。首先对本专利技术所涉及的名词和应用场景进行介绍:1、连续存储数据,可以认为是在物理存储区域中连续存放的数据,也可以认为是在逻辑存储区域中连续存放的数据,“连续”表示多条不同的数据存储时,上一条数据的末地址,和下一条数据的首地址紧密相连,中间不存在任何其他存储空间。连续存储数据意味着读取数据时可以合并多次小输入/输出IO操作为单次较大IO操作,且多次小IO操作时间复杂度远高于单次大IO操作的时间复杂度。2、修改,对于同一个索引键值KEY对应的数据,首次上传成功(即存储成功)后本文档来自技高网...

【技术保护点】
1.一种连续存储数据的修改方法,其特征在于,包括:/n根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息;/n根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块还包括第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;/n在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。/n

【技术特征摘要】
1.一种连续存储数据的修改方法,其特征在于,包括:
根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息;
根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块还包括第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;
在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。


2.根据权利要求1所述的方法,其特征在于,所述根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息,包括:
根据所述修改请求中包括的所述修改数据的索引键值KEY,获取所述第一数据块中修改数据对应的源数据的索引信息;所述KEY包括:所述修改数据的文件名;所述索引信息包括以下至少一项:所述修改数据对应的源数据所在的存储设备的标识、所述第一数据块的标识ID、所述修改数据对应的源数据在所述第一源数据区的偏移信息以及所述修改数据对应的源数据的数据长度信息。


3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间,包括:
根据所述第一数据块中修改数据对应的源数据的索引信息,确定所述修改数据对应的所述第一数据块;
从所述第一数据块的第一修改写入区中分配所述第一存储空间。


4.根据权利要求3所述的方法,其特征在于,所述从所述第一数据块的第一修改写入区中分配所述第一存储空间,包括:
确定所述修改数据对应的源数据是否已进行修改;
若所述修改数据对应的源数据已进行修改,则将所述第一修改写入区中所述源数据对应的存储空间作为所述第一存储空间;
若所述修改数据对应的源数据未进行修改,则从所述第一修改写入区中未写入数据的存储空间中分配所述第一存储空间。


5.根据权利要求4所述的方法,其特征在于,所述确定所述修改数据对应的源数据是否已进行修改,包括:
确定已修改的KEY记录中是否存在所述修改数据的KEY;
若存在,则确定所述修改数据对应的源数据已进行修改;
若不存在,则确定所述修改数据对应的源数据未进行修改;
相应的,所述在所述第一存储空间中写入所述修改数据之后,还包括:
若所述修改数据被写入成功,则将所述修改数据的KEY记录到所述已修改写的KEY记录中。


6.根据权利要求2所述的方法,其特征在于,所述更新所述第一数据块中修改数据对应的源数据的索引信息,包括:
将所述第一数据块中修改数据对应源数据的索引信息中的偏移信息更新为所述修改数据在所述第一修改写入区的偏移信息,并将所述第一数据块中修改数据对应源数据的索引信息中的数据长度信息更新为所述修改数据的数据长度信息。


7.根据权利要求1-6任一项所述的方法,其特征在于,
所述第一源数据区的存储空间的大小与所述第一修改写入区的存储空间的大小按照预设比例分配。


8.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
获取所述修改数据在第二数据块中对应的源数据的索引信息;
根据所述第二数据块中对应的源数据的索引信息,分配所述第二数据块的第二修改写入区中用于存储所述修改数据的第二存储空间;所述第二数据块还包括第二源数据区;所述第二源数据区存储所述修改数据在第二数据...

【专利技术属性】
技术研发人员:胡君怡李照辉李丹旺
申请(专利权)人:杭州海康威视系统技术有限公司
类型:发明
国别省市:浙江;33

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

1