一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于多租户高速缓存系统中的多层级数据存储的技术的制作方法

2022-06-08 23:16:52 来源:中国专利 TAG:

用于多租户高速缓存系统中的多层级数据存储的技术


背景技术:

1.各种系统可利用大数据集来执行操作。举例来说,处理数据交易的系统可以利用历史交易数据来执行各种操作。此数据中的一些可缓存在计算装置的本地存储器中,使得比起通过访问数据的主存储位置(例如,通常位于磁盘存储装置中)而可能的情况,对所述数据的未来请求可被执行得更快。高速缓存允许系统通过减少访问底层较慢存储层的需要来提高数据检取性能。
2.一些存储器内高速缓存系统可能被多个租户使用。此类系统中的高速缓存管理可能较复杂。当向租户提供将数据存储在共享高速缓存中的任何位置的能力时,一些租户可能使用超过合理份额的高速缓存,这可能增大关于其它租户的访问操作的时延。然而,出于公平原因向租户提供高速缓存的专用份额也可能导致高速缓存的低效利用,因为有些租户可能不会利用其全部专用存储器。因此,常规存储器内高速缓存系统和其管理呈现了许多缺点并且效率低下。
3.本公开的实施例单独地以及共同地解决了这些和其它问题。


技术实现要素:

4.本发明的一个实施例涉及一种方法。所述方法可包括由计算装置提供高速缓存的多个专用分配,高速缓存的每个专用分配对应于多个实体中的实体,利用随机存取存储器提供所述高速缓存。所述方法还可包括由所述计算装置提供所述高速缓存的共享分配,所述共享分配可供所述多个实体中的每一者用于存储。所述方法还可包括由所述计算装置标识自最后一次访问存储在所述高速缓存的专用分配中的数据以来已经过阈值时间段。所述方法还可包括由所述计算装置将所述数据从所述高速缓存的所述专用分配迁移到所述高速缓存的所述共享分配。
5.在一些实施例中,所述方法还可包括当所述高速缓存的所述专用分配已满时,确定所述高速缓存的共享分配是否已满。当所述高速缓存的所述共享分配未满时,所述方法可包括将最早的数据实例从与所述实体相关联的专用高速缓存迁移到所述高速缓存的所述共享分配,并将在高速缓存请求中接收的数据存储在与所述实体相关联的所述专用分配中。
6.在一些实施例中,所述方法还可包括确定对应于多个实体中的每个实体的多个命中率,每个命中率标识使得在所述高速缓存中找到请求的数据的高速缓存请求的百分比。所述方法还可包括至少部分地基于所述多个命中率来调整所述高速缓存的共享分配的一个或多个逐出规则。
7.在一些实施例中,所述方法还可包括接收针对与实体相关联的缓存数据的数据请求。所述方法还可包括确定所述缓存数据是否存储在与所述实体相关联的专用分配中。所述方法还可包括当所述缓存数据存储在与所述实体相关联的专用分配中时,响应于所述数据请求而返回所述缓存数据。
8.在一些实施例中,所述方法还可包括当所述缓存数据未存储在与所述实体相关联
的专用分配中时,确定所述缓存数据是否存储在所述高速缓存的共享分配中。当所述缓存数据存储在所述共享分配中时,所述方法可包括返回所述缓存数据。当所述缓存数据未存储在所述共享分配中时,所述方法可包括返回未找到所述缓存数据的指示。
9.在一些实施例中,所述方法还可包括当所述缓存数据存储在所述共享分配中时,确定与所述实体相关联的专用分配是否已满,并且当与所述实体相关联的专用分配未满时将所述缓存数据迁移到与所述实体相关联的专用分配。
10.在一些实施例中,所述方法还可包括当与所述实体相关联的专用分配已满时:确定所述高速缓存的共享分配是否已满;当所述高速缓存的共享分配未满时,将最早的数据实例从与所述实体相关联的专用分配迁移到所述高速缓存的共享分配;以及将所述缓存数据存储在与所述实体相关联的专用分配中。
11.在一些实施例中,所述方法还可包括当所述高速缓存的共享分配已满时,根据一个或多个逐出规则从所述共享分配中逐出一定量的数据。所述方法还可包括当所述高速缓存的共享分配未满时,将最早的数据实例从与所述实体相关联的专用分配迁移到所述高速缓存的共享分配。所述方法还可包括将所述缓存数据存储在与所述实体相关联的专用分配中。
12.在一些实施例中,所述方法还可包括:标识命中率阈值,所述命中率阈值指定将使得在所述高速缓存中找到数据的数据请求量;监测由所述多个实体提交的数据请求的对应命中率;以及当与实体相关联的命中率低于所述命中率阈值时向所述实体提供通知。
13.在一些实施例中,至少部分基于一个或多个逐出规则来逐出所述高速缓存的共享分配的存储数据。在一些实施例中,所述一个或多个逐出规则可规定:对应于具有对应于所述多个实体的多个命中率中的最高命中率的实体的第一数据将在对应于所述多个实体中的其余实体的第二数据之前被逐出。
14.在一些实施例中,所述方法还可包括:从与所述多个实体中的实体相关联的另一计算装置接收包括要缓存的数据的高速缓存请求;当对应于所述实体的专用分配具有可用空间时,将所述数据存储在对应于所述实体的专用分配中;当对应于所述实体的专用分配已满时,将所述数据存储在所述高速缓存的共享分配中。
15.在一些实施例中,所述方法还可包括:从与所述多个实体中的实体相关联的另一计算装置接收数据请求,所述数据请求标识要检取的数据;在对应于所述实体的专用分配中搜索所述数据;以及当在对应于所述实体的专用分配中找到所述数据时,在数据响应中提供所述数据。
16.在一些实施例中,所述方法还可包括:当在对应于所述实体的专用分配中未找到所述数据时,在共享分配中搜索所述数据;当在共享分配中找到所述数据时,在数据响应中提供所述数据;以及当在共享分配中未找到所述数据时提供未找到所述数据的通知。
17.在一些实施例中,所述方法还可包括:从与所述多个实体中的实体相关联的另一计算装置接收标识要缓存的数据的高速缓存请求;确定高速缓存中对应于所述实体的专用分配以及所述共享分配已满;从所述共享分配逐出第一数据;将第二数据从所述高速缓存中对应于所述实体的专用分配迁移到所述共享分配;以及将要缓存的所述数据存储在所述高速缓存中对应于所述实体的专用分配中。
18.在一些实施例中,利用多个专用分配和共享分配可减少与由多个实体提交的数据
请求相关联的总时延。在一些实施例中,多个专用分配的大小相等。
19.在一些实施例中,所述方法还可包括维持标识所述多个实体中的每个实体到高速缓存的特定对应专用分配的映射。
20.本发明的另一实施例涉及一种计算装置(例如,高速缓存管理计算机),其包括处理器、高速缓存和一个或多个存储器,所述一个或多个存储器存储可执行指令,所述可执行指令在由处理器执行时使所述计算装置执行上文所论述的方法的任何操作。
21.有关本发明的实施例的更多详细信息可见于具体实施方式和附图。
附图说明
22.图1示出描绘多租户系统中使用的两种常规高速缓存技术的框图。
23.图2示出根据一些实施例的描绘多租户高速缓存系统中使用的多层级高速缓存技术的框图。
24.图3示出根据一些实施例的示出在多租户高速缓存系统中利用多层级高速缓存来缓存数据的方法的框图。
25.图4示出根据一些实施例的示出利用多租户高速缓存系统的多层级高速缓存来检取数据的方法的框图。
26.图5示出根据一些实施例的示例性高速缓存管理计算机的框图。
27.图6示出描绘了通过利用本文中所描述的多层级高速缓存技术实现的性能增强的数个图。
28.图7示出根据一些实施例的针对多个租户利用多层级高速缓存的系统的框图。
具体实施方式
29.本发明的实施例涉及用于在多租户高速缓存系统中提供和利用多层级高速缓存的技术。本文中所描述的技术可应用于其中数据被存储并且将在未来时间访问以执行任何合适操作的任何合适上下文。
30.在论述本发明的具体实施例之前,可详细描述一些术语。
[0031]“计算装置”可包括可执行操作的任何合适的电子装置。在一些实施例中,计算装置还可提供与网络的远程通信能力。远程通信能力的示例包括使用移动电话(无线)网络、无线数据网络(例如3g、4g或类似网络)、wi-fi、wi-max或可以提供对网络(诸如互联网或私有网络)的访问的任何其它通信介质。计算装置的示例包括移动电话(例如蜂窝式电话)、pda、平板计算机、上网本、笔记本计算机、个人音乐播放器、手持式专用阅读器、服务器计算机等。
[0032]“实体”可包括个人、组织、计算系统、软件应用程序等。示例实体可包括但不限于商家、软件应用程序、数据提供商、数据库提供商、网络服务、运输机构、住宅运营商、发行方、收单方、金融机构等。
[0033]“租户”可包括通过软件应用程序访问系统硬件的实体。“多租户系统”指其中单个软件实例为多个租户服务的架构。“多租户高速缓存系统”是指单个软件实例管理多个租户的高速缓存操作的架构。
[0034]“高速缓存”可以包括处理器可以访问的任何合适的本地存储器(例如,随机存取
存储器(ram))。例如,高速缓存可以包括直接通信耦接到处理器的ram,诸如板载存储器。与存储在硬盘驱动器(例如,磁盘存储器)或诸如本地存储器(例如,ram)的远程存储装置和/或另一计算机和/或系统的磁盘存储装置中的数据相比,处理器可以更快速地访问缓存数据。
[0035]“共享高速缓存”可包括由两个或更多个实体共享的任何合适的高速缓存。例如,两个或更多个租户可利用多租户高速缓存系统中的共享高速缓存。“高速缓存的共享分配”可指被分配和/或配置成由多个实体共享的较大高速缓存的一部分。
[0036]“专用高速缓存”可包括专用于特定实体并且仅可由所述实体利用的任何合适的高速缓存。“高速缓存的专用分配”可指被分配和/或配置成由单个实体而无其它实体利用的较大高速缓存的一部分。
[0037]“随机存取存储器”是可按任何次序读取和改变的一种计算机存储器形式。随机存取存储器装置允许数据项在几乎相同的时间量内被读取或写入,而无关于数据在存储器内的物理位置。
[0038]“磁盘存储器”是指硬盘空间中存在的存储装置。对于存储和数据检取操作,利用磁盘存储器比利用随机存取存储器慢。
[0039]“高速缓存请求”是指指示缓存数据的请求的任何合适的数据消息。高速缓存请求可呈任何合适的格式。在一些实施例中,高速缓存请求可包括被请求缓存的数据。
[0040]“高速缓存响应”是指对缓存数据的请求作出响应的任何合适的数据消息。高速缓存响应可呈任何合适的格式。在一些实施例中,高速缓存响应可包括数据被成功缓存或未成功缓存的指示。
[0041]“数据请求”是指指示对数据的请求的任何合适的数据消息。数据请求可呈任何合适的格式。在一些实施例中,数据请求可包括被请求的数据的标识符。
[0042]“数据响应”是指对数据请求作出响应的任何合适的数据消息。数据响应可呈任何合适的格式。在一些实施例中,数据响应可包括请求的数据(或请求的数据的一部分)或未找到所述数据的指示和/或未找到所述数据的原因。
[0043]“命中率”是指命中(例如,成功)的存取的分率。换句话说,命中率可指在高速缓存中找到请求的数据的次数除以针对所述高速缓存的数据请求的总数目。
[0044]“资源提供商”可以是可提供例如商品、服务、信息和/或访问之类的资源的实体。资源提供商的示例包括商家、访问装置、安全数据访问点等。“商家”通常可以是参与交易并且可以出售商品或服务或提供对商品或服务的访问的实体。资源提供商可以操作计算机以执行操作,所述计算机通常也可以被称为“资源提供商计算机”。
[0045]“收单方”通常可以是与特定商家或其它实体具有商业关系的商业实体(例如,商业银行)。一些实体可执行发行方和收单方两者的功能。一些实施例可涵盖此类单个实体发行方-收单方。收单方可操作收单方计算机,其一般也可以被称为“传输计算机”。
[0046]“授权实体”可以是授权请求的实体。授权实体的示例可以是发行方、政府机构、文档存储库、访问管理员等。“发行方”通常可以指维护用户账户的商业实体(例如,银行)。发行方也可以向消费者发行存储在例如蜂窝电话、智能卡、平板计算机或膝上型计算机之类的用户装置上的支付凭证。授权实体可以操作计算机以执行操作,所述计算机通常也可以被称为“授权实体计算机”。
[0047]“访问装置”可以是提供对远程系统的访问的任何合适的装置。访问装置还可以用于与商家计算机、交易处理计算机、认证计算机或任何其它合适的系统通信。访问装置通常可位于任何合适的位置处,例如位于商家所在位置处。访问装置可以采用任何合适形式。访问装置的一些示例包括pos或销售点装置(例如,pos终端)、蜂窝电话、pda、个人计算机(pc)、平板pc、手持式专用读取器、机顶盒、电子现金出纳机(ecr)、自动柜员机(atm)、虚拟现金出纳机(vcr)、查询一体机、安全系统、访问系统等。访问装置可以使用任何合适的接触或非接触操作模式,以向用户移动装置发送或从其接收数据或与用户移动装置相关联。在访问装置可以包括pos终端的一些实施例中,可使用任何合适的pos终端并且其可以包括读取器、处理器和计算机可读介质。读取器可以包括任何合适的接触或非接触操作模式。举例来说,示范性读卡器可以包括射频(rf)天线、光学扫描仪、条形码读取器或磁条读取器,以与支付装置和/或移动装置交互。在一些实施例中,用作pos终端的蜂窝电话、平板电脑或其它专用无线装置可以被称为移动销售点或“mpos”终端。
[0048]“授权请求消息”可以是请求对交易的授权的电子消息。在一些实施例中,授权请求消息被发送给交易处理计算机和/或支付卡的发行方,以请求对交易授权。根据一些实施例的授权请求消息可符合iso8583,这是针对交换与用户使用支付装置或支付账户进行的支付相关联的电子交易信息的系统的标准。授权请求消息可以包括可与支付装置或支付账户相关联的发行方账户标识符。授权请求消息还可以包括与“交易数据”对应的额外数据元素,仅举例来说,包括:服务代码、cvv(卡验证值)、dcvv(动态卡验证值)、pan(主账号或“账号”)、支付令牌、用户名、到期日期等等。授权请求消息可以包括额外的“交易数据”,例如与当前交易相关联的任何信息,例如交易金额、商家标识符、商家位置、收单方银行标识号(bin)、卡片接受器id、标识所购买的项目的信息等以及可用以确定是否标识和/或授权交易的任何其它信息。
[0049]“授权响应消息”可以是响应于授权请求的消息。在一些情况下,授权响应消息可以是由发行金融机构或交易处理计算机生成的对授权请求消息的电子消息应答。仅举例来说,授权响应消息可以包括以下状态指示符中的一个或多个:批准
‑‑
交易被批准;拒绝
‑‑
交易未被批准;或呼叫中心
‑‑
响应未决的更多信息,商家必须呼叫免费授权电话号码。授权响应消息还可以包括授权代码,所述授权代码可以是信用卡发行银行响应于电子消息中的授权请求消息(直接地或通过交易处理计算机)返回到商家的访问装置(例如,pos设备)的指示交易被批准的代码。所述代码可以充当授权的证据。如上所述,在一些实施例中,交易处理计算机可以向商家生成或转发授权响应消息。
[0050]“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群,或者像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是与网络服务器耦合的数据库服务器。服务器计算机可以耦合到数据库,并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其它逻辑或前述各项的组合。服务器计算机可以包括一个或多个计算设备,并且可以使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。
[0051]
图1示出描绘多租户系统中使用的两种常规高速缓存技术的框图。常规多租户系统通常利用两种高速缓存技术中的一种。第一技术可被称为“共享高速缓存”。在采用共享高速缓存的多租户系统中,数个租户(例如,租户102、104和106)可各自利用共享高速缓存
108。在利用共享高速缓存108时,任何租户都可利用一点和/或全部共享高速缓存108。每个租户的数据可散布在共享高速缓存上。如果一个租户(例如,租户102)在共享高速缓存中大量存储数据,使得其数据相对于其它租户不成比例地利用了高速缓存空间,则对应于其余租户(例如,租户104和106)的命中率可能会受到不利影响。因此,利用共享高速缓存技术可能导致一些租户过度使用高速缓存,这可能对高速缓存的其余租户产生不利影响。
[0052]
为了解决这些公平性问题,一些高速缓存系统利用“专用高速缓存”。专用高速缓存可指利用专用高速缓存来缓存数据的技术。例如,在专用高速缓存中,每个租户(例如,租户102、104和106)可被分配不同的高速缓存份额。使用三个租户仅作说明之用。专用高速缓存110可用作专用高速缓存的示例。专用高速缓存110可具有被分配/专门设计以供特定租户而非其它租户使用的不同部分。例如,可为租户102指派专用分配112以用于数据存储。因此,专用分配112只能由租户102使用,而不能由租户104和106使用。类似地,可为租户104指派专用分配114,并且可为租户106指派专用分配116。专用分配114只能由租户104使用,而专用分配116只能由租户106使用。应了解,尽管分配112到116被描绘为大小相等,但在一些实施例中,这些分配的大小可能彼此不同。
[0053]
专用高速缓存技术具有优于共享高速缓存技术的一些优点,因为没有一个租户可以过度利用高速缓存的存储器空间。然而,专用高速缓存技术存在其它问题。例如,可能存在以下情况:租户102填满全部专用分配112,但租户106在专用分配116中仍具有可用空间。虽然租户102需要额外空间,但没有可用空间。此外,租户106可能永远无法充分利用专用分配116,这可能导致宝贵的存储器空间被浪费,而鉴于租户102的存储需求,这种浪费可能会特别令人不安。
[0054]
因此,共享高速缓存和专用高速缓存技术在公平性、时延和利用率方面都存在缺陷。本公开的实施例单独地以及共同地解决了这些和其它问题。
[0055]
图2示出根据一些实施例的描绘多租户高速缓存系统中使用的多层级高速缓存技术的框图200。结合图2论述的技术可被称为“混合高速缓存技术”。在一些实施例中,混合高速缓存202可分成两个部分。第一部分(例如,专用部分204)可以是混合高速缓存202的专用部分,而第二部分(例如,共享部分206)可用作混合高速缓存202的共享部分。
[0056]
在混合高速缓存202的专用部分204内,每个租户(例如,租户102到106)可被分配专供其使用而非其它租户使用的对应部分。例如,租户102可被指派专用分配208,使得专用分配208可由租户102使用而不是由租户104或106使用。租户104和106可各自被指派混合高速缓存202的专用部分204中可专用于所述租户的相应使用的对应分配。尽管图2将租户102到106的专用分配描绘为相等的,但应了解,在一些实施例中,在租户之间,专用分配的大小可不同。应了解,可利用任何合适数目的租户,并且混合高速缓存202可具有任何合适大小。
[0057]
混合高速缓存202可另外包括共享部分206。共享部分206可由系统的任何租户(例如,租户102到106)使用。在一些实施例中,租户可能直到其高速缓存的全部专用分配被填充才利用共享部分206。
[0058]
如图2中所描绘,专用部分204可包括总高速缓存202的60%,而共享部分206利用了混合高速缓存202的40%。应了解,此比率仅用于说明性目的,并且专用空间与共享空间的比率可呈不同比例。例如,在一些实施例中,专用部分204可利用混合高速缓存202的80%,而共享部分206可利用混合高速缓存202的剩余20%。专用部分204和共享部分206的
具体大小可以是用户可配置的(例如,可由包括混合高速缓存202的多租户高速缓存系统的管理员配置),和/或专用部分204和共享部分206的具体大小可由系统基于租户102到106的使用模式而动态地更新。
[0059]
图3示出根据一些实施例的示出了在多租户高速缓存系统中利用多层级高速缓存来缓存数据的方法300的框图。方法300可以任何合适的次序执行。可在方法300内执行更多或更少的操作。方法300可由例如高速缓存管理计算机等计算装置执行。下文结合图5提供示例高速缓存管理计算机。
[0060]
方法300可在302处开始,其中可接收要缓存的数据。在一些实施例中,可在高速缓存请求中接收所述数据。高速缓存请求可以是任何合适形式的任何合适消息,其指示将数据存储在高速缓存(例如,图2中的混合高速缓存202)中的请求。在一些实施例中,高速缓存请求可包括请求方的标识符(例如,指示例如图2的租户102等特定租户的标识符)和要缓存的数据(或要缓存的数据当前所在的位置)。
[0061]
在304,可确定分配给请求方的专用高速缓存(例如,对应于图2的租户102的专用分配208)是否已满。如果专用高速缓存未满,则所述方法可进行到306,其中数据可存储在专用高速缓存中,并且方法300可结束。
[0062]
或者,如果分配给请求方的专用高速缓存已满,则所述方法可进行到308,其中确定共享高速缓存(例如,图2的混合高速缓存202的共享部分206)是否已满。如果共享高速缓存未满,则所述方法可进行到310。
[0063]
在310处,可在对应于租户的专用高速缓存中标识具有最早的最后访问时间戳的数据,并且可将此数据移动到共享高速缓存。在一些实施例中,存储在高速缓存中的数据可与指示数据最后一次访问和/或存储的日期和/或时间的时间戳相关联。这可被称为“最后访问时间戳”。
[0064]
或者,如果在308处确定共享高速缓存已满,则所述方法可进行到312,其中可从共享高速缓存中逐出数据。在一些实施例中,可利用一个或多个逐出规则来标识要从共享高速缓存逐出的特定数据。在一些实施例中,逐出规则可规定将首先逐出具有最早的最后访问时间戳的数据。作为另一示例,逐出规则可规定:当前命中率最高(例如,指示在高速缓存中找到租户请求的数据的频率高于其它租户请求的数据)的租户的数据可在具有较低命中率的租户的数据之前首先被逐出。作为又一示例,共享高速缓存的逐出规则可规定:首先要从共享高速缓存中逐出具有命中率最高的租户的最早的最后访问时间戳的数据。在一些实施例中,在考虑将具有较低命中率的租户的数据逐出之前,可能需要将具有最高命中率的租户的所有数据逐出。作为又一示例,租户可与优先级相关联,使得在具有较高优先级的租户的数据被逐出之前,可逐出对应于具有较低优先级的租户的数据。特定的逐出规则可以是众多的,并且根据使用高速缓存的上下文而改变。
[0065]
一旦在312已将数据逐出,所述方法就可进行到310,其中可在对应于租户的专用高速缓存中标识具有最早的最后访问时间戳的数据,并且可将此数据移动到共享高速缓存。一旦专用高速缓存的最早数据移动到共享高速缓存,所述方法就可进行到306,其中在302处接收的数据可存储在对应于请求方的专用高速缓存中,并且方法300可结束。
[0066]
图4示出根据一些实施例的示出利用多租户高速缓存系统的多层级高速缓存来检取数据的方法的框图。方法400可以任何合适的次序执行。可在方法400内执行更多或更少
的操作。方法400可由例如高速缓存管理计算机等计算装置执行。下文结合图4提供示例高速缓存管理计算机。
[0067]
方法400可在402处开始,其中可接收对数据的请求。在一些实施例中,可在数据请求中接收所述请求。数据请求可以是任何合适形式的任何合适的消息,其指示从高速缓存(例如,图2的混合高速缓存202)检取数据的请求。在一些实施例中,数据请求可包括请求方的标识符(例如,指示例如图2的租户102等特定租户的标识符)和请求的数据的标识符。
[0068]
在404,可确定请求的数据是否位于分配给请求方的专用高速缓存(例如,对应于图2的租户102的专用分配208)中。如果数据位于所述专用高速缓存中,则所述方法可进行到406,其中可响应于数据请求返回所述数据,并且方法400可结束。在一些实施例中,可在一个或多个数据响应中返回所述数据,所述数据响应可以是可用于对数据请求作出响应的任何合适形式和/或大小的任何合适的消息。
[0069]
或者,如果请求的数据不位于对应于请求方的专用高速缓存中,则所述方法可进行到408,其中可确定请求的数据是否位于共享高速缓存(例如,图2的共享部分206)中。如果在共享高速缓存中找不到所述数据,则所述方法可进行到410,其中可返回指示未找到所述数据的数据响应。
[0070]
或者,如果确定请求的数据位于共享高速缓存中,则所述方法可进行到412,其中可从共享高速缓存(例如,经由一个或多个数据响应)返回所述数据。
[0071]
一旦从共享高速缓存返回所述数据,所述方法就可进行到414,其中可确定对应于请求方的专用高速缓存是否已满。如果对应于请求方的专用高速缓存未满,则请求的数据可从共享高速缓存(例如,共享部分206)移动到专用高速缓存(例如,对应于在此示例中是数据请求方的租户102的专用分配208),并且方法400可结束。
[0072]
或者,如果在414确定对应于请求方的专用高速缓存已满,则所述方法可进行到418,其中可确定共享高速缓存(例如,共享部分206)是否已满。如果共享高速缓存未满,则所述方法就可进行到420,其中可在对应于请求方的专用高速缓存中标识具有最早的最后访问时间戳的数据,并且可将此数据移动到共享高速缓存。在一些实施例中,存储在高速缓存中的数据可与指示数据最后一次访问和/或存储的日期和/或时间的时间戳相关联。这可被称为“最后访问时间戳”。
[0073]
或者,如果在418处确定共享高速缓存已满,则所述方法可进行到422,其中可从共享高速缓存中逐出数据。如上文结合图3所论述,可利用一个或多个逐出规则来标识要从共享高速缓存逐出的特定数据。在一些实施例中,逐出规则可规定将首先逐出具有最早的最后访问时间戳的数据。作为另一示例,逐出规则可规定:当前命中率最高(例如,指示在高速缓存中找到租户请求的数据的频率高于其它租户请求的数据)的租户的数据可在具有较低命中率的租户的数据之前首先被逐出。作为又一示例,共享高速缓存的逐出规则可规定:首先要从共享高速缓存中逐出具有命中率最高的租户的最早的最后访问时间戳的数据。在一些实施例中,在考虑将具有较低命中率的租户的数据逐出之前,可能需要将具有最高命中率的租户的所有数据逐出。特定的逐出规则可以是众多的,并且根据使用高速缓存的上下文而改变。
[0074]
一旦在422已将数据逐出,所述方法就可进行到420,其中可在对应于租户的专用高速缓存中标识具有最早的最后访问时间戳的数据,并且可将此数据移动到共享高速缓
存。一旦专用高速缓存的最早数据移动到共享高速缓存,所述方法就可进行到416,其中在402处请求的数据可存储在对应于请求方的专用高速缓存中,并且方法400可结束。
[0075]
图5示出根据一些实施例的示例性高速缓存管理计算机500的框图。高速缓存管理计算机500可包括高速缓存500a、处理器500b、网络接口500c和计算机可读介质500d。高速缓存500a可以是图2的混合高速缓存202的示例。高速缓存500a可包括任何合适大小的随机存取存储器。
[0076]
计算机可读介质500d可包括数个组件,例如处理模块500e、配置引擎500f和高速缓存引擎500g。预期更多或更少组件。还应了解,图5中描绘的组件可组合以执行本文所描述的功能。计算机可读介质500d还可包括可由处理器500b执行以实施本文所论述的方法的代码。
[0077]
处理模块500e可包括代码,所述代码在执行时使处理器500b高速缓存来自任何合适源的请求。例如,处理模块500e可被配置成使处理器500b从与租户(例如,图2的租户102、104或106)相关联的计算装置接收高速缓存请求。在一些实施例中,处理模块500e可被配置成使处理器500b将高速缓存请求中接收的信息提供到高速缓存引擎500g。例如,要缓存的数据可被包括在高速缓存请求中,或要缓存的数据所在的位置可被包括在高速缓存请求中。处理模块500e还可被配置成在需要时从指定位置检取要缓存的数据。处理模块500e还可被配置成将要缓存的数据发送到高速缓存引擎500g。在一些实施例中,高速缓存引擎500g可向处理模块500e提供响应,指示数据是否被成功缓存。处理模块500e可(例如,向请求计算装置)发送高速缓存响应(例如,具有任何合适格式和/或大小的消息),所述高速缓存响应提供所述数据被成功缓存或未成功缓存的指示。
[0078]
处理模块500e可包括代码,所述代码在执行时使处理器500b从任何合适源接收数据请求。数据请求可呈任何合适的形式,并且可包括请求的数据的指示。例如,处理模块500e可被配置成使处理器500b从与租户(例如,图2的租户102、104或106)相关联的计算装置接收数据请求。在一些实施例中,处理模块500e可被配置成使处理器500b将数据请求中接收的信息提供到高速缓存引擎500g。例如,可将指示要检取的数据的标识符提供给高速缓存引擎500g。在一些实施例中,处理模块500e可从高速缓存引擎500g接收指示检取成功的数据,或处理模块500e可接收指示未找到所述数据的数据。处理模块500e可(例如,向请求计算装置)发送数据响应(例如,具有任何合适格式和/或大小的消息),所述数据响应提供检取的数据或提供未找到所述数据的指示。
[0079]
配置引擎500f可包括代码,所述代码在执行时使处理器500b执行任何合适的操作,包括提供一个或多个接口,可通过所述接口配置高速缓存500a(例如,图2的混合高速缓存202的示例)。在一些实施例中,配置引擎500f可使处理器500b从这些接口接收用户输入。用户输入可用于配置高速缓存500a的一个或多个专用分配和/或共享分配的数目和/或大小。配置引擎500f可使处理器500b维持映射,所述映射指示高速缓存500a的特定专用分配与对应租户之间的关联。例如,图2的专用分配208的标识符可映射到图2的租户102的标识符,以指示专用分配208将由租户102而非其它租户(例如,通过与租户102相关联的计算装置)使用。
[0080]
在一些实施例中,配置引擎500f可使处理器500b接收用户输入,所述用户输入指示要用于高速缓存500a的一个或多个逐出规则。在一些实施例中,逐出规则可对应于高速
缓存500a的一个或多个专用部分和/或高速缓存500a的共享部分。配置引擎500f可被配置成使处理器500b存储逐出规则以供后续使用(例如,由高速缓存引擎500g使用)。
[0081]
在一些实施例中,配置引擎500f可使处理器500b接收指示对应于给定租户的优先级的用户输入。高速缓存引擎500g可在确定从高速缓存500a的专用分配和/或共享分配中逐出什么数据时利用优先级。在一些实施例中,配置引擎500f可存储与租户相关联的优先级,以作为由配置引擎500f维持的映射的部分。
[0082]
高速缓存引擎500g可包括代码,所述代码在执行时使处理器500b执行与缓存数据和/或检取先前缓存的数据有关的任何合适的操作。在一些实施例中,高速缓存引擎500g可使处理器500b(例如,从处理模块500e)接收高速缓存请求。关于接收高速缓存请求,高速缓存引擎500g可使处理器500b执行上文结合图3论述的方法300。在一些实施例中,高速缓存引擎500g可被配置成使处理器500b提供高速缓存响应,所述高速缓存响应指示请求的数据被成功缓存或未成功缓存。在一些实施例中,可将高速缓存响应提供到处理模块500e,所述处理模块继而可将高速缓存响应发送到请求计算装置。关于接收数据请求,高速缓存引擎500g可使处理器500b执行上文结合图4论述的方法400。在一些实施例中,高速缓存引擎500g可被配置成使处理器500b提供数据响应,所述数据响应包括请求的数据(或请求的数据的一部分)或未找到(或由于某种特定原因未检取到)所述数据的指示。在一些实施例中,可将高速缓存响应提供到处理模块500e,所述处理模块继而可将高速缓存响应发送到请求计算装置。高速缓存引擎500g可利用配置引擎500f维持的映射来标识对应于请求方的专用分配,以便在执行与高速缓存500a的共享分配相关联的操作之前尝试存储到专用分配和/或从专用分配中检取。
[0083]
图6示出描绘了通过利用本文中所描述的多层级高速缓存技术实现的性能增强的数个图。图600a描绘了利用共享高速缓存的两个租户的相应命中率,其中比起租户2,租户1在高速缓存内大量存储更多数据。因此,租户1可能享有大约80%的命中率,而租户2处于不利地位,命中率约为70%。性能线602旨在描绘性能阈值,所述性能阈值指示将由多租户系统中的每个租户实现的最小命中率。如图600a中所描绘,利用共享高速缓存技术可能导致租户2未能满足性能阈值,而租户1超过性能阈值。
[0084]
图600b描绘了利用高速缓存的对应专用部分的两个租户的相应命中率。即使高速缓存的专用分配大小相等,租户也可能有不同的工作负载。图600b描绘了向每个租户分配1gb的专用高速缓存的情形。然而,在其相应的高速缓存专用部分内,租户1可能始终尝试存储1.2gb的数据,而租户2始终尝试存储1.7gb的数据。由于租户2的数据远远超过专用空间,因此租户2享有远比租户1的命中率低的命中率。同样,鉴于此情境,租户2可能无法满足性能阈值(如由性能线602指示),而租户1超过性能阈值。
[0085]
图600c旨在描绘利用图2的混合高速缓存202和本文所论述的混合高速缓存技术的两个租户的相应命中率。在此情境下,每个租户可具有相等的高速缓存专用分配。每个租户都可利用其相应的高速缓存专用分配以及所述高速缓存的共享分配的任何合适部分。通过利用专用分配,更成功地确保公平性,使得租户2的命中率不会受到租户1执行的操作的巨大影响,反之亦然。然而,当数据操作激增并且一个或多个租户需要额外空间时,共享分配满足此需要,从而允许两个租户均享有增大的命中率并且满足性能阈值。假设对应于图600a、600b和600c的高速缓存大小相等。
[0086]
图7示出用于利用多层级高速缓存执行交易的系统700的框图。共享高速缓存702、专用高速缓存704和专用高速缓存706一起可以是图2的混合高速缓存202的示例。共享高速缓存702、专用高速缓存704和专用高速缓存706可统称为“混合高速缓存”。混合高速缓存可由高速缓存管理计算机708管理,所述高速缓存管理计算机是图5的高速缓存管理计算机500的示例。高速缓存管理计算机708可用于配置混合高速缓存,使得专用高速缓存704可与处理网络相关联,并且专用高速缓存706可与授权实体相关联。示例性处理网络可以包括visanet
tm
。例如visanet
tm
的处理网络能够处理信用卡交易、借记卡交易以及其它类型的商业交易。visanet
tm
确切地说包括处理授权请求的vip系统(visa集成式支付系统),和执行清算和结算服务的base ii系统。
[0087]
在一些实施例中,所述处理网络可执行欺诈检测处理。在一些实施例中,欺诈检测可利用一个或多个机器学习算法。授权实体可负责授权服务,并且此类服务也可利用一个或多个机器学习算法。在一些实施例中,处理网络计算机720(由处理网络操作或代表处理网络操作)和授权实体计算机722可以是混合高速缓存的租户。可向处理网络计算机720提供对专用高速缓存704和共享高速缓存702的访问,同时可向授权实体计算机722提供对专用高速缓存706和共享高速缓存702的访问。处理网络计算机720和授权实体计算机722可分别在混合高速缓存中存储对应于欺诈检测或授权服务的任何合适数据。
[0088]
系统700可包括任何合适数目的组件。如所描绘,系统700可包括可与用户712、访问装置714、资源提供者计算机716、传输计算机718、处理网络计算机720、授权实体计算机722和高速缓存管理计算机708相关联的用户装置710。为了简化说明,图7中示出某一数目的组件。然而,应了解,对于每种组件,本发明的实施例可以包括不止一个。另外,本发明的一些实施例可包括比图7中所示的所有组件少或多的组件。另外,图7中的组件可使用任何合适的通信协议通过任何合适的通信介质通信。
[0089]
用户装置710、访问装置714、资源提供商计算机716、传输计算机718、处理网络计算机720、授权实体计算机722和高速缓存管理计算机708可全都通过任何合适的通信信道或通信网络与彼此操作性通信。合适的通信网络可以是下列中的任一个和/或组合:直接互连;互联网;局域网(lan);城域网(man);作为互联网上节点的运行任务(omni);安全定制连接;广域网(wan);无线网络(例如,采用例如但不限于无线应用协议(wap)、i-模式等的协议)等。
[0090]
可以使用安全通信协议,例如但不限于:文件传输协议(ftp)、超文本传输协议(http)、安全超文本传输协议(https)、安全套接层(ssl)、iso(例如,iso 8583)等来发送计算机、网络与装置之间的消息。
[0091]
用户712能够使用用户装置710进行交易。在一些实施例中,用户装置710可包括用以启用例如电话等某些装置功能的电路系统。负责实现那些功能的功能元件可以包括处理器,该处理器可以执行实现装置的功能和操作的指令。用户装置710可访问本地存储器(或另一合适的数据存储区或元件),以检取指令或用于执行所述指令的数据。用户装置710可包括例如键盘或触摸屏等数据输入/输出元件,其可用于使用户能够操作用户装置710以及输入数据。数据输入/输出元件还可被配置成通过用户装置710的扬声器和/或显示器输出数据。用户装置710还可利用通信元件,所述通信元件可用于实现用户装置710与有线或无线网络之间的数据传输,以帮助连接到互联网或其它网络,并且实现数据传输功能。
[0092]
在一些实施例中,用户装置710还可包括非接触元件接口以实现非接触元件(未示)与装置的其它元件之间的数据传输,其中非接触元件可包括安全存储器和近场通信数据传输元件(或另一形式的短程通信技术)。蜂窝电话或类似装置是可根据本发明的实施例使用的用户装置710的示例。然而,在不脱离本发明的基本概念的情况下可以使用其它形式或类型的装置。例如,用户装置710可替代地呈支付卡、钥匙卡、pda、平板计算机、上网本、笔记本电脑、智能手表等形式。
[0093]
访问装置714可包括由资源提供商(例如,商家)操作的任何合适的计算设备。访问装置714可包括处理器和耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由处理器执行的代码以用于执行本文所描述的功能。在一些实施例中,访问装置714可用于与用户装置710、资源提供商计算机716、处理网络计算机或任何其它合适的装置和/或系统通信。在一些实施例中,访问装置714可呈任何合适的形式并且通常可位于任何合适位置,例如,处于资源提供商(例如,商家)的位置。访问装置的一些示例包括pos或销售点装置(例如,pos终端)、蜂窝电话、pda、个人计算机(pc)、平板pc、手持式专用读取器、机顶盒、电子现金出纳机(ecr)、自动柜员机(atm)、虚拟现金出纳机(vcr)、查询一体机、安全系统、访问系统等。访问装置714可使用任何合适的接触或非接触操作模式,以收发来自用户装置710的数据,或与所述用户装置相关联的数据。在一些实施例中,访问装置714可包括pos终端,并且可包括读取器、处理器和计算机可读介质。读取器可以包括任何合适的接触或非接触操作模式。举例来说,示范性读卡器可以包括射频(rf)天线、光学扫描仪、条形码读取器或磁条读取器,以与支付装置和/或移动装置交互。在一些实施例中,用作pos终端的蜂窝电话、平板电脑或其它专用无线装置可以被称为移动销售点或“mpos”终端。
[0094]
资源提供商计算机716可包括由资源提供商(例如,商家)操作或代表所述资源提供商操作的任何合适的计算设备。资源提供商计算机716可包括处理器和耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由处理器执行的代码以用于执行本文所描述的功能。在一些实施例中,资源提供商计算机716可包括网络服务器计算机,所述网络服务器计算机可托管与资源提供商相关联的一个或多个网站。在一些实施例中,资源提供商计算机716可被配置成将数据(例如,授权请求信息、授权响应消息等)向/从传输计算机718、访问装置714或系统的任何合适组件发送/接收数据(例如,授权请求消息、授权响应消息等)。
[0095]
资源提供商计算机716可被配置成参与交易、售卖商品或服务或向用户712提供对商品或服务的访问。资源提供商可接受各种形式的支付(例如,表示为用户装置710的支付卡),并且可使用多种工具来进行不同类型的交易。例如,资源提供商可运营实体商店并且使用访问装置714进行当面交易。资源提供商还可通过网站来售卖商品和/或服务,并且可通过互联网(例如,通过用户装置710)来接受支付。
[0096]
传输计算机718可与和特定资源提供商(例如,商家)或其它实体有业务关系并且可能涉及交易过程的业务实体(例如,商业银行)相关联。传输计算机718可发放并管理资源提供商的账户,并且代表资源提供商与授权实体计算机722交换资金。一些实体可执行传输计算机718和授权实体计算机722这两者的功能。本发明的实施例涵盖此类单一实体传输/授权实体计算机。在一些实施例中,传输计算机718可被配置成向/从高速缓存管理计算机500发送/接收数据(例如,在授权请求消息或另一消息中接收的tac)。
[0097]
处理网络计算机720可被配置成处理(例如,利用用户装置710的)用户712和与资源提供商计算机716相关联的资源提供商之间的交易。在一些示例中,处理网络计算机720可被配置成在与收单方(例如,与资源提供商相关联的金融机构)相关联的传输计算机718和与授权实体(例如,与用户712相关联的金融机构)相关联的授权实体计算机722之间进行结算过程。
[0098]
如图7中所示,处理网络计算机720可安置在传输计算机718与授权实体计算机722之间。作为其处理的一部分,处理网络计算机720可将任何合适的数据存储在由高速缓存管理计算机708管理的混合高速缓存中。例如,处理网络计算机720可存储与一个或多个用户(例如,包括用户712)相关联的任何合适数目的历史交易,可利用所述历史交易来执行欺诈检测操作。在一些实施例中,由处理网络计算机720利用的数据可被存储在专用高速缓存704和/或共享高速缓存702处和/或从所述专用高速缓存和/或共享高速缓存检取。高速缓存管理计算机708可管理从处理网络计算机720接收的高速缓存请求和/或数据请求,并且可继而响应于这些请求而提供高速缓存响应和/或数据响应。
[0099]
授权实体计算机722通常与发放并维持用户(例如,用户725)的用户账户的业务实体(例如,银行)相关联。授权实体可针对用户账户(例如,消费者账户)发放支付装置,包括信用卡和借记卡,和/或可提供通过用户装置710存储和可访问的用户账户。在一些实施例中,作为其处理的一部分,授权实体计算机722可将任何合适的数据存储在由高速缓存管理计算机708管理的混合高速缓存中。例如,授权实体计算机722可存储与一个或多个用户(例如,包括用户712)相关联的任何合适的数据,可利用所述数据执行用于提供授权服务的操作。在一些实施例中,由授权实体计算机722利用的数据可被存储在专用高速缓存706和/或共享高速缓存702处和/或从所述专用高速缓存和/或共享高速缓存检取。高速缓存管理计算机708可管理从授权实体计算机722接收的高速缓存请求和/或数据请求,并且可继而响应于这些请求而提供高速缓存响应和/或数据响应。
[0100]
作为交易的一部分,在发起交易期间,可将用户装置710呈现在访问装置714处。账户数据和/或终端数据可在这两个装置之间交换,并且此数据的一部分可被发送到资源提供商计算机716。资源提供商计算机716可被配置成生成授权请求消息,并且通过传输计算机718将所述消息发送到处理网络计算机720。处理网络计算机720可被配置成利用在混合高速缓存中维持的数据来执行任何合适的欺诈检测处理。基于欺诈检测处理的结果,处理网络计算机720可将授权请求消息发送到授权实体计算机722。授权实体计算机722可利用由授权实体计算机722先前存储在混合高速缓存中的任何合适的数据来执行任何合适的授权服务处理。授权实体计算机722可确定授权请求将被准予或拒绝,并且可生成授权响应消息。授权响应消息可通过处理网络计算机720和传输计算机718发送到资源提供商计算机716。资源提供商计算机716可将授权响应消息转发到访问装置714,所述访问装置可给出授权请求被准予或拒绝的指示。在稍后的时间,可执行清算和结算过程以结算与传输计算机相关联的收单方和与授权实体计算机722相关联的发行方之间的所欠金额。
[0101]
技术优势
[0102]
本发明的实施例具有数个优势。例如,利用上文论述的技术,可利用高速缓存的专用分配来确保多租户系统的每个租户得到高速缓存的某一部分作为专用空间。这可确保减轻贪心租户的影响,使得其它租户的高速缓存和/或数据请求的执行不会像在常规系统中
那样受到不利影响。另外,由于本文中所描述的混合高速缓存技术还利用共享高速缓存,因此也可降低高速缓存未充分利用的可能性。通过利用这种多层级架构,混合高速缓存的命中率和整体性能可优于常规高速缓存系统。
[0103]
本文所述的任何计算装置可以是计算机系统的示例,所述计算机系统可用于实施上述任何实体或组件。此类计算机系统的子系统可以通过系统总线互连。额外子系统包括打印机、键盘、存储装置和监视器,所述监视器耦合到显示器适配器。外围设备和输入/输出(i/o)装置耦合到i/o控制器,并且可以通过本领域已知的许多手段中的任何一种(例如串行端口)连接到计算机系统。例如,i/o端口或外部接口可以用于将计算机设备连接到广域网(例如,互联网)、鼠标输入装置或扫描器。通过系统总线的互连可以允许中央处理器与每个子系统通信,并且控制来自系统存储器或存储装置的指令的执行,以及在子系统之间的信息交换。系统存储器和/或存储装置可以体现计算机可读介质。
[0104]
如所描述,本发明的服务可涉及实施一个或多个功能、过程、操作或方法步骤。在一些实施例中,所述功能、过程、操作或方法步骤可以实施为由适当地被编程的计算装置、微处理器、数据处理器等执行指令集或软件代码的结果。指令集或软件代码可以存储在由计算装置、微处理器等存取的存储器或其它形式的数据存储元件中。在其它实施例中,所述功能、过程、操作或方法步骤可由固件或专用处理器、集成电路等实施。
[0105]
本技术中描述的任何软件组件或功能可使用任何合适的计算机语言实施为由处理器执行的软件代码,所述计算机语言例如使用例如常规的或面向对象的技术的java、c 或perl。软件代码可作为一系列指令或命令存储在计算机可读介质上,例如随机存取存储器(ram)、只读存储器(rom)、例如硬盘驱动器的磁介质或软盘、或例如cd-rom的光学介质。任何此类计算机可读介质可驻存在单个计算设备上或内部,并且可存在于系统或网络内的不同计算设备上或内部。
[0106]
虽然已经详细描述并在附图中示出某些示范性实施例,但应理解,此类实施例仅仅是对本发明的说明而非限制,并且本发明不限于所示和所描述的具体布置和构造,因为所属领域的一般技术人员可以想到各种其它修改。
[0107]
如本文中所使用,除非明确指示有相反的意思,否则使用“一(a/an)或“所述”旨在表示“至少一个”。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献