一种缓存方法、通信装置及通信系统与流程

摘要: 本技术涉及通信,尤其涉及一种缓存方法、通信装置及通信系统。背景技术:1、现代大数据存储通常采用多层存储架构,从而具备存储和计算的弹性扩展、独立扩容缩容能力。大数...
一种缓存方法、通信装置及通信系统与流程

本技术涉及通信,尤其涉及一种缓存方法、通信装置及通信系统。

背景技术:

1、现代大数据存储通常采用多层存储架构,从而具备存储和计算的弹性扩展、独立扩容缩容能力。大数据存储系统之上构建数据仓库正向云原生架构进行转型,多层存储架构由于数据拉远带来存储访问性能下降问题,业界通常通过增加缓存层,采用缓存加速技术满足业务访问性能。在一些场景下,由于缓存资源受限,因此上层业务希望平台加速层在保证性能不下降情况下尽可能降低成本,达成最小缓存空间下获得较高的命中率。

2、然而,如何提升缓存空间中的缓存数据的命中率,有待进一步研究。

技术实现思路

1、本技术提供了一种缓存方法、通信装置及通信系统,用以提升缓存空间中的缓存数据的命中率。

2、第一方面,本技术实施例提供一种缓存方法,该方法可以由第一通信装置执行,在并不特殊说明的情况下,本技术中的“第一通信装置”既可以指服务端,也可以是该服务端中的组件(例如,处理器、芯片、或芯片系统等),或者也可以是能实现全部或部分服务端功能的逻辑模块或软件。其中,该服务端指的是为客户端提供服务的设备或软件系统。示例性地,该服务端包括主动缓存管理装置、缓存文件系统和分布式文件系统。主动缓存管理装置用于预测客户端即将访问的数据,并提前从分布式文件系统中获取该数据后缓存至缓存文件系统。缓存文件系统用于存储缓存的数据。分布式文件系统是“相对慢速”的存储系统,可以提供大数据场景下数据持久化存储能力。该方法包括:获取第一访问对象的多个访问负载特征,多个访问负载特征中的每个访问负载特征用于指示针对第一访问对象的单次访问的访问时间和访问数据范围;然后,根据多个访问负载特征,确定第一访问对象的数据访问规律,数据访问规律用于指示第一访问对象的历史访问的访问时间特征和访问数据范围特征;然后,根据数据访问规律,确定第一访问对象的主动缓存预测结果,主动缓存预测结果用于指示未来一次或多次访问第一访问对象的预测访问开始时间和预测访问数据范围;最后,根据主动缓存预测结果,将第一数据进行主动缓存,第一数据是主动缓存预测结果指示的数据中的部分或全部数据。

3、基于上述方法,根据第一访问对象的多个访问负载特征确定第一访问对象的数据访问规律,根据数据访问规律确定第一访问对象的主动缓存预测结果,并根据主动缓存预测结果,将第一数据进行主动缓存,该第一数据是主动缓存预测结果指示的数据中的部分或全部数据。该方法可以实现对具备数据访问规律的访问对象的待访问数据进行精确预测,并提前进行主动缓存,从而客户端在从缓存空间中访问第一访问对象的数据时,有更高的概率可以获取到数据,因此可以提升缓存空间中的缓存数据的命中率,有助于实现数据访问的加速,提升用户体验。

4、其中,将第一数据进行主动缓存,例如可以是将分布式文件系统内的第一数据主动缓存至缓存文件系统。作为一种实现方法,主动缓存装置向缓存文件系统发送数据调度指令,该数据调度指令用于指示缓存文件系统从分布式文件系统中获取第一数据。

5、在一种可能的实现方法中,根据多个访问负载特征,确定第一访问对象的数据访问规律,包括:首先,根据多个访问负载特征,确定针对第一访问对象的任意相邻两次访问的访问开始时间的时间差以及每次访问的访问数据范围的大小;然后,根据第一方差和/或第二方差,判断针对第一访问对象是否存在数据访问规律,第一方差是根据针对第一访问对象的任意相邻两次访问的访问开始时间的时间差确定的,第二方差是根据每次访问的访问数据范围的大小确定的;然后,在存在数据访问规律的情况下,根据第一均值和第二均值,确定数据访问规律;其中,第一均值是根据针对第一访问对象的任意相邻两次访问的访问开始时间的时间差确定的,第二均值是根据每次访问的访问数据范围的大小确定的,数据访问规律包括访问时间偏移量和访问数据偏移量,访问时间偏移量是根据第一均值确定的且用于预测未来访问的访问开始时间,访问数据偏移量是根据第二均值确定的且用于预测未来访问的访问数据范围。

6、基于上述方法,可以实现准确判断针对第一访问对象,是否存在数据访问规律,且在存在数据访问规律的情况下,准确确定数据访问规律,后续可以利用数据访问规律进行第一访问对象的数据的提前主动缓存,从而提升缓存命中率。其中,准确判断是否存在数据访问规律以及准确确定数据访问规律,有助于准确判断是否进行主动缓存,可以避免因错误判断带来的额外开销。

7、在一种可能的实现方法中,预测访问开始时间与访问时间偏移量有关,预测访问数据范围与访问数据偏移量有关。

8、基于上述方法,在进行主动缓存时,基于访问时间偏移量以及访问数据偏移量确定主动缓存预测结果,该方法不仅简便易实现,且可以对待访问的数据进行准确预测和缓存,有助于提升缓存命中率。

9、在一种可能的实现方法中,根据主动缓存预测结果,将第一数据进行主动缓存,包括:首先,根据主动缓存预测结果以及数据负载粒度,确定第一数据对应的多个子数据,多个子数据中每个子数据的大小与数据负载粒度相关,第一数据是多个子数据构成的集合的子集;然后,将多个子数据依次进行主动缓存。例如数据负载粒度是15分钟,则每个子数据的大小是15分钟,也即预测访问数据范围的大小为15分钟,该第一数据是多个子数据构成的集合的子集,也即第一数据可以与多个子数据构成的集合相同,或者该第一数据是该多个子数据构成的集合一部分,进而将该多个子数据依次进行主动缓存。

10、基于上述方法,可以通过合适大小的数据负载粒度,对主动缓存预测结果中的预测访问数据范围划分为多个固定大小的数据子范围,从而可以实现按照小颗粒范围进行缓存数据的加载操作。相较于已有技术直接基于预测的访问数据范围进行缓存数据的加载操作,可以降低每次加载操作涉及的数据量,从而降低缓存加载的复杂度以及降低缓存文件系统内的缓存数据的置换频率,进而可以提升缓存命中率。并且该方法还可以避免缓存空间中的不同的缓存数据之间出现重复,因此进一步可以降低缓存文件系统内的缓存数据的置换频率。

11、在一种可能的实现方法中,第一数据是主动缓存预测结果指示的数据中的部分数据,主动缓存预测结果指示的数据中的剩余部分数据已经缓存在缓存空间。也即主动缓存预测结果指示的部分数据已经缓存在缓存空间(例如缓存文件系统),且另一部分数据没有缓存在缓存空间,则第一通信装置将主动缓存预测结果指示的部分数据(即未缓存的数据)进行缓存,此时该第一数据是主动缓存预测结果指示的数据中的部分数据(即未缓存的数据)。例如,主动缓存预测结果指示的数据为数据范围a,该数据范围a内的数据中的一部分数据已经缓存在缓存空间,则将数据范围a内的另一部分数据(即未缓存的数据)缓存至缓存空间。

12、基于上述方法,针对已经缓存的数据不再重复缓存,可以避免缓存空间缓存重复的数据,可以减少缓存调度。

13、在一种可能的实现方法中,第一通信装置可以接收来自客户端的该第一访问对象的多个访问负载特征。

14、基于上述方法,可以准确获取到第一访问对象的多个访问负载特征。

15、在一种可能的实现方法中,还包括:对第一数据执行第一操作,第一操作用于指示不允许将第一数据从缓存空间中置换出去。例如第一数据被缓存至缓存文件系统内,则第一操作指示不允许将第一数据置换出缓存文件系统。

16、基于上述方法,通过对第一数据执行第一操作,有助于保障第一数据在被访问前不会从缓存空间中被置换出去,从而可以提升缓存命中率。也即如果不对第一数据执行第一操作,由于缓存空间的大小是有限的,则第一数据在被访问前,可能已经从缓存空间中被置换出去,导致缓存访问失败,降低了缓存命中率。其中,这里的第一操作也称为固定操作。

17、在一种可能的实现方法中,还包括:在第一数据的缓存时长大于或等于第一阈值或第一数据已被访问之后,对第一数据执行第二操作,第二操作用于指示允许将第一数据从缓存空间中置换出去。例如第一数据被缓存至缓存空间后,如果第一数据的缓存时长大于或等于第一阈值或第一数据已被访问,则可以对第一数据执行第二操作,该第二操作用于指示允许将第一数据置换出缓存空间。

18、基于上述方法,通过对第一数据执行第二操作,有助于实现将第一数据快速置换出缓存空间,从而可以有足够的缓存空间对其他数据进行缓存,从而可以提升缓存命中率。也即如果不对第一数据执行第二操作,由于缓存空间的大小是有限的,则第一数据可能会长时间占用缓存空间,导致其他数据无法进行缓存,降低了缓存空间的命中率。其中,这里的第二操作也称为去固定操作。

19、在一种可能的实现方法中,还包括:接收来自客户端的第一查询请求,第一查询请求用于请求查询第一访问对象的数据,第一访问对象的数据包括在第一数据中;向客户端发送第一访问对象的数据。

20、基于上述方法,可以实现对具备数据访问规律的访问对象的待访问数据进行精确预测,并提前进行主动缓存,从而客户端在从缓存空间中访问第一访问对象的数据时,有更高的概率可以获取到数据,因此可以提升缓存空间中的缓存数据的命中率,有助于实现数据访问的加速,提升用户体验。

21、在一种可能的实现方法中,还包括:接收来自客户端的第二查询请求,第二查询请求用于请求查询第二访问对象的第二数据;在未缓存第二数据的情况下,获取并缓存第二数据;向客户端发送第二数据。

22、基于上述方法,针对未缓存的数据,则可以使用被动缓存方法,对数据进行缓存,从而提升缓存命中率。

23、第二方面,本技术实施例提供一种缓存方法,该方法可以由第二通信装置执行,在并不特殊说明的情况下,本技术中的“第二通信装置”既可以指客户端,也可以是该客户端中的组件(例如,处理器、芯片、或芯片系统等),或者也可以是能实现全部或部分客户端功能的逻辑模块或软件。其中,该客户端可以是安装有应用程序(例如查询应用)的各种设备。该方法包括:确定第一访问对象的多个访问负载特征,多个访问负载特征中的每个访问负载特征用于指示针对第一访问对象的单次访问的访问时间和访问数据范围;向服务端发送多个访问负载特征,多个访问负载特征用于将第一访问对象的未来访问数据进行主动缓存。

24、基于上述方法,向服务端上报第一访问对象的多个访问负载特征,从而服务端可以根据第一访问对象的多个访问负载特征确定第一访问对象的数据访问规律,根据数据访问规律确定第一访问对象的主动缓存预测结果,并根据主动缓存预测结果,将第一数据进行主动缓存,该第一数据是主动缓存预测结果指示的数据中的部分或全部数据。该方法可以实现对具备数据访问规律的访问对象的待访问数据进行精确预测,并提前进行主动缓存,从而客户端在从缓存空间中访问第一访问对象的数据时,有更高的概率可以获取到数据,因此可以提升缓存空间中的缓存数据的命中率,有助于实现数据访问的加速,提升用户体验。

25、在一种可能的实现方法中,上述第一方面或第二方面中的访问负载特征可以包括第一访问对象的标识信息、第一访问对象的访问开始时间、第一访问对象的访问数据的开始时间和第一访问对象的访问数据的结束时间。

26、基于上述方法,访问负载特征中的第一访问对象的访问开始时间、第一访问对象的访问数据的开始时间和第一访问对象的访问数据的结束时间,可用于准确确定数据访问规律,有助于实现对具备数据访问规律的第一访问对象的待访问数据进行精确预测,并提前进行主动缓存,从而可以提升缓存空间中的缓存数据的命中率,实现数据访问的加速,提升用户体验。

27、第三方面,本技术提供一种通信装置,所述通信装置具备实现上述第一方面或基于第一方面的任意的可能实现方法涉及的功能。比如所述通信装置包括执行上述第一方面或基于第一方面的任意的可能实现方法涉及操作所对应的模块或单元或手段,所述功能或单元或手段可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现。

28、在一种可能的设计中,所述通信装置包括处理单元和通信单元,其中,通信单元可以用于收发信号,以实现该通信装置和其它装置之间的通信;处理单元可以用于执行该通信装置的一些内部操作。处理单元、通信单元执行的功能可以和上述第一方面或基于第一方面的任意的可能实现方法涉及的操作相对应。

29、在一种可能的设计中,所述通信装置包括处理器,处理器可以与存储器耦合。所述存储器可以保存实现上述第一方面或基于第一方面的任意的可能实现方法涉及的功能的必要计算机程序或指令。所述处理器可执行所述存储器存储的计算机程序或指令,当所述计算机程序或指令被执行时,使得所述通信装置实现上述第一方面的方法或基于第一方面的任意的可能实现方法。

30、在一种可能的设计中,所述通信装置包括处理器和存储器,存储器可以保存实现上述第一方面或基于第一方面的任意的可能实现方法涉及的功能的必要计算机程序或指令。所述处理器可执行所述存储器存储的计算机程序或指令,当所述计算机程序或指令被执行时,使得所述通信装置实现上述第一方面的方法或基于第一方面的任意的可能实现方法。

31、在一种可能的设计中,所述通信装置包括处理器和接口电路,其中,处理器用于通过所述接口电路与其它装置通信,并执行上述第一方面的方法或基于第一方面的任意的可能实现方法。

32、可以理解地,第三方面中的处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。此外,以上处理器可以为一个或多个,存储器可以为一个或多个。存储器可以与处理器集成在一起,或者存储器与处理器分离设置。在具体实现过程中,存储器可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型以及存储器与处理器的设置方式不做限定。

33、第四方面,本技术提供一种通信装置,所述通信装置具备实现上述第二方面或基于第二方面的任意的可能实现方法涉及的功能。比如所述通信装置包括执行上述第二方面或基于第二方面的任意的可能实现方法涉及操作所对应的模块或单元或手段,所述功能或单元或手段可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现。

34、在一种可能的设计中,所述通信装置包括处理单元和通信单元,其中,通信单元可以用于收发信号,以实现该通信装置和其它装置之间的通信;处理单元可以用于执行该通信装置的一些内部操作。处理单元、通信单元执行的功能可以和上述第二方面或基于第二方面的任意的可能实现方法涉及的操作相对应。

35、在一种可能的设计中,所述通信装置包括处理器,处理器可以与存储器耦合。所述存储器可以保存实现上述第二方面或基于第二方面的任意的可能实现方法涉及的功能的必要计算机程序或指令。所述处理器可执行所述存储器存储的计算机程序或指令,当所述计算机程序或指令被执行时,使得所述通信装置实现上述第二方面的方法或基于第二方面的任意的可能实现方法。

36、在一种可能的设计中,所述通信装置包括处理器和存储器,存储器可以保存实现上述第二方面或基于第二方面的任意的可能实现方法涉及的功能的必要计算机程序或指令。所述处理器可执行所述存储器存储的计算机程序或指令,当所述计算机程序或指令被执行时,使得所述通信装置实现上述第二方面的方法或基于第二方面的任意的可能实现方法。

37、在一种可能的设计中,所述通信装置包括处理器和接口电路,其中,处理器用于通过所述接口电路与其它装置通信,并执行上述第二方面的方法或基于第二方面的任意的可能实现方法。

38、可以理解地,第四方面中的处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。此外,以上处理器可以为一个或多个,存储器可以为一个或多个。存储器可以与处理器集成在一起,或者存储器与处理器分离设置。在具体实现过程中,存储器可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型以及存储器与处理器的设置方式不做限定。

39、第五方面,本技术提供一种通信系统,该通信系统可以包括第一通信装置和第二通信装置;其中,第一通信装置用于执行上述第一方面的方法或第一方面的任意可能的实现方法,第二通信装置用于执行上述第二方面的方法或第二方面的任意可能的实现方法。

40、第六方面,本技术提供一种计算机可读存储介质,所述计算机存储介质中存储有计算机程序(或计算机可读指令),当计算机读取并执行部分或全部所述计算机可读指令时,上述第一方面至第二方面中的任一种可能的设计中的方法被执行。

41、示例性的,计算机可读存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括非瞬态计算机可读介质、随机存取存储器(random-access memory,ram)、只读存储器(read-only memory,rom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、光盘只读存储器(compact disc-read only memory,cd-rom)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。

42、第七方面,本技术提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得上述第一方面至第二方面中的任一种可能的设计中的方法被执行。

43、第八方面,本技术提供一种芯片(或芯片系统),所述芯片包括处理器,所述处理器与存储器耦合,所述存储器中存储有计算机程序;所述处理器用于调用所述存储器中的部分或全部所述计算机程序,使得上述第一方面至第二方面中的任一种可能的设计中的方法被执行。