用于数据库变化流的缓存技术制造技术

技术编号:31774864 阅读:19 留言:0更新日期:2022-01-08 10:18
公开了一种与用于处理数据库变化流的缓存技术有关的技术。计算机系统的缓存模块可以从包括指示数据库表的改变的多个记录的变化流接收变化记录。变化流可以包括多个碎片的变化记录,并且通过提供针对多个碎片中的一个或多个的一个或多个位置指示符来访问变化流,以请求一个或多个变化记录和更新后的位置指示符。可以针对缓存模块被配置用于其的成组的一个或多个碎片的改变,存储一个或多个缓存条目,每个缓存条目包括多达阈值组大小的成组的变化记录。计算机系统的变化处理器模块可以通过提供接收的位置指示符来请求变化流的一部分。变化处理器模块可以从缓存模块接收来自与提供的位置指示符匹配的缓存条目的一个或多个缓存的变化记录。个缓存的变化记录。个缓存的变化记录。

【技术实现步骤摘要】
【国外来华专利技术】用于数据库变化流的缓存技术

技术介绍


[0001]公开文本总体上涉及数据库系统,并且更具体地,涉及处理数据库表的变化流(change stream)。
[0002]相关技术描述
[0003]一些数据库系统生成指示数据库表的变化的一个变化记录流。变化流可以由多个不同的应用程序处理,并且在处理变化记录方面可能存在定时限制。随着对变化流的访问次数的增加,在传统的实现中性能可能会下降。
附图说明
[0004]图1是示出根据一些实施方案的包括缓存的示例数据库变化流进程(stream process)系统的框图。
[0005]图2是示出根据一些实施方案的处理变化流的流进程的示例处理层的框图。
[0006]图3是示出根据一些实施方案的网络进程与流进程之间的示例交互的框图。
[0007]图4是示出根据一些实施方案的示例缓存实现的框图。
[0008]图5是示出根据一些实施方案的当检索变化记录时对缓存条目的示例添加的框图。
[0009]图6是示出根据一些实施方案的用于对变化流使用缓存的示例方法的流程图。
[0010]图7是示出根据一些实施方案的用于基于来自多个租户的检查点生成组合变化流检查点的技术的框图。
[0011]图8是示出根据一些实施方案的用于使用缓存处理数据库表的变化流的方法的流程图。
[0012]图9是示出根据一些实施方案的示例计算设备的框图。
[0013]公开文本包括对“一个实施方案”或“实施方案”的引用。短语“在一个实施方案中”或“在实施方案中”的出现不需要指示相同的实施方案。特定特征、结构或特性可以以符合公开文本的任何适当方式组合。
[0014]在公开文本中,不同实体(其可以不同地被称为“单元”、“电路”、其他组件等)可以被描述或声称为“被配置”为执行一个或多个任务或操作。此表述——被配置为[执行一个或多个任务]的[实体]——在此用于指代结构(即物理的东西,如电子电路)。更具体地说具体地,该公式表述用于指示该结构被安排为在操作期间执行一个或多个任务。可以说,一个结构被“配置为”执行某些任务,即使该结构当前没有被操作。“被配置为缓存变化流记录的缓存模块”旨在覆盖例如具有例如处理器、网络接口、具有程序指令的存储器等以在操作期间执行该功能的计算机系统,即使该计算机系统当前没有被使用(例如,没有将其连接到电源)。因此,被描述或叙述为“被配置为”执行某些任务的实体指的是物理的东西,例如存储可执行以实现该任务的程序指令的设备、电路、存储器等。在此,该短语不用于指无形的东
西。
[0015]术语“被配置为”并不意味着“可被配置为”。例如,未编程的FPGA不会被认为“被配置为”执行某些特定功能,尽管它可以“可配置为”执行该功能,并且可以“被配置为”在编程后执行该功能。
[0016]在所附权利要求中叙述结构被“被配置为”执行一项或多项任务,明确意在不援引35 U.S.C.
§
112(f)用于该权利要求要素。因此,所提交的本申请中的任何权利要求均不应被解释为具有装置加功能元件。如果申请人希望在调用期间援引第112(f)条,它将使用“手段”[执行功能]结构来陈述权利要求要素。
[0017]如本文所用,术语“第一”、“第二”等被用作它们前面的名词的标签,并且除非特别说明,否则不暗示任何类型的顺序(例如,空间、时间、逻辑等),除非特别说明。例如,在具有多个用户账户的计算系统中,术语“第一”用户账户和“第二”用户账户可用于指代任何用户。换句话说,例如,“第一个”用户账户和“第二个”用户账户不限于最初创建的两个用户账户。当在此使用时,术语“或”被用作包含或而不是排除“或”。例如,短语“x、y或z中的至少一个”指x、y和z中的任何一个以及它们的任何组合(例如,x和y,但而不是z或x、y和z)。
[0018]如本文所用,术语“基于”用于描述影响确定的一个或多个因素。这一术语并不排除其他因素可能影响决定的可能性。也就是说,确定可以仅仅基于指定的因素,或者基于指定的因素以及其他未指定的因素。考虑短语“基于B确定A”。该短语指定B是用于确定A或影响A的确定的因素。该短语并不排除A的确定也可以基于某些其他因素,例如C。该短语还意在涵盖其中仅基于B确定A的实施方案。如本文所使用的,短语“基于”因此与短语“至少部分基于”同义。
具体实施方式
[0019]在各种大容量数据库应用程序中,多个进程可能可以访问同一个数据库表。在一些实施方案中,变化流反映数据库表的改变的序列,并且可以由一个或多个变化处理器模块访问以基于对数据库表的更新执行各种任务。作为一个示例,系统可以实现访问数据库系统的网络集群和流集群(例如,每个可以包括一个或多个Java进程)。网络进程可能可以处理来自用户的外部变化请求,而流进程可能可以处理内部更新。外部变化请求的一个示例是用户在他们的在线购物车中放置一个项目,而内部变化的一个示例是根据放置在用户购物车中的项目更新库存详细信息。
[0020]在大量应用中,性能和成本可能是重要的设计考虑因素。在一些实施方案中,实现变化流缓存以缓存来自变化流的与特定过程相关联的变化记录。例如,可以对变化流进行分片,并且可以分配进程来仅处理变化流中包括的部分碎片(shard)。这可以有利地提高访问变化记录的性能并减少对变化流的访问次数。缓存可将变化流记录分组至阈值缓存条目大小(可被称为段大小),并以条目粒度执行缓存操作。例如,对于变化记录组,数据可以在每次输入的基础上被缓存、驱逐、命中/遗漏等。
[0021]不同的流进程可以实现不同的变化流缓存,并且给定流进程内的一个或多个变化处理器模块可以共享该进程的缓存。变化处理器模块可提供位置指示符以访问变化流,并且这些位置指示符可用于检测缓存命中和未命中。网络进程可以将位置指示符转发给流进程,流进程可以使用其来检索变化流记录。在一些实施方案中,尽管底层数据库系统可能不
知道多租户实现,但一个或多个处理层实现多租户,使得数据库表存储多租户的条目。
[0022]流进程可以为变化流执行检查点,其中,检查点可以在系统崩溃时提供恢复位置。检查点可以是位置指示符,它指定在系统崩溃后变化流中开始处理记录的位置。检查点可以由在每个租户的基础上实现多租户的一个或多个处理层执行,并且基于单个租户检查点,系统可以为变化流生成整体检查点。
[0023]变化处理系统的概述
[0024]图1是示出根据一些实施方案的包括缓存的示例数据库变化流进程系统的框图。在所示实施方案中,计算机系统110包括变化处理器模块112和缓存模块120,它们被配置为处理数据库表132的变化流134。
[0025]在所示实施方案中,数据库表132向变化流134提供变化信息。在一些实施方案中,变化信息包括指示对数据库表132所做的改变的一个或多个变化记录。在一些实施方案中,尽管数据库系统可能不知道多租户,但计算机系统110使用数据库表132来存储多个不同租户的数据。在一些实施方案中,数据库表13本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:由计算机系统的缓存模块从变化流接收变化记录,其中所述变化流包括指示数据库表的改变的多个记录;其中所述变化流包括多个碎片的变化记录,并且其中所述变化流是通过提供所述多个碎片中的一个或多个碎片的一个或多个位置指示符而可访问的,以请求一个或多个变化记录和更新后的位置指示符;针对所述缓存模块被配置用于其的成组的一个或多个碎片的改变,由所述缓存模块存储一个或多个缓存条目,其各自包括多达阈值组大小的成组的变化记录;由所述计算机系统的变化处理器模块请求所述变化流的一部分,其中请求包括提供接收的位置指示符;并且由所述变化处理器模块从所述缓存模块接收一个或多个缓存的变化记录,其来自与提供的位置指示符匹配的缓存条目。2.根据权利要求1所述的方法,还包括:由多租户适配器模块从所述变化处理器模块接收基于租户的请求;并且由所述多租户适配器模块将所述基于租户的请求转换为由维护所述数据库表的数据库系统支持的请求,其中所述多租户适配器模块使用所述数据库表存储多个不同租户的字段。3.根据权利要求2所述的方法,还包括:由所述计算机系统基于多个租户的变化记录的处理而确定多个租户检查点;由所述计算机系统基于所述多个租户检查点来确定组合检查点;并且存储所述组合检查点。4.根据权利要求1所述的方法,其中所述缓存模块和所述变化处理器模块被包括在流进程中,其中所述方法还包括使用由所述计算机系统执行的多个不同的流进程而访问所述变化流。5.根据权利要求1所述的方法,还包括:由所述计算机系统将所述变化处理器模块的地址与由所述变化处理器模块处理的所述变化流的一个或多个碎片相关联地存储在数据库系统的租约表中,其中所述数据库系统维护所述数据库表和所述变化流;并且其中接收的位置指示符由另一个模块基于存储的地址进行转发。6.根据权利要求1所述的方法,还包括:由所述计算机系统的轮询模块使用位置指示符而轮询所述变化流,其中所述位置指示符包括所述变化流中的一个或多个碎片的碎片标识符和每个碎片的序列号;响应于轮询,接收一个或多个新的变化记录和更新后的位置指示符;并且由所述缓存模块将所述一个或多个新的变化记录存储在一个或多个缓存条目中。7.根据权利要求1所述的方法,其中所述缓存条目与提供的位置指示符之间的匹配基于包括在所述位置指示符中的碎片标识符和序列号,并且其中缓存条目包括具有一个或多个所述碎片标识符和与所述一个或多个碎片标识符相对应的一个或多个序列号的标签值。8.一种非暂时性计算机可读介质,具有在其上存储的指令,所述指令能够由计算设备执行以执行包括如下的操作:
由缓存模块从变化流接收变化记录,其中所述变化流包括指示数据库表的改变的多个记录;其中所述变化流包括多个碎片的变化记录,并且其中所述变化流是通过提供所述多个碎片中的一个或多个碎片的一个或多个位置指示符而可访问的,以请求一个或多个变化记录和更新...

【专利技术属性】
技术研发人员:B
申请(专利权)人:易享信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1