CN115917526A - 用于事务存储系统的元数据管理 - Google Patents

用于事务存储系统的元数据管理 Download PDF

Info

Publication number
CN115917526A
CN115917526A CN202180039412.4A CN202180039412A CN115917526A CN 115917526 A CN115917526 A CN 115917526A CN 202180039412 A CN202180039412 A CN 202180039412A CN 115917526 A CN115917526 A CN 115917526A
Authority
CN
China
Prior art keywords
timestamp
data
read cycle
data blocks
read
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
CN202180039412.4A
Other languages
English (en)
Other versions
CN115917526B (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN115917526A publication Critical patent/CN115917526A/zh
Application granted granted Critical
Publication of CN115917526B publication Critical patent/CN115917526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations

Abstract

一种用于管理事务存储系统的元数据的方法(600)包括在快照时间戳(22)处接收查询请求(20)。查询请求请求从多个数据块返回至少一个数据块(152)。每个数据块包括对应的写周期时间戳(154)和对应的转换指示符(156),该转换指示符指示数据块是有效的还是已经在对应的转换时间戳(157)处被转换。该方法还包括将读周期时间戳(172)设置为等于写周期中最早的一个,并确定在快照时间戳处或之前出现的相应转换时间戳中的任何一个是否在读周期时间戳之后出现。该方法还包括通过扫描每个数据块来确定查询请求所请求的至少一个数据块,每个数据块包括在读周期时间戳处或之后出现的对应的写周期时间戳。

Description

用于事务存储系统的元数据管理
技术领域
本公开涉及事务存储系统的元数据管理。
背景技术
随着分布式存储(即,云存储)变得越来越流行,用于非常大的数据集的性能度量也变得越来越重要。例如,当查询非常大的表(例如,大小为数兆字节或更大的表)时,经常扫描数百万或更多条目以成功地响应查询。在这种情况下,查询可能需要几秒钟才能完成。当同时接收许多查询时,这种延迟会加剧。
发明内容
本公开的一个方面提供了一种用于事务存储系统的元数据管理方法。该方法包括在数据处理硬件上接收快照时间戳处的查询请求。该查询要求从存储在与数据处理硬件通信的存储硬件上的多个数据块中返回与查询参数相匹配的任何数据块。每个数据块包括指示数据块被存储在存储器硬件上的时间点的对应的写周期时间戳。每个数据块还包括对应的转换指示符,该转换指示符指示数据块在快照时间戳处是有效的还是已经在快照时间戳处或之前出现的相应转换时间戳处被转换。该方法还包括由数据处理硬件设置读周期时间戳,该读周期时间戳等于与在快照时间戳处有效的数据块相对应的写周期时间戳中最早的一个。所述方法还包括由所述数据处理硬件确定在所述快照时间戳处或在所述快照时间戳之前出现的相应转换时间戳中的任一个是否在所述读周期时间戳之后出现。所述方法还包括,当在出现在所述读周期之后的所述快照时间戳处或之后没有出现任何对应的转换时间戳时对应,由所述数据处理硬件通过扫描包括在所述读周期时间戳处或之后出现的对应的写周期时间戳的数据块中的每一个来确定是否有任何数据块与由所述查询请求指示的查询参数相匹配。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,当出现在快照时间戳处或之前的相应转换时间戳中的至少一个出现在读周期时间戳之后时,由数据处理硬件基于出现在读周期时间戳之后和出现在快照时间戳处或之前的相应转换时间戳中的至少一个来确定出现在读周期时间戳之前的读取下限时间戳。在一些示例中,该方法还包括由数据处理硬件通过扫描每个数据块来确定查询请求所请求的至少一个数据块,所述数据块包括在读取的下限时间戳处或之后出现的对应写周期时间戳。
可选地,该方法还包括由数据处理硬件将读周期时间戳更新到更新的时间点。在一些示例中,该方法包括,从读周期时间戳开始,基于每个数据块的对应写周期时间戳顺序地扫描数据块,并且当扫描的数据块的转换指示符指示扫描的块是有效的时,确定更新的读周期时间戳等同于扫描的数据块的写周期时间戳。更新读周期时间戳还可以包括,当每个数据块的转换指示符指示每个扫描的数据块被转换时,确定更新的读周期时间戳等同于快照时间戳。
在一些实现中,该方法包括顺序地扫描数据块达预定量的时间。顺序地扫描数据块可以包括用转换指示符指示有效的最早的写周期时间戳来更新数据块的写周期时间戳。
另外,该方法可以包括用激活的最早的写周期时间戳来更新数据块的写周期时间戳,并且包括将写周期时间戳更新到更新的时间点。在一些示例中,在数据块被转换之后,更新所读周期时间戳。可选地,在数据块被转换并且自读周期时间戳被更新最后一个时间点起,经过阈值时间段之后,更新读周期时间戳。在一些实现中,更新读周期时间戳出现在经过了预定的时间量之后。多个数据块还可以包括表。
本公开的另一方面提供了一种用于事务存储系统的元数据管理的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储当在数据处理硬件上执行时使数据处理硬件执行操作的指令。所述操作包括在快照时间戳处接收查询请求。该查询请求请求从存储在与数据处理硬件通信的存储器硬件上的多个数据块中返回与查询参数相匹配的任何数据块。每个数据块包括对应的写周期时间戳,该写周期时间戳指示数据块被存储在存储器硬件上的时间点。每个数据块还包括对应的转换指示符,该转换指示符指示数据块在快照时间戳处是有效的还是已经在快照时间戳处或之前出现的相应转换时间戳处被转换。所述操作还包括将读周期时间戳设定为等于对应于在快照时间戳处有效的数据块的写周期时间戳中最早的一个。所述操作还包括确定在所读周期时间戳之后出现在快照时间戳处或之前出现的相应转换时间戳中的任何一个。所述操作还包括,当在所述快照时间戳处或在之前出现的相应转换时间戳中没有一个所述读周期时间戳之后出现时,通过扫描每个数据块来确定是否有任何数据块与所述查询请求所指示的查询参数相匹配,所述每个数据块包括在所述读周期时间戳处或之后出现的对应写周期时间戳。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实现中,当出现在快照时间戳处或之前的相应转换时间戳中的至少一个出现在读周期时间戳之后时,基于出现在读周期时间戳之后和出现在快照时间戳处或之前的相应转换时间戳中的至少一个,确定出现在读周期时间戳之前的读取下限时间戳。在一些示例中,所述操作还包括通过扫描包括在所读取的下限时间戳处或之后出现的对应写周期时间戳的数据块中的每一个来确定由所述查询请求所请求的所述至少一个数据块。
可选地,所述操作还包括将所读周期时间戳更新到更新的时间点。在一些示例中,操作包括,从读周期时间戳开始,基于每个数据块的对应写周期时间戳顺序地扫描数据块,并且当扫描的数据块的转换指示符指示扫描的块是有效的时,确定更新的读周期时间戳等同于扫描的数据块的写周期时间戳。更新读周期时间戳还可以包括,当每个数据块的转换指示符指示每个扫描的数据块被转换时,确定更新的读周期时间戳等同于快照时间戳。
在一些实现中,操作包括顺序地扫描数据块达预定量的时间。顺序地扫描数据块可以包括用转换指示符指示有效的最早的写周期时间戳来更新数据块的写周期时间戳。
另外,所述操作可包括用有效的最早的写周期时间戳来更新所述数据块的写周期时间戳,包括将所述写周期时间戳更新到更新的时间点。在一些示例中,在数据块被转换之后,更新所读周期时间戳。可选地,在数据块被转换并且自读周期时间戳被更新最后一个时间点起,经过阈值时间段之后,更新读周期时间戳。在一些实现中,更新读周期时间戳出现在经过了预定的时间量之后。多个数据块还可以包括表。
本公开的一个或多个实现的细节在附图和以下描述中阐述。从说明书和附图以及从权利要求书中,其它方面,特征和优点将是显而易见的。
附图说明
图1是用于管理事务存储系统的元数据的示例系统的示意图。
图2是包括快照时间戳和读周期时间戳的示例性时间线的示意图。
图3是包括快照时间戳、读周期时间戳、重叠最大时间戳和重叠最小时间戳的示例性时间线的示意图。
图4是包括快照时间戳,当前读周期时间戳和更新的读周期时间戳的示例性时间线的示意图。
图5是包括快照时间戳、当前读周期时间戳、更新的读周期时间戳、原始写周期时间戳和新的写周期时间戳的示例性时间线的示意图。
图6是用于管理事务存储系统的元数据的方法的操作的示例布置的流程图。
图7是可用于实现本文所述的系统和方法的示例性计算设备的示意图。
在各个附图中相同的附图标记表示相同的元件。
具体实施方式
分布式存储(即,云存储)已经越来越多地用于存储巨型的表。对于表来说,其大小为数太(terabytes)字节甚至是数拍(petabytes)字节,并且包含数百万个条目(即数据块)是并不罕见的。查询(即,读取)这些表经常在性能的关键路径上,并且试图在查询期间扫描或读取数百万数据块显着地降低了分布式存储系统的操作,因为不仅查询花费相当长的时间来完成,而且依赖于查询的其它操作必须等待它完成。查询(即读取)这些表通常是性能的关键路径,并且在查询期间尝试扫描或读取数百万个数据块会显著降低分布式存储系统的操作性能,因为不仅查询需要相当长的时间才能完成,依赖于查询的其他操作必须等待查询完成。因此,减少系统对大表或其它数据结构执行查询所需的时间量是有益的。
在一些分布式存储系统中,数据块(例如,表中的条目)最初以写入优化格式被写入数据结构(例如,表)。在稍后的时间点,每个数据块被转换为读取优化格式。当发生这种情况时,创建数据块的读取优化版本,并且将写入优化数据块标记为已转换和标记为用于垃圾收集(即,删除)。系统将周期性地去除所有已转换和已标记的数据块(即,在压缩步骤期间)。该方法在摄取时保持可接受的写入性能,同时还在摄取后保持可接受的读取性能。因为数据块的转换越快,那些块的读取性能越好(这是用于实时分析的关键),大多数系统试图尽可能快地转换每个数据块。例如,用于数据转换的平均时间量是4分钟。
当对大表执行查询时,典型的分布式存储系统扫描每个数据块。然而,这些数据块中的许多是已经被转换为读取性能数据块并被标记为用于删除的写入性能数据块。扫描已经被转换的写入优化数据块极大地增加了总的扫描时间,而对查询毫无帮助。
本文中的实现针对用于分布式存储系统的元数据管理器,其确定与存储在分布式存储系统中的表相关联的每个数据块的写周期时间戳以及该表的读周期时间戳。每个写周期时间戳指示对应数据块被存储在表中的时间点。另外,每个数据块包括转换指示符,该转换指示符指示数据块是有效的还是数据块是否已经在对应的转换时间戳处被转换。读周期时间戳被设置为等于最早的一个有效的写周期时间戳。当在快照时间戳接收到读取请求时,系统通过扫描或读取每个数据块来读取数据块,该每个数据块包括在读取时间戳处或之后出现的对应写周期时间戳。
参考图1,在一些实现中,示例系统100包括与经由网络112与远程系统140通信的对应用户12相关联的用户设备10。用户设备10可以对应于任何计算设备,诸如台式工作站,膝上型工作站或移动设备(即,智能电话)。用户设备10包括计算资源18(例如,数据处理硬件)和/或存储资源16(例如,存储器硬件)。
远程系统140可以是单个计算机,多个计算机或具有可扩展/弹性计算资源144(例如,数据处理硬件)和/或存储资源142(例如,存储器硬件)的分布式系统(例如,云环境)。数据存储146(即,远程存储设备146)可以覆盖在存储资源142上,以允许由一个或多个客户机或计算资源144可扩展的使用存储资源142。数据存储装置146包括数据块数据存储150,其经配置以存储存储在数据结构158内的多个数据块152,152a-n。在一些示例中,数据结构158包括表。
每个数据块152包括指示数据块152被存储在数据块数据存储150上的时间点的写周期时间戳154,154a-n。每个数据块152还包括转换指示符156,156a-n,其指示数据块152是有效的还是已经在对应的转换时间戳157,157a-n处被转换。也就是说,每个数据块152包括通常指示数据块152何时被创建(即,被写入数据存储150)的写周期时间戳154和指示数据块152何时被转换的转换时间戳157。因此,写周期时间戳154和转换时间戳157一起指示数据块152的“寿命”。
远程系统140被配置为经由网络112从用户设备10接收查询请求20。例如,查询请求20包括返回与查询请求内包括的查询参数21相匹配的任何数据块152R(例如,包含某个关键字)的请求。通常,为了完成查询请求20,必须扫描或读取每个活动数据块152,以确定对应的数据块152是否满足查询请求20的标准。远程系统140执行接收查询请求20的元数据管理器160。查询请求20包括指示远程系统140应当评估数据结构158的时间点的快照时间戳22。即,快照时间戳22指示当前时间和创建数据结构158以由远程系统140在执行查询时评估每个数据块152的状态(即,有效的或转换的)时使用的时间点之间的时间点。在一些示例中,快照时间戳22是当前时间。在其它示例中,快照时间戳是比当前时间更早的时间点。
元数据管理器160包括周期时间戳生成器170,其将读周期时间戳172设置为等于与在查询请求20的快照时间戳22处有效的数据块152相对应的写周期时间戳154中最早的一个写周期时间戳。即,周期时间戳生成器170将读周期时间戳172设置为等于“最早的”仍然有效的(即,未转换的)数据块152的写周期时间戳154(例如,创建时间)。换句话说,在读周期时间戳172之前具有写周期时间戳154的每个数据块152已经被转换。
现在参考图2,示例性时间线200示出了五个数据块152a-e随时间的寿命。每个数据块152具有与数据块152存储在数据存储150上的时间点相对应的关联写周期时间戳154a-e。时间线200还示出了指示远程系统140应当用来评估数据结构158的时间点的快照时间戳22。因此,数据块152a-c具有对应的转换时间戳157a-c,因为三个数据块152a-c中的每一个由快照时间戳22转换。应注意,两个数据块152d,152e在快照时间戳22之前不具有各自的转换时间戳157,因为数据块152d,152e在快照时间戳22处仍是有效的(即,尚未被转换)。因此,在此实例中,存在经转换的三个数据块152a-c和在快照时间戳22处激活的两个数据块152d,152e。这里,周期时间戳生成器170将读周期时间戳172设置为等于数据块152d的写周期时间戳154d,因为数据块152d是快照时间戳22处的最早的静态活动数据块152(即,具有较早的写周期时间戳154a-c的所有较早的数据块152a-152c已经被转换)。
回到图1,元数据管理器160包括读取下限确定器180,其接收快照时间戳22和读周期时间戳172,并确定在读周期时间戳172之后是否出现任何对应的转换时间戳157。当在读周期时间戳172之后出现在快照时间戳22处或之前出现的相应转换时间戳157中没有一个(即,转换后的数据块152的“生命区”没有与读周期时间戳172重叠)时,读取下限确定器180将读周期时间戳172传递到数据块扫描器190。
数据块扫描器190通过扫描每个数据块152来确定是否有任何数据块152R与查询请求20所指示的查询参数21匹配,其中每个数据块152包括在读周期时间戳172处或之后出现的对应写周期时间戳154,以完成查询请求20。即,在一些示例中,读周期时间戳172为数据块扫描器190建立读取下限(即,关于数据块扫描器190开始扫描的时间中回退多远的界限),并且数据块扫描器190在等于读周期时间戳172的时间点开始扫描所请求的数据块152,并且仅扫描在读周期时间戳172之后存储在数据存储150上的数据块152。这与在数据结构158的寿命开始时开始扫描的典型分布式存储系统(即,最早的写周期时间戳154)相反。当数据结构158包括大量转换后的数据块152时,并且当数据块扫描器190在读周期时间戳172处开始扫描而不是在时间0处开始扫描时,数据块扫描器190可以大大减少在查询请求20的服务中扫描的数据块152的总数。在扫描数据块152之后,数据块扫描仪190将任何数据块152R返回给用户12。注意,一些查询请求20导致没有数据块152与查询参数21匹配,因此数据块扫描器190返回零数据块152。
在一些实现中,当在读周期时间戳172之后出现在快照时间戳22处或之前出现的相应转换时间戳157中的至少一个时,读取下限确定器180基于在读周期时间戳172之后并且在快照时间戳22处或之前出现的相应转换时间戳157中的至少一个来确定在读周期时间戳17之前出现的读取下限时间戳182。数据块扫描器190可以接收读取的下限时间戳182(图3),并通过扫描包括在读取的下限时间戳182处或之后出现的对应写周期时间戳154的每个数据块152来确定任何数据块152R是否与由查询请求20指示的查询参数21匹配。
为了提供进一步的解释,图3示出了示出五个数据块152a-e的寿命的另一示例性时间线300。与前面的例子(图2)一样,读周期时间戳172与数据块152d的写周期时间戳154d对准。这里,读取下限确定器180确定重叠的最大时间戳184和重叠的最小时间戳182(以前也称为读取下限时间戳182)。在所示的示例中,一些数据块152的寿命与读周期时间戳172重叠。也就是说,对于数据块152b,152c,对应的写周期时间戳154b,154c和转换时间戳157b,157c之间的范围包括读周期时间戳172。这里,读取下限确定器180确定重叠最大时间戳184是重叠数据块152的最大(即,最近)转换时间戳157。在该示例中,重叠的最大时间戳184等于数据块152c的转换时间戳157c。相反,读取下限确定器180确定重叠的最小时间戳182等于重叠的数据块162的最小(即,最早)写周期时间戳154的写周期时间戳154。在该示例中,重叠的最小时间戳182等于数据块152b的写周期时间戳154b。
在一些实例中,读取下限确定器180确定扫描不能在读周期时间戳172处开始,因为一些重叠的数据块162尚未被转换。例如,当在读周期时间戳172和重叠的最大时间戳184之间的快照时间戳22时,至少一个数据块152与读周期时间戳172重叠,并且在读周期时间戳172处开始扫描将跳过活动数据块152。因此,在此情形中,读取下限确定器180改为确定扫描应该在重叠的最小时间戳182(即,读取下限时间戳)处开始,并且改为将该重叠的最小时间戳182传递到数据块扫描仪190。在这种情况下,数据块扫描器190通过扫描每个数据块152来确定是否有任何数据块152R与查询请求20所指示的查询参数21匹配,其中每个数据块152包括在重叠的最小时间戳182处或之后出现的对应写周期时间戳154。
随着时间流逝,读周期时间戳172将进一步落入过去,且因此,随着将更多数据块152添加到数据结构158,在读周期时间戳172处开始扫描将失去有效性(即,必须扫描越来越多的数据块152)。在一些实现中,周期时间戳生成器170将读周期时间戳172更新到更新的时间点。当将读周期时间戳172更新到最近的时间点时,周期时间戳生成器170可以从当前读周期时间戳
172C开始,基于每个数据块152的对应写周期时间戳154顺序地扫描数据块152,并且当扫描的数据块152的转换指示符156指示扫描的数据块152是有效的时,确定更新的读周期时间戳172U等同于被扫描的数据块152的写周期时间戳154。
现在参考图4,另一示例性时间线400再次示出了五个数据块152a-e的生命期。这里,当前读周期时间戳172C等于数据块152a的写周期时间戳154a。由于周期时间戳生成器170将当前读周期时间戳172C设置为写周期时间戳154a,所以系统100已经将附加数据块152添加到数据结构158,使得存在将读周期时间戳172移动到更新的时间点的机会。这里,周期时间戳生成器170从数据块152b(数据块152a之后最近的数据块)开始顺序扫描数据块152,并继续直到确定数据块152是有效的。在该示例中,基于快照时间戳22(这里表示周期时间戳生成器170试图更新读周期时间戳172的时间点),选择数据块152d的写周期时间戳154d作为更新的读周期时间戳172U的时间点。结果,数据块扫描器190的后续扫描现在将在更新的读周期时间戳172U开始,并且能够跳过扫描数据块152a。
在一些情况下,当试图将读周期时间戳172更新到最近的时间点时,每个数据块152的转换指示符156指示每个扫描数据块152已被转换。当这种情况发生时,周期时间戳生成器170确定更新的读周期时间戳172U等同于快照时间戳22,因为所有数据块152(与快照时间戳22相同)不是有效的,并且可以在数据块扫描器190扫描期间跳过。
在一些实现中,当周期时间戳生成器170试图通过顺序扫描每个数据块152来更新读周期时间戳172时,周期时间戳生成器170顺序扫描数据块152达预定的时间量。也就是说,在某些情况下,希望限制周期时间戳生成器170搜索更新的读周期时间戳172U所花费的时间量。在一些示例中,希望限制专用于更新过程的资源量,以便不从服务查询请求20中获取资源。在这种情况下,当周期时间戳生成器170达到阈值时间量但没有找到活动数据块152时,周期时间戳生成器170将更新的读周期时间戳172U设置为最近扫描(即,最新的)的写周期时间戳154。
现在参考图5,在一些情况下,另一示例性时间线500示出数据块152可能花费非常长的时间来转换。这里,数据块152a已经保持活动达比任何其它数据块152b-e长得多的时间段。在这种情况下,当数据块152a保持活动时,当前读周期时间戳必须保持被设置为数据块152a的原始写周期时间戳154aa。这降低了作为具有比原始写周期时间戳154aa晚的写周期时间戳154的大量数据块152的有效性。在一些实现中,周期时间戳生成器170用转换指示符156指示有效的最早的写周期时间戳154来更新数据块152的写周期时间戳154。也就是说,周期时间戳生成器170可以将写周期时间戳154更新到最近的时间点。
例如,周期时间戳生成器170将写周期时间戳154更新为等同于快照时间戳22。将写周期时间戳154的结果(因此模仿系统在稍后的时间点将数据块152添加到数据结构158)允许将读周期时间戳172移动到最近的时间点的机会。在所示示例中,周期时间戳生成器170将原始写周期时间戳154aa更新为新的写周期时间戳154ab,在这种情况下,新的写周期时间戳154ab等同于快照时间戳22。然而,周期时间戳生成器170可以将写周期时间戳154更新为其它值。在当前示例中,这允许周期时间戳生成器170将当前读周期时间戳172C更新为最近的读周期时间戳172U。
在一些实现中,周期时间戳生成器170周期性地尝试更新读周期时间戳172(并且在一些情况下,更新一个或多个最早的数据块152的写周期时间戳154)。可选地,周期时间戳生成器170试图在数据块152被转换之后更新读周期时间戳。在尝试更新读周期时间戳172之前,周期时间戳生成器170可能需要满足阈值时间量。也就是说,周期时间戳生成器170可以在数据块152被转换并且自从读周期时间戳172被更新的最后时刻起经过了阈值时间段之后更新读周期时间戳172。
其它事件也可以触发周期时间戳生成器170。例如,周期时间戳生成器170尝试在自上次更新以来经过了预定时间量之后更新读取的历元时间戳172。周期时间戳生成器170可以尝试响应于任何其它事件来更新读周期时间戳172(例如,系统100将数据块152添加到数据结构158)。
在一些实现中,元数据管理器160存储每个数据结构158的多个读周期时间戳172。每个读周期时间戳172表示对应于在不同快照时间戳22处有效的数据块152的写周期时间戳154中最早的一个。也就是说,元数据管理器可以为不同的快照时间戳22确定并存储读周期时间戳172,以便为多个不同的快照时间戳增加扫描效率。在一些示例中,元数据管理器160可以缓存来自先前查询请求20的结果。元数据管理器可以使用高速缓存的结果来为随后的查询请求20调整读取的下限时间戳182。
图6是用于管理事务存储系统的元数据的方法600的操作的示例性布置的流程图。在操作602,方法600包括在数据处理硬件144处接收快照时间戳22处的查询请求20。查询请求20请求从存储在存储器硬件150上的多个数据块152返回至少一个数据块152R,所述数据块152与匹配查询参数21的数据处理硬件144通信。每个数据块152包括指示数据块152被存储在存储器硬件150上的时间点的对应的写周期时间戳154和指示数据块152在快照时间戳22处是有效的还是已经在快照时间戳22处或之前出现的对应的转换时间戳157处被转换的对应的转换指示符156。
在操作604,方法600包括由数据处理硬件144设置读周期时间戳172,该读周期时间戳172等于与在快照时间戳22处激活的数据块152相对应的写周期时间戳154中最早的一个。在操作606,方法600包括由数据处理硬件144确定在快照时间戳22处或之前出现的相应转换时间戳157中的任何一个是否在读周期时间戳172之后出现。
当出现在快照时间戳22处或之前的相应转换时间戳157都不出现在读周期时间戳154之后时,方法600包括,在操作608,由数据处理硬件144通过扫描出现在读周期时间戳172处或之后的包括对应的写周期时间戳154的每个数据块152来确定任何数据块152R是否与由查询请求20指示的查询参数21相匹配。
图7是可用于实现本文档中描述的系统和方法的示例性计算设备700的示意图。计算设备700用于表示各种形式的数字计算机,例如膝上型计算机,台式计算机,工作站,个人数字助理,服务器,刀片服务器,大型机和其它适当的计算机。这里所示的组件,它们的连接和关系以及它们的功能仅仅是示例性的,而不是要限制在本文件中描述和/或要求保护的本发明的实现。
计算设备700包括处理器710,存储器720,存储设备730,连接到存储器720和高速扩展端口750的高速接口/控制器740,以及连接到低速总线770和存储设备730的低速接口/控制器760。部件710,720,730,740,750和760中的每一个使用各种总线互连,并且可以适当地安装在公共母板上或以其它方式安装。处理器710可以处理用于在计算设备700内执行的指令,包括存储在存储器720中或存储设备730上的指令,以在外部输入/输出设备(例如耦合到高速接口740的显示器780)上显示图形用户界面(GUI)的图形信息。在其它实现中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,多个计算设备700可以被连接,其中每个设备提供必要操作的部分(例如,作为服务器库,一组刀片服务器,或多处理器系统)。
存储器720在计算设备700内非瞬时地存储信息。存储器720可以是计算机可读介质,易失性存储器单元或非易失性存储器单元。非暂时性存储器720可以是用于临时或永久地存储由计算设备700使用的程序(例如,指令序列)或数据(例如,程序状态信息)的物理设备。非易失性存储器的实例包括(但不限于)快闪存储器和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,例如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM),相变存储器(PCM)以及磁盘或磁带。
存储设备730能够为计算设备700提供大容量存储。在一些实现中,存储设备730是计算机可读介质。在各种不同的实现中,存储设备730可以是软盘设备,硬盘设备,光盘设备,或磁带设备,闪存或其它类似的固态存储器设备,或设备阵列,包括存储区域网络中的设备或其它配置。在另外的实现中,计算机程序产品被有形地包含在信息载体中。所述计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,例如上述的那些方法。信息载体是计算机或机器可读介质,例如存储器720,存储设备730或处理器710上的存储器。
高速控制器740管理计算设备700的带宽密集操作,而低速控制器760管理较低的带宽密集操作。这种职责的分配仅是示例性的。在一些实现中,高速控制器740耦合到存储器720,显示器780(例如,通过图形处理器或加速器)以及高速扩展端口750,高速扩展端口750可接受各种扩展卡(未示出)。在一些实现中,低速控制器760耦合到存储设备730和低速扩展端口790。可以包括各种通信端口(例如,USB,蓝牙,以太网,无线以太网)的低速扩展端口790可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘,定点设备,扫描仪,或联网设备,例如交换机或路由器。
计算设备700可以以多种不同的形式来实现,如图中所示。例如,它可以被实现为标准服务器700a或在一组这样的服务器700a中多次实现为膝上型计算机700b,或者实现为机架服务器系统700c的一部分。
在此描述的系统和技术的各种实现可以在数字电子和/或光学电路,集成电路,专门设计的ASIC(专用集成电路),计算机硬件,固件,软件和/或其组合中实现。这些各种实现可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,被耦合以从存储系统,至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统,至少一个输入设备和至少一个输出设备发送数据和指令。
软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在一些实例中,软件应用程序可被称为“应用程序”,“应用程序”或“程序”。示例应用包括但不限于系统诊断应用,系统管理应用,系统维护应用,字处理应用,电子表格应用,消息传递应用,媒体流应用,社交网络应用和游戏应用。
这些计算机程序(也称为程序,软件,软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品,非暂时性计算机可读介质,设备和/或设备(例如,磁盘,光盘,存储器,可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)执行,执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或被可操作地耦合以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,所述大容量存储设备用于存储数据,例如磁盘,磁光盘或光盘。然而,计算机不必具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;CDROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在具有显示设备的计算机上实现,所述显示设备例如CRT(阴极射线管),LCD(液晶显示器)监视器,或者用于向用户显示信息的触摸屏,并且可选地还具有键盘和定点设备,例如鼠标或轨迹球,通过所述定点设备用户可以向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户的客户端设备上的web浏览器发送网页。
已经描述了多种实现方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其它实施方式也在所附权利要求的范围内。

Claims (24)

1.一种方法(600),其特征在于,包括:
在数据处理硬件(144)处接收在快照时间戳(22)处的查询请求(20),所述查询请求(20)请求从存储在与所述数据处理硬件(144)通信的存储器硬件(150)上的多个数据块(152)中返回与查询参数(21)相匹配的任何数据块(152),每个所述数据块(152)包括:
对应的写周期时间戳(154),所述写周期时间戳(154)指示所述数据块(152)被存储在所述存储器硬件(150)上的时间点;以及
对应的转换指示符(156),所述转换指示符(156)指示所述数据块(152)在所述快照时间戳(22)处是有效的还是在所述快照时间戳(22)处或之前出现的相应转换时间戳(157)处已经被转换;
由所述数据处理硬件(144)将读周期时间戳(172)设置为等于对应于在所述快照时间戳(22)处有效的所述数据块(152)的所述写周期时间戳(154)中最早的一个;
由所述数据处理硬件(144)确定出现在所述快照时间戳(22)处或之前的相应转换时间戳(157)中的任何一个是否出现在所述读周期时间戳(172)之后;以及
当在所述快照时间戳(22)处或之前出现的相应转换时间戳(157)中没有一个在所述读周期时间戳(172)之后出现时,由所述数据处理硬件(144)通过扫描每个所述数据块(152)来确定是否有任何数据块(152)与所述查询请求(20)所指示的所述查询参数(21)相匹配,其中,每个所述数据块(152)包括在所述读周期时间戳(172)处或之后出现的对应的写周期时间戳(154)。
2.如权利要求1所述的方法(600),其特征在于,还包括,当出现在所述快照时间戳(22)处或之前的所述相应转换时间戳(157)中的至少一个出现在所述读周期时间戳(172)之后时:
由所述数据处理硬件(144)基于在所述读周期时间戳(172)之后并且在所述快照时间戳(22)处或之前出现的所述相应转换时间戳(157)中的至少一个,来确定在所述读周期时间戳(172)之前出现的读取下限时间戳(182);以及
由所述数据处理硬件(144)通过扫描在所述读取下限时间戳(182)处或之后出现的包括对应的写周期时间戳(154)的每一个所述数据块(152)来确定任何所述数据块(152)是否与所述查询请求(20)所指示的所述查询参数(21)相匹配。
3.如权利要求1或2所述的方法(600),其特征在于,还包括由所述数据处理硬件(144)将所述读周期时间戳(172)更新到最近的时间点。
4.如权利要求3所述的方法(600),其特征在于,更新所述读周期时间戳(172)包括:
从所述读周期时间戳(172)开始,基于每个所述数据块(152)的所述相应写周期时间戳(154),顺序扫描所述数据块(152);以及
当被扫描的所述数据块(152)的所述转换指示符(156)指示被扫描的块是有效的时,确定被更新的所述读周期时间戳(172)等于被扫描的所述数据块(152)的所述写周期时间戳(154)。
5.如权利要求4所述的方法(600),其特征在于,更新所述读周期时间戳(172)还包括,当每个所述数据块(152)的所述转换指示符(156)指示每个被扫描的所述数据块(152)被转换时,确定更新的所述读周期时间戳(172)等于所述快照时间戳(22)。
6.如权利要求4或5所述的方法(600),其特征在于,顺序扫描所述数据块(152)包括按照预定的时间量顺序扫描所述数据块(152)。
7.如权利要求4-6中任一项所述的方法(600),其特征在于,顺序扫描所述数据块(152)包括用所述转换指示符(156)指示为有效的最早的写周期时间戳(154)来更新所述数据块(152)的所述写周期时间戳(154)有效。
8.如权利要求7所述的方法(600),其特征在于,用有效的最早的写周期时间戳(154)更新所述数据块(152)的所述写周期时间戳(154)包括将所述写周期时间戳(154)更新到最近的时间点。
9.如权利要求3-8中任一项所述的方法(600),其特征在于,更新所述读周期时间戳(172)出现在所述数据块(152)被转换之后。
10.如权利要求3-9中任一项所述的方法(600),其特征在于,更新所述读周期时间戳(172)出现在所述数据块(152)被转换并且自从所述读周期时间戳(172)被更新的最后时间点过去了阈值时间段之后。
11.如权利要求3-10中任一项所述的方法(600),其特征在于,更新所述读周期时间戳(172)出现在经过预定的时间量过去之后。
12.如权利要求1-11中任一项所述的方法(600),其特征在于,多个所述数据块(152)包括表。
13.一种系统(100),其特征在于,包括:
数据处理硬件(144);以及
与所述数据处理硬件(144)通信的存储器硬件(150),所述存储器硬件(150)存储指令,当在所述数据处理硬件(144)上执行时使得所述数据处理硬件(144)执行的操作包括:
接收在快照时间戳(22)处的查询请求(20),所述查询请求(20)请求从存储在与所述数据处理硬件(144)通信的存储器硬件(150)上的多个数据块(152)中返回与查询参数(21)相匹配的任何数据块(152),每个所述数据块(152)包括:
对应的写周期时间戳(154),所述写周期时间戳(154)指示所述数据块(152)被存储在所述存储器硬件(150)上的时间点;以及
对应的转换指示符(156),所述转换指示符(156)指示所述数据块(152)在所述快照时间戳(22)处是有效的还是在所述快照时间戳(22)处或之前出现的相应转换时间戳(157)处已经被转换;
将读周期时间戳(172)设置为等于对应于在所述快照时间戳(22)处有效的所述数据块(152)的所述写周期时间戳(154)中最早的一个;
确定出现在所述快照时间戳(22)处或之前的相应转换时间戳(157)中的任何一个是否出现在所述读周期时间戳(172)之后;以及
当在所述快照时间戳(22)处或之前出现的相应转换时间戳(157)中没有一个在所述读周期时间戳(172)之后出现时,由所述数据处理硬件(144)通过扫描每个所述数据块(152)来确定是否有任何数据块(152)与所述查询请求(20)所指示的所述查询参数(21)相匹配,其中,每个所述数据块(152)包括在所述读周期时间戳(172)处或之后出现的对应的写周期时间戳(154)。
14.如权利要求13所述的系统(100),其特征在于,所述操作还包括,当出现在所述快照时间戳(22)处或之前的所述相应转换时间戳(157)中的至少一个出现在所述读周期时间戳(172)之后时:
基于在所述读周期时间戳(172)之后并且在所述快照时间戳(22)处或之前出现的所述相应转换时间戳(157)中的至少一个,来确定在所述读周期时间戳(172)之前出现的读取下限时间戳(182);以及
通过扫描在所述读取下限时间戳(182)处或之后出现的包括对应的写周期时间戳(154)的每一个所述数据块(152)来确定所述查询请求(20)所请求的至少一个所述数据块(152)。
15.如权利要求13或14所述的系统(100),其特征在于,所述操作还包括将所所述读周期时间戳(172)更新到最近的时间点。
16.如权利要求15所述的系统(100),其特征在于,更新所述读周期时间戳(172)包括:
从所述读周期时间戳(172)开始,基于每个所述数据块(152)的所述相应写周期时间戳(154),顺序扫描所述数据块(152);以及
当被扫描的所述数据块(152)的所述转换指示符(156)指示被扫描的块是有效的时,确定被更新的所述读周期时间戳(172)等于被扫描的所述数据块(152)的所述写周期时间戳(154)。
17.如权利要求16所述的系统(100),其特征在于,更新所述读周期时间戳(172)还包括,当每个所述数据块(152)的所述转换指示符(156)指示每个被扫描的所述数据块(152)被转换时,确定更新的所述读周期时间戳(172)等于所述快照时间戳(22)。
18.如权利要求16或17所述的系统(100),其特征在于,顺序扫描所述数据块(152)包括按照预定的时间量顺序扫描所述数据块(152)。
19.如权利要求16-18中任一项所述的系统(100),其特征在于,顺序扫描所述数据块(152)包括用所述转换指示符(156)指示为有效的最早的写周期时间戳(154)来更新所述数据块(152)的所述写周期时间戳(154)有效。
20.如权利要求16-19中任一项所述的系统(100),其特征在于,用有效的最早的所述写周期时间戳(154)来更新所述数据块(152)的所述写周期时间戳(154)包括将所述写周期时间戳(154)更新到最近的时间点。
21.如权利要求15-20中任一项所述的系统(100),其特征在于,更新所述读周期时间戳(172)出现在所述数据块(152)被转换之后。
22.如权利要求15-21中任一项所述的系统(100),其特征在于,更新所述读周期时间戳(172)出现在所述数据块(152)被转换并且自从所述读周期时间戳(172)被更新的最后时间点过去了阈值时间段之后。
23.如权利要求15-22中任一项所述的系统(100),其特征在于,更新所述读周期时间戳(172)出现在预定的时间量过去之后。
24.如权利要求13-23中任一项所述的系统(100),其中多个所述数据块(152)包括表。
CN202180039412.4A 2020-04-14 2021-04-13 用于事务存储系统的元数据管理 Active CN115917526B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/848,780 2020-04-14
US16/848,780 US11113296B1 (en) 2020-04-14 2020-04-14 Metadata management for a transactional storage system
PCT/US2021/026933 WO2021211475A1 (en) 2020-04-14 2021-04-13 Metadata management for a transactional storage system

Publications (2)

Publication Number Publication Date
CN115917526A true CN115917526A (zh) 2023-04-04
CN115917526B CN115917526B (zh) 2023-12-29

Family

ID=75787261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180039412.4A Active CN115917526B (zh) 2020-04-14 2021-04-13 用于事务存储系统的元数据管理

Country Status (4)

Country Link
US (2) US11113296B1 (zh)
EP (1) EP4136543A1 (zh)
CN (1) CN115917526B (zh)
WO (1) WO2021211475A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140172866A1 (en) * 2012-12-17 2014-06-19 General Electric Company System for storage, querying, and analysis of time series data
CN105353988A (zh) * 2015-11-13 2016-02-24 曙光信息产业(北京)有限公司 一种元数据读写方法及装置
CN105630860A (zh) * 2014-11-25 2016-06-01 Sap欧洲公司 具有事务控制块索引的数据库系统
US10268411B1 (en) * 2015-11-18 2019-04-23 Veritas Technologies Llc Policy and heuristic based conversion of write-optimized virtual disk format into read-optimized virtual disk format
CN110709846A (zh) * 2017-12-12 2020-01-17 谷歌有限责任公司 使用差异隐私的不经意访问

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158991B2 (en) * 2003-09-30 2007-01-02 Veritas Operating Corporation System and method for maintaining temporal data in data storage
US8498967B1 (en) * 2007-01-30 2013-07-30 American Megatrends, Inc. Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US9230000B1 (en) * 2012-06-04 2016-01-05 Google Inc. Pipelining Paxos state machines
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9953050B2 (en) * 2014-11-25 2018-04-24 Sap Se Garbage collection of versions driving the garbage collection of multi-version concurrency control timestamps
US11233874B2 (en) * 2018-08-06 2022-01-25 Vmware, Inc. Ordinary write in distributed system maintaining data storage integrity
US11243917B2 (en) * 2018-10-03 2022-02-08 International Business Machines Corporation Blockchain implementing reliability database
US10725977B1 (en) * 2019-10-21 2020-07-28 Qumulo, Inc. Managing file system state during replication jobs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140172866A1 (en) * 2012-12-17 2014-06-19 General Electric Company System for storage, querying, and analysis of time series data
CN105630860A (zh) * 2014-11-25 2016-06-01 Sap欧洲公司 具有事务控制块索引的数据库系统
CN105353988A (zh) * 2015-11-13 2016-02-24 曙光信息产业(北京)有限公司 一种元数据读写方法及装置
US10268411B1 (en) * 2015-11-18 2019-04-23 Veritas Technologies Llc Policy and heuristic based conversion of write-optimized virtual disk format into read-optimized virtual disk format
CN110709846A (zh) * 2017-12-12 2020-01-17 谷歌有限责任公司 使用差异隐私的不经意访问

Also Published As

Publication number Publication date
EP4136543A1 (en) 2023-02-22
CN115917526B (zh) 2023-12-29
US20210382892A1 (en) 2021-12-09
WO2021211475A1 (en) 2021-10-21
US11113296B1 (en) 2021-09-07
US11762868B2 (en) 2023-09-19

Similar Documents

Publication Publication Date Title
US11899937B2 (en) Memory allocation buffer for reduction of heap fragmentation
US9787706B1 (en) Modular architecture for analysis database
CN111309720A (zh) 时序数据的存储、读取方法、装置、电子设备及存储介质
KR20200003164A (ko) 데이터베이스 동기화
US11880290B2 (en) Scalable exactly-once data processing using transactional streaming writes
US10713216B2 (en) Using relative generation numbers to deduplicate file system events
US20190243712A1 (en) Versioned records management using restart era
CN113051221A (zh) 数据存储方法、装置、介质、设备及分布式文件系统
CN115917526B (zh) 用于事务存储系统的元数据管理
CN111666045A (zh) 基于Git系统的数据处理方法、系统、设备及存储介质
CN106934044B (zh) 一种数据处理方法及装置
CN108271420A (zh) 管理文件的方法、文件系统和服务器系统
CN113805864A (zh) 一种项目工程的生成方法、装置、电子设备及存储介质
US10691615B2 (en) Client-side persistent caching framework
CN112783835A (zh) 索引管理方法、装置及电子设备
US10140190B1 (en) Efficient transaction log flushing
US11609909B2 (en) Zero copy optimization for select * queries
CN104821907A (zh) 一种电子邮件处理方法
CN115858423A (zh) 缓存淘汰策略的切换方法、装置、电子设备及存储介质
CN117785501A (zh) 数据缓存方法、装置、存储介质及电子设备
CN116263772A (zh) 缓存预热系统、方法、计算机设备及存储介质
WO2023009361A1 (en) Utilizing progress identifiers to rewrite an event query

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