CN108763473A - 一种分布式存储的本地对象存储方法及装置 - Google Patents
一种分布式存储的本地对象存储方法及装置 Download PDFInfo
- Publication number
- CN108763473A CN108763473A CN201810532022.0A CN201810532022A CN108763473A CN 108763473 A CN108763473 A CN 108763473A CN 201810532022 A CN201810532022 A CN 201810532022A CN 108763473 A CN108763473 A CN 108763473A
- Authority
- CN
- China
- Prior art keywords
- file
- aggregate file
- written
- current aggregate
- index information
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储的本地对象存储方法,包括:将对象的对象数据写入到当前聚合文件的末尾;将对象的元数据全部保存到KV数据库中;将对象和当前聚合文件的索引信息保存到KV数据库中;本发明通过将对象的对象数据写入到当前聚合文件的末尾,利用底层文件系统对大文件分配连续块的特性,将小文件在磁盘上的较离散分布变成大文件的较连续分布,有效提高了海量小文件的写入性能;同时将小文件聚合成大文件,可以减少底层文件系统中的文件个数,减少底层文件系统的存储压力。此外,本发明还公开了一种分布式存储的本地对象存储装置及计算机可读存储介质,同样具有上述有益效果。
Description
技术领域
本发明涉及分布式存储系统领域,特别涉及一种分布式存储的本地对象存储方法、装置及计算机可读存储介质。
背景技术
随着现代社会科技的发展,分布式存储系统的应用越来越广泛。在分布式存储系统中,本地对象存储位于最底层,负责将数据实际写入磁盘中。
目前主流的本地对象存储引擎为FileStore,其基于本地的xfs文件系统实现,对象的对象数据保存在一个固定大小的文件中,对象的元数据保存在文件的扩展属性或者本地独立的KV数据库中。然而,这样的本地对象存储方式在写入海量小文件时,会对普通的机械磁盘产生大量的随机IO,增大磁盘压力;且在写入海量小文件后,对底层xfs文件系统产生较大的存储压力,严重时会出现磁盘有容量但是无法写入的现象。因此,如何提高海量小文件的写入性能,减少底层文件系统的存储压力,是现今亟需解决的问题。
发明内容
本发明的目的是提供一种分布式存储的本地对象存储方法、装置及计算机可读存储介质,以提高海量小文件的写入性能,减少底层文件系统的存储压力。
为解决上述技术问题,本发明提供一种分布式存储的本地对象存储方法,包括:
将对象的对象数据写入到当前聚合文件的末尾;
将所述对象的元数据全部保存到KV数据库中;
将所述对象和所述当前聚合文件的索引信息保存到所述KV数据库中;其中,所述对象的索引信息包括所述对象数据中的每个碎片在所述对象数据中的偏移量和长度及所述对象数据中的每个碎片所写入的聚合文件的id和偏移量,所述当前聚合文件的索引信息包括写入到所述当前聚合文件的每个碎片在所述当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。
可选的,该方法还包括:
将追加写命令对应的新的碎片写入到所述当前聚合文件的末尾;
更新所述KV数据库中所述追加写命令对应的对象的索引信息和所述当前聚合文件的索引信息。
可选的,该方法还包括:
将所述KV数据库中修改写命令对应的对象和聚合文件的索引信息中的删除所述修改写命令对应的旧的碎片的信息;
将所述修改写命令对应的新的碎片写入到所述当前聚合文件的末尾;
更新所述KV数据库中所述修改写命令对应的对象的索引信息和所述当前聚合文件的索引信息。
可选的,该方法还包括:
将所述KV数据库中删除命令对应的对象的索引信息,及对应的聚合文件的索引信息中所述删除命令对应的对象的碎片的信息。
可选的,该方法还包括:
将有效数据大小与文件大小的比值小于等于回收阈值的聚合文件加入到回收队列;
根据所述回收队列中的聚合文件的索引信息,将所述回收队列中的聚合文件中的有效数据对应的碎片写入到所述当前聚合文件的末尾;
更新所述当前聚合文件的索引信息和所述回收队列中的聚合文件中的有效数据对应的碎片对应的对象的索引信息。
可选的,所述将有效数据大小与文件大小的比值小于等于回收阈值的聚合文件加入到回收队列,包括:
将有效数据大小与文件大小的比值小于等于所述回收阈值,且在预设时间段内均未被访问的聚合文件加入到所述回收队列。
可选的,所述将对象的对象数据写入到当前聚合文件的末尾之前,还包括:
判断所述当前聚合文件的文件大小是否大于或等于容量阈值;
若否,则执行所述将对象的对象数据写入到当前聚合文件的末尾的步骤;
若是,则将下一聚合文件作为所述当前聚合文件,执行所述将对象的对象数据写入到当前聚合文件的末尾的步骤。
可选的,所述将对象的对象数据写入到当前聚合文件的末尾,包括:
若当前聚合文件在写入所述对象数据的过程中,所述当前聚合文件的文件大小达到所述容量阈值,则将所述对象数据中未写入到所述当前聚合文件的碎片写入到下一聚合文件,并将所述下一聚合文件作为所述当前聚合文件。
本发明还提供了一种分布式存储的本地对象存储装置,包括:
数据写入模块,用于将对象的对象数据写入到当前聚合文件的末尾;
第一保存模块,用于将所述对象的元数据全部保存到KV数据库中;
第二保存模块,用于将所述对象和所述当前聚合文件的索引信息保存到所述KV数据库中;其中,所述对象的索引信息包括所述对象数据中的每个碎片在所述对象数据中的偏移量和长度及所述对象数据中的每个碎片所写入的聚合文件的id和偏移量,所述当前聚合文件的索引信息包括写入到所述当前聚合文件的每个碎片在所述当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的分布式存储的本地对象存储方法的步骤。
本发明所提供的一种分布式存储的本地对象存储方法,包括:将对象的对象数据写入到当前聚合文件的末尾;将对象的元数据全部保存到KV数据库中;将对象和当前聚合文件的索引信息保存到KV数据库中;其中,对象的索引信息包括对象数据中的每个碎片在对象数据中的偏移量和长度及对象数据中的每个碎片所写入的聚合文件的id和偏移量,当前聚合文件的索引信息包括写入到当前聚合文件的每个碎片在当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小;
可见,本发明通过将对象的对象数据写入到当前聚合文件的末尾,利用底层文件系统对大文件分配连续块的特性,将小文件在磁盘上的较离散分布变成大文件的较连续分布,有效提高了海量小文件的写入性能;同时将小文件聚合成大文件,可以减少底层文件系统中的文件个数,减少底层文件系统的存储压力。此外,本发明还提供了一种分布式存储的本地对象存储装置及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种分布式存储的本地对象存储方法的流程图;
图2为本发明实施例所提供的另一种分布式存储的本地对象存储方法的写入对象数据的示意图;
图3为本发明实施例所提供的另一种分布式存储的本地对象存储方法的追加写的示意图;
图4为本发明实施例所提供的另一种分布式存储的本地对象存储方法的修改写的示意图;
图5为本发明实施例所提供的另一种分布式存储的本地对象存储方法的垃圾回收机制的示意图;
图6为本发明实施例所提供的一种分布式存储的本地对象存储装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种分布式存储的本地对象存储方法的流程图。该方法可以包括:
步骤101:将对象的对象数据写入到当前聚合文件的末尾。
其中,本实施例的目的可以为将小的对象文件聚合成大的聚合文件,以将在磁盘上较离散分布的小文件变为较连续分布的大文件,以提高海量小文件的写入性能。
具体的,在不同对象的对象数据写入到当前聚合文件的末尾的过程中,由于写入顺序的不同,一个对象数据可能会被拆分成多个碎片,如图2中的object3。
需要说明的是,本步骤的目的可以为将对象的对象数据追加写到大的聚合文件中。对于写入的大的聚合文件的具体选择,可以由设计人员根据实用场景和用户需求自行设置,如可以将全部对象的对象数据写入到一个聚合文件中,即本步骤中的当前聚合文件可以为该聚合文件;也可以将对象的对象数据写到小于预设文件大小的聚合文件中,即本步骤中的当前聚合文件可以为文件大小小于预设文件大小的聚合文件;还可以为将对象的对象数据写到小于预设对象数量的聚合文件中,即本步骤中的当前聚合文件可以写入的对象数量小于预设对象数量的聚合文件,只要可以将对象的对象数据追加写到大的聚合文件中,本实施例对此不做任何限制。
对应的,当本步骤中的当前聚合文件为文件大小小于预设文件大小的聚合文件时,本步骤之前还可以包括:判断当前聚合文件的文件大小是否大于或等于容量阈值的步骤;若否,则将对象的对象数据写入到当前聚合文件的末尾;若是,则将下一聚合文件作为当前聚合文件,将对象的对象数据写入到该当前聚合文件的末尾。也就是,在当前聚合文件的文件大小大于或等于容量阈值时,将下一聚合文件作为当前聚合文件继续写入对象数据。
具体的,对于容量阈值的具体大小设置,可以由设计人员根据实用场景和用户需求自行设置,如可以设置为64MB,本实施例对此不做任何限制。
优选的,为了方便对多个聚合文件的统一存储和管理,保证聚合文件的文件大小的统一,本步骤可以包括若当前聚合文件在写入对象数据的过程中,当前聚合文件的文件大小达到容量阈值,则将对象数据中未写入到当前聚合文件的碎片写入到下一聚合文件,并将下一聚合文件作为当前聚合文件的步骤,以保证当前聚合文件之前的聚合文件的文件大小均为容量阈值。本实施例对此不做任何限制。
步骤102:将对象的元数据全部保存到KV数据库中。
其中,本步骤的目的可以为将对象原本部分保存在对象文件的扩展属性中的元数据,及其余部分保存在KV数据库中的元数据,全部保存到KV数据库中。
具体的,对于对象的元数据保存到KV数据库的具体方式和过程,可以由设计人员自行设置,如可以采用与现有技术相似的方式对应进行设置,本实施例对此不做任何限制。
步骤103:将对象和当前聚合文件的索引信息保存到KV数据库中;其中,对象的索引信息包括对象数据中的每个碎片在对象数据中的偏移量和长度及对象数据中的每个碎片所写入的聚合文件的id和偏移量,当前聚合文件的索引信息包括写入到当前聚合文件的每个碎片在当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。
可以理解的是,本步骤的目的可以为通过新增的持久化保存到KV数据库中的对象和聚合文件的索引信息,实现对象数据的准确定位。对于新增的对象和聚合文件的索引信息的具体内容,可以由设计人员根据实用场景和用户需求自行设置,如对象的索引信息可以包括对象数据中的每个碎片在对象数据中的偏移量和长度及对象数据中的每个碎片所写入的聚合文件的id和偏移量,当前聚合文件的索引信息可以包括写入到当前聚合文件的每个碎片在当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。只要可以通过对象和当前聚合文件的索引信息定位到对象数据,本实施例对此不做任何限制。
具体的,本步骤中写入到当前聚合文件的碎片可以为写入到当前聚合文件的对象的完整对象数据(如图2中的object1),也可以为写入到当前聚合文件的对象的部分对象数据(如图2中的一个object3),本实施例对此不做任何限制。
对应的,本实施例所提供的方法还可以包括追加写已有对象的步骤,如图3所示,可以将追加写命令对应的新的碎片(object3)写入到当前聚合文件(聚合文件1)的末尾;更新KV数据库中追加写命令对应的对象的索引信息和当前聚合文件的索引信息。
可以理解的是,为了避免现有技术中修改写时,如果数据长度小于4KB,先读已有的4KB数据,合并后再写入,导致修改写效率低的问题。本实施例所提供的方法还可以包括如图4所示的修改写步骤,当修改写一个已有的对象(object3)时,首先将对象索引根据修改写的区域(s0、s1和s2)进行拆分,然后丢弃被修改写区域覆盖的部分(s1);同时更新对应的聚合文件索引(聚合文件1),修改有效数据(s0和s1)在对应的聚合文件中的偏移量、长度和总的有效数据大小等。新增的碎片(s3)类似于追加写,直接写到当前聚合文件的末尾,然后更新对象和当前聚合文件的索引,添加一个新的碎片。
也就是说,本实施例所提供的方法还可以包括修改写步骤,可以将KV数据库中修改写命令对应的对象和聚合文件的索引信息中的删除修改写命令对应的旧的碎片的信息;将修改写命令对应的新的碎片写入到当前聚合文件的末尾;更新KV数据库中修改写命令对应的对象的索引信息和当前聚合文件的索引信息。
具体的,本实施例所提供的方法还可以包括删除已有对象的步骤,可以将KV数据库中删除命令对应的对象的索引信息,及对应的聚合文件的索引信息中删除命令对应的对象的碎片的信息。也就是删除对象时只需要从KV数据库中删除对象和对应的聚合文件中删除对象部分的索引信息即可,由于对应的聚合文件存在多个对象的对象数据,删除对象后聚合文件的实际大小不变,磁盘空间不会立即释放。
对应的,当修改写或者删除对象时,聚合文件中会出现垃圾数据,本实施例所提供的方法还可以包括对聚合文件的垃圾回收机制的步骤,以进行碎片整理和垃圾清除工作,提高存储空间的利用率,如可以将有效数据大小与文件大小的比值小于等于回收阈值的聚合文件加入到回收队列;根据回收队列中的聚合文件的索引信息,将回收队列中的聚合文件中的有效数据对应的碎片写入到当前聚合文件的末尾;更新当前聚合文件的索引信息和回收队列中的聚合文件中的有效数据对应的碎片对应的对象的索引信息。
为了进一步确保回收队列中的聚合文件的需要被回收,可以将有效数据大小与文件大小的比值小于等于回收阈值,且在预设时间段内均未被访问的聚合文件加入到回收队列,如只有当有效数据大小与文件大小的比值的小于85%,即垃圾数据超过聚合文件大小的15%,并且聚合文件在7天之内未被访问过时,才将其加入到回收队列。
具体的,如图5所示,垃圾回收机制根据回收队列中的聚合文件(聚合文件1)的索引信息,将有效数据(object1s0和object1s1)读取出来,然后追加写到当前聚合文件(聚合文件2)中,同时更新涉及对象(object1对应的对象)和当前聚合文件(聚合文件2)的索引信息,最后删除旧的聚合文件(聚合文件1)。
可以理解的是,对于追加写、修改写和垃圾回收机制的步骤中向当前聚合文件写入碎片的具体过程,可以采用与步骤101相似的方式对应进行,本实施例对此不做任何限制。
本实施例中,本发明实施例通过将对象的对象数据写入到当前聚合文件的末尾,利用底层文件系统对大文件分配连续块的特性,将小文件在磁盘上的较离散分布变成大文件的较连续分布,有效提高了海量小文件的写入性能;同时将小文件聚合成大文件,可以减少底层文件系统中的文件个数,减少底层文件系统的存储压力。
请参考图6,图6为本发明实施例所提供的一种分布式存储的本地对象存储装置的结构图。该装置可以包括:
数据写入模块100,用于将对象的对象数据写入到当前聚合文件的末尾;
第一保存模块200,用于将对象的元数据全部保存到KV数据库中;
第二保存模块300,用于将对象和当前聚合文件的索引信息保存到KV数据库中;其中,对象的索引信息包括对象数据中的每个碎片在对象数据中的偏移量和长度及对象数据中的每个碎片所写入的聚合文件的id和偏移量,当前聚合文件的索引信息包括写入到当前聚合文件的每个碎片在当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。
可选的,该装置还可以包括:
追加写模块,用于将追加写命令对应的新的碎片写入到当前聚合文件的末尾;更新KV数据库中追加写命令对应的对象的索引信息和当前聚合文件的索引信息。
可选的,该装置还可以包括:
修改写模块,用于将KV数据库中修改写命令对应的对象和聚合文件的索引信息中的删除修改写命令对应的旧的碎片的信息;将修改写命令对应的新的碎片写入到当前聚合文件的末尾;更新KV数据库中修改写命令对应的对象的索引信息和当前聚合文件的索引信息。
可选的,该装置还可以包括:
删除模块,用于将KV数据库中删除命令对应的对象的索引信息,及对应的聚合文件的索引信息中删除命令对应的对象的碎片的信息。
可选的,该装置还可以包括:
垃圾回收模块,用于将有效数据大小与文件大小的比值小于等于回收阈值的聚合文件加入到回收队列;根据回收队列中的聚合文件的索引信息,将回收队列中的聚合文件中的有效数据对应的碎片写入到当前聚合文件的末尾;更新当前聚合文件的索引信息和回收队列中的聚合文件中的有效数据对应的碎片对应的对象的索引信息。
可选的,垃圾回收模块可以包括:
回收子模块,用于将有效数据大小与文件大小的比值小于等于回收阈值,且在预设时间段内均未被访问的聚合文件加入到回收队列。
可选的,该装置还可以包括:
判断模块,用于判断当前聚合文件的文件大小是否大于或等于容量阈值;若否,向数据写入模块100发送启动信号;若是,将下一聚合文件作为当前聚合文件,向数据写入模块100发送启动信号;
可选的,数据写入模块100可以包括:
数据写入子模块,用于若当前聚合文件在写入对象数据的过程中,当前聚合文件的文件大小达到容量阈值,则将对象数据中未写入到当前聚合文件的碎片写入到下一聚合文件,并将下一聚合文件作为当前聚合文件。
本实施例中,本发明实施例通过数据写入模块100将对象的对象数据写入到当前聚合文件的末尾,利用底层文件系统对大文件分配连续块的特性,将小文件在磁盘上的较离散分布变成大文件的较连续分布,有效提高了海量小文件的写入性能;同时将小文件聚合成大文件,可以减少底层文件系统中的文件个数,减少底层文件系统的存储压力。
此外,本发明还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的分布式存储的本地对象存储方法的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、寄存器、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、硬盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的分布式存储的本地对象存储方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种分布式存储的本地对象存储方法,其特征在于,包括:
将对象的对象数据写入到当前聚合文件的末尾;
将所述对象的元数据全部保存到KV数据库中;
将所述对象和所述当前聚合文件的索引信息保存到所述KV数据库中;其中,所述对象的索引信息包括所述对象数据中的每个碎片在所述对象数据中的偏移量和长度及所述对象数据中的每个碎片所写入的聚合文件的id和偏移量,所述当前聚合文件的索引信息包括写入到所述当前聚合文件的每个碎片在所述当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。
2.根据权利要求1所述的分布式存储的本地对象存储方法,其特征在于,还包括:
将追加写命令对应的新的碎片写入到所述当前聚合文件的末尾;
更新所述KV数据库中所述追加写命令对应的对象的索引信息和所述当前聚合文件的索引信息。
3.根据权利要求1所述的分布式存储的本地对象存储方法,其特征在于,还包括:
将所述KV数据库中修改写命令对应的对象和聚合文件的索引信息中的删除所述修改写命令对应的旧的碎片的信息;
将所述修改写命令对应的新的碎片写入到所述当前聚合文件的末尾;
更新所述KV数据库中所述修改写命令对应的对象的索引信息和所述当前聚合文件的索引信息。
4.根据权利要求1所述的分布式存储的本地对象存储方法,其特征在于,还包括:
将所述KV数据库中删除命令对应的对象的索引信息,及对应的聚合文件的索引信息中所述删除命令对应的对象的碎片的信息。
5.根据权利要求1所述的分布式存储的本地对象存储方法,其特征在于,还包括:
将有效数据大小与文件大小的比值小于等于回收阈值的聚合文件加入到回收队列;
根据所述回收队列中的聚合文件的索引信息,将所述回收队列中的聚合文件中的有效数据对应的碎片写入到所述当前聚合文件的末尾;
更新所述当前聚合文件的索引信息和所述回收队列中的聚合文件中的有效数据对应的碎片对应的对象的索引信息。
6.根据权利要求1所述的分布式存储的本地对象存储方法,其特征在于,所述将有效数据大小与文件大小的比值小于等于回收阈值的聚合文件加入到回收队列,包括:
将有效数据大小与文件大小的比值小于等于所述回收阈值,且在预设时间段内均未被访问的聚合文件加入到所述回收队列。
7.根据权利要求1至6任一项所述的分布式存储的本地对象存储方法,其特征在于,所述将对象的对象数据写入到当前聚合文件的末尾之前,还包括:
判断所述当前聚合文件的文件大小是否大于或等于容量阈值;
若否,则执行所述将对象的对象数据写入到当前聚合文件的末尾的步骤;
若是,则将下一聚合文件作为所述当前聚合文件,执行所述将对象的对象数据写入到当前聚合文件的末尾的步骤。
8.根据权利要求7所述的分布式存储的本地对象存储方法,其特征在于,所述将对象的对象数据写入到当前聚合文件的末尾,包括:
若当前聚合文件在写入所述对象数据的过程中,所述当前聚合文件的文件大小达到所述容量阈值,则将所述对象数据中未写入到所述当前聚合文件的碎片写入到下一聚合文件,并将所述下一聚合文件作为所述当前聚合文件。
9.一种分布式存储的本地对象存储装置,其特征在于,包括:
数据写入模块,用于将对象的对象数据写入到当前聚合文件的末尾;
第一保存模块,用于将所述对象的元数据全部保存到KV数据库中;
第二保存模块,用于将所述对象和所述当前聚合文件的索引信息保存到所述KV数据库中;其中,所述对象的索引信息包括所述对象数据中的每个碎片在所述对象数据中的偏移量和长度及所述对象数据中的每个碎片所写入的聚合文件的id和偏移量,所述当前聚合文件的索引信息包括写入到所述当前聚合文件的每个碎片在所述当前聚合文件中的偏移量和长度、在对应的对象数据中的偏移量及文件大小和有效数据大小。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的分布式存储的本地对象存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810532022.0A CN108763473A (zh) | 2018-05-29 | 2018-05-29 | 一种分布式存储的本地对象存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810532022.0A CN108763473A (zh) | 2018-05-29 | 2018-05-29 | 一种分布式存储的本地对象存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763473A true CN108763473A (zh) | 2018-11-06 |
Family
ID=64003625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810532022.0A Pending CN108763473A (zh) | 2018-05-29 | 2018-05-29 | 一种分布式存储的本地对象存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763473A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918342A (zh) * | 2019-03-06 | 2019-06-21 | 珠海金山网络游戏科技有限公司 | 一种文件系统 |
CN110716696A (zh) * | 2019-09-27 | 2020-01-21 | 新华三信息安全技术有限公司 | 对象处理方法及相关装置 |
CN111104063A (zh) * | 2019-12-06 | 2020-05-05 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置及电子设备和存储介质 |
CN111309687A (zh) * | 2020-01-21 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
CN111400302A (zh) * | 2019-11-28 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 连续存储数据的修改方法、装置和系统 |
CN112307263A (zh) * | 2020-10-29 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种文件存储方法、装置、设备及介质 |
CN112637616A (zh) * | 2020-12-08 | 2021-04-09 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
WO2021147360A1 (zh) * | 2020-01-21 | 2021-07-29 | 苏州浪潮智能科技有限公司 | 一种异步io数据处理方法、装置、设备及介质 |
CN114116652A (zh) * | 2021-11-29 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种数据聚合存储方法、系统、设备及介质 |
CN115981570A (zh) * | 2023-01-10 | 2023-04-18 | 创云融达信息技术(天津)股份有限公司 | 一种基于kv数据库的分布式对象存储方法和系统 |
CN116136838A (zh) * | 2023-04-19 | 2023-05-19 | 之江实验室 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605726A (zh) * | 2013-11-15 | 2014-02-26 | 中安消技术有限公司 | 一种小文件的存取方法、系统及控制节点和存储节点 |
CN104778270A (zh) * | 2015-04-24 | 2015-07-15 | 成都汇智远景科技有限公司 | 一种用于多文件的存储方法 |
CN105608162A (zh) * | 2015-12-17 | 2016-05-25 | 网易(杭州)网络有限公司 | 文件处理方法和装置 |
CN107704203A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | 聚合大文件的删除方法、装置、设备及计算机存储介质 |
-
2018
- 2018-05-29 CN CN201810532022.0A patent/CN108763473A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605726A (zh) * | 2013-11-15 | 2014-02-26 | 中安消技术有限公司 | 一种小文件的存取方法、系统及控制节点和存储节点 |
CN104778270A (zh) * | 2015-04-24 | 2015-07-15 | 成都汇智远景科技有限公司 | 一种用于多文件的存储方法 |
CN105608162A (zh) * | 2015-12-17 | 2016-05-25 | 网易(杭州)网络有限公司 | 文件处理方法和装置 |
CN107704203A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | 聚合大文件的删除方法、装置、设备及计算机存储介质 |
Non-Patent Citations (2)
Title |
---|
沈阳电力高等专科学校: "《计算机控制系统》", 30 June 1993, 水利电力出版社, pages: 110 * |
赵亮: "《云计算技术与网络安全应用》", 30 September 2017, 电子科技大学出版社, pages: 49 - 50 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918342A (zh) * | 2019-03-06 | 2019-06-21 | 珠海金山网络游戏科技有限公司 | 一种文件系统 |
CN110716696A (zh) * | 2019-09-27 | 2020-01-21 | 新华三信息安全技术有限公司 | 对象处理方法及相关装置 |
CN111400302B (zh) * | 2019-11-28 | 2023-09-19 | 杭州海康威视系统技术有限公司 | 连续存储数据的修改方法、装置和系统 |
CN111400302A (zh) * | 2019-11-28 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 连续存储数据的修改方法、装置和系统 |
WO2021109590A1 (zh) * | 2019-12-06 | 2021-06-10 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置及电子设备和存储介质 |
CN111104063A (zh) * | 2019-12-06 | 2020-05-05 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置及电子设备和存储介质 |
WO2021147360A1 (zh) * | 2020-01-21 | 2021-07-29 | 苏州浪潮智能科技有限公司 | 一种异步io数据处理方法、装置、设备及介质 |
CN111309687A (zh) * | 2020-01-21 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种对象存储小文件处理方法、装置、设备及存储介质 |
CN112307263A (zh) * | 2020-10-29 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种文件存储方法、装置、设备及介质 |
CN112307263B (zh) * | 2020-10-29 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种文件存储方法、装置、设备及介质 |
CN112637616A (zh) * | 2020-12-08 | 2021-04-09 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
CN112637616B (zh) * | 2020-12-08 | 2024-02-23 | 网宿科技股份有限公司 | 一种对象存储方法、系统及服务器 |
CN114116652A (zh) * | 2021-11-29 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种数据聚合存储方法、系统、设备及介质 |
CN115981570A (zh) * | 2023-01-10 | 2023-04-18 | 创云融达信息技术(天津)股份有限公司 | 一种基于kv数据库的分布式对象存储方法和系统 |
CN115981570B (zh) * | 2023-01-10 | 2023-12-29 | 创云融达信息技术(天津)股份有限公司 | 一种基于kv数据库的分布式对象存储方法和系统 |
CN116136838A (zh) * | 2023-04-19 | 2023-05-19 | 之江实验室 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763473A (zh) | 一种分布式存储的本地对象存储方法及装置 | |
US10649910B2 (en) | Persistent memory for key-value storage | |
CN101027651B (zh) | 最佳顺序性簇管理的fat分析 | |
US8549051B2 (en) | Unlimited file system snapshots and clones | |
KR100484147B1 (ko) | 플래시 메모리 관리 방법 | |
CN109496300B (zh) | 一种存储介质垃圾回收方法、存储介质和程序产品 | |
US8024507B2 (en) | Transaction-safe FAT file system improvements | |
US8156165B2 (en) | Transaction-safe FAT files system | |
CN104298681B (zh) | 一种数据存储方法及装置 | |
JP2015144022A (ja) | ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け | |
CN102696010A (zh) | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
US9785547B2 (en) | Data management apparatus and method | |
KR20070060070A (ko) | 최적화된 순차적인 클러스터 관리용 에프에이티 분석 | |
Pitchumani et al. | SMRDB: Key-value data store for shingled magnetic recording disks | |
CN111522507B (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
CN107239526A (zh) | 文件系统实现方法、碎片整理方法、操作位置定位方法 | |
CN105045850B (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
KR101336258B1 (ko) | 비휘발성 메모리의 데이터 처리 장치 및 방법 | |
CN103577513A (zh) | 藉延迟节点实例化以缓存xml信息集的系统和/或方法 | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
CN108733306A (zh) | 一种文件合并方法及装置 | |
Jung et al. | Lifetime-leveling LSM-tree compaction for ZNS SSD | |
CN103473298A (zh) | 数据归档方法和装置以及存储系统 | |
Carniel et al. | A generic and efficient framework for flash-aware spatial indexing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |
|
RJ01 | Rejection of invention patent application after publication |