基于人工智能的高速缓存方法与流程

文档序号:16134205发布日期:2018-12-01 00:43阅读:338来源:国知局

本发明涉及缓存机制技术领域,具体的说是一种基于人工智能的高速缓存方法。

背景技术

应用程序是一种独立的计算机程序或软件,其设计用于满足特定目的为了用户的利益而执行一组协调的功能、任务或活动,在应用程序的执行期间,应用程序可以访问存储在高速缓存中的数据。正如通常已知的那样,高速缓存是存储数据的硬件或软件组件,因此可以更快地服务于该数据的未来请求,因为从高速缓存读取数据通常比重新计算结果或从记录系统读取数据更快。因此,可以从缓存中提供的请求越多,系统可以执行的越快。但随着时间的推移,高速缓存中的数据可能变得过时,这时就需要更新系统数据来替换。由于更新可能过于频繁或不够频繁,导致不必要数据的更新和不准确的数据分别保留缓存。在确定硬编码日期/时间量时,应用开发者可以为数据的准确性交换提供数据的速度。

使用传统缓存策略的应用开发者面临的挑战是:应用开发者通常在缓存过期日期进行最佳猜测,然后将日期编程或硬编码到应用中。由于更改硬编码日期所涉及的复杂因素,缓存过期日期并不经常更改,尽管它过长或过短。例如,具有地理地址数据元素的高速缓存可以被编程为每十年更新一次。但是,对于年轻人来说,他们的地址可能每年都会改变,而老年人可能每十年更换一次。对于某些地理地址,十年的到期日期太长,其他日期太短。硬编码的缓存过期日期可能会导致缓存将结果返回给应用程序查询,这对年轻人来说可能是不准确的,并且在进行任何更改之前不必要地使用资源来更新缓存。但是,选择缓存过期日期以说明与数据元素关联的属性非常复杂,因为正在更改硬编码的缓存过期日期。鉴于这些复杂性,应用程序开发人员在对缓存过期日期进行硬编码时会交换数据的准确性,以便通过缓存提高访问数据的速度。



技术实现要素:

针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种基于人工智能的高速缓存方法。

本发明为实现上述目的所采用的技术方案是:一种基于人工智能的高速缓存方法,包括以下步骤:

在一个或多个应用程序运行时,记录系统中存储的所述应用程序涉及的数据元素复制到高速缓存中,形成缓存存储数据元素,使得所述缓存存储数据元素在被访问时能够被加载到缓存,且所述应用程序对所述缓存存储数据元素设置有高速缓存到期时间;

在所述应用程序涉及的数据被访问时,分别在记录系统和高速缓存中检索被访问的数据,并判断被访问的数据对应的缓存存储数据元素是否达到所述高速缓存到期时间;

如果是,则将记录系统中检索到的数据加载到缓存,并对被访问的数据进行高速缓存优化,调整高速缓存到期时间;否则,判断高速缓存中检索到的数据是否与记录系统中检索到的数据一致;

如果一致,则将高速缓存中检索到的数据加载到缓存;如果不一致,则将记录系统中检索到的数据加载到缓存,同时将记录系统中检索到的数据复制到高速缓存中,并将高速缓存中检索到的数据在高速缓存中删除。

所述高速缓存优化使用机器学习方法。

所述调整后的高速缓存到期时间发送给对应的应用程序,所述应用程序将高速缓存到期时间修改为调整后的高速缓存到期时间。

所述高速缓存到期时间在应用程序初次运行时,为应用程序开发者设置的默认高速缓存到期时间。

本发明具有以下优点及有益效果:

1、本发明使用机器学习来更新缓存过期日期并优化缓存策略,通过缓存机制优化缓存策略,可以以更高效和更及时的方式向应用提供更准确的数据。

2、更准确和高效的应用程序可能会导致应用程序在其相关功能和任务中更有效的使用,以更好地平衡速度的准确性。

附图说明

图1为本发明的系统结构图;

图2为本发明的方法流程图;

图3为本发明的高速缓存优化平台结构图。

具体实施方式

下面结合附图及实施例对本发明做进一步的详细说明。

图1所示是本发明方法执行所依赖的系统100框图,该系统包括计算云114、记录系统102(数据元素104)、应用程序服务器108(应用程序106)、开发平台112、高速缓存优化模块120(高速缓存机制122、机器学习模型124、高速缓存到期时间126)、高速缓存116(一个或多个高速缓存存储的数据元素118)、本地系统110。

记录系统102可以包括存储在数据库中的一个或多个数据元素104或任何其他合适的存储。在数据库的情况下,记录系统102可以包括任何已知或已知的查询响应数据源,包括但限于结构化查询语言(sql)关系数据库管理系统。在数据库的情况下,数据库可以包括关系数据库、多维数据库、可扩展标记语言(xml)文档或存储结构化和/或非结构化数据的任何其他数据存储系统。数据元素104可以分布在多个关系数据库、维度数据库和/或其他数据源之间。

应用程序106可以包括在应用程序服务器108内执行的服务器端可执行程序代码(例如,编译的代码,脚本等),以接收来自本地系统110或任何其他合适的查询源的查询,并根据记录系统102的数据元素106或高速缓存116的高速缓存存储的数据元素118来向本地系统提供结果。应用程序106可以使用结构化查询语言(sql)或其他合适的语言来管理和查询存储在记录系统102和高速缓存116中的数据。

系统100可以包括开发平台112,以使最终用户能够开发自己的应用程序106,用于与本地系统110的操作和与本地系统110相关联的资产进行接口和优化。开发平台112可以是任何合适的开发平台。虽然开发平台112在图1中的计算云114中,开发平台112也可以远离计算云114。终端用户开发的应用程序106可以通过利用云计算或分布式计算资源来操作。

应用程序服务器108可以提供任何合适的接口,通过该接口,本地系统110和在开发平台112上工作的应用程序设计者可以与应用程序服务器108上执行的应用程序106通信。例如,应用程序服务器108可以包括支持传输控制协议/因特网协议(tcp/ip)上的瞬态请求/响应协议的超文本传输协议(http)接口,支持实现th的非瞬态全双工通信的web套接字接口。在单个tcp/ip连接上的web套接字协议和/或开放数据协议(odata)接口。

应用程序服务器108可以提供应用程序服务,应用程序106可以用来管理和查询存储在高速缓存116中的记录系统102的数据元素104和/或缓存存储的数据元素118。在记录102的系统是数据库的情况下,应用服务器108可以用于将数据库数据模型及其表、层次结构、视图和数据库过程暴露给本地系统110。

记录系统102可以存储在计算云114中的客户端或远离客户端。众所周知,“计算云”通常被称为“云计算”,它是通过因特网在网络上传送按需计算资源(例如,网络、网络带宽、服务器、处理、内存、存储、应用、数据中心、虚拟机和服务等)。支付使用费。计算云114可以提供可由本地系统110远程访问的物理基础设施和应用程序。

存储在记录系统102中的数据元素104和高速缓存116中的对应的高速缓存存储的数据元素118可以包括任何类型的数据。例如,数据元素104可以包括关于工业资产及其使用条件的信息,例如从嵌入在工业资产本身或其附近的传感器收集的数据。可以使用其他合适的数据元素。数据元素104可以在本地(例如,本地系统110)或远程(例如,计算云114)的软件中对资产进行聚合、分析和处理。工业资产可以包括但不限于,生产线上的制造设备,在风电场上发电的风力涡轮机,或钻孔等。工业资产可以配备有一个或多个传感器,其配置成监视资产的操作或条件的各自的一个。来自一个或多个传感器的数据元素可以被记录或传输到计算云114或其他远程计算环境。通过将这些数据带到计算云114中,可以通过开发平台112构建新的软件应用,并且可以创建新的基于物理的分析。通过分析这样的数据获得的见解可以增强资产设计,或增强软件算法,用于在其边缘处操作相同或类似的资产。可以通过提供优化的缓存策略来增强资产的分析和操作。

如上面和这里所提及的,本地系统110还可以包括一个或多个服务器。服务器可以包括执行用于执行任务的指令的至少一个处理器。本地系统110以及计算云114中的组件可以包括一个或多个非暂时性计算机可读介质以及可以执行存储在非暂时性存储器上的指令以运行应用程序的一个或多个处理器。

高速缓存116可以是存储一个或多个高速缓存存储的数据元素118的硬件或软件组件,从而可以更快地提供对该数据的未来请求。在一些实施例中,高速缓存存储的数据元素118可以是早期计算的结果或存储在别处的数据的副本(例如,存储在记录系统102中的数据元素104)。从高速缓存116读取或检索数据通常可以比重新计算结果或从记录系统102的较慢(例如,通常更大)和远程系统读取数据更快。因此,从高速缓存116提供的数据请求越多,系统可以执行的速度就越快。通常活跃的数据(例如,由应用程序频繁使用的数据)可以被缓存以缩短数据访问时间,减少等待时间,并改善输入输出(i/o)。

在一些实施例中,高速缓存优化模块120可以优化缓存策略。高速缓存存储的数据元素118可以被存储在高速缓存116中,因为它们以相对频率请求,随着时间的推移,可以更新或改变,记录高速缓存存储的数据元素104的记录系统102中的数据元素104,或者更新应用程序106所使用的记录系统102中的数据元素118以产生存储在高速缓存116中的结果。通常,缓存到期时间被硬编码到应用程序106中,使得当应用程序106被执行时,高速缓存存储的数据元素118被返回,直到高速缓存到期时间,在该点之后,来自记录系统102的数据元素104被返回并且缓存被无效。然而,传统的高速缓存到期时间可能是低效的,因为传统高速缓存到期时间可能适用于整个高速缓存,而不是单独的数据元素。因此,对于一些可能不是无效的数据元素,可能会过早地满足缓存过期日期,并且在一些数据元素变得无效之后可能会过长。

虽然应用程序106可能需要使用最新的数据元素,但是最新的数据元素的提供可以与高速缓存116提供的数据元素相对于记录系统102的速度相平衡。缓存策略可以指示应用程序106何时可以使用存储在记录102的系统中的数据元素104,并且当应用程序106可以使用缓存存储的数据元素118时,从而根据需要平衡数据的精度与速度。

高速缓存优化模块120可以包括缓存机制122和机器学习模型124,并且可以使用它们来优化缓存策略。缓存机制122可以确定缓存到期日期是否应该减少或增加,机器学习模型124可以确定高速缓存存储的数据元素118的更新到期日期。机器学习模型124可以迭代地从数据中学习,因为随着模型暴露于新的数据,它能够独立地适应。机器学习模型124可以从先前的计算中学习以产生可靠的、可重复的决策和结果。例如,机器学习模型124可以作为输入,在给定的时间内接收与应用程序106相关联的查询次数,或应用程序106使用数据元素的频率,并且可以基于这些输入的更新过期日期的确定来优化缓存策略。在这些输入上搜索数据以优化缓存策。作为另一个例子,由机器学习模型124接收的输入可以是依赖于应用的(例如,客户数据)。可以使用其他合适的输入。例如,如果应用程序102查询每天运行,因此每天访问数据元素104,但数据元素104仅一年改变一次,最佳缓存策略可以是将这些数据元素保存在高速缓存116中。作为另一个例子,如果应用查询一年运行一次并且数据元素更频繁地变化,则最佳缓存策略可以是将这些数据元素保存在记录系统102中并从缓存中退出。

图2是本发明实施例的方法流程图,可以使用硬件(例如,电路),软件或手动装置的任何适当组合来执行图2过程。在示例中,图1中的系统100被调节为执行图2过程。

在一个或多个应用程序运行时,记录系统中存储的所述应用程序涉及的数据元素复制到高速缓存中,形成缓存存储数据元素,使得所述缓存存储数据元素在被访问时能够被加载到缓存,且所述应用程序对所述缓存存储数据元素设置有高速缓存到期时间。最初,在s210,系统100提供可由处理器310(图3)使用的一个或多个应用106。然后在s212中,将一个或多个数据元素104存储在记录系统102的一个或多个系统中。然后在s214中,提供高速缓存116。如上所述,高速缓存116可以与一个或多个应用程序106相关联,在初始条件下,高速缓存116可以是空的,并且当应用查询被执行时,来自记录系统102的数据元素104可以经由拉通机制被复制到高速缓存116以形成缓存存储数据元素118,使得数据在被访问时将被加载到缓存。在s216中选择默认高速缓存到期时间126。在生成应用程序106期间,开发人员可以经由开发平台112选择默认的高速缓存到期时间126。

在所述应用程序涉及的数据被访问时,分别在记录系统和高速缓存中检索被访问的数据,并判断被访问的数据对应的缓存存储数据元素是否达到所述高速缓存到期时间。应用程序106从高速缓存116和记录系统102之一访问和检索数据。在s218中,确定默认高速缓存到期时间126是否已被满足,以响应查询的执行。

如果是,则将记录系统中检索到的数据加载到缓存,并对被访问的数据进行高速缓存优化,调整高速缓存到期时间。所述调整后的高速缓存到期时间发送给对应的应用程序,所述应用程序将高速缓存到期时间修改为调整后的高速缓存到期时间。所述高速缓存到期时间在应用程序初次运行时,为应用程序开发者设置的默认高速缓存到期时间。如果默认高速缓存到期时间126已被满足/到期,则在s220中从记录系统102中检索数据元素104,并将其返回到应用程序106。在s222中进行高速缓存优化。确定高速缓存存储的数据元素118与存储在记录102的系统中的数据元素104不同,可以触发高速缓存116将高速缓存存储的数据元素118与数据元素存储在系统或记录102和机器学习模型124中。与整个高速缓存变得无效相反,一个或多个高速缓存存储数据元素118可以在每个数据字段级别(例如,地理地址)上是无效的。例如,如果默认高速缓存到期时间126已经满足,并且来自记录系统102的数据元素104与高速缓存存储数据元素118不同,机器学习模型124可以推荐降低默认高速缓存到期时间126以尝试更接近数据元素自然更新的日期,或者可以推荐维持默认高速缓存到期时间126以优化最新的数据元素在缓存中。

高速缓存优化模块120可以将机器学习模型124应用于检索到的数据,默认高速缓存到期时间和任何其他合适的数据中的至少一个,以确定更新的默认高速缓存到期时间126。例如,如果默认的高速缓存到期时间126已经满足,并且来自记录102的系统的数据元素104与高速缓存存储的数据元素118相同,机器学习模型124可以推荐将缺少高速缓存到期时间126扩展为缓存存储的数据元素118可能仍然是准确的。由机器学习模型124产生的推荐调整可以在s226中随其生成自动生效。由机器学习模型124产生的推荐调整可以直到开发者确认或任何其他合适的确认动作才会生效。

如果不是,判断高速缓存中检索到的数据是否与记录系统中检索到的数据一致。如果一致,则将高速缓存中检索到的数据加载到缓存;如果不一致,则将记录系统中检索到的数据加载到缓存,同时将记录系统中检索到的数据复制到高速缓存中,并将高速缓存中检索到的数据在高速缓存中删除。如果检索到的缓存存储数据元素118不同于来自记录系统102的检索数据元素104,则缓存存储数据元素118可以在s228中失效,然后可以在s226中调整默认高速缓存到期时间。

作为另一示例,如果默认高速缓存到期时间126未被满足,并且来自记录102的系统的数据元素104不同于高速缓存存储的数据元素118,则机器学习模型124可以推荐降低默认高速缓存有效期限以优化高速缓存中最新的数据元素。

所述高速缓存优化使用机器学习方法。机器学习是人工智能的一种形式,其被用于允许计算机基于经验数据开发行为并从中建立分析模型。机器学习研究的一个重点可能是自动学习识别复杂模式并基于数据做出明智的决策,而不需要明确地编程在哪里寻找。机器学习模型可以迭代地从数据中学习,因为随着模型暴露于新数据,他们能够独立地适应。机器学习模型可以从之前的计算中学习,以产生可靠的,可重复的决策和结果。例如:可以训练机器学习模型以建议高速缓存到期日期的最佳时间。机器学习模型对于每个应用可以是不同的,并且可以使用与应用相关联的历史数据元素来训练。

响应于请求一个或多个数据元素的应用,如果应用的请求在默认高速缓存到期日期之前,则高速缓存可以返回数据元素;并且如果应用程序的请求在默认缓存过期日期之后,则记录系统可以返回数据元素。响应于应用程序的数据请求,高速缓存机制可以从高速缓存和记录系统中提取数据元素。高速缓存机制然后可以将从高速缓存拉取的数据元素与从记录系统拉取的数据元素进行比较。

在默认高速缓存过期日期尚未过去的情况下,如果所提取的数据元素与高速缓存和记录系统二者相同,则高速缓存机制可以确定高速缓存过期日期是最优并且可以保持不变,因为缓存中的数据元素是最新的。基于数据类型和使用模式,缓存机制(通过机器学习模型)可以随时间学习何时应该从记录系统中提取数据元素与从数据元素中读取数据元素(一个或多个)缓存。

在默认高速缓存过期日期已经过去的情况下,如果所提取的数据元素与高速缓存和记录系统二者相同,则高速缓存机制可以确定高速缓存过期日期可以被扩展,因为数据元素没有改变。高速缓存机制可以使用机器学习来确定扩展高速缓存到期日期。

在缓存过期日期尚未过去的情况下,如果与记录系统相比,所提取的数据元素与缓存不相同,则缓存机制可以确定缓存过期日期可以减少,以减少超时数据保留在缓存中的时间。高速缓存机制可以使用机器学习来确定减少的高速缓存到期日期。

在默认缓存过期日期已经过去的情况下,如果与记录系统相比,所提取的数据元素与缓存不相同,则缓存机制可以使用机器学习来确定缓存过期日期是最优的并且可能保持不变,因为缓存中的数据将被更新。与记录系统相比,确定拉取的数据元素与高速缓存不相同可以启动从记录系统到高速缓存和机器学习模型两者的更新。

图3示出了与图1的系统100相关联的高速缓存优化平台300。高速缓存优化平台300包括高速缓存优化处理器310(“处理器”),通信设备320可以用于例如与一个或多个用户进行通信。平台300还包括输入设备340(如,用于输入关于测量和资产的信息的鼠标和/或键盘)和输出设备350(如,输出和显示数据和/或推荐)。处理器310与存储器/存储设备330通信。存储设备330可以存储用于控制处理器310的程序312和/或缓存优化逻辑314。处理器310执行程序312,314的指令,从而根据本文所描述的任何实施例进行操作。例如,处理器310可以从高速缓存和记录系统接收数据元素,然后可以通过程序312,314的指令应用缓存优化模块120来分析数据并更新缓存策略。

本发明可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例的形式,完全软件实施例(包括固件、驻留软件、微代码等)或结合软件和硬件方面的实施例。本发明的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码

图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或框图中的每个块可以表示模块、段或代码部分,其包括用于执行指定逻辑功能的一个或多个可执行指令。还应注意的是,在一些替代实现中,块中所指出的功能可能发生在图中所指出的顺序中。例如,实际上连续执行的两个块实际上可以同时执行,或者块有时可以按照相反的顺序执行,这取决于所涉及的功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1