【技术实现步骤摘要】
一种数据写入方法、装置及设备
本申请涉及存储
,尤其是涉及一种数据写入方法、装置及设备。
技术介绍
云存储是一种在线存储模式,能够将数据存储在由数据中心运营商提供的多台虚拟存储服务器,而非将数据存储在专属存储服务器。用户通过向数据中心运营商购买或租赁存储空间的方式,来满足数据存储需求。数据中心运营商根据用户需求,在后端准备虚拟化的存储资源,并将这些存储资源以存储资源池(storagepool)的方式提供,用户可以自行使用此存储资源池来存储数据。云存储可以使用机械盘(即机械硬盘)作为存储介质,将存储介质称为云存储介质。在接收到单元数据后,将单元数据写入到云存储介质。显然,由于云存储介质是机械盘,而机械盘受到自身机械性限制,会导致数据写入速度较慢。例如,对象文件包括大量单元数据,这些单元数据需要通过多次写入过程才能写入到云存储介质,从而导致频繁的向云存储介质中写入单元数据,将这些单元数据写入到云存储介质时,数据写入性能较低,数据写入速度较慢。
技术实现思路
本申请提供一种数据写入方法,所述方法包括:获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;在所述缓存块组中的单元数据满足迁移条件时,将所述缓存 ...
【技术保护点】
1.一种数据写入方法,其特征在于,所述方法包括:/n获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;/n针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;/n在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。/n
【技术特征摘要】
1.一种数据写入方法,其特征在于,所述方法包括:
获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置;
针对每个单元数据,根据所述单元数据的索引信息确定所述单元数据对应的缓存块组;采用追加写方式将所述单元数据写入到所述缓存块组,根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块;
在所述缓存块组中的单元数据满足迁移条件时,将所述缓存块组绑定的内存块中的单元数据迁移到数据区块;在数据库中记录已迁移到数据区块的单元数据的索引信息与该单元数据在所述数据区块中的存储位置的映射关系。
2.根据权利要求1所述的方法,其特征在于,
所述获取待写入数据,将所述待写入数据划分为至少一个单元数据,并确定每个单元数据的索引信息,及每个单元数据在对象文件中的偏移位置,包括:
获取写请求,所述写请求包括待写入数据,所述待写入数据所属对象文件的文件信息,所述待写入数据在所述对象文件中的偏移位置;
根据所述待写入数据的偏移位置将所述待写入数据划分为至少一个单元数据,并确定每个单元数据在所述对象文件中的偏移位置;
根据单元数据的偏移位置确定该单元数据的编号;根据所述待写入数据的文件信息和该单元数据的编号确定该单元数据的索引信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待写入数据的偏移位置将所述待写入数据划分为至少一个单元数据,包括:
基于预先配置的偏移区间和所述待写入数据的偏移位置,将所述待写入数据划分为至少一个单元数据;其中,同一单元数据的起始偏移位置和结束偏移位置位于同一偏移区间,不同单元数据的起始偏移位置位于不同偏移区间;偏移区间的长度为长度阈值,每个单元数据的长度均不大于该长度阈值。
4.根据权利要求1所述的方法,其特征在于,所述根据所述单元数据的偏移位置将所述单元数据写入到所述缓存块组绑定的内存块,包括:
根据所述单元数据的偏移位置确定所述单元数据所属的数据块;
判断所述缓存块组绑定的内存块中是否已存在所述数据块;
如果否,则在所述缓存块组绑定的内存块中创建所述单元数据所属的数据块,并将所述单元数据写入到已创建的所述数据块中;
如果是,则将所述单元数据更新到已存在的所述数据块中。
5.根据权利要求1所述的方法,其特征在于,所述缓存块组包括当前正在写入单元数据的第一缓存块和当前未写入单元数据的第二缓存块;
所述采用追加写方式将所述单元数据写入到所述缓存块组,包括:
采用追加写方式将所述单元数据写入到所述第一缓存块;
所述缓存块组中的单元数据满足迁移条件,包括:若第一缓存块被占用的存储空间达到空间阈值,则确定所述缓存块组中的单元数据满足迁移条件;
所述将所述缓存块组绑定的内存块中的单元数据迁移到数据区块之后,所述方法还包括:删除所述第一缓存块中的单元数据;
从所述缓存块组绑定的内存块中删除与所述第一缓存块对应的单元数据。
6.根据权利要求1所述的方法,其特征在于,
所述将所述缓存块组绑定的内存块中的单元数据迁移到数据区块,包括:
根据所述单元数据的偏移位置确定所述单元数据所属的数据块;
判断所述数据区块中是否已存在所述数据块;
如果否,则从云存储介质中读取与所述数据块对应的已存储数据,对所述单元数据和所述已存储数据进行合并,得到合并后数据;在所述数据区块中创建所述数据块,将所述合并后数据写入到已创建的所述数据块中;
如果是,则从所述数据块中读取已存储数据,对所述单元数据和所述已存储数据进行合并,得到合并后数据;将所述合并后数据写入到所述数据块中。
7.根据权利要求6所述的方法,其特征在于,
所述对所述单元数据和所述已存储数据进行合并,得到合并后数据,包括:
从所述已存储数据中确定出与所述单元数据匹配的子数据,并通过所述单元数据替换所述已存储数据中的所述子数据,得到所述合并后数据;
其中,所述子数据的偏移位置与所述单元数据的偏移位置相同。
<...
【专利技术属性】
技术研发人员:李丹旺,夏伟强,
申请(专利权)人:杭州海康威视系统技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。