CN116450591A - 一种数据处理方法、装置、计算机设备及存储介质 - Google Patents

一种数据处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116450591A
CN116450591A CN202310708563.5A CN202310708563A CN116450591A CN 116450591 A CN116450591 A CN 116450591A CN 202310708563 A CN202310708563 A CN 202310708563A CN 116450591 A CN116450591 A CN 116450591A
Authority
CN
China
Prior art keywords
data
storage
file
target
storage file
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.)
Granted
Application number
CN202310708563.5A
Other languages
English (en)
Other versions
CN116450591B (zh
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.)
Beijing Shuding Technology Co ltd
Original Assignee
Beijing Shuding Technology 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 Beijing Shuding Technology Co ltd filed Critical Beijing Shuding Technology Co ltd
Priority to CN202310708563.5A priority Critical patent/CN116450591B/zh
Publication of CN116450591A publication Critical patent/CN116450591A/zh
Application granted granted Critical
Publication of CN116450591B publication Critical patent/CN116450591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/13File access structures, e.g. distributed indices
    • 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/18File system types
    • G06F16/188Virtual file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本公开提供了一种数据处理方法、装置、计算机设备及存储介质,其中,该方法包括:检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定第i+1层位于第二存储位置的第二存储文件;基于第一存储文件中的第一数据与第二存储文件中的第二数据之间的数据对比结果,确定用于写入第二存储文件对应的第三存储文件的目标写入数据,并将目标写入数据写入第三存储文件;确定与第二存储文件对应的目标存储虚拟文件,并在目标存储虚拟文件中建立第三存储文件对应的索引信息,以建立目标存储虚拟文件与第三存储文件之间的关联关系。

Description

一种数据处理方法、装置、计算机设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、计算机设备及存储介质。
背景技术
日志结构合并树(Log-Structured Merge-Tree,LSM-Tree)是一种广泛应用于数据存储领域的多层树形数据结构。在使用日志结构合并树结构的数据存储系统中,数据首先会被缓存在内存空间中,当内存空间达到一定阈值时,内存中的数据会被批量地写入到磁盘空间中。磁盘空间由多层树状存储组件构成,各层存储组件分别对应有存储数据大小的阈值,阈值自上而下呈指数增长。从内存中写入到磁盘空间中的数据会先存储在上层存储组件中,当上层存储组件存储的数据达到阈值时,会通过数据合并操作将本层数据合并到下层存储组件中。
具体的,在数据合并操作时,需要从待合并的上下两个存储组件中各读取一部分数据到内存中进行合并,并在合并后将结果写回下层存储组件,而只有上层存储组件的数据是有效的移动数据,下层存储组件的数据并没有被移动,但下层存储组件的数据仍然需要重复写入到下层存储组件中,从而导致了写入放大的问题,导致数据存储系统中存储设备的性能严重下降,缩短了使用寿命,因此如何解决写入放大问题成为了该领域内亟待解决的问题。
发明内容
本公开实施例至少提供一种数据处理方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种数据处理方法,包括:
检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数;
基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件;
确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
一种可能的实施方式中,所述基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,包括:
将所述第一存储文件中的第一数据与所述第二存储文件中的第二数据进行对比,在所述第一数据与所述第二数据的查询关键字不完全相同的情况下,确定所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据;以及,确定所述第一数据和所述第二数据中,仅存在于所述第二数据中的第二目标数据;
将所述第一目标数据和所述第二目标数据对应的位置信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据;其中,所述第二目标数据对应的位置信息用于生成所述第二目标数据对应的第一局部索引。
一种可能的实施方式中,所述方法还包括:
确定所述第一数据和所述第二数据中,对应有相同查询关键字的数据组合;其中,所述数据组合中包括第一数据中的更新数据,以及所述第二数据中的待更新数据;
针对对应任一相同查询关键字的数据组合,基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件,包括:
对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述方法还包括:
确定所述第一数据中,与所述第二数据对应有相同查询关键字的更新数据,并将所述更新数据写入与所述目标存储虚拟文件具有关联关系的存储文件中;
在所述目标存储虚拟文件中建立所述更新数据对应的第二局部索引,以通过所述第二局部索引从所述更新数据中进行数据查询。
一种可能的实施方式中,在所述目标存储虚拟文件中存储所述第三存储文件对应的索引信息之前,所述方法还包括:
确定与所述目标存储虚拟文件具有关联关系的文件数量;
在检测到所述文件数量大于预设个数的情况下,确定所述目标存储虚拟文件存储的索引信息中,添加时间满足预设添加时间要求的目标索引信息;
将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理,并删除所述目标存储虚拟文件中存储的所述目标索引信息。
一种可能的实施方式中,所述确定与所述第二存储文件对应的目标存储虚拟文件,包括:
将存储所述第二存储文件对应的索引信息的存储虚拟文件,作为所述目标存储虚拟文件;或者,在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,创建与所述第二存储文件对应的目标存储虚拟文件;
所述方法还包括:
在创建与所述第二存储文件对应的目标存储虚拟文件之后,在所述目标存储虚拟文件中存储所述第二存储文件对应的索引信息,以建立所述目标存储虚拟文件与第二存储文件之间的关联关系。
一种可能的实施方式中,所述在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,包括:
在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息;其中,所述索引信息包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征所述第三存储文件中各数据在所述第三存储文件中位置的第三局部索引。
一种可能的实施方式中,所述方法还包括根据以下步骤进行数据查询:
根据接收到的数据查询请求,确定与所述数据查询请求对应的查询关键字;
根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件,以及所述目标查询虚拟文件中待查询的存储文件;
从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容。
一种可能的实施方式中,所述方法还包括根据以下步骤对所述目标存储系统中的数据进行查询:
根据接收到的范围查询请求,确定与所述范围查询请求对应的至少一个存储虚拟文件;
在与所述至少一个存储虚拟文件具有关联关系的存储文件为多个的情况下,将多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器;
基于所述目标迭代器对所述至少一个存储虚拟文件关联的存储文件进行遍历,确定与所述范围查询请求对应的查询结果。
第二方面,本公开实施例还提供一种数据处理装置,包括:
确定模块,用于检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数;
写入模块,用于基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件;
建立模块,用于确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
一种可能的实施方式中,所述写入模块,在基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据时,用于:
将所述第一存储文件中的第一数据与所述第二存储文件中的第二数据进行对比,在所述第一数据与所述第二数据的查询关键字不完全相同的情况下,确定所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据;以及,确定所述第一数据和所述第二数据中,仅存在于所述第二数据中的第二目标数据;
将所述第一目标数据和所述第二目标数据对应的位置信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据;其中,所述第二目标数据对应的位置信息用于生成所述第二目标数据对应的第一局部索引。
一种可能的实施方式中,所述写入模块还用于:
确定所述第一数据和所述第二数据中,对应有相同查询关键字的数据组合;其中,所述数据组合中包括第一数据中的更新数据,以及所述第二数据中的待更新数据;
针对对应任一相同查询关键字的数据组合,基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述写入模块,在基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件时,用于:
对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述建立模块还用于:
确定所述第一数据中,与所述第二数据对应有相同查询关键字的更新数据,并将所述更新数据写入与所述目标存储虚拟文件具有关联关系的存储文件中;
在所述目标存储虚拟文件中建立所述更新数据对应的第二局部索引,以通过所述第二局部索引从所述更新数据中进行数据查询。
一种可能的实施方式中,在所述目标存储虚拟文件中存储所述第三存储文件对应的索引信息之前,所述建立模块还用于:
确定与所述目标存储虚拟文件具有关联关系的文件数量;
在检测到所述文件数量大于预设个数的情况下,确定所述目标存储虚拟文件存储的索引信息中,添加时间满足预设添加时间要求的目标索引信息;
将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理,并删除所述目标存储虚拟文件中存储的所述目标索引信息。
一种可能的实施方式中,所述建立模块,在确定与所述第二存储文件对应的目标存储虚拟文件时,用于:
将存储所述第二存储文件对应的索引信息的存储虚拟文件,作为所述目标存储虚拟文件;或者,在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,创建与所述第二存储文件对应的目标存储虚拟文件;
所述建立模块还用于:
在创建与所述第二存储文件对应的目标存储虚拟文件之后,在所述目标存储虚拟文件中存储所述第二存储文件对应的索引信息,以建立所述目标存储虚拟文件与第二存储文件之间的关联关系。
一种可能的实施方式中,所述建立模块,在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息时,用于:
在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息;其中,所述索引信息包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征所述第三存储文件中各数据在所述第三存储文件中位置的第三局部索引。
一种可能的实施方式中,所述装置还包括查询模块,所述查询模块用于根据以下步骤进行数据查询:
根据接收到的数据查询请求,确定与所述数据查询请求对应的查询关键字;
根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件,以及所述目标查询虚拟文件中待查询的存储文件;
从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容。
一种可能的实施方式中,所述查询模块,还用于根据以下步骤对所述目标存储系统中的数据进行查询:
根据接收到的范围查询请求,确定与所述范围查询请求对应的至少一个存储虚拟文件;
在与所述至少一个存储虚拟文件具有关联关系的存储文件为多个的情况下,将多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器;
基于所述目标迭代器对所述至少一个存储虚拟文件关联的存储文件进行遍历,确定与所述范围查询请求对应的查询结果。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的数据处理方法、装置、计算机设备及存储介质,在检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件的情况下,将需要进行数据合并操作的第一存储文件和第二存储文件进行数据对比,并基于数据对比结果确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,这样,第二存储文件和第三存储文件可以构成数据合并后的全量数据,但需要写入的仅是第三存储文件中的数据,因此通过第一存储文件和第二存储文件的数据对比结果生成的目标写入数据,相较于将第一存储文件和第二存储文件的数据进行重组后生成的写入数据,需要重新写入的数据较少,无需将第一存储文件和第二存储文件的全量数据进行重写;另一方面,在确定写入所述第三存储文件的目标写入数据后,确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,从而可以基于所述目标存储虚拟文件中存储的索引信息,对与所述目标存储虚拟文件具有索引信息的存储文件中存储的数据进行查询。这样,能够通过目标存储虚拟文件中存储的第三存储文件对应的索引信息对写入的所述第三存储文件中的数据进行正常使用,从而可以在确保存储系统中数据正常使用的前提下,减少数据写入量。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据处理方法的流程图;
图2示出了本公开实施例所提供的一种数据处理方法中,目标存储系统中存储虚拟文件与存储文件之间关系的示意图;
图3示出了本公开实施例所提供的一种数据处理装置的架构示意图;
图4示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,在使用日志结构合并树结构的数据存储系统中,数据首先会被缓存在内存空间中,当内存空间达到一定阈值时,内存中的数据会被批量地写入到磁盘空间中。磁盘空间由多层树状存储组件构成,各层存储组件分别对应有存储数据大小的阈值,阈值自上而下呈指数增长。从内存中写入到磁盘空间中的数据会先存储在上层存储组件中,当上层存储组件存储的数据达到阈值时,会通过数据合并操作将本层数据合并到下层存储组件中。
具体的,在数据合并操作时,需要从待合并的上下两个存储组件中各读取一部分数据到内存中进行合并,并在合并后将结果写回下层存储组件,而只有上层存储组件的数据是有效的移动数据,下层存储组件的数据并没有被移动,但下层存储组件的数据仍然需要重复写入到下层存储组件中,从而导致了写入放大的问题。
相关技术中,为了解决写入放大的问题,采用了下述多种方案,但下述方案中仍存在相应的缺陷:
方案1、增大文件大小限制,减少数据分层的层数。
在这种方案下,对写入放大的减少有限,而且在一定的查询条件下(比如要求数据有序)会增加查询成本。
方案2、冷热键分离,减少热键频繁重写。
在这种方案下,会增加数据的存储成本,而且由于添加了异步的冷热键区分的数据处理逻辑,还会增加数据写入成本和数据查询成本。
方案3、键值分离,查询关键字key和查询内容value分开存储。
在这种方案下,虽然能够一定程度上解决写入放大的问题,但同时带来一些其他问题,比如增加读取放大等。
基于上述研究,本公开提供了一种数据处理方法、装置、计算机设备及存储介质,在检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件的情况下,将需要进行数据合并操作的第一存储文件和第二存储文件进行数据对比,并基于数据对比结果确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,这样,第二存储文件和第三存储文件可以构成数据合并后的全量数据,但需要写入的仅是第三存储文件中的数据,因此通过第一存储文件和第二存储文件的数据对比结果生成的目标写入数据,相较于将第一存储文件和第二存储文件的数据进行重组后生成的写入数据,需要重新写入的数据较少,无需将第一存储文件和第二存储文件的全量数据进行重写;另一方面,在确定写入所述第三存储文件的目标写入数据后,确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,从而可以基于所述目标存储虚拟文件中存储的索引信息,对与所述目标存储虚拟文件具有索引信息的存储文件中存储的数据进行查询。这样,能够通过目标存储虚拟文件中存储的第三存储文件对应的索引信息对写入的所述第三存储文件中的数据进行正常使用,从而可以在确保存储系统中数据正常使用的前提下,减少数据写入量。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理方法进行详细介绍,本公开实施例所提供的数据处理方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、个人数字助理(PersonalDigital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该数据处理方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的数据处理方法的流程图,所述方法包括S101~S103,其中:
S101:检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数。
S102:基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件。
S103:确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
以下是对上述步骤的详细介绍。
针对S101,所述目标存储系统可以为使用多层属性数据结构进行数据存储的存储系统,例如使用LSM-Tree结构进行数据存储的存储系统,所述目标存储系统中可以包含至少一个用于存储数据的持久化设备,所述持久化设备可以包括机械硬盘(Hard DiskDrive,HDD)、固态硬盘(Solid State Disk,SSD)等;第i层的第一存储文件对应的数据合并条件可以为,所述第一存储文件需要存储的数据量大于预设的数据量阈值。
具体的,在确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置时,可以预设的第i层存储文件对应的存储位置,与第i+1层存储文件对应的存储位置之间的数据合并关系,从第i+1层对应的存储空间中确定出与所述第一存储位置具有数据合并关系的第二存储位置;在确定所述第i+1层位于所述第二存储位置的第二存储文件时,可以将包含所述第二存储位置中数据的存储文件作为第i+1层位于所述第二存储位置的第二存储文件。
示例性的,第i层存储文件对应的存储位置,与第i+1层存储文件对应的存储位置之间的数据合并关系可以是,第1层中的第m个存储位置,与第2层中的第n个存储位置存在数据合并关系,所述m和n可以为预设正整数。
需要说明的是,所述目标存储系统中各层存储文件的层序号可以设置为任意整数值,比如所述目标存储系统中可以包含第0层~第3层总共4层存储文件,所述目标存储系统中包含的存储文件的层数可以根据所述目标存储系统中包含的持久化设备的数量、存储空间大小、读写速度、写入数据量预估值等参数中的至少一项进行设置。
针对S102、
这里,所述第一数据表示所述第一存储文件中存储的数据;所述第二数据表示所述第二存储文件中存储的数据;所述第三存储文件可以与所述第二存储文件位于所述目标存储系统的同一层中。
一种可能的实施方式中,在确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据时,可以通过以下步骤A1~A2:
A1:将所述第一存储文件中的第一数据与所述第二存储文件中的第二数据进行对比,在所述第一数据与所述第二数据的查询关键字不完全相同的情况下,确定所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据;以及,确定所述第一数据和所述第二数据中,仅存在于所述第二数据中的第二目标数据。
其中,在对所述第一存储文件中的第一数据和所述第二存储文件中的第二数据进行对比时,可以使用第一数据对应的键值对中的查询关键字,与所述第二数据对应的键值对中的查询关键字进行对比;所述查询关键字与数据的对应关系可以通过键值对进行表示,例如可以通过key-value键值对进行表示。
示例性的,以所述第一数据对应的键值对中的查询关键字为A、B、C,所述第二数据对应的键值对中的查询关键字为D和E为例,则所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据为A、B、C,仅存在于所述第二数据中的第二目标数据为D和E。
A2:将所述第一目标数据和所述第二目标数据对应的位置信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据;其中,所述第二目标数据对应的位置信息用于生成所述第二目标数据对应的第一局部索引。
这里,除了可以将所述第二目标数据对应的位置信息作为所述目标写入数据,还可以将所述第二目标数据对应的除所述位置信息外,其他的属性信息作为所述目标写入数据,所述其他的属性信息可以包括添加时间等。
承接上例,在确定第一目标数据和第二目标数据后,可以将所述第一目标数据A、B、C分别对应的数据,以及所述第二目标数据D和E分别对应的位置信息,作为写入所述第二存储文件对应的第三存储文件的目标写入数据。
这样,通过将所述第一目标数据,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据,可以在进行数据更新时无需对原本存在于所述第二存储文件中的数据进行重写,而是将需要更新的增量数据(也即仅存在于所述第一数据中的第一目标数据)写入到与所述第二存储文件中对应的第三存储文件中,相较于将增量数据和第二存储文件中的数据重新写入所述第二存储文件中,能够有效的减少写入数据量;
另一方面,通过将所述第二目标数据对应的位置信息等属性信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据,可以基于所述第二目标数据对应的位置信息生成的局部索引,快速的对所述第二目标数据进行查找,并基于所述属性信息对所述第二存储文件中的第二目标数据进行管理。
实际应用中,在数据合并时除了上述增量数据更新的情况,还可以包括更新数据对原有数据进行更新的情况,比如第一数据对应的键值对和第二数据对应的键值对中均包含查询关键字A,也即此时需要对查询关键字A对应的数据进行更新。
进一步的,还可以通过以下步骤C1~C2对所述第二存储文件进行更新:
C1:确定所述第一数据和所述第二数据中,对应有相同查询关键字的数据组合;其中,所述数据组合中包括第一数据中的更新数据,以及所述第二数据中的待更新数据。
示例性的,以所述第一数据对应的键值对中的查询关键字为A、B、C,所述第二数据对应的键值对中的查询关键字为A、D、E为例,则查询关键字A相同查询关键字,此时可以确定第一数据中与查询关键字A对应的数据为更新数据,所述第二数据中与所述查询关键字A对应的数据为待更新数据。
C2:针对对应任一相同查询关键字的数据组合,基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
这里,在多相同查询关键字为多个的情况下,针对对应任一所述相同查询关键字的数据组合,可以基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
承接上例,可以使用第一数据中与查询关键字A对应的更新数据,对所述第二数据中与所述查询关键字A对应的待更新数据进行更新,从而对所述第二存储文件中与查询关键字A对应的数据进行更新。
一种可能的实施方式中,在对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件时,可以对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
其中,在对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中时,可以对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行排序处理,并将排序处理后得到的排序数据顺序写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
这样,虽仍然使用了更新数据对所述第二存储文件中的数据进行了重组处理和数据写入等数据重写的操作,但在判断数据合并时是否需要进行数据重写时使用键值对作为判断的粒度,并在存在更新数据的情况下才对第二存储文件中进行相应的数据重写操作,相较于无论是否对第二存储文件中的数据进行更新,均直接使用全部的第一数据作为数据重写时使用的数据,以对所述第二存储文件中的数据进行重写操作,通过设置更为合适的判断粒度,能够减少由于对所述第二存储文件进行频繁数据重写所导致的数据写入量过大的问题。
另一种可能的实施方式中,还可以通过以下步骤D1~D2存储与所述更新数据对应的局部索引,以基于所述局部索引对所述更新数据进行数据查询:
D1:确定所述第一数据中,与所述第二数据对应有相同查询关键字的更新数据,并将所述更新数据写入与所述目标存储虚拟文件具有关联关系的存储文件中。
这里,写入的与所述目标存储虚拟文件具有关联关系的存储文件,可以是与所述存在关联关系的存储文件中存储数据的数据量最小的存储文件,由于存储数据的数据量最小,因此在数据写入时需要重新写入数据的数据量也相应的较小;或者,还可以新建第四存储文件,并在所述第四存储文件中写入所述更新数据,建立所述第四存储文件与所述目标存储虚拟文件之间的关联关系,从而能够通过所述目标存储虚拟文件对所述更新数据进行查询。
其中,所述目标存储虚拟文件将在下文进行详细介绍,在此不再展开说明。
D2:在所述目标存储虚拟文件中建立所述更新数据对应的第二局部索引,以通过所述第二局部索引从所述更新数据中进行数据查询。
其中,所述第二局部索引用于从与所述目标存储虚拟文件具有关联关系的存储文件中,快速的查询到所述更新数据。
这样,无需使用更新数据直接对所述第二存储文件中的数据进行更新,即可通过存在更新数据对应的第二局部索引的方式,能够在后续进行数据查询时使用所述第二局部索引找到更新后的更新数据,从而可以避免对所述第二存储文件进行数据重写所导致的写入放大的问题。
针对S103、
这里,与所述第二存储文件对应的目标存储虚拟文件,用于对包含所述第二存储文件在内的具有关联关系的存储文件中的数据进行查询;存储虚拟文件可以关联有多个存储文件,任一存储虚拟文件可以对该存储虚拟文件关联的存储文件进行查询和管理;存储虚拟文件与存储文件之间的关联关系还可以通过存储虚拟文件与存储文件之间的索引映射关系表示,任一存储文件对应的索引信息在添加至存储虚拟文件时,可以在所述存储虚拟文件中建立该存储文件与所述存储虚拟文件之间的索引映射关系,从而可以使得所述存储虚拟文件可以根据建立的所述索引映射关系对存储文件进行快速定位;所述索引信息可以包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征存储文件中各数据在存储文件中位置的局部索引,所述索引信息可以为哈希索引,在创建所述索引信息时可以按照预设的哈希索引建立方法进行建立。
示例性的,所述目标存储系统中存储虚拟文件与存储文件之间关系的示意图可以如图2所示,图2中,在所述目标存储系统的磁盘存储空间中包含3层存储文件,其中的第0层中包含2个存储文件,第1层中包含4个存储虚拟文件,各存储虚拟文件关联有2个存储文件,在读取所述第1层中的任一存储文件中的数据时,可以通过该存储文件关联的存储虚拟文件进行查询,第2层中包含6个存储虚拟文件,各存储虚拟文件关联有2个或3个存储文件,在读取所述第2层中的任一存储文件中的数据时,可以通过该存储文件关联的存储虚拟文件进行查询。
实际应用中,当存储虚拟文件关联的存储文件的数量过多时,可能会出现查询速度较慢等问题,因此可以针对存储虚拟文件可以关联的存储文件的数量设置上限,避免一个存储虚拟文件关联过多存储文件造成的各种可能出现的问题。
一种可能的实施方式中,在所述目标存储虚拟文件中存储所述第三存储文件对应的索引信息之前,还可以通过以下步骤E1~E3删除所述目标存储虚拟文件中存储的所述目标索引信息:
E1:确定与所述目标存储虚拟文件具有关联关系的文件数量。
E2:在检测到所述文件数量大于预设个数的情况下,确定所述目标存储虚拟文件存储的索引信息中,添加时间满足预设添加时间要求的目标索引信息。
这里,所述预设个数例如可以是为5;所述预设添加时间要求可以为添加时间最早。
一种可能的实施方式中,为了能够快速的确定出添加时间最早的目标索引信息,在所述目标存储虚拟文件中存储索引信息时,可以将需要存储的索引信息存储至预设队列中,所述预设队列对应的最大队列长度即为所述预设个数,这样每次添加任一存储文件对应的索引信息时,可以将该存储文件对应的索引信息添加至所述预设队列的队尾中,队首的索引信息即为添加时间最早的目标索引信息。
示例性的,以所述预设个数为5为例,则目标存储虚拟文件对应的预设队列的最大队列长度即为5,当存储文件1~5分别对应的索引信息依次存储至所述预设队列中时,最早添加至预设队列中的存储文件1对应的索引信息即位于队首(也称队头),最晚添加至预设队列中的存储文件5对应的索引信息即位于队尾,当新添加存储文件6对应的索引信息时,则可以确定出最早添加至所述预设队列中的目标索引信息为存储文件1对应的索引信息。
E3:将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理,并删除所述目标存储虚拟文件中存储的所述目标索引信息。
这里,在将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理时,由于其他存储文件中可以包含所述目标存储文件对应的位置信息(参见上文A1~A2相关内容),因此可以确定出仅存在于所述目标存储文件的有效数据,并将确定出的所述有效数据存储至所述其他存储文件中。
具体的,在将所述有效数据存储至所述其他存储文件时,可以将所述有效数据存储至所述其他存储文件中对应存储数据的数据量最小的存储文件,由于存储数据的数据量最小,因此在数据写入时需要重新写入数据的数据量也相应的较小。
具体的,在删除所述目标存储虚拟文件中存储的所述目标索引信息时,可以采用队列的队首删除机制,对最早添加至所述目标存储虚拟文件对应的预设队列的目标索引信息进行删除。
一种可能的实施方式中,在确定与所述第二存储文件对应的目标存储虚拟文件时,可以通过以下方式中的任一种:
方式1、将存储所述第二存储文件对应的索引信息的存储虚拟文件,作为所述目标存储虚拟文件。
这里,为了便于后续通过存储虚拟文件进行数据查询和管理,在构建所述目标存储系统中的数据架构时,可以预先为各层存储文件配置对应的虚拟文件,并将存储文件对应的索引信息存储至对应的存储虚拟文件时。因此,若任一存储虚拟文件存储有所述第二存储文件对应的索引信息,则该存储虚拟文件即为与所述第二存储文件具有关联关系的目标存储虚拟文件。
方式2、在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,创建与所述第二存储文件对应的目标存储虚拟文件。
这里,所述存储虚拟文件也可以在具体使用时进行建立,也即在所述目标存储系统中的数据架构建立时并不包含所述存储虚拟文件,在需要对存储文件进行数据写入等操作时,针对需要执行相关操作的存储文件创建对应的存储虚拟文件,并在将与创建的存储虚拟文件具有关联关系的存储文件的索引信息存储至创建的存储虚拟文件中。
因此,在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,可以创建与所述第二存储文件对应的目标存储虚拟文件,并将创建的所述目标存储虚拟文件作为确定出的所述第二存储文件对应的目标存储虚拟文件。
进一步的,在创建与所述第二存储文件对应的目标存储虚拟文件之后,还可以在所述目标存储虚拟文件中存储所述第二存储文件对应的索引信息,以建立所述目标存储虚拟文件与第二存储文件之间的关联关系。
一种可能的实施方式中,在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息时,可以在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息;
其中,所述第三存储文件对应的索引信息可以包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征所述第三存储文件中各数据在所述第三存储文件中位置的第三局部索引。
一种可能的实施方式中,可以根据以下步骤F1~F3进行数据查询:
F1:根据接收到的数据查询请求,确定与所述数据查询请求对应的查询关键字。
F2:根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件,以及所述目标查询虚拟文件中待查询的存储文件。
这里,在根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件时,可以根据查询关键字获取与所述查询关键字对应的全局索引,并将包含所述全局索引的存储虚拟文件,作为所述目标查询虚拟文件。
具体的,在确定所述目标查询虚拟文件中待查询的存储文件时,可以根据查询关键字与存储文件之间的映射关系,确定所述目标查询虚拟文件具有关联关系的各查询文件中,与所述查询关键字匹配的所述待查询的存储文件。
F3:从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容。
这里,由于局部索引中包含了查询关键字匹配的查询内容在存储文件中的具体位置,因此可以根据所述查询关键字,确定待查询的存储文件,并从所述待查询的存储文件中,根据目标查询虚拟文件中存储的与所述查询关键字匹配的局部索引,获取与所述查询关键字匹配的查询内容。
此外,在从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容,还可以通过二分法对所述待查询的存储文件进行查询,获取与所述查询关键字匹配的查询内容。
这样,可以在包含存储虚拟文件的目标存储系统中根据查询关键字进行快速的数据查询,而在进行数据查询时;以查询内容位于第二存储文件中的数据为例,由于第二存储文件对应的索引信息存储在所述目标查询虚拟文件中,因此相较于不包含虚拟文件的数据存储系统,包含目标查询虚拟文件的数据存储系统中可以通过所述目标查询虚拟文件中包含的索引信息,对与所述目标查询虚拟文件具有关联关系的第二存储文件中的数据进行查询。
实际应用中,数据存储系统除了可以使用查询关键字进行数据查询外,还可以进行范围查询,而范围查询时需要使用迭代器对存储文件中的数据进行顺序范围查询。
一种可能的实施方式中,还可以根据以下步骤G1~G3进行范围查询:
G1:根据接收到的范围查询请求,确定与所述范围查询请求对应的至少一个存储虚拟文件。
G2:在与所述至少一个存储虚拟文件具有关联关系的存储文件为多个的情况下,将多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器。
这里,由于存储虚拟文件具有关联关系的存储文件为多个,因此各存储文件分别对应有迭代器,为了能够确保对存储虚拟文件具有关联关系的多个存储文件进行顺序范围查询的查询结果的准确性,可以将所述多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器。
G3:基于所述目标迭代器对所述至少一个存储虚拟文件关联的存储文件进行遍历,确定与所述范围查询请求对应的查询结果。
这里,由于针对存储虚拟文件设置了迭代器的并归排序处理机制,可以将存储虚拟文件关联的各存储文件对应的迭代器合并为目标迭代器,从而可以使得在对存储虚拟文件对应的存储文件进行范围查询时能够做到全局有序范围扫描,便于在有序存储的数据存储系统中进行快速的数据范围查询。
一种可能的实施方式中,针对不同类型的查询请求,所述目标存储系统可以设置不同数据存储格式以针对性的提高查询请求的响应性能。
其中,针对对应有查询关键字的数据查询请求,可以通过上述F1~F3对所述数据查询请求进行快速响应,快速得到数据查询结果;针对大范围顺序数据查询请求,可以选择将所述目标存储系统中的数据存储格式设置为有序存储,并通过上述G1~G3对所述大范围顺序数据查询请求进行快速响应,快速得到数据范围查询结果。
下面,对本公开实施例提供的数据合并操作进行介绍,数据合并操作可以包括以下步骤:
步骤1:检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数。
步骤2:对所述第二存储文件对应的目标存储虚拟文件中的索引信息进行更新。
这里,对所述目标存储虚拟文件的索引信息进行更新,包括根据所述第一存储文件和所述第二存储文件中包含的全量数据生成全局索引,以通过所述全局索引查询到包含所述全量数据的存储文件,为所述第二存储文件对应的目标存储虚拟文件,然后通过所述目标存储虚拟文件对所述全量数据中的数据进行查询。
步骤3:基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定是否需要进行数据更新;以及,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据。
这里,在确定是否需要进行数据更新时,可以根据所述第一数据和所述第二数据中是否存在对应有相同查询关键字的数据,具体判断过程可以参照上文更新数据和待更新数据的相关内容,在此不再赘述;若需要进行数据更新,则执行步骤4~步骤5;而若不需要进行数据更新,则执行步骤5。
步骤4:对所述第二存储文件中的数据进行更新。
这里,对所述第二存储文件中的数据进行更新的具体更新方式可以参照上文相关内容,在此不再赘述。
具体的,在对所述第二存储文件中的数据进行更新后,还可以将所述第二存储文件在所述目标存储虚拟文件对应的文件序号进行更新,以将所述第二存储文件对应的文件序号更新至预设位置处(例如首位),这样在后续对所述目标存储虚拟文件具有关联关系的存储文件进行合并操作并建立新的存储文件时,可以延后更新后的第二存储文件对应的删除顺序,与删除有关的描述可以参照上述E1~E3的相关内容,在此不再赘述。
步骤5:对所述目标存储虚拟文件中的索引信息进行更新。
这里,对所述目标存储虚拟文件中的索引信息进行更新,可以使得与所述目标存储虚拟文件具有关联关系的各存储文件的索引信息均存储至所述目标存储虚拟文件中,以便于对各存储文件进行数据查询。
具体的,关于如何对所述目标存储虚拟文件中的索引信息进行更新的描述内容,可以参照上文S103在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息的相关内容,在此不再赘述。
本公开实施例提供的的数据处理方法,在检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件的情况下,将需要进行数据合并操作的第一存储文件和第二存储文件进行数据对比,并基于数据对比结果确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,这样,第二存储文件和第三存储文件可以构成数据合并后的全量数据,但需要写入的仅是第三存储文件中的数据,因此通过第一存储文件和第二存储文件的数据对比结果生成的目标写入数据,相较于将第一存储文件和第二存储文件的数据进行重组后生成的写入数据,需要重新写入的数据较少,无需将第一存储文件和第二存储文件的全量数据进行重写;另一方面,在确定写入所述第三存储文件的目标写入数据后,确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,从而可以基于所述目标存储虚拟文件中存储的索引信息,对与所述目标存储虚拟文件具有索引信息的存储文件中存储的数据进行查询。这样,能够通过目标存储虚拟文件中存储的第三存储文件对应的索引信息对写入的所述第三存储文件中的数据进行正常使用,从而可以在确保存储系统中数据正常使用的前提下,减少数据写入量。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据处理方法对应的数据处理装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图2所示,为本公开实施例提供的一种数据处理装置的架构示意图,所述装置包括:确定模块301、写入模块302、建立模块303;其中,
确定模块301,用于检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数;
写入模块302,用于基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件;
建立模块303,用于确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
一种可能的实施方式中,所述写入模块302,在基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据时,用于:
将所述第一存储文件中的第一数据与所述第二存储文件中的第二数据进行对比,在所述第一数据与所述第二数据的查询关键字不完全相同的情况下,确定所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据;以及,确定所述第一数据和所述第二数据中,仅存在于所述第二数据中的第二目标数据;
将所述第一目标数据和所述第二目标数据对应的位置信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据;其中,所述第二目标数据对应的位置信息用于生成所述第二目标数据对应的第一局部索引。
一种可能的实施方式中,所述写入模块302还用于:
确定所述第一数据和所述第二数据中,对应有相同查询关键字的数据组合;其中,所述数据组合中包括第一数据中的更新数据,以及所述第二数据中的待更新数据;
针对对应任一相同查询关键字的数据组合,基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述写入模块302,在基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件时,用于:
对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述建立模块303还用于:
确定所述第一数据中,与所述第二数据对应有相同查询关键字的更新数据,并将所述更新数据写入与所述目标存储虚拟文件具有关联关系的存储文件中;
在所述目标存储虚拟文件中建立所述更新数据对应的第二局部索引,以通过所述第二局部索引从所述更新数据中进行数据查询。
一种可能的实施方式中,在所述目标存储虚拟文件中存储所述第三存储文件对应的索引信息之前,所述建立模块303还用于:
确定与所述目标存储虚拟文件具有关联关系的文件数量;
在检测到所述文件数量大于预设个数的情况下,确定所述目标存储虚拟文件存储的索引信息中,添加时间满足预设添加时间要求的目标索引信息;
将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理,并删除所述目标存储虚拟文件中存储的所述目标索引信息。
一种可能的实施方式中,所述建立模块303,在确定与所述第二存储文件对应的目标存储虚拟文件时,用于:
将存储所述第二存储文件对应的索引信息的存储虚拟文件,作为所述目标存储虚拟文件;或者,在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,创建与所述第二存储文件对应的目标存储虚拟文件;
所述建立模块303还用于:
在创建与所述第二存储文件对应的目标存储虚拟文件之后,在所述目标存储虚拟文件中存储所述第二存储文件对应的索引信息,以建立所述目标存储虚拟文件与第二存储文件之间的关联关系。
一种可能的实施方式中,所述建立模块303,在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息时,用于:
在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息;其中,所述索引信息包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征所述第三存储文件中各数据在所述第三存储文件中位置的第三局部索引。
一种可能的实施方式中,所述装置还包括查询模块304,所述查询模块304用于根据以下步骤进行数据查询:
根据接收到的数据查询请求,确定与所述数据查询请求对应的查询关键字;
根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件,以及所述目标查询虚拟文件中待查询的存储文件;
从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容。
一种可能的实施方式中,所述查询模块304,还用于根据以下步骤对所述目标存储系统中的数据进行查询:
根据接收到的范围查询请求,确定与所述范围查询请求对应的至少一个存储虚拟文件;
在与所述至少一个存储虚拟文件具有关联关系的存储文件为多个的情况下,将多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器;
基于所述目标迭代器对所述至少一个存储虚拟文件关联的存储文件进行遍历,确定与所述范围查询请求对应的查询结果。
本公开实施例提供的数据处理装置,在检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件的情况下,将需要进行数据合并操作的第一存储文件和第二存储文件进行数据对比,并基于数据对比结果确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,这样,第二存储文件和第三存储文件可以构成数据合并后的全量数据,但需要写入的仅是第三存储文件中的数据,因此通过第一存储文件和第二存储文件的数据对比结果生成的目标写入数据,相较于将第一存储文件和第二存储文件的数据进行重组后生成的写入数据,需要重新写入的数据较少,无需将第一存储文件和第二存储文件的全量数据进行重写;另一方面,在确定写入所述第三存储文件的目标写入数据后,确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,从而可以基于所述目标存储虚拟文件中存储的索引信息,对与所述目标存储虚拟文件具有索引信息的存储文件中存储的数据进行查询。这样,能够通过目标存储虚拟文件中存储的第三存储文件对应的索引信息对写入的所述第三存储文件中的数据进行正常使用,从而可以在确保存储系统中数据正常使用的前提下,减少数据写入量。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图4所示,为本公开实施例提供的计算机设备400的结构示意图,包括处理器401、存储器402、和总线403。其中,存储器402用于存储执行指令,包括内存4021和外部存储器4022;这里的内存4021也称内存储器,用于暂时存放处理器401中的运算数据,以及与硬盘等外部存储器4022交换的数据,处理器401通过内存4021与外部存储器4022进行数据交换,当计算机设备300运行时,处理器401与存储器402之间通过总线403通信,使得处理器401在执行以下指令:
检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数;
基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件;
确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
一种可能的实施方式中,所述处理器401的指令中,所述基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,包括:
将所述第一存储文件中的第一数据与所述第二存储文件中的第二数据进行对比,在所述第一数据与所述第二数据的查询关键字不完全相同的情况下,确定所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据;以及,确定所述第一数据和所述第二数据中,仅存在于所述第二数据中的第二目标数据;
将所述第一目标数据和所述第二目标数据对应的位置信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据;其中,所述第二目标数据对应的位置信息用于生成所述第二目标数据对应的第一局部索引。
一种可能的实施方式中,所述处理器401的指令中,还包括:
确定所述第一数据和所述第二数据中,对应有相同查询关键字的数据组合;其中,所述数据组合中包括第一数据中的更新数据,以及所述第二数据中的待更新数据;
针对对应任一相同查询关键字的数据组合,基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述处理器401的指令中,所述基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件,包括:
对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
一种可能的实施方式中,所述处理器401的指令中,还包括:
确定所述第一数据中,与所述第二数据对应有相同查询关键字的更新数据,并将所述更新数据写入与所述目标存储虚拟文件具有关联关系的存储文件中;
在所述目标存储虚拟文件中建立所述更新数据对应的第二局部索引,以通过所述第二局部索引从所述更新数据中进行数据查询。
一种可能的实施方式中,所述处理器401的指令中,在所述目标存储虚拟文件中存储所述第三存储文件对应的索引信息之前,还包括:
确定与所述目标存储虚拟文件具有关联关系的文件数量;
在检测到所述文件数量大于预设个数的情况下,确定所述目标存储虚拟文件存储的索引信息中,添加时间满足预设添加时间要求的目标索引信息;
将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理,并删除所述目标存储虚拟文件中存储的所述目标索引信息。
一种可能的实施方式中,所述处理器401的指令中,所述确定与所述第二存储文件对应的目标存储虚拟文件,包括:
将存储所述第二存储文件对应的索引信息的存储虚拟文件,作为所述目标存储虚拟文件;或者,在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,创建与所述第二存储文件对应的目标存储虚拟文件;
还包括:
在创建与所述第二存储文件对应的目标存储虚拟文件之后,在所述目标存储虚拟文件中存储所述第二存储文件对应的索引信息,以建立所述目标存储虚拟文件与第二存储文件之间的关联关系。
一种可能的实施方式中,所述处理器401的指令中,所述在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,包括:
在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息;其中,所述索引信息包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征所述第三存储文件中各数据在所述第三存储文件中位置的第三局部索引。
一种可能的实施方式中,所述处理器401的指令中,还包括根据以下步骤进行数据查询:
根据接收到的数据查询请求,确定与所述数据查询请求对应的查询关键字;
根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件,以及所述目标查询虚拟文件中待查询的存储文件;
从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容。
一种可能的实施方式中,所述处理器401的指令中,还包括根据以下步骤对所述目标存储系统中的数据进行查询:
根据接收到的范围查询请求,确定与所述范围查询请求对应的至少一个存储虚拟文件;
在与所述至少一个存储虚拟文件具有关联关系的存储文件为多个的情况下,将多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器;
基于所述目标迭代器对所述至少一个存储虚拟文件关联的存储文件进行遍历,确定与所述范围查询请求对应的查询结果。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (13)

1.一种数据处理方法,其特征在于,包括:
检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数;
基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件;
确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,包括:
将所述第一存储文件中的第一数据与所述第二存储文件中的第二数据进行对比,在所述第一数据与所述第二数据的查询关键字不完全相同的情况下,确定所述第一数据和所述第二数据中,仅存在于所述第一数据中的第一目标数据;以及,确定所述第一数据和所述第二数据中,仅存在于所述第二数据中的第二目标数据;
将所述第一目标数据和所述第二目标数据对应的位置信息,作为用于写入所述第二存储文件对应的第三存储文件的目标写入数据;其中,所述第二目标数据对应的位置信息用于生成所述第二目标数据对应的第一局部索引。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定所述第一数据和所述第二数据中,对应有相同查询关键字的数据组合;其中,所述数据组合中包括第一数据中的更新数据,以及所述第二数据中的待更新数据;
针对对应任一相同查询关键字的数据组合,基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件。
4.根据权利要求3所述的方法,其特征在于,所述基于该数据组合中的更新数据,对所述第二数据中的待更新数据进行更新,得到更新后的第二存储文件,包括:
对该数据组合中的更新数据和所述第二数据中除所述待更新数据外的其他数据进行重组处理,并将重组处理后得到的重组数据写入所述第二存储文件中,以对所述第二存储文件中的待更新数据进行更新,得到更新后的第二存储文件。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
确定所述第一数据中,与所述第二数据对应有相同查询关键字的更新数据,并将所述更新数据写入与所述目标存储虚拟文件具有关联关系的存储文件中;
在所述目标存储虚拟文件中建立所述更新数据对应的第二局部索引,以通过所述第二局部索引从所述更新数据中进行数据查询。
6.根据权利要求3或4所述的方法,其特征在于,在所述目标存储虚拟文件中存储所述第三存储文件对应的索引信息之前,所述方法还包括:
确定与所述目标存储虚拟文件具有关联关系的文件数量;
在检测到所述文件数量大于预设个数的情况下,确定所述目标存储虚拟文件存储的索引信息中,添加时间满足预设添加时间要求的目标索引信息;
将所述目标索引信息对应的目标存储文件中的数据,与除所述目标存储文件外的其他存储文件进行数据合并处理,并删除所述目标存储虚拟文件中存储的所述目标索引信息。
7.根据权利要求1所述的方法,其特征在于,所述确定与所述第二存储文件对应的目标存储虚拟文件,包括:
将存储所述第二存储文件对应的索引信息的存储虚拟文件,作为所述目标存储虚拟文件;或者,在存储所述第二存储文件对应的索引信息的存储虚拟文件为空的情况下,创建与所述第二存储文件对应的目标存储虚拟文件;
所述方法还包括:
在创建与所述第二存储文件对应的目标存储虚拟文件之后,在所述目标存储虚拟文件中存储所述第二存储文件对应的索引信息,以建立所述目标存储虚拟文件与第二存储文件之间的关联关系。
8.根据权利要求1所述的方法,其特征在于,所述在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,包括:
在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息;其中,所述索引信息包括表征存储文件在所述目标存储系统中位置的全局索引,以及表征所述第三存储文件中各数据在所述第三存储文件中位置的第三局部索引。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括根据以下步骤进行数据查询:
根据接收到的数据查询请求,确定与所述数据查询请求对应的查询关键字;
根据所述查询关键字,从多个存储虚拟文件中,确定包含与所述查询关键字对应的全局索引的目标查询虚拟文件,以及所述目标查询虚拟文件中待查询的存储文件;
从所述待查询的存储文件中,获取与所述查询关键字匹配的查询内容。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括根据以下步骤对所述目标存储系统中的数据进行查询:
根据接收到的范围查询请求,确定与所述范围查询请求对应的至少一个存储虚拟文件;
在与所述至少一个存储虚拟文件具有关联关系的存储文件为多个的情况下,将多个存储文件分别对应的迭代器进行并归排序处理,得到与所述至少一个存储虚拟文件对应的目标迭代器;
基于所述目标迭代器对所述至少一个存储虚拟文件关联的存储文件进行遍历,确定与所述范围查询请求对应的查询结果。
11.一种数据处理装置,其特征在于,包括:
确定模块,用于检测到目标存储系统中的第i层的第一存储文件满足预设的数据合并条件,确定第i+1层中与所述第一存储文件的第一存储位置具有数据合并关系的第二存储位置,以及确定所述第i+1层位于所述第二存储位置的第二存储文件;其中,i为整数;
写入模块,用于基于所述第一存储文件中的第一数据与所述第二存储文件中的第二数据之间的数据对比结果,确定用于写入所述第二存储文件对应的第三存储文件的目标写入数据,并将所述目标写入数据写入所述第三存储文件;
建立模块,用于确定与所述第二存储文件对应的目标存储虚拟文件,并在所述目标存储虚拟文件中建立所述第三存储文件对应的索引信息,以建立所述目标存储虚拟文件与第三存储文件之间的关联关系;其中,所述目标存储虚拟文件中存储的索引信息,用于对与所述目标存储虚拟文件具有关联关系的存储文件中存储的数据进行查询,所述目标存储虚拟文件中存储的索引信息包括所述第二存储文件对应的索引信息。
12.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至10任一所述的数据处理方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10任一所述的数据处理方法的步骤。
CN202310708563.5A 2023-06-15 2023-06-15 一种数据处理方法、装置、计算机设备及存储介质 Active CN116450591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310708563.5A CN116450591B (zh) 2023-06-15 2023-06-15 一种数据处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310708563.5A CN116450591B (zh) 2023-06-15 2023-06-15 一种数据处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN116450591A true CN116450591A (zh) 2023-07-18
CN116450591B CN116450591B (zh) 2023-09-12

Family

ID=87132470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310708563.5A Active CN116450591B (zh) 2023-06-15 2023-06-15 一种数据处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116450591B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733306A (zh) * 2017-04-14 2018-11-02 华为技术有限公司 一种文件合并方法及装置
US20180349095A1 (en) * 2017-06-06 2018-12-06 ScaleFlux, Inc. Log-structured merge tree based data storage architecture
CN111352908A (zh) * 2020-02-28 2020-06-30 北京奇艺世纪科技有限公司 基于lsm的数据存储方法、装置、存储介质及计算机设备
CN113326262A (zh) * 2021-05-14 2021-08-31 锐掣(杭州)科技有限公司 基于键值数据库的数据处理方法、装置、设备及介质
CN114416646A (zh) * 2022-01-20 2022-04-29 上海妃鱼网络科技有限公司 一种层级存储系统的数据处理方法及装置
CN114780500A (zh) * 2022-06-21 2022-07-22 平安科技(深圳)有限公司 基于日志合并树的数据存储方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733306A (zh) * 2017-04-14 2018-11-02 华为技术有限公司 一种文件合并方法及装置
US20180349095A1 (en) * 2017-06-06 2018-12-06 ScaleFlux, Inc. Log-structured merge tree based data storage architecture
CN111352908A (zh) * 2020-02-28 2020-06-30 北京奇艺世纪科技有限公司 基于lsm的数据存储方法、装置、存储介质及计算机设备
CN113326262A (zh) * 2021-05-14 2021-08-31 锐掣(杭州)科技有限公司 基于键值数据库的数据处理方法、装置、设备及介质
CN114416646A (zh) * 2022-01-20 2022-04-29 上海妃鱼网络科技有限公司 一种层级存储系统的数据处理方法及装置
CN114780500A (zh) * 2022-06-21 2022-07-22 平安科技(深圳)有限公司 基于日志合并树的数据存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116450591B (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
CN103377137B (zh) 使用增强的频繁块检测进行存储去重的方法和系统
CN109271343B (zh) 一种应用于键值存储系统中的数据合并方法和装置
US11048757B2 (en) Cuckoo tree with duplicate key support
WO2018064962A1 (zh) 数据存储方法、电子设备和计算机非易失性存储介质
US20180113767A1 (en) Systems and methods for data backup using data binning and deduplication
US20130268770A1 (en) Cryptographic hash database
CN111552692B (zh) 一种加减法布谷鸟过滤器
CN112148928A (zh) 一种基于指纹家族的布谷鸟过滤器
CN105320775A (zh) 数据的存取方法和装置
JP2005267600A5 (zh)
CN106980665B (zh) 数据字典实现方法、装置及数据字典管理系统
CN113535670B (zh) 一种虚拟化资源镜像存储系统及其实现方法
US11100047B2 (en) Method, device and computer program product for deleting snapshots
CN105912687A (zh) 海量分布式数据库存储单元
CN113867627B (zh) 一种存储系统性能优化方法及系统
CN111459885B (zh) 一种数据的处理方法、装置、计算机设备和存储介质
CN115935020A (zh) 一种图数据存储方法和装置
US20180011897A1 (en) Data processing method having structure of cache index specified to transaction in mobile environment dbms
CN113392089B (zh) 一种数据库索引优化方法及可读存储介质
US8156126B2 (en) Method for the allocation of data on physical media by a file system that eliminates duplicate data
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
CN103246718B (zh) 文件访问方法、装置和设备
CN116450591B (zh) 一种数据处理方法、装置、计算机设备及存储介质
US20200019539A1 (en) Efficient and light-weight indexing for massive blob/objects

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
GR01 Patent grant
GR01 Patent grant