数据库高速缓存制造技术

技术编号:22658753 阅读:19 留言:0更新日期:2019-11-28 03:22
本发明专利技术涉及数据库高速缓存。用于处理数据库请求和从数据库系统的高速缓存检索结果的方法、高速缓存、数据库系统和计算机程序。高速缓存存储数据库系统的一个或多个数据库的数据空间的表示,包括数据空间能够针对其输出结果的任何数据库请求的一个或多个结果。响应于从客户端接收到数据库请求,高速缓存通过利用所存储的表示来确定数据空间是否能够输出针对该数据库请求的一个或多个结果。如果是肯定的,那么一个或多个结果从高速缓存的表示返回给客户端。否则,高速缓存返回无效通知。

Database cache

The invention relates to a database cache. Methods, caches, database systems, and computer programs for processing database requests and retrieving results from the cache of the database system. A cache stores a representation of the data space of one or more databases of a database system, including one or more results of any database request for which the data space can output results. In response to receiving a database request from a client, the cache determines whether the data space can output one or more results for the database request by using the stored representation. If yes, one or more results are returned to the client from the cached representation. Otherwise, the cache returns invalid notifications.

【技术实现步骤摘要】
数据库高速缓存
本专利技术涉及数据库技术。特别地,它涉及高速缓存数据库请求结果。
技术介绍
数据库高速缓存在高速缓存中存储保存在数据库系统中的选择的数据。然后从高速缓存中回答数据库请求以减少响应时间。例如,将经常从数据库请求的选择的数据存储在高速缓存中。数据库请求(针对所述数据库请求,没有数据存储在高速缓存中)在请求时被处理,并且随后从数据库中回答。而且,在请求时利用数据库系统的处理资源和时间处理如下数据库请求:针对所述数据库请求,数据库不包括任何结果。一种一般方案(例如,由http://www.ehcache.org/documentation/2.8/recipes/cachenull.html上的开源高速缓存EHCACHE的文档提出的)是在数据库没有输出针对给定请求的结果时高速缓存零值。在US2010/0036805A1中也描述了高速缓存零或NULL值,其涉及维护针对数据库请求的输入/输出(I/O)值高速缓存。响应于在数据库处接收到请求,根据预定标准确定是否创建了用于从高速缓存返回结果的高速缓存条目,以用于随后再次接收到相同或类似请求的事件。如果通过处理请求找不到匹配值,那么返回NULL值并将其包括在高速缓存中。另外,US2016/0042278A1涉及内容递送网络中内容的预测调整,以刷新存储在一个或多个高速缓存中的内容。来自数据库的所有数据或经常请求的数据部分存储在高速缓存中,从而对数据库的内容进行镜像。取决于内容和/或高速缓存的尺寸,从高速缓存提供所有内容或内容的部分。高速缓存管理确定内容是否陈旧并且要被刷新。QiongLuo等人的论文“Middle-TierDatabaseCachingfore-Business”涉及与web相关的数据库系统,其中由基于浏览器的客户端通信地耦合的web应用服务器通过使用后端数据库来操作。Web应用服务器由中间层数据库高速缓存进行扩展,无需对Web应用进行任何修改。一种高速缓存方案是全表级高速缓存,根据该高速缓存方案,中间层数据库高速缓存维护后端数据库的表的完整副本。AlexandrosLabrinidis等人的教科书“CachingandMaterializationforWebDatabases”描述了Web数据库的系统架构以及这种架构中的高速缓存和实现的各方面。
技术实现思路
第一方面针对一种用于处理数据库请求以从数据库系统的高速缓存检索结果(下文中也称为数据检索请求)的方法。高速缓存存储数据库系统的一个或多个数据库的数据空间的表示。所述表示包括数据库系统的一个或多个数据库的数据空间能够针对其能够输出结果的任何数据库请求的一个或多个结果。通过利用存储的所述表示,高速缓存处的所述方法响应于接收到数据库请求而确定一个或多个数据库的数据空间是否能够输出针对所述数据库请求的一个或多个结果。如果是肯定的,那么返回针对所述数据库请求的一个或多个结果,否则返回无效通知。另一方面涉及一种用于处理数据库请求的高速缓存,所述数据库请求被配置为执行前述方面的方法。另一方面针对一种数据库系统,包括被配置为执行前述方面的方法的高速缓存。另一方面针对一种用于使用高速缓存根据前述方面处理数据库请求的计算机程序,包括存储在计算机可读存储介质上的代码指令,以在计算机上执行所述程序时执行前面所述的方法。附图说明将参考附图描述本机制。类似的标号一般指示完全相同或功能相似的元件。图1是数据库系统的概述,其包括高速缓存和数据库。图2可视化通信网络中的示例实现。图3示出了图示高速缓存初始化/更新和高速缓存利用的序列图。图4用改变历史补充图2的通信网络。图5可视化存储两个或更多个结果的高速缓存。图6图示了用于利用无效通知的图1中系统的扩展。图7示出了图示从数据空间检索附加结果的流程图。图8示出了图示高速缓存的响应的三个序列图。图9图示了实现集群负载平衡器的数据库系统的应用。图10是计算机器的内部架构的示例性示意图。具体实施方式在图1中示例性地示出了包括高速缓存101和数据库102的数据库系统100的概述。数据库系统100包括计算机器104,计算机器104包括一个或多个处理器,用于输出包含在一个或多个数据库102中的数据的一个或多个处理结果,并且数据空间能够输出一个或多个结果。高速缓存101被布置为处理从客户端103接收的数据库请求。结果由计算机器104在初始化时(因此也称为预处理结果)和/或是高速缓存101的更新时预处理。因此高速缓存101存储数据空间106的表示105。数据空间106由存储在数据库系统100的一个或多个数据库102中的数据定义。换句话说,由至少一个数据库102存储的数据形成数据空间106。表示105包括当任意数据库请求在计算机器104上被预处理时,数据库系统100的一个或多个数据库102的数据空间106能够针对所述任意数据库请求输出结果的针对所述数据库请求的一个或多个结果。存储在高速缓存101中的结果(即,表示105)或者是数据空间106的数据的变换,和/或是数据空间106的子集。至少一个数据库102的数据空间106和表示105的非限制性示例在下面给出。在示例实施例中,数据库系统100的至少一个数据库102是以表形式存储数据空间106的数据的关系型数据库。在其它示例实施例中,数据库102是noSql(不仅是结构化查询语言)数据库,其以半结构化JSON(Java脚本对象表示法)、XML(可扩展标记语言)或其它文档存储数据空间106的数据。但是,实施例不限于示例性提到的数据库,并且适用于保持任何类型的数据的任何类型的数据库系统。要注意的是,如通常那样,如本文所述的一个或多个数据库102存储有限量的数据。例如,在关系型数据库的情况下,有限量的数据存储在给定数量的数据库表中。而且,如通常那样,如本文所述的一个或多个数据库102采用有限数量类型的检索操作。例如,在SQL数据库的情况下,数据检索请求使用指示一个或多个数据库表和键值的SELECT语句。也可以采用更复杂的子操作,诸如JOIN之类。还可以通过定义可允许的键值或键值范围来限制数据检索请求。在任何情况下,假设检索操作的类型/数量以及数据量二者都是有限的,那么如由高速缓存101存储的数据空间106的表示105也是有限的,其中高速缓存101以保持针对数据空间106能够为其输出结果的任何数据检索请求的至少一个预处理结果的方式进行存储。下面进一步给出非限制性用例。在示例实施例中,客户端103是机器用户,诸如应用、服务器和/或终端之类。在非限制性示例实施例中,数据库系统100被布置为回答来自客户端103的关于图2中所示的通信网络200中服务器202之间的路由201的可用性的任何数据库请求。在这个示例实施例中,数据库102存储所有路由,这些路由是两个服务器之间的直接连接,其间没有中间服务器。因此,数据库102的数据空间106由相邻服务器之间的这些直接本文档来自技高网
...

【技术保护点】
1.一种用于处理数据检索请求以从数据库系统的高速缓存中检索数据库结果的方法,所述高速缓存存储数据库系统的至少一个数据库的数据空间的表示,所述数据空间由所述至少一个数据库存储的数据形成,所述表示是所述数据空间的变换和/或子集以包括数据库系统的所述至少一个数据库的数据空间能够针对其输出结果的任何数据检索请求的至少一个预处理结果,所述方法包括在高速缓存处:/n响应于从客户端设备接收到数据检索请求,通过利用存储的所述表示,确定所述至少一个数据库的所述数据空间是否能够针所述该数据检索请求输出至少一个结果,/n如果是肯定的,那么从高速缓存存储的所述表示中向客户端返回针对所述数据检索请求的至少一个预处理结果;/n否则,在不参考所述至少一个数据库的情况下向客户端返回无效通知。/n

【技术特征摘要】
20180517 FR 18541201.一种用于处理数据检索请求以从数据库系统的高速缓存中检索数据库结果的方法,所述高速缓存存储数据库系统的至少一个数据库的数据空间的表示,所述数据空间由所述至少一个数据库存储的数据形成,所述表示是所述数据空间的变换和/或子集以包括数据库系统的所述至少一个数据库的数据空间能够针对其输出结果的任何数据检索请求的至少一个预处理结果,所述方法包括在高速缓存处:
响应于从客户端设备接收到数据检索请求,通过利用存储的所述表示,确定所述至少一个数据库的所述数据空间是否能够针所述该数据检索请求输出至少一个结果,
如果是肯定的,那么从高速缓存存储的所述表示中向客户端返回针对所述数据检索请求的至少一个预处理结果;
否则,在不参考所述至少一个数据库的情况下向客户端返回无效通知。


2.如权利要求1所述的方法,其中所述表示包括多个数据记录,每个数据记录包括键-值组合,其中所述数据检索请求包括至少一个数据记录的键,并且针对所述数据检索请求的所述至少一个预处理结果包括所述至少一个数据记录的至少一个值。


3.如权利要求2所述的方法,其中键-值组合表示通信网络中的起点节点和目的地节点之间的连接路径,
其中键指定通信网络中的起点节点和目的地节点,并且值是从起点节点到目的地节点的至少一条路径,
其中起点节点直接或经由至少一个中间节点连接到目的地节点。


4.如权利要求3所述的方法,还包括:
响应于向接收到的所述数据检索请求返回无效通知,累积返回无效通知的数据检索请求的出现次数;以及
响应于确定累积的出现次数超过预定阈值,优化通信网络。


5.如权利要求1至4中任一项所述的方法,其中所述表示包括比数据库系统的所述至少一个数据库的所述数据空间能够针对接收到的所述数据检索请求输出的结果更...

【专利技术属性】
技术研发人员:M·戴马泽奥C·绍波拉JP·派利特M·萨利巴J·邦纳德
申请(专利权)人:艾玛迪斯简易股份公司
类型:发明
国别省市:法国;FR

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

1