数据读写方法和装置制造方法及图纸

技术编号:33130019 阅读:22 留言:0更新日期:2022-04-17 00:45
本发明专利技术提供一种数据读写方法和装置,方法包括数据写入过程,数据写入过程包括:获取待写入文件对应的多个第一数据单元,多个第一数据单元为按照预设单位长度对待写入文件进行分割得到;获取待写入文件的标识和文件后缀信息,并将标识作为第一标识;在预设结构体中进行遍历,查找第一标识对应的起始偏移量,将起始偏移量作为第一起始偏移量;根据文件后缀名,确定待写入文件的数据类型;根据第一起始偏移量和数据类型,将多个第一数据单元逐个写入预设设备的磁盘中,并在多个第一数据单元写入完成后对预设结构体进行信息更新。本发明专利技术可以减少第一文件系统在读写时候对磁盘的操作次数,提高写入的效率。提高写入的效率。提高写入的效率。

【技术实现步骤摘要】
数据读写方法和装置


[0001]本说明书一个或多个实施例涉及分布式存储
,尤其涉及一种数据读写方法和装置。

技术介绍

[0002]传统的本地文件系统拥有很强大的功能和复杂的索引逻辑,如ext4。参见图1,现有技术中在分布式存储系统HDFS集群的客户端和数据节点之间进行数据传输时,例如,数据从数据节点的磁盘导入到客户端磁盘的过程中,需要数据节点的本地文件系统Ext4将其磁盘Disk上的数据通过网卡NIC、网络、客户端的网卡NIC后,进入客户端,进而利用客户端的本地文件系统存储到磁盘中。分布式存储系统内部的客户端和数据节点之间进行数据读取或写入时或者在分布式存储系统之间进行数据传输时,仅用到客户端的文件系统中的一部分功能,例如,读取、写入等简单操作,这就使得本地文件系统会产生一些不必要的索引开销对数据的读写性能产生影响。

技术实现思路

[0003]本说明书一个或多个实施例描述了一种数据读写方法和装置。
[0004]根据第一方面,提供了一种数据读写方法,所述方法包括数据写入过程,所述数据写入过程包括:
[0005]获取待写入文件对应的多个第一数据单元,所述多个第一数据单元为按照预设单位长度对所述待写入文件进行分割得到;
[0006]获取所述待写入文件的标识和文件后缀信息,并将所述标识作为第一标识;
[0007]在预设结构体中进行遍历,查找所述第一标识对应的起始偏移量,将所述起始偏移量作为第一起始偏移量;
[0008]根据所述文件后缀名,确定所述待写入文件的数据类型;
[0009]根据所述第一起始偏移量和所述数据类型,将所述多个第一数据单元逐个写入预设设备的磁盘中,并在所述多个第一数据单元写入完成后对所述预设结构体进行信息更新;
[0010]其中,所述预设设备上安装有第一文件系统,所述第一文件系统在挂载后在内存中建立一个预设结构体,所述预设结构体用于存储写入所述预设设备的磁盘中的各个数据块文件的标识以及在所述预设设备的磁盘中的起始偏移量,所述预设设备为分布式存储系统中的设备;将每一个第一数据单元写入所述预设设备的磁盘中的过程包括:
[0011]若所述数据类型为元数据,则计算所述第一起始偏移量和n*所述预设单位长度的和,将所述和作为该第一数据单元的写入位置信息,根据所述写入位置信息将该第一数据单元写入所述预设设备的磁盘的对应位置上,并将n加1;n的初始值为0,最大值为所述第一数据单元的个数

1。
[0012]第二方面,本专利技术提供一种数据读写装置,所述装置用于数据写入过程,所述装置
包括:
[0013]第一获取模块,用于获取待写入文件对应的多个第一数据单元,所述多个第一数据单元为按照预设单位长度对所述待写入文件进行分割得到;
[0014]第二获取模块,用于获取所述待写入文件的标识和文件后缀信息,并将所述标识作为第一标识;
[0015]第一查找模块,用于在预设结构体中进行遍历,查找所述第一标识对应的起始偏移量,将所述起始偏移量作为第一起始偏移量;
[0016]第一确定模块,用于根据所述文件后缀名,确定所述待写入文件的数据类型;
[0017]文件写入模块,用于根据所述第一起始偏移量和所述数据类型,将所述多个第一数据单元逐个写入预设设备的磁盘中,并在所述多个第一数据单元写入完成后对所述预设结构体进行信息更新;
[0018]其中,所述预设设备上安装有第一文件系统,所述第一文件系统在挂载后在内存中建立一个预设结构体,所述预设结构体用于存储写入所述预设设备的磁盘中的各个数据块文件的标识以及在所述预设设备的磁盘中的起始偏移量,所述预设设备为分布式存储系统中的设备;所述文件写入模块将每一个第一数据单元写入所述预设设备的磁盘中的过程包括:若所述数据类型为元数据,则计算所述第一起始偏移量和n*所述预设单位长度的和,将所述和作为该第一数据单元的写入位置信息,根据所述写入位置信息将该第一数据单元写入所述预设设备的磁盘的对应位置上,并将n加1;n的初始值为0,最大值为所述第一数据单元的个数

1。
[0019]本专利技术实施例提供的数据读取方法和装置,获取待写入文件对应的多个第一数据单元;获取对应的标识和文件后缀信息;在预设结构体中查找该标识对应的起始偏移量作为第一起始偏移量;根据所述文件后缀名,确定所述待写入文件的数据类型;根据所述第一起始偏移量和所述数据类型,将所述多个第一数据单元逐个写入预设设备的磁盘中,并在所述多个第一数据单元写入完成后对所述预设结构体进行信息更新。由于在第一文件系统挂载后会在内存中建立预设结构体,用预设结构体存储已经写入到磁盘中的各个数据块文件的相关信息。在数据写入过程中是从预设结构体中获取起始偏移量,这样可以减少第一文件系统在读写时候对磁盘的操作次数,可以提高索引效率。也就是说,建立了预设结构体后,就不必在第一文件系统中获取相关的信息来计算读取位置信息,而是可以从预设结构体中直接获取起始偏移量,提高写入的效率。
附图说明
[0020]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为现有技术中客户端和数据节点之间进行数据传输的系统架构图;
[0022]图2是本专利技术实施例中第一文件系统管理的信息的布局示意图;
[0023]图3是本专利技术实施例中数据写入过程的流程示意图;
[0024]图4是本专利技术实施例中数据写入过程的流程示意图;
[0025]图5是本专利技术实施例中数据读取过程的流程示意图。
具体实施方式
[0026]下面结合附图,对本说明书提供的方案进行描述。
[0027]第一方面,本专利技术实施例提供一种数据读写方法,参见图3,所述方法包括数据写入过程,所述数据写入过程包括如下步骤S1~S5:
[0028]S1、获取待写入文件对应的多个第一数据单元,所述多个第一数据单元为按照预设单位长度对所述待写入文件进行分割得到;
[0029]可理解的是,专利技术实施例提供的方法可以下文中的预设设备执行,预设设备具体可以是客户端设备,例如,在分布式存储系统的客户端设备和数据节点进行数据迁移时,可以采用步骤S1~S5实现将数据节点中的文件写入到客户端设备的磁盘中。再例如,在两个分布式存储系统之间进行数据传输时,可以将一个分布式存储系统中的数据写入到另一个分布式存储系统的客户端设备的磁盘中。预设设备不仅可以是客户端设备,也可以是其它设备。
[0030]其中,本专利技术实施例中的待写入文件或待读取文件是指一个数据块文件中的一部分,一个数据块文件包括元数据文件和块数据文件,元数据文件是块数据的描述信息,块数据文件是真正的数据内容。因此待写入文件和待读取文件有两种类型,一种是元数据文件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据读写方法,其特征在于,所述方法包括数据写入过程,所述数据写入过程包括:获取待写入文件对应的多个第一数据单元,所述多个第一数据单元为按照预设单位长度对所述待写入文件进行分割得到;获取所述待写入文件的标识和文件后缀信息,并将所述标识作为第一标识;在预设结构体中进行遍历,查找所述第一标识对应的起始偏移量,将所述起始偏移量作为第一起始偏移量;根据所述文件后缀名,确定所述待写入文件的数据类型;根据所述第一起始偏移量和所述数据类型,将所述多个第一数据单元逐个写入预设设备的磁盘中,并在所述多个第一数据单元写入完成后对所述预设结构体进行信息更新;其中,所述预设设备上安装有第一文件系统,所述第一文件系统在挂载后在内存中建立一个预设结构体,所述预设结构体用于存储写入所述预设设备的磁盘中的各个数据块文件的标识以及在所述预设设备的磁盘中的起始偏移量,所述预设设备为分布式存储系统中的设备;将每一个第一数据单元写入所述预设设备的磁盘中的过程包括:若所述数据类型为元数据,则计算所述第一起始偏移量和n*所述预设单位长度的和,将所述和作为该第一数据单元的写入位置信息,根据所述写入位置信息将该第一数据单元写入所述预设设备的磁盘的对应位置上,并将n加1;n的初始值为0,最大值为所述第一数据单元的个数

1。2.根据权利要求1所述的方法,其特征在于,将每一个第一数据单元写入所述预设设备的磁盘中的过程还包括:若所述数据类型为块数据,则计算所述第一起始偏移量、n*所述预设单位长度和元数据的预留长度的和,将所述和作为该第一数据单元的写入位置信息,根据所述写入位置信息将该第一数据单元写入所述预设设备的磁盘的对应位置上,并将n加1。3.根据权利要求1所述的方法,其特征在于,所述根据所述文件后缀名,确定所述待写入文件的数据类型,包括:若所述文件后缀名为meta,则所述数据类型为元数据,否则为块数据。4.根据权利要求1所述的方法,其特征在于,所述数据写入过程还包括:若在所述预设结构体中未查找到所述第一标识,则从所述第一文件系统管理的位图中查找可用数据块文件对应的标识,将该标识作为第二标识,计算所述第二标识在预设设备的磁盘中对应的起始偏移量,将该起始偏移量作为第一起始偏移量。5.根据权利要求1所述的方法,其特征在于,所述方法还包括数据读取过程,所述数据读取过程包括:获取待读取文件对应的多个第二数据单元,所述多个第二数据单位为按照所述预设单位长度对所述待读取文件进行分割得到;获取所述待读取文件的标识和文件后缀信息,将该标识作为第三标识;在所述预设结构体中进行遍历,查找所述第三标识对应的起始偏移量,将该起始偏移量作为第二起始偏移量;根据所述文件后缀名,确定所述待读取文件的数据类型;根据所述第二起始偏移量和所述数据类型,从所述预设设备的磁盘中逐个读取所述多
个第二数据单元;其中,从所述预设设备的磁盘中读取每一个第二数据单元的过程,包括:若所述数据类型为元数据,则计算所述第二起始偏移量和n*所述预设单位长度的和,将所述和作为该第二数据单元的读取位置信息,根据所述读取位置信息将从所述预设设备的磁盘的对应位置上读取一个第二数据单元,并将n加1;n的初始值为0,最大值为所述第二数据单元的个数

1。6.根据权利要求5所述的方法,其特征在于,从所述预设设备的磁盘中读取每一个第二数据单元的过程,还包括:若所述数据类型为块数据,则计算所述第二起始偏移量、n*所述预设单位长度和元数据的预留长度的和,将所述和作为该第二数据单元的读取位置信息,根据所述读取位置信息从所述预设设备的磁盘的对应位置上读取一个第二数据单元,并将n加1。7.根据权利要求1所述的方法,其特征在于,所述第一文件...

【专利技术属性】
技术研发人员:张晓黎梦钰谢惠如张雨辰王良于锦波肖淞
申请(专利权)人:西北工业大学
类型:发明
国别省市:

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

1