【技术实现步骤摘要】
数据读写方法和装置
[0001]本说明书一个或多个实施例涉及分布式存储
,尤其涉及一种数据读写方法和装置。
技术介绍
[0002]传统的本地文件系统拥有很强大的功能和复杂的索引逻辑,如ext4。参见图1,现有技术中在分布式存储系统HDFS集群的客户端和数据节点之间进行数据传输时,例如,数据从数据节点的磁盘导入到客户端磁盘的过程中,需要数据节点的本地文件系统Ext4将其磁盘Disk上的数据通过网卡NIC、网络、客户端的网卡NIC后,进入客户端,进而利用客户端的本地文件系统存储到磁盘中。分布式存储系统内部的客户端和数据节点之间进行数据读取或写入时或者在分布式存储系统之间进行数据传输时,仅用到客户端的文件系统中的一部分功能,例如,读取、写入等简单操作,这就使得本地文件系统会产生一些不必要的索引开销对数据的读写性能产生影响。
技术实现思路
[0003]本说明书一个或多个实施例描述了一种数据读写方法和装置。
[0004]根据第一方面,提供了一种数据读写方法,所述方法包括数据写入过程,所述数据写入过程包括:
[0005]获取待写入文件对应的多个第一数据单元,所述多个第一数据单元为按照预设单位长度对所述待写入文件进行分割得到;
[0006]获取所述待写入文件的标识和文件后缀信息,并将所述标识作为第一标识;
[0007]在预设结构体中进行遍历,查找所述第一标识对应的起始偏移量,将所述起始偏移量作为第一起始偏移量;
[0008]根据所述文件后缀名,确定所述待写入文件的数据类 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其特征在于,所述第一文件...
【专利技术属性】
技术研发人员:张晓,黎梦钰,谢惠如,张雨辰,王良,于锦波,肖淞,
申请(专利权)人:西北工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。