CN111104063A - 一种数据存储方法、装置及电子设备和存储介质 - Google Patents

一种数据存储方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN111104063A
CN111104063A CN201911243219.3A CN201911243219A CN111104063A CN 111104063 A CN111104063 A CN 111104063A CN 201911243219 A CN201911243219 A CN 201911243219A CN 111104063 A CN111104063 A CN 111104063A
Authority
CN
China
Prior art keywords
target
data
determining
target object
offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201911243219.3A
Other languages
English (en)
Inventor
冯龙
何营
白战豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201911243219.3A priority Critical patent/CN111104063A/zh
Publication of CN111104063A publication Critical patent/CN111104063A/zh
Priority to PCT/CN2020/104001 priority patent/WO2021109590A1/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据存储方法、装置及一种电子设备和计算机可读存储介质,该方法包括:当接收到第一目标对象的写入请求时,确定第一目标对象对应的第一目标聚合文件,在第一目标聚合文件中确定第一目标对象的第一对象偏移;确定写入请求在目标对应中的写请求偏移和写请求长度,基于第一对象偏移和写请求偏移确定写入请求对应的起始位置;基于起始位置和写请求长度将写入请求对应的写入数据写入第一目标聚合文件中,并更新第一目标对象的元数据。本申请提供的数据存储方法,通过聚合文件的空间管理模块实现对数据空间的分配和释放,减少文件系统层对小文件的频繁操作,从而提升性能。

Description

一种数据存储方法、装置及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据存储方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
在分布式块存储系统中,需要将为用户提供的块设备进行条带化,以一定的大小如4MB进行等大小切分,形成一个个的条带单元,将这些条带单元数据随机分布放置在不同存储节点的硬盘上。其中,负责每个硬盘数据的存储和管理的模块称为存储引擎,在存储引擎中存储的一个个条带单元称为对象,由于块存储本身的特性,每个对象的大小都是固定的。
在存储引擎上,通常会将物理磁盘进行格式化,将每个对象以单个文件的方式存储在格式化后的文件系统中,这就是现有的存储引擎数据存储方式。在现有的数据存储方式下,存储引擎上的每个文件代表了所存储的一个对象的数据。当数据量足够多时,就需要创建海量的对象文件,对块设备的写入和删除,会导致对海量文件的频繁创建、删除、打开、关闭等操作,这些操作势必会对性能造成一定的影响。
因此,如何降低大量对象文件引起的性能损耗,并对大量对象数据进行管理是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据存储方法、装置及一种电子设备和一种计算机可读存储介质,降低大量对象文件引起的性能损耗,并对大量对象数据进行管理。
为实现上述目的,本申请提供了一种数据存储方法,应用于分布式存储系统,包括:
当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;
确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;
基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
其中,所述确定所述第一目标对象对应的第一目标聚合文件,包括:
基于条带分配原则确定所述第一目标对象对应的存储引擎;
根据所述第一目标对象的名称在所述存储引擎上确定所述第一目标对象对应的第一目标聚合文件。
其中,所述第一目标对象的元数据包括所述第一目标对象的名称、所述目标聚合文件的标识、所述第一目标对象的大小、所述第一对象偏移和所有已写入数据信息。
其中,还包括:
当接收到第二目标对象的读取请求时,确定所述第二目标对象对应的第二目标聚合文件,在所述第二目标聚合文件中确定所述第二目标对象的第二对象偏移;
根据所述第二对象偏移、所述读取请求中的读请求偏移和读请求长度确定所述读取请求对应的目标数据片段;
读取并返回所述目标数据片段中的数据内容。
其中,所述读取并返回所述目标数据片段中的数据内容,包括:
确定所述第二目标对象的已写入数据信息,并根据所述已写入数据信息确定在所述目标数据片段中确定硬盘拥有的数据片段;
读取所述硬盘拥有的数据片段数据内容,将所述目标数据片段中硬盘未拥有的数据片段数据内容补零,并返回所述目标数据片段。
其中,还包括:
当接收到第三目标对象的删除请求时,确定所述第三目标对象对应的第三目标聚合文件,在所述第三目标聚合文件中确定所述第三目标对象的第三对象偏移;
基于所述第三对象偏移和所述第三目标文件的文件大小在所述第三目标聚合文件中进行打洞操作,释放所述第三目标聚合文件中所述第三目标对象占用的硬盘空间。
其中,还包括:
删除所述第三目标对象的元数据。
为实现上述目的,本申请提供了一种数据存储装置,应用于分布式存储系统,包括:
第一确定模块,用于当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;
第二确定模块,用于确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;
写入模块,用于基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据存储方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据存储方法的步骤。
通过以上方案可知,本申请提供的一种数据存储方法,包括:当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
本申请提供的数据存储方法,通过将块设备的条带单元以对象的形式存储在聚合文件中,将对象的索引信息存储在数据库中,通过聚合文件的空间管理模块实现对数据空间的分配和释放,减少文件系统层对小文件的频繁操作,从而提升性能。本申请还公开了一种数据存储装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种数据存储方法的流程图;
图2为一种元数据更新流程图;
图3为根据一示例性实施例示出的一种数据读取方法的流程图;
图4为根据一示例性实施例示出的一种数据删除方法的流程图;
图5为根据一示例性实施例示出的一种数据存储装置的结构图;
图6为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种数据存储方法,降低大量对象文件引起的性能损耗,并对大量对象数据进行管理。
参见图1,根据一示例性实施例示出的一种数据存储方法的流程图,如图1所示,包括:
S101:当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;
在本实施例中,使用固定数目大文件的方式存储对象数据,这些大文件称为聚合文件,当创建一个对象时,将该对象的数据存储在指定聚合文件中的指定偏移位置,对象长度由条带单元的大小来确定,由此实现对象数据在聚合文件中的存储。而对象所在的聚合文件名和在聚合文件中的位置,通过KV数据库来记录。
具体的,在创建存储引擎时,首先在存储引擎挂载目录创建指定数目如100个固定大小如100GB的稀疏文件,这些稀疏文件即为用于存储对象数据的聚合文件,聚合文件的文件名称为fid。稀疏文件是指只有写入数据才会占用实际空间的文件,在没有写入数据的时候,并不会实际占用硬盘的空间。针对每个聚合文件,都会有一个专门用于数据管理的模块,称为空间管理模块。空间管理模块负责记录和管理未被分配的数据空间,并将聚合文件中未分配的区间信息存储在数据库中。在创建对象时,根据对象名称的哈希值随机选取一个聚合文件fid,根据块设备的条带配置,对象的大小是固定的。通过聚合文件的空间管理模块,为该对象分配未被使用的一个空间片段,该空间片段的偏移量由空间管理模块提供,该片段的长度由条带配置值确定。当确定对象在聚合文件中的偏移量和长度后,即可确定对象在聚合文件中的唯一位置存储位置。
在具体实施中,当接收到第一目标对象的写入请求时,确定第一目标对象(条带片段)所对应的存储引擎,将写请求以对象写请求的形式发送至该存储引擎,对第一目标对象的对象名称进行哈希计算,确定该第一目标对象要写入的第一目标聚合文件的名称。即所述确定所述第一目标对象对应的第一目标聚合文件的步骤包括:基于条带分配原则确定所述第一目标对象对应的存储引擎;根据所述第一目标对象的名称在所述存储引擎上确定所述第一目标对象对应的第一目标聚合文件。
根据第一目标对象的大小(obj_size),通过第一目标聚合文件的空间分配模块为该第一目标对象分配长度为obj_size的空闲区间[offset,obj_size],该区间用于第一目标对象在第一目标聚合文件中的具体位置。其中,offset是第一目标聚合文件中的偏移量,obj_size是对象大小,也是第一目标对象在第一目标聚合文件中占有的空间长度。
S102:确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;
在本步骤中,根据写入请求中的写请求偏移(obj_offset)和写请求长度(obj_length),可以确定该写入请求要写入的数据在第一目标聚合文件中具体写入的起始位置offset+obj_offset,写入长度为obj_length。
S103:基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
在本步骤中,将写入数据写入第一目标聚合文件中,并向KV数据库中添加该对象的索引信息,对象索引信息作为对象元数据。具体的,第一目标对象的元数据可以包括所述第一目标对象的名称、所述目标聚合文件的标识、所述第一目标对象的大小、所述第一对象偏移和所有已写入数据信息。
元数据以KV的形式存储,组织形式如下:
Key:对象名
Value:聚合文件名fid,对象大小obj_size,在聚合文件中的偏移量offset,已写入的数据map<int,int>extent_map,map中存储了写入数据在对象中的偏移和长度信息。当有多个写入时,会将extent_map中的信息进行组合。
extent_map的更新逻辑如图2所示:
a)写入偏移量1024k,长度512k的片段,extent_map中存储的为{[1024k,512k]};
b)再写入偏移量为2048k,长度512k的片段,extent_map中存储的为{[1024k,512k],[2048k,512k]};
c)再写入偏移量为512k,长度为512k的片段,extent_map中存储的为{[512k,1024k],[2048k,512k]}。
需要说明的是,在更新对象索引信息的同时,更新第一目标聚合文件的空间分配信息到数据库中,即把新分配的空间信息更新到数据库中去,表明该段区间已经分配给对象。
本申请实施例提供的数据存储方法,通过将块设备的条带单元以对象的形式存储在聚合文件中,将对象的索引信息存储在数据库中,通过聚合文件的空间管理模块实现对数据空间的分配和释放,减少文件系统层对小文件的频繁操作,从而提升性能。
下面介绍本申请提供的一种数据读取方法,具体的:
参见图3,根据一示例性实施例示出的一种数据读取方法的流程图,如图3所示,包括:
S201:当接收到第二目标对象的读取请求时,确定所述第二目标对象对应的第二目标聚合文件,在所述第二目标聚合文件中确定所述第二目标对象的第二对象偏移;
在具体实施中,根据条带分配,确定第二目标对象所对应的存储引擎,将读请求以对象的形式发送至该存储引擎。根据第二目标对象的对象名,在KV数据库查找对象信息,可以确定第二目标对象对应的第二目标聚合文件,在第二目标聚合文件中的偏移量offset,以及已写入的数据extent_map;
S202:根据所述第二对象偏移、所述读取请求中的读请求偏移和读请求长度确定所述读取请求对应的目标数据片段;
S203:读取并返回所述目标数据片段中的数据内容。
在具体实施中,将读取请求中的读请求偏移和读请求长度[off,len],与extent_map取交集,即可得到硬盘上拥有的数据片段,读取硬盘拥有的数据片段,硬盘上未拥有的数据片段补零,即可得到要读取的[off,len]的完整数据片段。即所述读取并返回所述目标数据片段中的数据内容的步骤包括:确定所述第二目标对象的已写入数据信息,并根据所述已写入数据信息确定在所述目标数据片段中确定硬盘拥有的数据片段;读取所述硬盘拥有的数据片段数据内容,将所述目标数据片段中硬盘未拥有的数据片段数据内容补零,并返回所述目标数据片段。
下面介绍本申请提供的一种数据删除方法,具体的:
参见图4,根据一示例性实施例示出的一种数据删除方法的流程图,如图4所示,包括:
S301:当接收到第三目标对象的删除请求时,确定所述第三目标对象对应的第三目标聚合文件,在所述第三目标聚合文件中确定所述第三目标对象的第三对象偏移;
S302:基于所述第三对象偏移和所述第三目标文件的文件大小在所述第三目标聚合文件中进行打洞操作,释放所述第三目标聚合文件中所述第三目标对象占用的硬盘空间。
在本实施例中,根据条带分配,确定第三目标对象所对应的存储引擎,将删除请求以对象的形式发送至该存储引擎。根据对象名,在KV数据库查找该对象信息,可以确定第三目标对象对应的第三目标聚合文件,在第三目标聚合文件中的偏移量offse。将第三目标聚合文件中该片段的空间执行fallocate打洞操作,释放文件中该对象片段占用的硬盘空间。更新数据库中的数据空间信息,回收该对象占用的空间;同时更新数据库信息,删除该对象在KV数据库中的记录。即本实施例还包括:删除所述第三目标对象的元数据。
下面对本申请实施例提供的一种数据存储装置进行介绍,下文描述的一种数据存储装置与上文描述的一种数据存储方法可以相互参照。
参见图5,根据一示例性实施例示出的一种数据存储装置的结构图,如图5所示,包括:
第一确定模块501,用于当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;
第二确定模块502,用于确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;
写入模块503,用于基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
本申请实施例提供的数据存储装置,通过将块设备的条带单元以对象的形式存储在聚合文件中,将对象的索引信息存储在数据库中,通过聚合文件的空间管理模块实现对数据空间的分配和释放,减少文件系统层对小文件的频繁操作,从而提升性能。
在上述实施例的基础上,作为一种优选实施方式,所述第一确定模块501包括:
第一确定单元,用于当接收到第一目标对象的写入请求时,基于条带分配原则确定所述第一目标对象对应的存储引擎;
第二确定单元,用于根据所述第一目标对象的名称在所述存储引擎上确定所述第一目标对象对应的第一目标聚合文件;
第三确定单元,用于在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移。
在上述实施例的基础上,作为一种优选实施方式,所述第一目标对象的元数据包括所述第一目标对象的名称、所述目标聚合文件的标识、所述第一目标对象的大小、所述第一对象偏移和所有已写入数据信息。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第三确定模块,用于当接收到第二目标对象的读取请求时,确定所述第二目标对象对应的第二目标聚合文件,在所述第二目标聚合文件中确定所述第二目标对象的第二对象偏移;
第四确定模块,用于根据所述第二对象偏移、所述读取请求中的读请求偏移和读请求长度确定所述读取请求对应的目标数据片段;
读取模块,用于读取并返回所述目标数据片段中的数据内容。
在上述实施例的基础上,作为一种优选实施方式,所述读取模块包括:
第四确定单元,用于确定所述第二目标对象的已写入数据信息,并根据所述已写入数据信息确定在所述目标数据片段中确定硬盘拥有的数据片段;
读取单元,用于读取所述硬盘拥有的数据片段数据内容,将所述目标数据片段中硬盘未拥有的数据片段数据内容补零,并返回所述目标数据片段。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第五确定模块,用于当接收到第三目标对象的删除请求时,确定所述第三目标对象对应的第三目标聚合文件,在所述第三目标聚合文件中确定所述第三目标对象的第三对象偏移;
释放模块,用于基于所述第三对象偏移和所述第三目标文件的文件大小在所述第三目标聚合文件中进行打洞操作,释放所述第三目标聚合文件中所述第三目标对象占用的硬盘空间。
在上述实施例的基础上,作为一种优选实施方式,还包括:
删除模块,用于删除所述第三目标对象的元数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请还提供了一种电子设备,参见图6,本申请实施例提供的一种电子设备600的结构图,如图6所示,可以包括处理器11和存储器12。该电子设备600还可以包括多媒体组件13,输入/输出(I/O)接口14,以及通信组件15中的一者或多者。
其中,处理器11用于控制该电子设备600的整体操作,以完成上述的数据存储方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据存储方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述数据存储方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由电子设备600的处理器11执行以完成上述的数据存储方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种数据存储方法,其特征在于,应用于分布式存储系统,包括:
当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;
确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;
基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
2.根据权利要求1所述数据存储方法,其特征在于,所述确定所述第一目标对象对应的第一目标聚合文件,包括:
基于条带分配原则确定所述第一目标对象对应的存储引擎;
根据所述第一目标对象的名称在所述存储引擎上确定所述第一目标对象对应的第一目标聚合文件。
3.根据权利要求1所述数据存储方法,其特征在于,所述第一目标对象的元数据包括所述第一目标对象的名称、所述目标聚合文件的标识、所述第一目标对象的大小、所述第一对象偏移和所有已写入数据信息。
4.根据权利要求1所述数据存储方法,其特征在于,还包括:
当接收到第二目标对象的读取请求时,确定所述第二目标对象对应的第二目标聚合文件,在所述第二目标聚合文件中确定所述第二目标对象的第二对象偏移;
根据所述第二对象偏移、所述读取请求中的读请求偏移和读请求长度确定所述读取请求对应的目标数据片段;
读取并返回所述目标数据片段中的数据内容。
5.根据权利要求4所述数据存储方法,其特征在于,所述读取并返回所述目标数据片段中的数据内容,包括:
确定所述第二目标对象的已写入数据信息,并根据所述已写入数据信息确定在所述目标数据片段中确定硬盘拥有的数据片段;
读取所述硬盘拥有的数据片段数据内容,将所述目标数据片段中硬盘未拥有的数据片段数据内容补零,并返回所述目标数据片段。
6.根据权利要求1所述数据存储方法,其特征在于,还包括:
当接收到第三目标对象的删除请求时,确定所述第三目标对象对应的第三目标聚合文件,在所述第三目标聚合文件中确定所述第三目标对象的第三对象偏移;
基于所述第三对象偏移和所述第三目标文件的文件大小在所述第三目标聚合文件中进行打洞操作,释放所述第三目标聚合文件中所述第三目标对象占用的硬盘空间。
7.根据权利要求6所述数据存储方法,其特征在于,还包括:
删除所述第三目标对象的元数据。
8.一种数据存储装置,其特征在于,应用于分布式存储系统,包括:
第一确定模块,用于当接收到第一目标对象的写入请求时,确定所述第一目标对象对应的第一目标聚合文件,在所述第一目标聚合文件中确定所述第一目标对象的第一对象偏移;
第二确定模块,用于确定所述写入请求在所述目标对应中的写请求偏移和写请求长度,基于所述第一对象偏移和所述写请求偏移确定所述写入请求对应的起始位置;
写入模块,用于基于所述起始位置和所述写请求长度将所述写入请求对应的写入数据写入所述第一目标聚合文件中,并更新所述第一目标对象的元数据。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据存储方法的步骤。
CN201911243219.3A 2019-12-06 2019-12-06 一种数据存储方法、装置及电子设备和存储介质 Withdrawn CN111104063A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911243219.3A CN111104063A (zh) 2019-12-06 2019-12-06 一种数据存储方法、装置及电子设备和存储介质
PCT/CN2020/104001 WO2021109590A1 (zh) 2019-12-06 2020-07-24 一种数据存储方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911243219.3A CN111104063A (zh) 2019-12-06 2019-12-06 一种数据存储方法、装置及电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN111104063A true CN111104063A (zh) 2020-05-05

Family

ID=70421804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911243219.3A Withdrawn CN111104063A (zh) 2019-12-06 2019-12-06 一种数据存储方法、装置及电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN111104063A (zh)
WO (1) WO2021109590A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708485A (zh) * 2020-05-24 2020-09-25 苏州浪潮智能科技有限公司 一种存储介质读写数据的方法
WO2021109590A1 (zh) * 2019-12-06 2021-06-10 浪潮电子信息产业股份有限公司 一种数据存储方法、装置及电子设备和存储介质
CN113157497A (zh) * 2021-04-30 2021-07-23 重庆紫光华山智安科技有限公司 数据存储方法、装置、设备及介质
CN113204554A (zh) * 2021-05-11 2021-08-03 深圳市杉岩数据技术有限公司 一种对象存储系统实现稀疏写的方法、装置及电子设备
CN113886347A (zh) * 2021-09-23 2022-01-04 北京金山云网络技术有限公司 节点数据压缩方法、装置、存储介质和电子设备
CN114415958A (zh) * 2022-01-20 2022-04-29 京东科技信息技术有限公司 磁盘数据处理方法及系统、存储介质、电子设备
WO2023000674A1 (zh) * 2021-07-23 2023-01-26 苏州浪潮智能科技有限公司 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质
CN115955581A (zh) * 2023-03-15 2023-04-11 浪潮电子信息产业股份有限公司 一种实时视频处理方法、装置、设备及存储介质
WO2023179742A1 (zh) * 2022-03-25 2023-09-28 阿里云计算有限公司 数据访问方法及系统、硬件卸载设备、电子设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562915A (zh) * 2017-09-12 2018-01-09 郑州云海信息技术有限公司 读取小文件的方法、装置和设备及计算机可读存储介质
CN108763473A (zh) * 2018-05-29 2018-11-06 郑州云海信息技术有限公司 一种分布式存储的本地对象存储方法及装置
CN109597794A (zh) * 2018-12-05 2019-04-09 郑州云海信息技术有限公司 一种文件管理方法、系统及电子设备和存储介质
CN109739933A (zh) * 2019-01-02 2019-05-10 郑州云海信息技术有限公司 存储空间释放方法、装置、终端及计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105630688A (zh) * 2014-10-30 2016-06-01 国际商业机器公司 聚集文件的存储方法和系统以及聚集文件压缩方法和系统
CN107066592A (zh) * 2017-04-18 2017-08-18 广东浪潮大数据研究有限公司 一种用于文件系统的文件碎片整理方法及系统
CN111104063A (zh) * 2019-12-06 2020-05-05 浪潮电子信息产业股份有限公司 一种数据存储方法、装置及电子设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562915A (zh) * 2017-09-12 2018-01-09 郑州云海信息技术有限公司 读取小文件的方法、装置和设备及计算机可读存储介质
CN108763473A (zh) * 2018-05-29 2018-11-06 郑州云海信息技术有限公司 一种分布式存储的本地对象存储方法及装置
CN109597794A (zh) * 2018-12-05 2019-04-09 郑州云海信息技术有限公司 一种文件管理方法、系统及电子设备和存储介质
CN109739933A (zh) * 2019-01-02 2019-05-10 郑州云海信息技术有限公司 存储空间释放方法、装置、终端及计算机可读存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021109590A1 (zh) * 2019-12-06 2021-06-10 浪潮电子信息产业股份有限公司 一种数据存储方法、装置及电子设备和存储介质
CN111708485A (zh) * 2020-05-24 2020-09-25 苏州浪潮智能科技有限公司 一种存储介质读写数据的方法
CN113157497A (zh) * 2021-04-30 2021-07-23 重庆紫光华山智安科技有限公司 数据存储方法、装置、设备及介质
CN113204554A (zh) * 2021-05-11 2021-08-03 深圳市杉岩数据技术有限公司 一种对象存储系统实现稀疏写的方法、装置及电子设备
WO2023000674A1 (zh) * 2021-07-23 2023-01-26 苏州浪潮智能科技有限公司 云硬盘数据压缩备份及恢复方法、装置、设备及存储介质
CN113886347A (zh) * 2021-09-23 2022-01-04 北京金山云网络技术有限公司 节点数据压缩方法、装置、存储介质和电子设备
CN114415958A (zh) * 2022-01-20 2022-04-29 京东科技信息技术有限公司 磁盘数据处理方法及系统、存储介质、电子设备
WO2023179742A1 (zh) * 2022-03-25 2023-09-28 阿里云计算有限公司 数据访问方法及系统、硬件卸载设备、电子设备及介质
CN115955581A (zh) * 2023-03-15 2023-04-11 浪潮电子信息产业股份有限公司 一种实时视频处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2021109590A1 (zh) 2021-06-10

Similar Documents

Publication Publication Date Title
CN111104063A (zh) 一种数据存储方法、装置及电子设备和存储介质
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
CN111506269B (zh) 一种磁盘存储空间分配方法、装置、设备及存储介质
CN106326229B (zh) 一种嵌入式系统的文件存储方法和装置
KR20170097543A (ko) 스트림 감지기를 포함하는 메모리 장치 및 그것의 동작 방법
CN113568582B (zh) 数据管理方法、装置和存储设备
CN107766374B (zh) 一种海量小文件存储读取的优化方法和系统
CN109804359A (zh) 用于将数据回写到存储设备的系统和方法
KR20150104434A (ko) 플래시 메모리에서 사용하는 로그 구조 파일시스템의 메타데이터 저장 방법
US7971022B2 (en) Apparatus and method of processing data of non-volatile memory using transaction block
CN115167786B (zh) 一种数据存储方法、装置、系统、设备和介质
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
WO2016115920A1 (zh) 存储管理方法、装置及流媒体系统
CN111459884B (zh) 一种数据的处理方法、装置、计算机设备和存储介质
US11204891B2 (en) Identifying partial update for tape file system
US20200104054A1 (en) Methods, apparatuses, system and computer program products for managing storage units
WO2015065312A1 (en) Method and apparatus of data de-duplication for solid state memory
WO2020192710A1 (zh) 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
KR100899147B1 (ko) 메타 데이터 저장 방법 및 메타 데이터 저장 시스템
CN106156038B (zh) 数据存储方法和装置
CN113127438B (zh) 用于存储数据的方法、装置、服务器和介质
CN110941436B (zh) 应用程序的数据存储方法、装置、存储介质与终端设备
CN115934002B (zh) 固态硬盘的访问方法、固态硬盘、存储系统及云服务器
US9003354B2 (en) Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20200505

WW01 Invention patent application withdrawn after publication