一种数据写入方法、装置及设备制造方法及图纸

技术编号:26790015 阅读:20 留言:0更新日期:2020-12-22 17:04
本申请提供一种数据写入方法、装置及设备,该方法包括:获取待写入数据,将待写入数据划分为至少一个单元数据,确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;针对每个单元数据,根据单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到缓存块组,根据所述单元数据的偏移位置将单元数据写入到缓存块组绑定的内存块;在缓存块组中的单元数据满足迁移条件时,将缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在数据区块中的存储位置的映射关系。通过本申请的技术方案,可以提高数据写入速度,提高数据写入性能。

【技术实现步骤摘要】
一种数据写入方法、装置及设备
本申请涉及存储
,尤其是涉及一种数据写入方法、装置及设备。
技术介绍
云存储是一种在线存储模式,能够将数据存储在由数据中心运营商提供的多台虚拟存储服务器,而非将数据存储在专属存储服务器。用户通过向数据中心运营商购买或租赁存储空间的方式,来满足数据存储需求。数据中心运营商根据用户需求,在后端准备虚拟化的存储资源,并将这些存储资源以存储资源池(storagepool)的方式提供,用户可以自行使用此存储资源池来存储数据。云存储可以使用机械盘(即机械硬盘)作为存储介质,将存储介质称为云存储介质。在接收到单元数据后,将单元数据写入到云存储介质。显然,由于云存储介质是机械盘,而机械盘受到自身机械性限制,会导致数据写入速度较慢。例如,对象文件包括大量单元数据,这些单元数据需要通过多次写入过程才能写入到云存储介质,从而导致频繁的向云存储介质中写入单元数据,将这些单元数据写入到云存储介质时,数据写入性能较低,数据写入速度较慢。
技术实现思路
本申请提供一种数据写入方法,所述方法包括:获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。本申请提供一种数据写入装置,所述装置包括:获取模块,用于获取待写入数据,将待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;写入模块,用于针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。本申请提供一种存储设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现如下的步骤:获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。由以上技术方案可见,本申请实施例中,在接收到单元数据后,不是直接将单元数据写入到云存储介质,而是先将单元数据写入到固态缓存介质,如SSD(SolidStateDisk,固态硬盘)缓存介质,由于SSD缓存介质是固态硬盘,固态硬盘启动快,数据写入速度快,因此,可以提高数据写入速度。例如,对象文件包括大量单元数据,这些单元数据通过多次写入过程写入到SSD缓存介质,即使频繁向SSD缓存介质写入单元数据,数据写入性能也比较高,数据写入速度较快。在单元数据满足迁移条件时,可以将SSD缓存介质中的单元数据迁移到云存储介质,在数据的迁移过程中,并不影响继续向SSD缓存介质写入数据,即,向SSD缓存介质写入数据和将单元数据迁移到云存储介质可以并行执行,因此,不会影响数据写入速度。上述方式能够为用户提供对象文件的分布式缓存服务,屏蔽云存储介质的数据写入速度影响,将高并发读写产生的大量操作转化为多级缓存,再异步的将数据写入到云存储介质进行持久化存储。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。图1是本申请一种实施方式中的数据写入方法的流程图;图2是本申请一种实施方式中的数据写入过程的结构示意图;图3是本申请一种实施方式中的两层缓存介质的示意图;图4是本申请另一种实施方式中的数据写入方法的流程图;图5是本申请一种实施方式中的单元数据的划分示意图;图6是本申请一种实施方式中的单元数据迁移的示意图;图7是本申请一种实施方式中的数据读取方法的流程图;图8是本申请一种实施方式中的数据写入装置的结构图;图9是本申请一种实施方式中的存储设备的结构图。具体实施方式在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种数据写入方法,参见图1所示,为该数据写入方法的流程示意图,该方法可以应用于存储设备,该方法可以包括:步骤101,获取待写入数据,将待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置。示例性的,可以获取写请求,该写请求可以包括待写入数据,待写入数据所属对象文件的文件信息,待写入数据在该对象文件中的偏移位置。然后,根据待写入数据的偏移位置(即待写入数据在该对象文件中的偏移位置)将待写入数据划分为至少一个单元数据,并确定每个单元数据在该对象文件中的偏移位置。然后,根据单元数据的偏移位置确定该单元数据的编号,并根据待写入数据的文件信息和该单元数据的编号确定该单元数据的索引信息。示例性的,根据待写入数据的偏移位置将待写入数据划分为至少一个单元数据,可以包括但不限于:基于预先配置的偏移区间和待写入数据的偏移位置,本文档来自技高网...

【技术保护点】
1.一种数据写入方法,其特征在于,所述方法包括:/n获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;/n针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;/n在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。/n

【技术特征摘要】
1.一种数据写入方法,其特征在于,所述方法包括:
获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;
针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;
在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。


2.根据权利要求1所述的方法,其特征在于,
所述获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置,包括:
获取写请求,所述写请求包括待写入数据,所述待写入数据所属对象文件的文件信息,所述待写入数据在所述对象文件中的偏移位置;
根据所述待写入数据的偏移位置将所述待写入数据划分为至少一个单元数据,并确定每个单元数据在所述对象文件中的偏移位置;
根据单元数据的偏移位置确定该单元数据的编号;根据所述待写入数据的文件信息和该单元数据的编号确定该单元数据的索引信息。


3.根据权利要求2所述的方法,其特征在于,所述根据所述待写入数据的偏移位置将所述待写入数据划分为至少一个单元数据,包括:
基于预先配置的偏移区间和所述待写入数据的偏移位置,将所述待写入数据划分为至少一个单元数据;其中,同一单元数据的起始偏移位置和结束偏移位置位于同一偏移区间,不同单元数据的起始偏移位置位于不同偏移区间;偏移区间的长度为长度阈值,每个单元数据的长度均不大于该长度阈值。


4.根据权利要求1所述的方法,其特征在于,所述根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块,包括:
根据所述单元数据的偏移位置确定所述单元数据所属的数据块;
判断所述缓存块组绑定的内存块中是否已存在所述数据块;
如果否,则在所述缓存块组绑定的内存块中创建所述单元数据所属的数据块,并将所述单元数据写入到已创建的所述数据块中;
如果是,则将所述单元数据更新到已存在的所述数据块中。


5.根据权利要求1所述的方法,其特征在于,所述缓存块组包括当前正在写入单元数据的第一缓存块和当前未写入单元数据的第二缓存块;
所述采用追加写方式将所述单元数据写入到所述缓存块组,包括:
采用追加写方式将所述单元数据写入到所述第一缓存块;
所述缓存块组中的单元数据满足迁移条件,包括:若第一缓存块被占用的存储空间达到空间阈值,则确定所述缓存块组中的单元数据满足迁移条件;
所述将所述缓存块组绑定的内存块中的单元数据迁移到数据区块之后,所述方法还包括:删除所述第一缓存块中的单元数据;
从所述缓存块组绑定的内存块中删除与所述第一缓存块对应的单元数据。


6.根据权利要求1所述的方法,其特征在于,
所述将所述缓存块组绑定的内存块中的单元数据迁移到数据区块,包括:
根据所述单元数据的偏移位置确定所述单元数据所属的数据块;
判断所述数据区块中是否已存在所述数据块;
如果否,则从云存储介质中读取与所述数据块对应的已存储数据,对所述单元数据和所述已存储数据进行合并,得到合并后数据;在所述数据区块中创建所述数据块,将所述合并后数据写入到已创建的所述数据块中;
如果是,则从所述数据块中读取已存储数据,对所述单元数据和所述已存储数据进行合并,得到合并后数据;将所述合并后数据写入到所述数据块中。


7.根据权利要求6所述的方法,其特征在于,
所述对所述单元数据和所述已存储数据进行合并,得到合并后数据,包括:
从所述已存储数据中确定出与所述单元数据匹配的子数据,并通过所述单元数据替换所述已存储数据中的所述子数据,得到所述合并后数据;
其中,所述子数据的偏移位置与所述单元数据的偏移位置相同。

<...

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

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

1