CN116561073A - 基于数据库的文件合并方法及***、设备、存储介质 - Google Patents

基于数据库的文件合并方法及***、设备、存储介质 Download PDF

Info

Publication number
CN116561073A
CN116561073A CN202310403273.XA CN202310403273A CN116561073A CN 116561073 A CN116561073 A CN 116561073A CN 202310403273 A CN202310403273 A CN 202310403273A CN 116561073 A CN116561073 A CN 116561073A
Authority
CN
China
Prior art keywords
key
index
initial
target
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
CN202310403273.XA
Other languages
English (en)
Other versions
CN116561073B (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.)
Yunhe Enmo Beijing Information Technology Co ltd
Original Assignee
Yunhe Enmo Beijing Information 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 Yunhe Enmo Beijing Information Technology Co ltd filed Critical Yunhe Enmo Beijing Information Technology Co ltd
Priority to CN202310403273.XA priority Critical patent/CN116561073B/zh
Publication of CN116561073A publication Critical patent/CN116561073A/zh
Application granted granted Critical
Publication of CN116561073B publication Critical patent/CN116561073B/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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/17Details of further file system functions
    • 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)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于数据库的文件合并方法及***、设备、存储介质,属于数据库技术领域。该方法包括:确定第一候选文件和至少一个第二候选文件,当第一候选文件为新增文件,根据第一键数据对第二键数据进行键遍历得到匹配键数据;根据匹配键数据对第二初始索引状态表搜索得到第二索引状态,并将该状态置为无效状态;响应于第一触发合并事件,确定有效状态的第一目标键数据,并根据第一目标键数据确定第一目标键值对数据;根据第一目标键值对数据对更新后的第二初始索引状态表、第一初始索引状态表、初始键索引表和初始键值对表进行文件组装,得到第一目标文件。本申请实施例能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。

Description

基于数据库的文件合并方法及***、设备、存储介质
技术领域
本申请涉及数据库技术领域,尤其涉及一种基于数据库的文件合并方法及***、设备、存储介质。
背景技术
目前,日志结构化合并树(Log Structured Merged Tree,LSM树)是一种存储结构,被广泛用于数据库的存储层。LSM树在将排序字符串表(Sorted String Table,SSTable)文件写入磁盘时,通过使用顺序写代替随机写的方式,以提高数据写入性能。随着数据的不断写入和更新,在读取数据时需要搜索的SSTable文件越来越多。而SSTable文件中可能存在浪费磁盘空间的无效数据,容易导致读取数据的性能下降,因此需要对数据库进行文件合并。
相关技术的文件合并策略包括:(1)大小分层压缩策略(Size Tiered CompactionStrategy,STCS):通过同时限制同一层SSTable文件的大小和数量,当某一层的SSTable数量达到阈值,则合并为一个大的SSTable文件;(2)分级合并策略(Leveled CompactionStrategy,LCS):通过文件分层的思想限制每一层总文件的大小,并从最高层级上开始扫描是否进行文件合并。然而,第一种策略在层数较深时,容易出现巨大的SSTable,使得空间放大和读放大现象较严重,且在对超大文件合并时容易影响读写性能,从而降低文件合并效率。第二种策略通过优先对高Level的SSTable文件进行压缩,容易导致底层SSTable文件的堆积,影响了对数据的读写的性能,降低了文件合并效率。由此可知,相关技术的文件合并方法降低了文件合并效率且容易造成磁盘空间浪费的问题。因此,如何提出一种基于数据库的文件合并方法,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费,成为了亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提出了一种基于数据库的文件合并方法及***、设备、存储介质,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
为实现上述目的,本申请实施例的第一方面提出了一种基于数据库的文件合并方法,所述方法包括:
确定第一候选文件和至少一个第二候选文件;其中,所述第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个所述第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表;
当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历,将与所述第一键数据相同的所述第二键数据作为匹配键数据;
根据所述匹配键数据和所述第二初始键索引表对所述第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表;
响应于第一触发合并事件,根据更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表和所述第二初始键索引表,确定索引状态为有效状态的第一目标键数据;
根据所述第一目标键数据对所述第一初始键值对表和所述第二初始键值对表进行键值对匹配,确定第一目标键值对数据;
根据所述第一目标键值对数据对更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第一目标文件。
在一些实施例中,在所述当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历之前,所述方法还包括:
当所述第一候选文件不是新增文件,响应于第二触发合并事件;
根据所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表和所述第二初始键索引表,确定索引状态为有效状态的第二目标键数据;
根据所述第二目标键数据对所述第一初始键值对表和所述第二初始键值对表进行键值对匹配,确定第二目标键值对数据;
根据所述第二目标键值对数据对所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第二目标文件。
在一些实施例中,在所述当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历之前,所述方法还包括:
当所述第一候选文件不是新增文件,响应于对所述第一候选文件进行合并的第三触发合并事件;
根据所述第一初始索引状态表和所述第一初始键索引表,确定索引状态为有效状态的第三目标键数据;
根据所述第三目标键数据对所述第一初始键索引表进行键索引选择,并根据键索引选择的键索引构建第三目标键索引表;
根据所述第三目标键数据和所述第一初始键索引表对所述第一初始索引状态表进行状态选择,并根据选择的有效状态的数据构建第三目标索引状态表;
根据所述第三目标键数据对所述第一初始键值对表进行键值对选择,并根据选择的键值对构建第三目标键值对表;
根据所述第三目标键索引表、所述第三目标索引状态表和所述第三目标键值对表进行文件组装,得到第三候选文件;
对所述第一候选文件进行文件删除,并将所述第三候选文件作为新的所述第一候选文件。
在一些实施例中,所述响应于第一触发合并事件,包括以下至少一种:
识别到所述新增文件的文件容量大于目标数据库中当前存放的目标层级的剩余文件容量;或者,
获取目标候选文件的索引状态表的索引有效比例,识别到所述索引有效比例小于预设有效比例阈值,其中,所述目标候选文件为所述第一候选文件和/或所述第二候选文件;或者,
获取所述目标候选文件的索引状态表的索引无效比例,识别到所述索引无效比例大于预设无效比例阈值;或者,
识别到目标数据库的***性能状态满足预设性能条件;或者,
识别到所述目标数据库的已用空间比例大于预设空间比例阈值;或者,
识别当前时间为预设合并时间。
在一些实施例中,所述获取目标候选文件的索引状态表的索引有效比例,包括:
根据所述目标候选文件的索引状态表确定索引状态总数;
对所述目标候选文件的索引状态表中为有效状态的索引状态进行数量求和,得到有效状态数;
根据所述有效状态数和所述索引状态总数确定所述索引有效比例。
在一些实施例中,所述根据所述匹配键数据和所述第二初始键索引表对所述第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表,包括:
根据所述匹配键数据在所述第二初始键索引表的键标记和所述第二初始索引状态表中的键标记进行键标记匹配,得到匹配成功的目标键标记;
根据所述目标键标记确定所述匹配索引状态;
若所述匹配索引状态为有效状态,则将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表。
在一些实施例中,所述根据所述第一目标键值对数据对更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第一目标文件,包括:
根据所述第一目标键数据对所述第一初始键索引表和所述第二初始键索引表进行键索引选择,并根据选择出的键索引构建第一目标键索引表;
根据所述第一目标键值对数据对所述第一初始键值对表和所述第二初始键值对表进行键值对选择,并根据选择出的键值对构建第一目标键值对表;
根据所述第一目标键索引表对更新后的所述第二初始索引状态表和所述第一初始索引状态表进行状态选择,并根据选择出的有效状态的数据构建第一目标索引状态表;
根据所述第一目标索引状态表、所述第一目标键索引表和所述第一目标键值对表得到所述第一目标文件。
为实现上述目的,本申请实施例的第二方面提出了一种基于数据库的文件合并***,所述***包括:
文件确定模块,用于确定第一候选文件和至少一个第二候选文件;其中,所述第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个所述第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表;
键遍历模块,用于当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历,将与所述第一键数据相同的所述第二键数据作为匹配键数据;
状态搜索模块,用于根据所述匹配键数据和所述第二初始键索引表对所述第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表;
键数据确定模块,用于响应于第一触发合并事件,根据更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表和所述第二初始键索引表,确定索引状态为有效状态的第一目标键数据;
键值对确定模块,用于根据所述第一目标键数据对所述第一初始键值对表和所述第二初始键值对表进行键值对匹配,确定第一目标键值对数据;
文件组装模块,用于根据所述第一目标键值对数据对更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第一目标文件。
为实现上述目的,本申请实施例的第三方面提出了一种计算机设备,包括:
至少一个存储器;
至少一个处理器;
至少一个计算机程序;
所述至少一个计算机程序被存储在所述至少一个存储器中,所述至少一个处理器执行所述至少一个计算机程序以实现上述第一方面所述的基于数据库的文件合并方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面所述的基于数据库的文件合并方法。
本申请实施例提出的一种基于数据库的文件合并方法及***、设备、存储介质,首先,确定第一候选文件和至少一个第二候选文件,其中,第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表。当第一候选文件为新增文件,根据第一初始键索引表的第一键数据对第二初始键索引表的第二键数据进行键遍历,将与第一键数据相同的第二键数据作为匹配键数据。然后,根据匹配键数据对第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将匹配索引状态置为无效状态,以更新第二初始索引状态表。之后,响应于第一触发合并事件,根据更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表和第二初始键索引表,确定索引状态为有效状态的第一目标键数据;根据第一目标键数据对第一初始键值对表和第二初始键值对表进行键值对匹配,确定第一目标键值对数据;根据第一目标键值对数据对更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表、第一初始键值对表、第二初始键索引表和第二初始键值对表进行文件组装,得到第一目标文件。本申请实施例通过结合索引状态表,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
附图说明
图1是本申请实施例提供的基于数据库的文件合并方法的一个流程图;
图2是本申请实施例提供的候选文件的一个存储结构示意图;
图3是图1中的步骤S130的流程图;
图4是本申请实施例提供的索引状态表的一个结构示意图;
图5是本申请实施例提供的索引状态表的另一个结构示意图;
图6是本申请实施例提供的第一触发合并事件二的一个流程图;
图7是图1中的步骤S160的一个流程图;
图8是本申请实施例提供的L1层和L2层的候选文件的一个简化结构示意图;
图9是本申请实施例提供的接收新增文件后更新索引状态表的候选文件的一个简化结构示意图;
图10是本申请实施例提供的文件合并后生成新的文件的一个简化结构示意图;
图11是本申请实施例提供的基于数据库的文件合并方法的另一个流程图;
图12是本申请实施例提供的历史文件之间进行文件合并的一个简化结构示意图;
图13是本申请实施例提供的基于数据库的文件合并方法的另一个流程图;
图14是本申请实施例提供的基于数据库的文件合并***的结构示意图;
图15是本申请实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
目前,日志结构化合并树(Log Structured Merged Tree,LSM树)是一种存储结构,被广泛用于数据库的存储层。LSM树在将排序字符串表(Sorted String Table,SSTable)文件写入磁盘时,通过使用顺序写代替随机写的方式,以提高数据写入性能。随着数据的不断写入和更新,在读取数据时需要搜索的SSTable文件越来越多。而SSTable文件中可能存在浪费磁盘空间的无效数据,容易导致读取数据的性能下降,因此需要对数据库进行文件合并。
相关技术的文件合并策略包括:(1)大小分层压缩策略(Size Tiered CompactionStrategy,STCS):通过同时限制同一层SSTable文件的大小和数量,当某一层的SSTable数量达到阈值,则合并为一个大的SSTable文件;(2)分级合并策略(Leveled CompactionStrategy,LCS):通过文件分层的思想限制每一层总文件的大小,并从最高层级上开始扫描是否进行文件合并。然而,第一种策略在层数较深时,容易出现巨大的SSTable,使得空间放大和读放大现象较严重,且在对超大文件合并时容易影响读写性能,从而降低文件合并效率。第二种策略通过优先对高Level的SSTable文件进行压缩,容易导致底层SSTable文件的堆积,影响了对数据的读写的性能,降低了文件合并效率。由此可知,相关技术的文件合并方法降低了文件合并效率且容易造成磁盘空间浪费的问题。因此,如何提出一种基于数据库的文件合并方法,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费,成为了亟待解决的技术问题。
基于此,本申请实施例提供了一种基于数据库的文件合并方法及***、设备、存储介质,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
本申请实施例提供的基于数据库的文件合并方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式***,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于数据库的文件合并方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络个人计算机(Personal Computer,PC)、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
请参阅图1,图1是本申请实施例提供的基于数据库的文件合并方法的一个可选的流程图。在本申请的一些实施例中,图1中的方法可以具体包括但不限于步骤S110至步骤S160,下面结合图1对这六个步骤进行详细介绍。
步骤S110,确定第一候选文件和至少一个第二候选文件;其中,第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表;
步骤S120,当第一候选文件为新增文件,根据第一初始键索引表的第一键数据对第二初始键索引表的第二键数据进行键遍历,将与第一键数据相同的第二键数据作为匹配键数据;
步骤S130,根据匹配键数据对第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将匹配索引状态置为无效状态,以更新第二初始索引状态表;
步骤S140,响应于第一触发合并事件,根据更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表和第二初始键索引表,确定索引状态为有效状态的第一目标键数据;
步骤S150,根据第一目标键数据对第一初始键值对表和第二初始键值对表进行键值对匹配,确定第一目标键值对数据;
步骤S160,根据第一目标键值对数据对更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表、第一初始键值对表、第二初始键索引表和第二初始键值对表进行文件组装,得到第一目标文件。
在本申请实施例的步骤S110至步骤S160中,首先,确定第一候选文件和至少一个第二候选文件,其中,第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表。当第一候选文件为新增文件,根据第一初始键索引表的第一键数据对第二初始键索引表的第二键数据进行键遍历,将与第一键数据相同的第二键数据作为匹配键数据。然后,根据匹配键数据对第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将匹配索引状态置为无效状态,以更新第二初始索引状态表。之后,响应于第一触发合并事件,根据更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表和第二初始键索引表,确定索引状态为有效状态的第一目标键数据。根据第一目标键数据对第一初始键值对表和第二初始键值对表进行键值对匹配,确定第一目标键值对数据。最后,根据第一目标键值对数据对更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表、第一初始键值对表、第二初始键索引表和第二初始键值对表进行文件组装,得到第一目标文件。本申请实施例通过结合索引状态表,能够避免出现巨大文件以使得空间放大和读放大现象较严重,且避免底层文件的堆积,从而提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
在一些实施例的步骤S110中,LSM树对文件在磁盘的目标数据库中存储时采用有序的键值对存储方式。第一候选文件为新增文件或历史文件,当第一候选文件为历史文件,则第一候选文件的存储层级高于第二候选文件,即第二候选文件的存储时间早于第一候选文件。如图2所示,图2是第一候选文件210的一个存储结构示意,第一候选文件210包括第一初始键索引表211、第一初始键值对表212和第一初始索引状态表213。其中,第一初始键值对表212用于记录多个第一键数据和每个第一键数据对应的内容数据,且每个第一键数据的存储大小为固定不变,而每个第一键数据对应的内容数据的存储大小为可变的。第一初始键索引表211用于记录每个第一键数据对应的数值在文件中的位置(记为offset),则第一初始键索引表211中存储了多个第一键数据和每个第一键数据对应的位置数据,且每个第一键数据对应的offset值的存储大小固定。第一初始索引状态表213用于记录每个第一键数据的键索引状态,则第一初始索引状态表213中存储了第一键数据对应的键标记和该键标记对应的键索引状态。此外,第一初始索引状态表213中存储的键标记和键标记对应的索引状态的存储大小都是固定不变的。因此,第一初始键索引表211、第一初始键值对表212和第一初始索引状态表213中存储的数据之间存在一一对应关系。
例如,第一键数据包括key 1至key N,N为正整数,第一键数据对应的内容数值包括value 1至value N,即第一初始键值对表212中key 1对应value1,key 2对应value 2,依次类推,key N对应value N。第一键数据对应的位置数据包括offset 1至value N,且第一初始键索引表211中key 1对应offset1,key 2对应offset 2,依次类推,key N对应offsetN。此外,键索引状态包括有效状态(记为1)和无效状态(记为0),其中,有效状态用于表示第一键数据对应的内容数据为目标数据库中所有文件中的最新数据;而无效状态用于表示第一键数据对应的内容数据为目标数据库中所有文件中的陈旧数据,即目标数据库中存在与该第一键数据相同但存储时间更晚的内容数据的键值对。
需要说明的是,第二候选文件和第一候选文件的设置方式相同,且对于第二候选文件包括的第二初始键索引表、第二初始键值对表和第二初始索引状态表可分别参考上述对第一初始键索引表、第一初始键值对表和第一初始索引状态表的设置定义,在此不再赘述。
在一些实施例的步骤S120中,当目标数据库的第一候选文件为新增文件,则根据新增文件确定存储时间在第一候选文件之前的历史文件,记为第二候选文件。由于第二候选文件中可能存在与新增文件相同的键数据,为了保证写入磁盘的文件中相同的键数据仅存在一个最新的键值对数据被标记为有效,本申请先根据第一初始键索引表的第一键数据对每个第二初始键索引表的第二键数据进行键遍历,以从全部第二候选文件中确定与第一候选文件中键数据相同的数据。因此,在键遍历的过程中,将与第一键数据相同的第二键数据作为匹配键数据,例如,根据第一键数据key 1对全部第二键数据进行键遍历,若其中一个第二键数据也是key 1,则将该第二键数据为key 1的数据标记为匹配键数据。
需要说明的是,目标数据库的类型包括mysql、oracle、pgsql、sqlserver等数据库类型,在此不作具体限定。
需要说明的是,当目标数据库的第一候选文件为新增文件,则第一初始索引状态表中键标记对应的键索引状态都为有效状态,即为目标数据库中所有文件中的最新数据。
需要说明的是,对于本申请实施例所设置的第一初始索引状态表和第二初始索引状态表,该索引状态表可以和候选文件的其他内容一起存放;也可以将索引状态表存放在单独的文件中,以有效减少将索引状态进行变更时的数据开销。同时,索引状态表只会占用很小的存储空间。此外,当存储***对候选文件采用分层存储,即存储***由不同性能的存储介质组成的存储方式时,索引状态表可以存放在与候选文件不同的层。且为了减小写索引状态表的开销,可以将索引状态表存放在性能最好的层。
在一些实施例的步骤S130中,在确定匹配键数据后,为了避免目标数据库的候选文件中可能存在浪费磁盘空间的无效数据,从而导致读取数据的性能下降的问题。本申请根据得到的匹配键数据对全部第二初始索引状态表进行索引状态搜索,得到与匹配键数据对应的匹配索引状态,并将该匹配索引状态置为无效状态,以更新第二初始索引状态表。因此,本申请根据匹配键数据对第二初始索引状态表进行索引状态更新,以准确确定目标数据库的候选文件中的无效数据和有效数据。本申请实施例通过设置索引状态表标记每个键数据的索引状态,在进行文件合并时根据更新后的索引状态,能够有效避免巨大文件生成使得空间放大和读放大现象较严重的问题,且能够有效提高数据读取性能和文件合并效率。
请参阅图3,图3是本申请实施例提供的步骤S130的一个可选的流程图。在本申请的一些实施例中,步骤S130具体可以包括但不限于步骤S310至步骤S330,下面结合图3对这三个步骤进行详细介绍。
步骤S310,根据匹配键数据在第二初始键索引表的键标记和第二初始索引状态表中的键标记进行键标记匹配,得到匹配成功的目标键标记;
步骤S320,根据目标键标记确定匹配索引状态;
步骤S330,若匹配索引状态为有效状态,则将匹配索引状态置为无效状态,以更新第二初始索引状态表。
在一些实施例的步骤S310至步骤S330中,为了准确地确定目标数据库中无效状态的数据,在第二初始键索引表和第二初始索引状态表中同时存储了相同的键标记,以确定两个表之间的对应关系。具体地,根据匹配键数据在第二初始键索引表的键标记和全部第二初始索引状态表中的键标记进行键标记匹配,以确定与匹配键数据在第二初始键索引表的键标记相同的目标键标记。因此,本申请通过键标记匹配可以确定目标键标记在第二初始索引状态表的索引状态,并将该状态记为匹配索引状态。若当前的匹配索引状态为有效状态,则由于第一候选文件中包含了最新的键值对数据,则将第二候选文件中的匹配索引状态置为无效状态;若匹配索引状态为无效状态,则保持匹配索引状态不变。之后,对全部匹配索引状态更新完成后,实现了根据第一候选文件对第二初始索引状态表的遍历更新。本申请实施例通过预设的索引状态表,在接收到一个新增文件后,通过新增文件的键数据对第二候选文件进行键遍历,以得到匹配键数据。并根据匹配键数据对第二初始索引状态表进行状态表的初步更新,能够有效提高后续的文件合并效率。
需要说明的是,初始键索引表的键标记可以为根据键数据的存储顺序预设的顺序标记,即第一初始键索引表和第一初始索引状态表中存储了相同的顺序标记,且第二初始键索引表和第二初始索引状态表中存储了相同的顺序标记;或者,该键标记还可以为第一键数据或第二键数据本身的键值,即第一初始索引状态表和第二初始索引状态表中同时存储了每个索引状态对应的键数据。本申请对键标记的具体形式并不做具体限定,该键标记可以用于表示键索引表和索引状态表之间的对应关系即可。
示例性的,如图4所示,当键标记为根据键数据的存储顺序预设的顺序标记,则第二初始键索引表410中将每一行按顺序进行标记。例如,key 1的键标记为行1,key 2的键标记为行2,依次类推,key N的键标记为行p,p为正整数。对应的,第二初始索引状态表420中,key 1的索引状态对应的键标记也为行1,依次类推,以实现键索引表和索引状态表的对应关系。
示例性的,如图5所示,当键标记为第一键数据或第二键数据本身的键值。例如,对于第二初始索引状态表510,则第二初始索引状态表510中包括第二键数据和第二键数据对应的索引状态。
需要说明的是,在步骤S130之前,获取当前***的合并存储策略,从而根据所采用的合并存储策略采用对应的文件合并方法。例如,采用STCS策略进行文件存储时,由于STCS策略为了保证同一层每个候选文件的大小相近,会同时限制每一层的候选文件的数量。且当某一层候选文件数量达到阈值后,将其合并为一个大的文件,并将合并后的文件放入下一层。因此,需要对全部历史文件进行遍历。又如,采用LCS策略进行文件存储时,当某一层当前的总数量超过预设阈值后,由于LCS会从当前层中选择一个候选文件与下一层中所有和所选择的候选文件有交集的候选文件进行合并,并将合并后的文件放入下一层中。因此,可以根据新增文件的键范围对全部历史文件进行遍历。本申请实施例通过对历史键索引表中的全部历史键索引数据进行遍历,以更新和初始键索引数据的键数据相同的历史键索引数据的键索引状态,便于准确地确定无效数据,从而在进行文件合并时剔除无效数据以提高合并效率。
在一些实施例的步骤S140中,为了避免候选文件中可能存在浪费磁盘空间的无效数据导致读取数据的性能下降的问题,即保证磁盘中相同的键数据只保留最新的键值对数据,以提高数据读取性能。响应于第一触发合并事件后,先根据更新后的第二初始索引状态表和第一初始索引状态表确定为有效状态的键标记,并根据有效状态的键标记分别对第一初始键索引表和第二初始键索引表进行键标记匹配,确定索引状态为有效状态的第一目标键数据。因此,该第一目标键数据和键标记存在对应关系。本申请实施例通过设置索引状态表标记每个键索引数据的索引状态,在进行文件合并时考虑该索引状态,能够有效避免巨大的文件使得空间放大和读放大现象较严重的问题,且能够有效提高数据读取性能和文件合并效率。
需要说明的是,由于本申请实施例可以对任意级别或任意层的候选文件随时发起文件合并,从而可以实时提高空间释放效率,并减少无谓的处理开销。因此,第一触发合并事件用于表示触发执行本申请实施例对第一候选文件和至少一个第二候选文件进行文件合并的事件。当第一候选文件为新增文件,则该第一触发合并事件包括但不限于以下至少一种第一触发合并事件。
第一触发合并事件一:识别到新增文件的文件容量大于目标数据库中当前存放的目标层级的剩余文件容量。
第一触发合并事件二:获取目标候选文件索引状态表的索引有效比例,且识别到索引有效比例小于预设有效比例阈值,其中,由于本申请可以由任意文件发起文件合并,则目标候选文件可以为第一候选文件或第二候选文件,也可以由第一候选文件和第二候选文件同时发起。
第一触发合并事件三:获取目标候选文件的索引状态表的索引无效比例,识别到索引无效比例大于预设无效比例阈值。其中,预设无效比例阈值和预设有效比例阈值的数值之和可以为1。
第一触发合并事件四:识别到目标数据库的***性能状态满足预设性能条件。
第一触发合并事件五:识别到目标数据库的已用空间比例大于预设空间比例阈值。
第一触发合并事件六:识别当前时间为预设合并时间。
第一触发合并事件七:识别到目标数据库中当前存放的目标层级的文件存放数量大于预设存放数量阈值。
需要说明的是,当识别到新增文件的文件容量大于目标数据库中该新增文件存放的目标层级的剩余文件容量,则当前层级向其下一层级触发文件合并,该下一层级中存放的文件用于表示目标数据库中相对于新增文件的历史文件。
需要说明的是,由于本申请实施例可以对任意级别或任意层的候选文件随时发起文件合并,且触发合并事件的方式存在多样性。本申请可以根据更新后的历史索引状态表的索引有效比例或索引无效比例确定触发合并事件,即识别到索引有效比例小于预设有效比例阈值,或者,识别到索引无效比例大于预设无效比例阈值。
需要说明的是,当索引有效比例阈值设置较高,会越早地触发文件合并,即尽快释放空间。当索引有效比例阈值设置较低,会越晚地触发合并,则会使得写放大较低。预设有效比例阈值可以根据实际需求灵活调整,在此不作具体限定。
需要说明的是,本申请实施例的预设有效比例阈值可以根据***状态动态调整,例如,当已用空间比例越低时,可以将索引有效比例阈值设置较低。当已用空间比例越高时,可以将索引有效比例阈值设置较高。
需要说明的是,***性能状态包括存储***的当前读写速率或使用率、CPU使用率、网络使用率、内存使用率等,在此不作具体限定。当***性能状态满足预设性能条件,则触发进行文件合并。例如,对于CPU使用率,预设性能条件可以为CPU使用率小于70%,则触发进行文件合并。其中,存储***可以为磁盘、固态盘等,在此不作具体限定。
需要说明的是,本申请实施例还可以根据其他环境参数触发合并事件,如识别到目标数据库的已用空间比例大于预设空间比例阈值。此外,本申请实施例还可以根据目标对象预先配置的忙闲时间段触发合并事件,例如,识别当前时间为预设合并时间,则根据第一候选文件的索引状态表和更新后的第二候选文件的索引状态表,对第一候选文件和第二候选文件进行文件合并。
需要说明的是,本申请实施例根据键索引状态剔除无效数据,能够有效避免出现巨大文件生成以使得空间放大和读放大现象较严重,且避免底层文件的堆积的现象,提高了数据读取性能和文件合并效率,并有效减少了空间资源浪费。
请参阅图6,图6是本申请实施例提供的第一触发合并事件二的一个可选的流程图。在本申请的一些实施例中,触发合并事件二中获取目标候选文件索引状态表的索引有效比例的步骤,具体可以包括但不限于步骤S610至步骤S630,下面结合图6对这三个步骤进行详细介绍。
步骤S610,根据目标候选文件的索引状态表确定索引状态总数;
步骤S620,对目标候选文件的索引状态表中为有效状态的索引状态进行数量求和,得到有效状态数;
步骤S630,根据有效状态数和索引状态总数确定索引有效比例。
在一些实施例的步骤S610至步骤S630中,本申请实施例可以针对一个或多个目标候选文件进行文件合并,且该目标候选文件为第一候选文件和/或第二候选文件。当目标候选文件为多个,则根据全部目标候选文件的索引状态表确定索引状态总数,即索引状态的总个数。然后,对目标候选文件的索引状态表中为有效状态的索引状态进行数量求和,以统计得到有效状态数。因此,索引有效比例等于有效状态数除以索引状态总数。本申请实施例通过为每个文件增加一个键索引状态表,能够准确存储索引中每个键以及对应的键值对的有效性。在进行文件合并时,本申请实施例通过设置索引有效比例阈值,可以对任意级别的文件随时发起文件合并,能够有效避免超大文件以及超大合并的发生,且对不经常执行合并的大型文件,可以显著提升空间回收效率。
需要说明的是,参考上述索引有效比例,对于第一触发合并事件三,对目标候选文件的索引状态表中为无效状态的索引状态进行数量求和,得到无效状态数。则索引无效比例等于无效状态数除以索引状态总数。
在一些实施例的步骤S150中,在确定有效状态的第一目标键数据后,根据第一目标键数据和第一目标键数据对应的键标记,确定第一目标键数据属于第一候选文件还是第二候选文件。然后,根据第一目标键数据所属的候选文件对第一初始键值对表和第二初始键值对表进行键值对匹配。例如,当第一目标键数据属于第一候选文件,则根据第一目标键数据和第一候选文件的第一初始键值对表中的键数据进行匹配,并将匹配成功的第一键数据对应的键值对作为第一目标键值对数据。同理,当第一目标键数据属于第二候选文件,则根据第一目标键数据和第二候选文件的第二初始键值对表中的键数据进行匹配,并将匹配成功的第二键数据对应的键值对作为第一目标键值对数据。
在一些实施例的步骤S160中,在确定第一目标键数据和第一目标键值对数据后,根据确定的有效状态的第一目标键值对数据对更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表、第一初始键值对表、第二初始键索引表和第二初始键值对表进行文件组装,得到至少一个第一目标文件。其中,每个第一目标文件包括第一目标键索引表、第一目标键值对表和第一目标索引状态表。该第一目标索引状态表中记录的索引状态都是有效状态。同时,在生成第一目标文件后,将原始的第一候选文件和第二候选文件进行删除。
请参阅图7,图7是本申请实施例提供的步骤S160的一个可选的流程图。在本申请的一些实施例中,步骤S160具体可以包括但不限于步骤S710至步骤S740,下面结合图7对这四个步骤进行详细介绍。
步骤S710,根据第一目标键数据对第一初始键索引表和第二初始键索引表进行键索引选择,并根据选择出的键索引构建第一目标键索引表;
步骤S720,根据第一目标键值对数据对第一初始键值对表和第二初始键值对表进行键值对选择,并根据选择出的键值对构建第一目标键值对表;
步骤S730,根据第一目标键索引表对更新后的第二初始索引状态表和第一初始索引状态表进行状态选择,并根据选择出的有效状态的数据构建第一目标索引状态表;
步骤S740,根据第一目标索引状态表、第一目标键索引表和第一目标键值对表得到第一目标文件。
在一些实施例的步骤S710至步骤S740中,在得到第一目标键数据和第一目标键值对数据后,本申请根据第一目标键数据和对应的键标记,确定第一目标键数据属于第一候选文件还是第二候选文件。并根据第一目标键数据所属的候选文件对文件对应的第一初始键索引表和第二初始键索引表进行键索引选择,以根据选择出的与第一目标键数据对应的键索引构建第一目标键索引表。然后,第一目标键值对数据能够对应第一目标键数据,则根据第一目标键值对数据对第一初始键值对表和第二初始键值对表进行键值对选择,能够根据选择出的键值对构建第一目标键值对表。其中,该第一目标键值对表和第一目标键索引表之间存在对应关系,从而能够确定和第一目标键值对表中的键值对相对应的索引状态。最后,根据第一目标索引状态表、第一目标键索引表和第一目标键值对表之间的对应关系,得到第一目标文件。本申请实施例通过结合索引状态表,能够在进行文件合并时,避免无效数据对资源的浪费,从而提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
示例性的,请参照图8,为了便于对本方案的文件合并方法进行说明,对第一候选文件和第二候选文件的结构进行简化。具体地,当第一候选文件为新增文件,则在新增文件前,存储***中包括L1层和L2层,L2层为L1层的下一层级。如图8所示,L1层包括一个第二候选文件810,L2层包括两个第二候选文件810。第二候选文件810包括第二键数据、第二键数据的索引状态和第二键数据对应的内容数据。如图9所示,当新增第一候选文件820后,即第一层L0对应的第一候选文件820为新增文件,则第一候选文件820包括第一键数据、第一键数据的索引状态和第一键数据对应的内容数据。其中,第一键数据包括key1、key 2、key 9、key 12、key 20,对应的内容数据为,key 1对应value 1、key 2对应value 2、key 9对应value 9、key 12对应value 12、key 20对应value 20。且由于第一候选文件820为新增文件,则每个第一键数据的索引状态都是有效状态1。其中,v1、v2、v3用于表示越来越新的数据,存储时间越来越晚,即value20.v1的数据为与value20.v2键数据相同的历史数据。根据每个第一键数据依次对全部第二键数据进行键遍历,将与第一键数据相同的第二键数据作为匹配键数据,并将匹配键数据对应的索引状态置为无效状态。因此,在接收到第一候选文件820后,得到L2层更新索引状态表的候选文件830,即更新了第二初始索引状态表。其中,1->0表示将有效状态1置为无效状态0。之后,响应于第一触发合并事件,根据更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表和第二初始键索引表进行键数据搜索,确定索引状态为有效状态的第一目标键数据。并根据第一目标键数据对第一初始键值对表和第二初始键值对表进行键值对匹配,确定第一目标键值对数据。之后,根据第一目标键数据对第一初始键索引表和第二初始键索引表进行键索引选择,并根据选择出的键索引构建第一目标键索引表。根据第一目标键值对数据对第一初始键值对表和第二初始键值对表进行键值对选择,并根据选择出的键值对构建第一目标键值对表。根据第一目标键索引表对更新后的第二初始索引状态表和第一初始索引状态表进行状态选择,并根据选择出的有效状态的数据构建第一目标索引状态表。最后,根据第一目标索引状态表、第一目标键索引表和第一目标键值对表得到第一目标文件。如图10所示,将得到的一个或多个第一目标文件1010作为新的L2层的文件,则该新的L2层的文件只存储了键索引状态为有效状态的键值对数据。并将原始的第一候选文件820、第二候选文件810和L2层更新索引状态表的候选文件830都进行删除。对应的,图10中示出的结构为经过文件合并后生成的新的L2层文件所包括的三个表的简化结构。本申请实施例在进行文件合并时,能够根据更新后的索引状态表对无效状态的数据进行删除,从而能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
请参阅图11,图11是本申请实施例提供的基于数据库的文件合并方法的另一个可选的流程图。在本申请的一些实施例中,在步骤S120之前,本申请的文件合并方法具体还可以包括但不限于步骤S1110至步骤S1140,下面结合图11对这四个步骤进行详细介绍。
步骤S1110,当第一候选文件不是新增文件,响应于第二触发合并事件;
步骤S1120,根据第二初始索引状态表、第一初始索引状态表、第一初始键索引表和第二初始键索引表,确定索引状态为有效状态的第二目标键数据;
步骤S1130,根据第二目标键数据对第一初始键值对表和第二初始键值对表进行键值对匹配,确定第二目标键值对数据;
步骤S1140,根据第二目标键值对数据对第二初始索引状态表、第一初始索引状态表、第一初始键索引表、第一初始键值对表、第二初始键索引表和第二初始键值对表进行文件组装,得到第二目标文件。
在一些实施例的步骤S1110至步骤S1140中,由于本申请可以对任意级别或任意层的候选文件随时发起文件合并,且触发合并事件的方式存在多样性。因此,当第一候选文件不是新增文件,则响应于第一候选文件生成的第二触发合并事件,即为存储***中历史文件之间的文件合并。如图12所示,在响应于第二触发合并事件前,存储***中包括L1层和L2层的候选文件,例如,将触发第二触发合并事件的L1层的候选文件作为第一候选文件1210,将L2层的候选文件作为第二候选文件1220。因此,为了清楚说明,同样将图12中的第一候选文件1210、第二候选文件1220和第二目标文件1230的文件结构进行如图简化表示。
具体地,先根据第二初始索引状态表和第一初始索引状态表确定为有效状态的键标记,并根据有效状态的键标记分别对第一初始键索引表和第二初始键索引表进行键标记匹配,确定索引状态为有效状态的第二目标键数据。因此,该第二目标键数据和键标记存在对应关系。然后,根据第二目标键数据和第二目标键数据对应的键标记,确定第二目标键数据属于第一候选文件1210还是第二候选文件1220。然后,根据第二目标键数据所属的候选文件对第一初始键值对表和第二初始键值对表进行键值对匹配。例如,当第二目标键数据属于第一候选文件1210,则根据第二目标键数据和第一候选文件1210的第一初始键值对表中的键数据进行匹配,并将匹配成功的第二键数据对应的键值对作为第二目标键值对数据。同理,当第二目标键数据属于第二候选文件1220,则根据第二目标键数据和第二候选文件1220的第二初始键值对表中的键数据进行匹配,并将匹配成功的第二键数据对应的键值对作为第二目标键值对数据。最后,根据第二目标键数据所属的候选文件对文件对应的第一初始键索引表和第二初始键索引表进行键索引选择,以根据选择出的与第二目标键数据对应的键索引构建第二目标键索引表。然后,第二目标键值对数据能够对应第二目标键数据,则根据第二目标键值对数据对第一初始键值对表和第二初始键值对表进行键值对选择,能够根据选择出的键值对构建第二目标键值对表。其中,该第二目标键值对表和第二目标键索引表之间存在对应关系,从而能够确定和第二目标键值对表中的键值对相对应的索引状态,以确定第二目标索引状态表。最后,根据第二目标索引状态表、第二目标键索引表和第二目标键值对表之间的对应关系,得到新的L2层的至少一个第二目标文件1230。并将原先的第一候选文件1210和第二候选文件1220进行删除。
需要说明的是,第二触发合并事件的具体情况可参考第一触发合并事件的事件二至事件七的事件发生情况,在此不再赘述。
请参阅图13,图13是本申请实施例提供的基于数据库的文件合并方法的另一个可选的流程图。在本申请的一些实施例中,在步骤S120之前,本申请的文件合并方法具体还可以包括但不限于步骤S1310至步骤S1370,下面结合图13对这七个步骤进行详细介绍。
步骤S1310,当第一候选文件不是新增文件,响应于对第一候选文件进行合并的第三触发合并事件;
步骤S1320,根据第一初始索引状态表和第一初始键索引表,确定索引状态为有效状态的第三目标键数据;
步骤S1330,根据第三目标键数据对第一初始键索引表进行键索引选择,并根据键索引选择的键索引构建第三目标键索引表;
步骤S1340,根据第三目标键数据和第一初始键索引表对第一初始索引状态表进行状态选择,并根据选择的有效状态的数据构建第三目标索引状态表;
步骤S1350,根据第三目标键数据对第一初始键值对表进行键值对选择,并根据选择的键值对构建第三目标键值对表;
步骤S1360,根据第三目标键索引表、第三目标索引状态表和第三目标键值对表进行文件组装,得到第三候选文件;
步骤S1370,对第一候选文件进行文件删除,并将第三候选文件作为新的第一候选文件。
在一些实施例的步骤S1310至步骤S1370中,由于本申请可以对任意级别或任意层的候选文件随时发起文件合并,且触发合并事件的方式存在多样性。因此,当单个候选文件发起对自身的文件合并时,发起文件合并的候选文件可以为第一候选文件或第二候选文件。例如,当发起第三触发合并事件的候选文件为第一候选文件,先根据第一初始索引状态表的键标记和第一初始键索引表对应的键标记,确定第一初始键索引表中索引状态为有效状态的第三目标键数据。然后,根据第三目标键数据对第一初始键索引表进行键索引选择,并根据键索引选择的键索引构建第三目标键索引表。根据第三目标键数据在第一初始键索引表的键标记对第一初始索引状态表进行状态选择,并根据选择的有效状态的键标记和标记对应的索引状态构建第三目标索引状态表。之后,根据第三目标键数据对第一初始键值对表进行键值对选择,并根据选择的键值对构建第三目标键值对表。根据第三目标键索引表和第三目标索引状态表之间的键标记的对应关系,对第三目标键索引表、第三目标索引状态表和第三目标键值对表进行文件组装,得到第三候选文件。之后,对第一候选文件进行文件删除,并将第三候选文件作为新的第一候选文件。
同理,当发起第三触发合并事件的候选文件为第二候选文件,则可以参照上述步骤S1310至步骤S1370的具体实施例,在此不再赘述。
需要说明的是,第三触发合并事件包括但不限于以下至少一种第三触发合并事件的情况。
第三触发合并事件一:获取目标候选文件索引状态表的索引有效比例,且识别到索引有效比例小于预设有效比例阈值,其中,由于本申请可以由任意文件发起文件合并,则目标候选文件可以为第一候选文件或第二候选文件。
第三触发合并事件二:获取目标候选文件的索引状态表的索引无效比例,识别到索引无效比例大于预设无效比例阈值。其中,预设无效比例阈值和预设有效比例阈值的数值之和可以为1。
因此,本申请实施例能够使得更新后的索引状态表中每个键数据对应的索引状态都为有效状态,从而在合并时将无效数据进行剔除,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。
需要说明的是,本申请实施例的基于数据库的文件合并方法,还可以适用于基于闪存盘(Flash Disk,FD)树构建的存储结构,即通过为每个候选文件设置对应的索引状态表,该索引状态表能够标记每个候选文件中每个键数据的索引状态。因此,本申请在进行文件合并时能够准确地确定无效数据,从而有效提高空间释放效率和合并效率。
请参阅图14,图14是本申请实施例提供的基于数据库的文件合并***的结构示意图,该***可以实现上述实施例的基于数据库的文件合并方法。本申请实施例提供的基于数据库的文件合并***可以包括:文件确定模块1410、键遍历模块1420、状态搜索模块1430、键数据确定模块1440、键值对确定模块1450和文件组装模块1460。
文件确定模块1410,用于确定第一候选文件和至少一个第二候选文件;其中,第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表;
键遍历模块1420,用于当第一候选文件为新增文件,根据第一初始键索引表的第一键数据对第二初始键索引表的第二键数据进行键遍历,将与第一键数据相同的第二键数据作为匹配键数据;
状态搜索模块1430,用于根据匹配键数据和第二初始键索引表对第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将匹配索引状态置为无效状态,以更新第二初始索引状态表;
键数据确定模块1440,用于响应于第一触发合并事件,根据更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表和第二初始键索引表,确定索引状态为有效状态的第一目标键数据;
键值对确定模块1450,用于根据第一目标键数据对第一初始键值对表和第二初始键值对表进行键值对匹配,确定第一目标键值对数据;
文件组装模块1460,用于根据第一目标键值对数据对更新后的第二初始索引状态表、第一初始索引状态表、第一初始键索引表、第一初始键值对表、第二初始键索引表和第二初始键值对表进行文件组装,得到第一目标文件。
需要说明的是,本申请实施例的基于数据库的文件合并***用于实现上述实施例的基于数据库的文件合并方法,本申请实施例的基于数据库的文件合并***与前述的基于数据库的文件合并方法相对应,具体的处理过程请参照前述的基于数据库的文件合并方法,在此不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个存储器,至少一个处理器,至少一个计算机程序,至少一个计算机程序被存储在至少一个存储器中,至少一个处理器执行至少一个计算机程序以实现上述实施例中任一种的基于数据库的文件合并方法。该计算机设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图15,图15示意了另一实施例的一种计算机设备的硬件结构,该计算机设备包括:
处理器1510,可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器1520,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器1520可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行本申请实施例的基于数据库的文件合并方法;
输入/输出接口1530,用于实现信息输入及输出;
通信接口1540,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线1550,在设备的各个组件(例如处理器1510、存储器1520、输入/输出接口1530和通信接口1540)之间传输信息;
其中处理器1510、存储器1520、输入/输出接口1530和通信接口1540通过总线1550实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序用于使计算机执行上述实施例中基于数据库的文件合并方法。
本申请实施例提供的一种基于数据库的文件合并方法及***、设备、存储介质,通过为每个候选文件设置对应的索引状态表,该索引状态表能够标记候选文件中每个键数据的索引状态。其中,本申请通过对第二初始键索引表中的全部第二键数据进行遍历,以更新和第一键数据的相同的第二键数据的索引状态,从而准确地确定无效数据。之后,在进行文件合并时,将无效状态数据进行删除,能够提高数据读取性能和文件合并效率,并有效减少空间资源浪费。本申请在进行文件合并时考虑键数据的索引状态,并根据索引状态剔除无效数据,能够有效避免巨大文件生成使得空间放大和读放大现象较严重的问题,且避免底层文件堆积的现象,提高了数据读取性能和文件合并效率,并减少了空间资源浪费。此外,本申请实施例在进行文件合并时,可以对任意级别或任意层的文件随时发起文件合并,即触发合并事件的方式存在多样性,同时,可以与各种原有的分区、分层策略兼容,并对不经常执行合并的大型文件进行文件合并时,也可以显著提升空间回收效率。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参阅附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

Claims (10)

1.一种基于数据库的文件合并方法,其特征在于,所述方法包括:
确定第一候选文件和至少一个第二候选文件;其中,所述第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个所述第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表;
当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历,将与所述第一键数据相同的所述第二键数据作为匹配键数据;
根据所述匹配键数据和所述第二初始键索引表对所述第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表;
响应于第一触发合并事件,根据更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表和所述第二初始键索引表,确定索引状态为有效状态的第一目标键数据;
根据所述第一目标键数据对所述第一初始键值对表和所述第二初始键值对表进行键值对匹配,确定第一目标键值对数据;
根据所述第一目标键值对数据对更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第一目标文件。
2.根据权利要求1所述的方法,其特征在于,在所述当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历之前,所述方法还包括:
当所述第一候选文件不是新增文件,响应于第二触发合并事件;
根据所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表和所述第二初始键索引表,确定索引状态为有效状态的第二目标键数据;
根据所述第二目标键数据对所述第一初始键值对表和所述第二初始键值对表进行键值对匹配,确定第二目标键值对数据;
根据所述第二目标键值对数据对所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第二目标文件。
3.根据权利要求1所述的方法,其特征在于,在所述当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历之前,所述方法还包括:
当所述第一候选文件不是新增文件,响应于对所述第一候选文件进行合并的第三触发合并事件;
根据所述第一初始索引状态表和所述第一初始键索引表,确定索引状态为有效状态的第三目标键数据;
根据所述第三目标键数据对所述第一初始键索引表进行键索引选择,并根据键索引选择的键索引构建第三目标键索引表;
根据所述第三目标键数据和所述第一初始键索引表对所述第一初始索引状态表进行状态选择,并根据选择的有效状态的数据构建第三目标索引状态表;
根据所述第三目标键数据对所述第一初始键值对表进行键值对选择,并根据选择的键值对构建第三目标键值对表;
根据所述第三目标键索引表、所述第三目标索引状态表和所述第三目标键值对表进行文件组装,得到第三候选文件;
对所述第一候选文件进行文件删除,并将所述第三候选文件作为新的所述第一候选文件。
4.根据权利要求1所述的方法,其特征在于,所述响应于第一触发合并事件,包括以下至少一种:
识别到所述新增文件的文件容量大于目标数据库中当前存放的目标层级的剩余文件容量;或者,
获取目标候选文件的索引状态表的索引有效比例,识别到所述索引有效比例小于预设有效比例阈值,其中,所述目标候选文件为所述第一候选文件和/或所述第二候选文件;或者,
获取所述目标候选文件的索引状态表的索引无效比例,识别到所述索引无效比例大于预设无效比例阈值;或者,
识别到目标数据库的***性能状态满足预设性能条件;或者,
识别到所述目标数据库的已用空间比例大于预设空间比例阈值;或者,
识别当前时间为预设合并时间。
5.根据权利要求4所述的方法,其特征在于,所述获取目标候选文件的索引状态表的索引有效比例,包括:
根据所述目标候选文件的索引状态表确定索引状态总数;
对所述目标候选文件的索引状态表中为有效状态的索引状态进行数量求和,得到有效状态数;
根据所述有效状态数和所述索引状态总数确定所述索引有效比例。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述匹配键数据和所述第二初始键索引表对所述第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表,包括:
根据所述匹配键数据在所述第二初始键索引表的键标记和所述第二初始索引状态表中的键标记进行键标记匹配,得到匹配成功的目标键标记;
根据所述目标键标记确定所述匹配索引状态;
若所述匹配索引状态为有效状态,则将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述第一目标键值对数据对更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第一目标文件,包括:
根据所述第一目标键数据对所述第一初始键索引表和所述第二初始键索引表进行键索引选择,并根据选择出的键索引构建第一目标键索引表;
根据所述第一目标键值对数据对所述第一初始键值对表和所述第二初始键值对表进行键值对选择,并根据选择出的键值对构建第一目标键值对表;
根据所述第一目标键索引表对更新后的所述第二初始索引状态表和所述第一初始索引状态表进行状态选择,并根据选择出的有效状态的数据构建第一目标索引状态表;
根据所述第一目标索引状态表、所述第一目标键索引表和所述第一目标键值对表得到所述第一目标文件。
8.一种基于数据库的文件合并***,其特征在于,所述***包括:
文件确定模块,用于确定第一候选文件和至少一个第二候选文件;其中,所述第一候选文件包括第一初始键索引表、第一初始键值对表和第一初始索引状态表,每个所述第二候选文件包括第二初始键索引表、第二初始键值对表和第二初始索引状态表;
键遍历模块,用于当所述第一候选文件为新增文件,根据所述第一初始键索引表的第一键数据对所述第二初始键索引表的第二键数据进行键遍历,将与所述第一键数据相同的所述第二键数据作为匹配键数据;
状态搜索模块,用于根据所述匹配键数据和所述第二初始键索引表对所述第二初始索引状态表进行索引状态搜索,得到匹配索引状态,并将所述匹配索引状态置为无效状态,以更新所述第二初始索引状态表;
键数据确定模块,用于响应于第一触发合并事件,根据更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表和所述第二初始键索引表,确定索引状态为有效状态的第一目标键数据;
键值对确定模块,用于根据所述第一目标键数据对所述第一初始键值对表和所述第二初始键值对表进行键值对匹配,确定第一目标键值对数据;
文件组装模块,用于根据所述第一目标键值对数据对更新后的所述第二初始索引状态表、所述第一初始索引状态表、所述第一初始键索引表、所述第一初始键值对表、所述第二初始键索引表和所述第二初始键值对表进行文件组装,得到第一目标文件。
9.一种计算机设备,其特征在于,包括:
至少一个存储器;
至少一个处理器;
至少一个计算机程序;
所述至少一个计算机程序被存储在所述至少一个存储器中,所述至少一个处理器执行所述至少一个计算机程序以实现:
如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使计算机执行:
如权利要求1至7中任一项所述的方法。
CN202310403273.XA 2023-04-14 2023-04-14 基于数据库的文件合并方法及***、设备、存储介质 Active CN116561073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310403273.XA CN116561073B (zh) 2023-04-14 2023-04-14 基于数据库的文件合并方法及***、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310403273.XA CN116561073B (zh) 2023-04-14 2023-04-14 基于数据库的文件合并方法及***、设备、存储介质

Publications (2)

Publication Number Publication Date
CN116561073A true CN116561073A (zh) 2023-08-08
CN116561073B CN116561073B (zh) 2023-12-19

Family

ID=87493719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310403273.XA Active CN116561073B (zh) 2023-04-14 2023-04-14 基于数据库的文件合并方法及***、设备、存储介质

Country Status (1)

Country Link
CN (1) CN116561073B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103733195A (zh) * 2011-07-08 2014-04-16 起元技术有限责任公司 管理用于基于范围的搜索的数据的存储
US20170091245A1 (en) * 2015-09-28 2017-03-30 International Business Machines Corporation Index management
CN106886375A (zh) * 2017-03-27 2017-06-23 百度在线网络技术(北京)有限公司 存储数据的方法和装置
US20190004768A1 (en) * 2017-06-29 2019-01-03 Intel Corporation Key-value compaction
US20190080107A1 (en) * 2017-09-13 2019-03-14 Vmware, Inc. Merge updates for key value stores
US20190129972A1 (en) * 2017-10-26 2019-05-02 Druva Technologies Pte. Ltd. Deduplicated Merged Indexed Object Storage File System
US20200183906A1 (en) * 2018-12-07 2020-06-11 Vmware, Inc. Using an lsm tree file structure for the on-disk format of an object storage platform
CN112236759A (zh) * 2018-09-14 2021-01-15 谷歌有限责任公司 日志结构合并森林中的交错合并
US20220050807A1 (en) * 2020-08-13 2022-02-17 Micron Technology, Inc. Prefix probe for cursor operations associated with a key-value database system
CN114780500A (zh) * 2022-06-21 2022-07-22 平安科技(深圳)有限公司 基于日志合并树的数据存储方法、装置、设备及存储介质
CN115858467A (zh) * 2022-11-28 2023-03-28 中国建设银行股份有限公司 针对键值数据库的文件处理方法、装置、电子设备和介质
CN116450656A (zh) * 2023-06-16 2023-07-18 北京数巅科技有限公司 数据处理方法、装置、设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103733195A (zh) * 2011-07-08 2014-04-16 起元技术有限责任公司 管理用于基于范围的搜索的数据的存储
US20170091245A1 (en) * 2015-09-28 2017-03-30 International Business Machines Corporation Index management
CN106886375A (zh) * 2017-03-27 2017-06-23 百度在线网络技术(北京)有限公司 存储数据的方法和装置
US20190004768A1 (en) * 2017-06-29 2019-01-03 Intel Corporation Key-value compaction
US20190080107A1 (en) * 2017-09-13 2019-03-14 Vmware, Inc. Merge updates for key value stores
US20190129972A1 (en) * 2017-10-26 2019-05-02 Druva Technologies Pte. Ltd. Deduplicated Merged Indexed Object Storage File System
CN112236759A (zh) * 2018-09-14 2021-01-15 谷歌有限责任公司 日志结构合并森林中的交错合并
US20200183906A1 (en) * 2018-12-07 2020-06-11 Vmware, Inc. Using an lsm tree file structure for the on-disk format of an object storage platform
US20220050807A1 (en) * 2020-08-13 2022-02-17 Micron Technology, Inc. Prefix probe for cursor operations associated with a key-value database system
CN114780500A (zh) * 2022-06-21 2022-07-22 平安科技(深圳)有限公司 基于日志合并树的数据存储方法、装置、设备及存储介质
CN115858467A (zh) * 2022-11-28 2023-03-28 中国建设银行股份有限公司 针对键值数据库的文件处理方法、装置、电子设备和介质
CN116450656A (zh) * 2023-06-16 2023-07-18 北京数巅科技有限公司 数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116561073B (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
US12013856B2 (en) Burst performance of database queries according to query size
CN107169083B (zh) 公安卡口海量车辆数据存储与检索方法及装置、电子设备
CN109241161B (zh) 一种气象数据管理方法
US11093466B2 (en) Incremental out-of-place updates for index structures
CN109165215B (zh) 一种云环境下时空索引的构建方法、装置及电子设备
US10331641B2 (en) Hash database configuration method and apparatus
CN102906751B (zh) 一种数据存储、数据查询的方法及装置
US10061834B1 (en) Incremental out-of-place updates for datasets in data stores
Papadopoulos et al. A-tree: Distributed indexing of multidimensional data for cloud computing environments
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
Li et al. Pyro: A {Spatial-Temporal}{Big-Data} Storage System
CN113901279B (zh) 一种图数据库的检索方法和装置
CN103501319A (zh) 一种低延迟的面向小文件的分布式存储***
CN112416880A (zh) 一种基于实时归并的海量小文件存储性能优化方法及装置
CN109471860B (zh) 面向电动汽车充电网络大规模充电桩数据处理方法及装置
US11500931B1 (en) Using a graph representation of join history to distribute database data
CN116561073B (zh) 基于数据库的文件合并方法及***、设备、存储介质
CN115918110A (zh) 使用键值存储库的空间搜索
KR102354343B1 (ko) 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치
US10209909B1 (en) Storage element cloning in presence of data storage pre-mapper
CN115576947A (zh) 一种数据管理方法、装置、组合库、电子设备及存储介质
CN115421856A (zh) 一种数据恢复方法及装置
CN115080563A (zh) 数据捕获方法、装置、***、电子设备及存储介质
CN112015791B (zh) 数据处理方法、装置、电子设备及计算机存储介质
CN113448957A (zh) 一种数据查询方法和装置

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