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

数据中心中的延迟最小化的制作方法

2022-03-19 16:08:17 来源:中国专利 TAG:

数据中心中的延迟最小化


背景技术:

1.现代软件系统通常是可以跨多个地理上不同的数据中心分布的服务网格。服务中的每一个可以具有位于相应数据中心中的服务持久性(persistency)以存储数据。全球公司一般依赖于服务提供商(供应商)提供的软件系统,该软件系统部署在多个数据中心中。因此,软件系统通过服务访问的数据可能意味着远程访问,例如,远程访问可能包括访问位于遥远大陆的数据中心中存储的数据。这样的远程数据访问具有很大的延迟,这会影响软件系统的可用性和性能。
2.为了使数据在低延迟的情况下全球可用,一种方法是使用数据中心内设置的分布式数据库,数据被克隆并且跨分布式数据库而分布。通过这种方式,在不同的数据中心中运行的服务可以以低延迟在本地访问数据。然而,分布式数据库带来了冗余存储和密集数据流量的开销。因此,简单地将所有数据分布到全球多个数据中心的“强力”方法是不可接受的。另一种方法是在本地缓存数据,但这也有明显的技术缺点。例如,缓存的数据可能很快变得过时,并且对过时数据的更新操作很慢。此外,如果数据被缓存,但随后又被更新或修改,则缓存的数据需要频繁地被无效。


技术实现要素:

3.本公开的实现方式涉及最小化数据中心中的延迟。更具体地,本公开的实现方式涉及使用跨数据中心的服务的实例内的延迟最小化层(lml)在数据中心之间动态地移动数据。
4.在一些实现方式中,动作包括:由在第一数据中心内执行的第一服务的lml插件监控访问,以提供表示对存储在第一数据中心中的数据记录的访问的访问数据,该访问包括由第一服务执行的本地访问和由在第二数据中心内执行的第二服务执行的远程访问;由在第一数据中心内执行的lml实例从第一服务的lml插件接收访问数据;由lml实例基于第一时间段中的本地访问和远程访问来确定数据记录的度量集;以及基于度量集来选择性地执行传输过程,以将数据记录复制到第二数据中心。该方面的其他实现方式包括相应的系统、装置和计算机程序,被配置为执行被编码在计算机存储设备上的方法的动作。
5.这些和其他实现方式可以各自可选地包括以下特征中的一个或多个:确定度量集包括计算第一时间段内的本地访问数量、远程访问数量以及访问的总数,以及确定本地访问的百分比和远程访问的百分比;选择性地执行传输过程包括响应于远程访问的百分比和本地访问的百分比之间的差超过第一阈值而执行传输过程;第一阈值包括随时间改变的阻尼(dampening)值;在执行传输过程之后,数据记录被存储在第一数据中心和第二数据中心两者中;动作还包括在第二时间段中从第二数据中心接收存储在第二数据中心中的数据记录的访问的总数,以及基于来自第二数据中心的访问的总数来选择性地执行另一传输过程;动作还包括删除存储在第一数据中心中的数据记录;并且确定度量集包括计算来自第二数据中心的远程访问的延迟,以及基于来自第二数据中心的远程访问的延迟来选择性地执行传输过程。
6.本公开还提供了一种计算机可读存储介质,耦合到一个或多个处理器并且具有存储在其上的指令,该指令在由一个或多个处理器执行时使得一个或多个处理器执行根据本文所提供的方法的实现方式的操作。
7.本公开还提供了一种用于实现本文所提供的方法的系统。该系统包括一个或多个处理器以及计算机可读存储介质,该计算机可读存储介质耦合到一个或多个处理器并且具有存储在其上的指令,该指令在由一个或多个处理器执行时使得一个或多个处理器执行根据本文所提供的方法的实现方式的操作。
8.应当理解,根据本公开的方法可以包括本文所描述的方面和特征的任何组合。也就是说,根据本公开的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任何组合。
9.本公开的一个或多个实现方式的细节在附图和以下描述中阐述。从说明书和附图以及权利要求中,本公开的其他特征和优点将显而易见。
附图说明
10.图1描绘了可以用于执行本公开的实现方式的示例架构。
11.图2a和图2b描绘了根据本公开的实现方式的概念架构。
12.图3a-图3c描绘了示出根据本公开的实现方式的延迟最小化的示例的示例表。
13.图4描绘了描绘示例网络延迟的示例表。
14.图5a-图5c描绘了示出根据本公开的实现方式的延迟最小化的另一示例的示例表。
15.图6a和图6b描绘了示出根据本公开的实现方式的延迟最小化的另一示例的示例表。
16.图7描绘了可以根据本公开的实现方式而执行的示例过程。
17.图8是可以用于执行本公开的实现方式的示例计算机系统的示意图。
18.不同附图中相同的附图标记指示相同的元件。
具体实施方式
19.本公开的实现方式涉及最小化数据中心中的延迟。更具体地,本公开的实现方式涉及使用跨数据中心的服务的实例内的延迟最小化层(lml)在数据中心之间动态地移动数据。实现方式可以包括以下动作:由在第一数据中心内执行的第一服务的lml插件监控访问,以提供表示对存储在第一数据中心中的数据记录的访问的访问数据,该访问包括由第一服务执行的本地访问和由在第二数据中心内执行的第二服务执行的远程访问;由在第一数据中心内执行的lml实例从第一服务的lml插件接收访问数据;由lml实例基于第一时间段中的本地访问和远程访问来确定数据记录的度量集;以及基于度量集来选择性地执行传输过程,以将数据记录复制到第二数据中心。
20.为了提供本公开的实现方式的进一步上下文,并且如上所述,远程数据访问导致在数据被存储在多个地理上不同的数据中心(例如,位于不同大陆上的数据中心)的场景下可能显著的延迟。数据访问所需的数据传输会消耗网络带宽并且耗时。这对访问远程数据的软件系统的可用性和响应性产生不利影响。响应缓慢的软件系统(例如,响应时间大于一
秒)被认为是低质量、过时和/或设计不良的。
21.在一些实例中,对软件系统的使用可能因地理位置而异,并且不是驻留相同区域的每个软件系统都访问相同的数据集。在一些示例中,使用软件系统的企业可能具有全球职员和设施,但是企业内的团队通常在一个或两个位置工作,并且团队的子公司集中在几个位置。例如,产品的设施和工厂位于相同位置。因此,对关于产品的数据的访问的请求可以在一定程度上集中在单个位置或仅几个位置。当然,应该有对跨全球发送的访问的请求,例如,来自公司总部的访问请求,但更大部分的数据访问是本地访问。因此,应该改善和优化本地访问的延迟和成本。
22.继续上面的示例,可以假设产品计划在全球销售。关于产品的生产和装配过程,产品的组件可以在一个或两个地方制造。然后,组件被送到装配线以被组装为产品。组装好的产品可以由企业的物流团队配送。与产品的生产相关的数据对于工厂来说是本地的,并且只有关于组件的数据的部分(例如,主数据中的一些)将在整个生产、装配和分销过程中被使用。装配线创建的数据对于工厂来说也是本地的,并且产品的主数据中的一些也将被用于分销过程。因此,数据中的大部分主要是在一个或几个位置被创建和访问的。
23.继续产品示例,关于产品的销售过程,产品的销售可能在很大程度上是本地化的。产品的销售可能因地区而异,有些产品在一个地区卖得很好,但在其他地区卖得不好。销售相关数据(如发票、付款、客户沟通或营销信息)将主要在本地被创建和访问,同时可被访问以用于全球评估。因此,可能需要通过将数据移动到更靠近大多数访问发生的位置来将数据分布到需要的位置。
24.在一些示例中,可能不存在为大型企业的分布式职员中的所有用户提供良好/低延迟的用于数据的“单个理想位置”。例如,如果两个人使用具有单个数据库实例的相同软件系统,并且他们在地理上相距很远(例如,10000公里),那么对一个用户来说,对数据的访问延迟可能是好的,但对两个用户来说却不是好的。也就是说,如果数据存储得离一个用户更近,则另一个用户将会经历很长的延迟。
25.现有方法尝试解决这一问题。例如,分布式数据库中的数据复制方案试图在地理上分布数据。但是,如上所述,将数据彻底地复制到所有数据中心将导致数据存储和网络流量的巨大成本。软件系统的系统管理员在分布式数据库中手动复制或移动数据也是不切实际的。例如,用户的数量和/或服务的数量可能太大而无法管理,并且用户和数据的位置可能不是静态的。
26.另一种现有方法是在本地缓存数据。访问缓存的数据的读取过程可能会更快,但数据可能过时,并且对过时数据的更新操作很慢。此外,如果数据被缓存,但随后又被更新或修改,则缓存的数据需要频繁地被无效。通常,即使缓存的数据没有被使用或最近被访问过,也需要及时完成对缓存的数据的无效。对缓存的数据的频繁更新和无效会产生巨大的网络成本。
27.鉴于上述背景,本公开的实现方式提供了一种自动优化数据存储位置以反映访问模式和最小化延迟的过程。本公开的实现方式还通过考虑网络和存储成本来优化整体延迟。
28.参考示例用例来进一步详细描述本公开的实现方式。然而,可以设想,本公开的实现方式可以在任何适当的用例中实现。
29.第一示例用例包括跨国企业的业务数据。大型全球性企业通常在几个位置、国家和大陆设有子公司、工厂、商店和办事处。这些跨国企业倾向于使用软件系统(例如,企业资源规划(enterprise resource planning,erp)系统)来管理数据和运行业务应用,而不在每个位置执行本地应用。这样的软件系统通常作为软件即服务(software-as-a-service,saas)解决方案被提供,出于高可用性、灾难恢复、延迟和其他原因被部署到一组数据中心。一些软件应用可以将数据存储在中央数据库中,中央数据库可能在其他位置有一些副本,但主存储是中央的。
30.如今,数据存储分布在各个数据中心。数据可以在一个位置被创建,也可以在相同位置被访问。例如,位置a处的客户的发票是在位置a处创建的,并且通常该发票也主要在位置a处被访问。有时发票也在其他位置(位置b)被消费(consume),例如,用于审计、机器学习等。访问的分布可能导致对将发票存储在靠近位置a的数据中心的确定。然而,国家c中客户的发票可以被存储在更靠近国家c的位置。类似的示例适用于其他业务数据,诸如交货单、材料管理或物流。对于业务数据(诸如项目的装运),发送访问请求的位置可能会从起始位置迁移到目的地。因此,如果不相应地移动业务数据,从目的地到业务数据的访问可能会经历高延迟。
31.第二示例用例包括“一个工作流”方案的“一个收件箱”。在这样的用例中,软件系统倾向于变得更加“面向用户”。以前,软件系统中提供的功能主要集中在用户体验上。最近,大多数软件供应商能够在其产品中提供类似的功能(软件系统的非功能方面),因此性能、可访问性和/或可用性更受用户关注。已经开发了面向用户的能力,诸如“一个收件箱”和“一个工作流”,其中为相应的用户定制对数据的呈现。另一方面,大型跨国企业的员工通常分布在世界各地,且没有固定的工作位置。此外,跨国企业使用的业务数据被存储在数据中心的集合中,并且由来自世界各地的用户使用/访问。作为实现随机定位用户的“一个收件箱”方案的结果,访问业务数据的延迟在一些情况下可能是可接受的,但是对于其他情况,网络延迟可能是显著的。
32.图1描绘了根据本公开的实现方式的示例架构100。在所描绘的示例中,示例架构100包括客户端设备102a、102b、102c,网络106以及服务器系统104a、104b、104c。服务器系统104a、104b、104c中的每一个包括一个或多个服务器设备和数据库108(例如,处理器、存储器)。在所描绘的示例中,用户112a、112b、112c分别与客户端设备102a、102b、102c交互。
33.在一些示例中,客户端设备102a、102b、102c可以分别通过网络106与服务器系统104a、104b、104c通信。在一些示例中,客户端设备102a、102b、102c各自包括任何适当类型的计算设备,诸如台式计算机、膝上型计算机、手持计算机、平板计算机、个人数字助理(pda)、蜂窝电话、网络设备、相机、智能手机、增强型通用分组无线电业务(egprs)移动电话、媒体播放器、导航设备、电子邮件设备、游戏控制台或这些设备中的任何两个或更多个或者其他数据处理设备的适当组合。在一些实现方式中,网络106可以包括连接任意数量的通信设备、移动计算设备、固定计算设备和服务器系统的大型计算机网络,诸如局域网(lan)、广域网(wan)、互联网、蜂窝网络、电话网络(例如,pstn)或它们的适当组合。
34.在一些实现方式中,服务器系统104a、104b、104c各自包括至少一个服务器和至少一个数据存储。在图1的示例中,服务器系统104a、104b、104c各自旨在表示各种形式的服务器,包括但不限于web服务器、应用服务器、代理服务器、网络服务器和/或服务器池。一般
地,服务器系统接受对应用服务的请求,并向任意数量的客户端设备(例如,网络106上的客户端设备102a、102b、102c)提供这种服务。
35.在一些实现方式中,服务器系统104a、104b、104c各自表示托管应用和/或服务以提供功能的数据中心(datacenter,dc)的至少部分。例如,服务器系统104a可以被视为第一数据中心(dc1)(或其的至少部分),服务器系统104b可以被视为第二数据中心(dc2)(或其的至少部分),并且服务器系统104c可以被视为第三数据中心(dc3)(或其的至少部分)。服务器系统104a、104b、104c托管服务的相应实例(本文被称为服务实例),服务为一个或多个应用提供功能。在一些示例中,客户端设备102a访问服务器系统104a(dc1)的服务实例,客户端设备102b访问服务器系统104b(dc2)的服务实例,并且客户端设备102c访问服务器系统104c(dc3)的服务实例。
36.在一些示例中,服务实例访问dc1、dc2和dc3中的一个或多个中的数据。例如,如图1的示例中所描绘的,服务器系统104a、104b、104c分别包括服务持久性(数据存储)120a、120b、120c,它们存储由服务实例中的一个或多个访问的数据记录。例如,与用户112a相关联的数据记录122存储在服务持久性120a中,与用户112b相关联的数据记录124存储在服务持久性120a中,并且与用户112c相关联的数据记录126存储在服务持久性120c中。
37.在一些实现方式中,客户端设备102b与服务器系统104b中托管的服务实例交互。在一些示例中,交互可以要求服务实例访问数据记录124。然而,因为数据记录124不位于服务持久性120b中,所以服务实例必须从服务器系统104a中托管的服务实例请求数据记录124。服务器系统104a中托管的服务实例接收请求,从服务持久性120a中检索数据记录124,并将数据记录124提供给服务器系统104b中托管的服务实例。然而,如此所述,该过程导致数据记录124被请求的时间和数据记录被接收的时间之间的延迟。
38.根据本公开的实现方式,并且如本文进一步详细描述的,每个服务实例与在dc之间动态地移动数据记录的相应lml相关联。如本文进一步详细描述的,并且参考图1的示例,服务实例(例如,服务器系统104a上托管的服务实例)的lml可以确定数据记录124应该在服务持久性120b中呈现,并且可以发起数据记录124在服务持久性120b内的传输和存储。以这种方式,服务器系统104b中托管的服务实例对数据记录124的后续访问将导致延迟,该延迟小于从服务持久性120a访问数据记录124时导致的延迟。
39.图2a和图2b描绘了根据本公开的实现方式的概念架构200、200’。在图2a中,所描绘的概念架构200包括服务器系统202a和202b,并且每个表示数据中心dc1和dc2的至少部分。此外,服务器系统202a和202b也可以被称为图1中描绘的服务器系统104a和104b的实现方式之一。服务器系统202a包括应用210a、第一服务实例212a、数据库214a和第一服务持久性216a。应用210a被配置为连接到一个或多个客户端设备(例如,图1中的客户端设备102a),并且充当与客户端设备和用户(例如,图1中的客户端设备102a和用户112a)交互的接口。第一服务实例212a连接到应用210a,并为应用210a提供功能。第一服务实例212a也连接到数据库214a,并且能够通过数据库214a访问第一服务持久性216a。例如,第一服务实例212a从应用210a接收访问存储在第一服务持久性216a中的数据记录的请求(该数据记录最初可能是从用户(例如,图1中的客户端设备102a和用户112a)请求的),然后第一服务实例212a将响应于该请求、通过数据库214a访问存储在第一服务持久性126a中的数据记录。
40.服务器系统202b包括应用210b、第二服务实例212b、数据库214b和第二服务持久
out)”)。例如,如果服务器系统202a的数据记录将被传输到服务器系统202b,则第一lml实例222a触发第一实例212a(例如,发送关于传输过程的请求)将数据记录复制到服务器系统202b,并从本地服务持久性216a中删除该数据记录。
46.注意,尽管如图2a所描绘的,lml 220a嵌入在第一服务实例212a中,并且第一lml实例222a和第一lml持久性224a独立于数据库214a和第一服务持久性216a,但是本公开的实现方式不限于此。在一些实现方式中,lml 220a可以是连接到第一服务实例212a的独立模块,并且第一lml实例222a和第一lml持久性224a可以被合并,并且分别是数据库214a和第一服务持久性216a的部分。
47.参考上面的示例,其中客户端设备102b请求访问位于图1中的服务持久性120b中的数据记录124,当第二服务实例212b接收到访问数据记录(例如,数据记录x)的请求时,第二服务实例212b确定所请求的数据记录x在本地第二服务持久性216b中是否可用。如果数据记录x在本地不可用,则第二服务实例212b向第二lml实例222b(或诸如第一服务实例214a的其他服务器系统中托管的服务实例)发送请求以检索数据记录x。
48.图2b描绘了类似于图2a所描绘的架构200的概念架构200’。概念架构200’表示分布式数据库场景,其中数据记录可以存储在多个数据库中。在图2b的示例中,提供了分布式数据库214a’、214b’,一个或多个数据记录跨分布式数据库214a’、214b’而分布。也就是说,例如,数据记录可以存储在多于一个的分布式数据库/数据中心中(即,每个数据记录在多个位置)。在一些实现方式中,本公开的传输过程包括将数据记录复制到目的地,而不从当前数据中心删除数据记录。在一些实现方式中,分布式数据中心内的传输过程可以包括将数据记录复制到一个以上的目的地,同时从当前数据中心删除或不删除该数据记录。
49.图3a-图3c描绘了示出根据本公开的实现方式的延迟最小化的示例的示例表。如本文所述,在数据中心内执行的lml实例(例如,数据中心dc1中的第一lml实例222a)从服务实例(例如,经由对lml 220a的监控的第一服务实例212a)接收访问信息。图3a描绘了表示示例访问信息的表300。在表300中,访问信息表示对存储在第一数据中心(dc1)中、具有记录密钥k1-k4的数据记录(被称为数据记录k1-k4)的访问请求。
50.在图3的示例中,对于每个数据记录,访问数据包括时间戳和数据中心标识符。因此,表300中的每个条目(行)为相应数据记录指示哪个数据中心发送了访问请求以及该访问请求的时间(时间戳)。在表300中,行302表示从第二数据中心(dc2)到dc1对具有密钥k1的数据记录的访问请求,行304表示从dc2到dc1对具有密钥k2的数据记录的访问请求,行306表示从dc1内对数据记录k3的访问请求,并且行308表示从第三数据中心(dc3)到dc1对具有密钥k4的数据记录的访问请求。在表300的示例中,行302、304、308表示远程访问,而表306表示本地访问。表300可以被本地存储在dc1中(例如,在第一lml持久性224a中)。如本文所述,表300的访问数据可以用于确定数据中心之间的数据记录的迁移。
51.在一些实现方式中,与数据记录中的每一个相对应的度量集可以包括但不限于本地访问数量、远程访问数量、本地访问的百分比、远程访问的百分比、来自特定数据中心的远程访问数量和百分比、存储在其他数据中心的相同数据记录的访问的数量和百分比以及访问的延迟。在一些示例中,如本文所述,周期性地(例如,每x分钟、每天、每周)计算度量集。在一些示例中,也如本文所述,响应于事件(例如,访问请求)而计算度量集。在一些示例中,度量集中的度量可以被计算为移动平均。例如,每10分钟(例如,由lml实例)计算来自数
据中心中的每一个的本地访问和远程访问数量。此外,计算最近2小时内本地访问和远程访问数量的移动平均。然后,可以基于本地访问和远程访问数量的移动平均来计算度量,诸如来自数据中心中的每一个的本地访问和远程访问的百分比。
52.图3b描绘了示例表310,其包括基于存储在dc1中的数据记录(包括图3a中描绘的数据记录)的访问数据的示例度量集。在表310中,行312表示来自dc1、dc2和dc3中的每一个对具有密钥k1的数据记录的访问请求的百分比,行314表示来自dc1、dc2和dc3中的每一个对具有密钥k2的数据记录的访问请求的百分比,行316表示来自dc1、dc2和dc3中的每一个对数据记录k3的访问请求的百分比,行318表示来自dc1、dc2和dc3中的每一个对具有密钥k4的数据记录的访问请求的百分比,并且行320表示来自dc1、dc2和dc3中的每一个对具有密钥k5的数据记录的访问请求的百分比。在图3b描绘的示例中,数据中心dc1、dc2、dc3是非分布式数据库系统。也就是说,图3b的示例表示数据记录仅存储在跨数据中心dc1、dc2、dc3的一个位置中的示例用例。
53.根据本公开的实现方式,度量集用于在dc1、dc2、dc3之间选择性地移动数据。在图3b的示例中,度量集被评估以确定每个数据记录的动作。在非分布式数据库系统的上下文中,示例操作可以包括但不限于将数据记录从一个数据中心移动到另一个数据中心,或将数据记录留在其当前数据中心中。因此,本文的传输过程包括移动过程,其选择性地将数据记录推送(push)到新的位置,并从当前位置删除该数据记录。
54.在一些实现方式中,执行第一逻辑以确定是否对存储在数据中心中的一个或多个数据记录执行传输过程。在一些示例中,第一逻辑在每个位置(l)被执行(例如,由数据中心内的lml实例执行),并且包括以下示例流程:
55.(1)对于本地存储在位置l的每个数据记录y,计算参数access_from_location(x),作为来自每个位置x(即请求访问(本地和远程两者)的数据中心中的每一个)对数据记录y的访问数量的总和;
56.(2)确定位置x_max,其在所有位置x当中具有对数据记录y的最大访问数量(或其移动平均);以及
57.(3)如果参数“access_from_location(x_max)”比参数“access_from_location(l)”(即本地访问数量)高z%(例如,z=10),则执行移动过程,以将数据记录y推送到位置x_max并从位置(l)删除。
58.参考图3b中描绘的表310,以示例的方式描述第一逻辑。执行第一逻辑,因为具有密钥k1的数据记录几乎只由dc2中托管的服务实例访问,所以具有密钥k1的数据记录被移动到dc2。因此,具有密钥k1的数据记录也被移除(从dc2中删除)。此外,因为来自dc2的远程访问的百分比比本地访问(即来自dc1的访问请求)的百分比高10%(即,z=10),所以具有密钥k2的数据记录被移动到dc2。因此,具有密钥k1的数据记录也从dc2中移除(删除)(选择退出)。因为没有来自其他位置(数据中心)的访问满足传输条件,所以具有密钥k3-k5的数据记录被保存在数据中心dc1中。
59.在一些示例中,如果多个数据中心各自具有比正被考虑的存储数据记录的数据中心高z%的远程访问,则数据记录被移动到具有最高百分比的数据中心。例如,如果对于存储在dc1中的特定数据记录,访问百分比被提供为dc1=18%,dc2=42%,dc3=40%,dc2和dc3都超过了比dc1高10%的示例。在本示例中,因为dc2的百分比高于dc3,所以数据记录被
移动到dc2(并从dc1中删除)。
60.图3c描绘了示例表330,其具有遵循图3b中描绘的示例表310的度量集。然而,表330的示例是基于分布式数据库系统的示例用例。也就是说,数据记录可以存储在多个位置。在这个示例中,传输过程包括推送过程和选择退出过程。在一些示例中,推送过程和选择退出过程可以被独立地确定和执行。
61.在一些实现方式中,对于分布式数据库系统,执行第二逻辑以确定是否对数据中心本地存储的数据记录执行传输过程。在一些示例中,第二逻辑在每个位置(l)被执行(例如,由数据中心内的lml实例执行),并且包括以下示例流程:
62.(1)对于本地存储在位置l的每个数据记录y,计算参数“access_from_location(x)”,作为来自位置x(即请求访问(本地和远程两者)的数据中心中的每一个)对数据记录y的访问数量的总和;
63.(2)对于每个数据记录y,计算参数“global_sum_local_access”,作为存储数据记录y的所有数据中心对数据记录y的访问数量的总和;
64.(3)对于已经访问了存储在位置l中的数据记录y的位置x中的每一个:
65.如果access_from_location(x)/global_sum_local_access》z%(例如,z=10),则将数据记录y推送到位置x;并且
66.如果access_from_location(l)/global_sum_local_access《=w%(例如,w=5%),则从位置l选择退出数据记录y。
67.参考图3c中描绘的表330,以示例的方式描述第二逻辑。在图3c的示例中,注意到数据记录k1-k5仅存储在数据中心dc1中。也就是说,尽管考虑了分布式数据库系统,但是图3c的示例的数据记录碰巧都只存储在dc1中。在这个示例中,参数“global_sum_local_access”等于对具有密钥k1-k5的数据记录中的每一个的访问的总数。结果,对“access_from_location(x)/global_sum_local_access”的计算等于来自位置x的访问的百分比。通过执行第二逻辑,因为来自dc2的远程访问的百分比高于10%(即,z=10),所以确定具有密钥k2的数据记录将被推送(复制)到dc2。因为本地访问的百分比小于5%(例如,w=5),所以具有密钥k2的数据记录也从dc1中选择退出(例如,从dc1中删除)。同样在该示例中,因为来自dc2的访问的百分比高于10%,并且本地访问的百分比仍然大于5%,所以具有密钥k2的数据记录被推送到dc2,并且仍然被保存在dc1中。因此,具有密钥k2的数据记录被分布,因为其被存储在多个位置。在这个示例中,因为来自dc1、dc2和dc3中的每一个的访问的百分比都高于10%,所以具有密钥k3的数据记录被推送到dc2和dc3。基于相同的标准,具有密钥k4和密钥k5的数据记录被分别推送到dc3和dc2。
68.应当理解,第一逻辑和第二逻辑中的阈值(例如,5%、10%和20%)是作为示例提供的,并且可以被调整为任何适当的值。
69.在一些实现方式中,阻尼因子被添加到阈值以避免传输过程的频繁执行(振荡)。这样的频繁执行会导致数据记录在数据中心之间频繁地来回推送。在一些示例中,阈值被提供为固定阈值(例如,10%)和动态阻尼因子(例如,随着时间减少的q%)的总和。作为非限制性示例,阻尼因子可以是时间的函数,最初被设置为50%,并且在时间段(例如,2小时)内逐渐减小到0。在对数据记录的传输过程的执行之后,可以为相应数据记录重置阻尼因子(例如,重置为50%)。
70.在一些实现方式中,由lml实例计算的度量集可以包括关于网络延迟的信息。图4描绘了示例表400,其描绘了相应数据记录和请求数据中心的示例网络延迟。在本例中,网络延迟可以通过监控实例到实例通信来测量。例如,当dc2中托管的服务实例(例如,图2a中所示的第二服务实例220b)发送对存储在dc1中具有密钥k1的数据记录的访问的请求时,服务实例将读取当前时间戳并将该时间戳(此后为发送方时间戳)附加(append)到对访问具有密钥k1的数据记录的请求。当dc1中托管的服务实例(例如,第一服务实例212a)从dc2中的服务实例接收到请求时,dc1中的服务实例记录当前时间戳并从请求中提取发送方时间戳。因此,服务实例可以基于当前时间戳和发送方时间戳来计算网络延迟。一旦计算了网络延迟,就可以将网络延迟存储在本地(例如,存储在第一lml持久性224a中)。在一些示例中,如果数据记录在本地不可用,则数据中心和数据记录对的网络延迟可以用作服务实例查找请求数据记录的最近位置的参考。在一些实现方式中,附加发送方时间戳、提取发送方时间戳和计算网络延迟的过程由数据中心中托管的lml实例执行。在实践中,对网络延迟的测量通常从一个数据中心中托管的应用发起,并在从另一个数据中心接收到响应之后由相同应用计算网络延迟,这是耗时的,并且对于服务实例来说导出这样的信息并不简单。
71.图5a-图5c描绘了示出根据本公开的实现方式的延迟最小化的另一示例的示例表。图5a描绘了根据本公开的实现方式的示例表500,其提供了关于具有密钥k1-k6的数据记录的访问信息的度量集的整体视图,以及基于度量集所确定的相应的动作。在示例表500中,关于访问信息的度量集包括本地访问数量、来自数据中心中的每一个的远程访问数量以及数据记录中的每一个的本地访问的总数。注意,在这个示例中,本地访问的总数被确定为存储相同数据记录的所有数据中心中的本地访问的总数。例如,具有密钥k1的数据记录只存储在dc1中,因此本地访问的总数等于dc1中的访问数量。另一方面,具有密钥k5的数据记录跨dc1-dc3而分布,因此本地访问的总数被确定为在dc1-dc3中的每一个中对数据记录k5的所有本地访问的总和。
72.如本文进一步详细描述的,图5b的示例表502描绘了在基于图5a的表500中描绘的度量集已经执行了一个或多个传输过程之后的度量集。此外,图5c的示例表502描绘了由位于dc3内的lml实例记录的度量集。
73.更详细地,图5b和图5c描绘了分别来自数据中心dc1和dc3的关于访问信息的度量集的本地视图的示例表502和示例表504,以及基于关于访问信息的度量的相应的动作。在一些示例中,对于分布式数据记录(诸如具有密钥k5和密钥k6的数据记录),尽管本地访问的总数可以通过数据中心中托管的lml实例之间的通信来导出,但是对存储在其他数据中心中的数据记录的远程访问的具体数量可能仍然是未知的。例如,参考图5a和图5c中具有密钥k5的数据记录,示出了存储在数据中心dc2和dc3中的访问数量在数据中心dc1中本地不可用(即,在图5b所示的示例表502中条目为零)。
74.在一些实现方式中,由数据中心的lml实例(或服务实例)在本地确定是否执行数据记录的传输过程。在一些示例中,由lml实例做出的确定不受关于访问信息的有限度量的影响。例如,参考图5b的具有密钥k5的数据记录,dc1中的lml实例分析度量集,并确定存储在dc1中的数据记录已经从dc4和dc5接收到大量的访问请求,但是没有从dc6、dc7、dc8接收到任何访问请求。因此,来自数据中心dc6、dc7、dc8的请求可以由dc2和dc3处理。在该示例中,dc1中的lml实例继续基于关于访问信息的度量集来确定是否将数据记录k5传输到dc4
和dc5。例如,使用本文描述的第二逻辑,具有密钥k5的数据记录被推送到dc4和dc5,因为来自dc4和dc5中的每一个都有超过10%的访问。来自dc1的本地访问为33%,因此lml实例仍然在dc1中维护具有密钥k5的数据记录。
75.参考图5c中的示例表504,对于存储在dc3中具有密钥k5的数据记录,存在来自dc3的500个本地访问实例和来自dc6的2500个远程访问实例。因此,dc3的lml实例会将具有密钥k5的数据记录推送到dc6。结果,具有密钥k5的数据记录被存储在dc1、dc2、dc3、dc6中的每一个中。假设所有访问信息保持不变,在下一次迭代(例如,10分钟后)中,本地访问的总数变为10000个实例,数据中心dc1、dc2、dc3、dc6都存储具有密钥k5的数据记录。结果,来自dc1的本地访问的百分比变为5%,并且dc1中的lml实例将选择不在dc1中存储具有密钥k5的数据记录。类似地,dc3的lml实例也会选择不在dc3中存储具有密钥k5的数据记录。
76.参考具有密钥k6的数据记录的示例表500和示例表502,因为来自dc1和dc3的本地访问数量(即50个实例)与本地访问的总数(5350个实例)相比均低于5%,所以dc1和dc3中的每一个中的lml实例将决定选择不在dc1和dc3中存储具有密钥k6的数据记录。在dc1-dc8中的每一个已经确定了是否对具有密钥k6的数据记录执行传输过程之后,具有密钥k6的数据记录将仅被存储在dc5中。
77.在一些示例中,如果数据记录存储在多个位置,则存储数据记录的位置可能不是最靠近请求方的位置(例如,从阿姆斯特丹的数据中心而不是慕尼黑的数据中心请求数据记录)。然而,网络延迟可能仍然是可接受的(例如,低于0.2秒),并且响应时间低于期望的kpi(例如,低于1秒)。在这种情况下,数据记录的传输过程是不必要的并且可以被避免。通过避免对数据记录的不必要的移动,减轻了系统网络的负载。
78.在一些实现方式中,网络延迟也在度量集中被监控和考虑,以避免数据记录的不必要的移动。具体地,如果数据中心的位置彼此“足够接近”,使得从网络延迟的角度来看,对一个数据记录的远程访问仍然是可接受的,则不会执行传输过程。在一些实现方式中,数据中心之间的网络延迟可以根据对本地存储的数据记录的访问请求来计算,例如,使用图4中描绘的对实例到实例通信的测量。在一些实现方式中,可以采用预定时间段(例如,最后2小时)内的数据来周期性地(例如,每10分钟)计算网络延迟的移动平均。如本文所述,如果数据记录在本地不可用,则本地实例(例如,服务实例和/或lml实例)可以读取网络延迟并使用网络延迟作为参考来查找请求数据记录的最近位置。在一些实现方式中,可以进行相关的观察。来自一个位置的数据记录的访问请求总是去往相同的另一位置,那么这个另一位置必须是具有最低网络延迟的位置,如果数据记录在所有其他位置都可用的话。然而,这是例外情况,因为大多数记录只存储在可用位置的子集内。在一些实现方式中,可以基于对本地存储的数据记录的各种访问模式和来自与其他数据中心通信的足够信息来构建全面的全球延迟图。
79.图6a和图6b分别描绘了示例表600和示例表602,其示出了根据本公开的实现方式的延迟最小化的另一示例。示例表600、602可以分别表示dc1和dc8的全球延迟图。通过组合dc1-dc10内的所有本地测量和通信,可以形成在网络延迟方面彼此“足够近”的位置组。注意,这里描述的术语“足够近”是由网络延迟的相似性而不是物理距离来定义的。例如,在示例表600和示例表602中,dc1-dc3在“亚洲”组中,dc4-dc6在“欧洲”组中,dc7-dc10在“美国”组中,并且相同组中的数据中心的网络延迟彼此相似。
80.在一些实现方式中,在组中的一个内,由于远程访问足够快,因此不需要复制或推送相同的数据记录。因此,当应用本文所描述的第一逻辑或第二逻辑(例如,确定是否移动数据记录)时,一个组内的各个位置可以被视为单个“组位置”。在组中的一个内,任意位置/数据中心可以表示该组。换句话说,在确定是否将数据记录移动到新位置期间,相同组中的数据中心可以被视为一个超级数据中心。例如,dc1中托管的lml实例可能决定不将数据记录移动到dc3,因为dc1和dc3在相同组中。在这里,位于dc3中的lml实例只需将数据记录移动到dc7,即使数据中心dc7和dc8两者都具有对该数据记录的大量访问。
81.在一些实现方式中,可以基于所有数据中心中的数据记录的访问信息、通过频谱分析来找到访问模式。通常,预期访问模式的频率为一天、一周、一个月、一个季度或一年。模式可以包括但不限于:遵循日常节奏(例如,白天、黑夜)的人(以及由人引起的业务);人们有每周的日程安排(有休息日等);和业务流程需要每月、每季度、每年的报告和规划。
82.在一些实现方式中,传输过程可以以事件驱动的方式进行。也就是说,如果事件流可用,事件可以与数据记录的传输过程相关联。例如,事件流包括表示用户行进的数据。如果用户行进到更靠近dc2的另一位置,则用户频繁访问的数据记录(例如,在dc1中)将被移动到dc2以跟随用户。如果数据记录的传输过程被设置为与用户行进相关,则可以使用新的事件“用户行进到位置dc2”来主动将数据记录移动到dc2。
83.在一些实现方式中,事件可能包括营销事件。例如,如果在区域rx中启动产品prodx的营销活动,则在从区域rx访问的数据中心中,对主数据目录的后续访问和对与产品相关的销售线索的创建会增加。如果数据记录的传输过程与营销事件相关(具有一些业务属性,如产品和区域),则主动传输过程可以被配置为在检索事件时执行。
84.在一些实现方式中,可以监控并进一步调整“主动”动作(例如,数据记录的主动传输过程)。当确定并配置主动动作时,可以监控主动传输过程的效率。效率指标可以包括但不限于:(1)每个请求的网络延迟(如果网络延迟的移动平均随时间增加,则重新执行分析以识别是否需要调整主动移动);以及(2)以不同的频率和事件重复地重新执行分析(如果相关性低于已经设置的阈值,则删除主动传输过程)。
85.图7描绘了可以根据本公开的实现方式而执行的示例过程700。在一些实现方式中,执行示例过程700以减少跨数据中心访问数据记录的延迟。在一些示例中,使用由一个或多个计算设备执行(例如,由数据中心内的lml实例执行)的一个或多个计算机可执行程序来提供示例过程700。为了表述清楚,以下描述概括地描述了图1所示的系统100的上下文中的示例过程700。
86.监控对数据记录的访问(702)。例如,如本文所述,在第一数据中心内执行的第一服务的lml插件监控对存储在第一数据中心内的数据记录的访问。在一些示例中,访问数据表示对存储在第一数据中心中的数据记录的访问,该访问包括由第一服务执行的本地访问和由在第二数据中心内执行的第二服务执行的远程访问。接收访问数据(704)。例如,如本文所述,在第一数据中心内执行的lml实例从第一服务的lml插件接收访问数据。确定数据记录的度量集(706)。例如,如本文所述,lml实例基于本地访问和远程访问来确定存储在第一数据中心中的每个数据记录的度量集。在一些示例中,度量集是以预定的时间间隔确定的。在一些示例中,响应于事件的发生而确定度量集。选择性地执行一个或多个传输过程(708)。例如,如本文所述,基于相应的度量集来选择性地传输一个或多个数据记录。例如,
基于度量集来选择性地执行传输过程,以将相应的数据记录复制到第二数据中心。在一些示例中,从第一数据中心删除相应的数据记录。
87.现在参考图8,提供了示例计算系统800的示意图。系统800可以用于结合本文所描述的实现方式描述的操作。例如,系统800可以包括在本文所讨论的任何或所有服务器组件中。系统800包括处理器810、存储器820、存储设备830和输入/输出设备840。组件810、820、830、840使用系统总线850互连。处理器810能够处理在系统800内执行的指令。在一些实现方式中,处理器810是单线程处理器。在一些实现方式中,处理器810是多线程处理器。处理器810能够处理存储在存储器820或存储设备830中的指令,以在输入/输出设备840上显示用户界面的图形信息。
88.存储器820存储系统800内的信息。在一些实现方式中,存储器820是计算机可读介质。在一些实施方式中,存储器820是易失性存储单元。在一些实现方式中,存储器820是非易失性存储单元。存储设备830能够为系统800提供大容量存储。在一些实现方式中,存储设备830是计算机可读介质。在一些实现方式中,存储设备830可以是软盘设备、硬盘设备、光盘设备或磁带设备。输入/输出设备840为系统800提供输入/输出操作。在一些实现方式中,输入/输出设备840包括键盘和/或定点设备。在一些实现方式中,输入/输出设备840包括用于显示图形用户界面的显示单元。
89.所描述的特征可以在数字电子电路中实现,或者在计算机硬件、固件、软件或它们的组合中实现。装置可以在有形地体现在信息载体中的计算机程序产品中实现(例如,在机器可读存储设备中实现,以由可编程处理器执行),并且方法步骤可以由可编程处理器执行,该可编程处理器执行指令程序,以通过对输入数据进行操作并生成输出来执行所描述的实现方式的功能。所描述的特征可以有利地在可在可编程系统上执行的一个或多个计算机程序中实现,可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,至少一个可编程处理器被耦合以从数据存储系统接收数据和指令以及向数据存储系统发送数据和指令。计算机程序是指令集,指令集可以在计算机中直接或间接用来执行某项事件或产生某个结果。计算机程序可以用任何形式的编程语言编写,包括编译语言或解释语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。
90.例如,用于执行指令程序的合适的处理器包括通用和专用微处理器两者,以及任何类型计算机的单个处理器或多个处理器之一。一般,处理器将从只读存储器或随机访问存储器或者两者接收指令和数据。计算机的元件可以包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般,计算机还可以包括用于存储数据文件的一个或多个大容量存储设备,或可操作地耦合到用于存储数据文件的一个或多个大容量存储设备,以与之通信;这种设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和光盘。适用于有形地包含计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,包括例如半导体存储设备,诸如eprom、eeprom和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用集成电路(asic)来补充或并入asic中。
91.为了提供与用户的交互,这些特征可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,诸如阴极射线管(crt)或液晶显示器(lcd),以及键盘和定点设备,
诸如鼠标或轨迹球,用户可以通过键盘和定点设备向计算机提供输入。
92.这些特征可以在计算机系统中实现,该计算机系统包括后端组件,诸如数据服务器,或包括中间件组件,诸如应用服务器或互联网服务器,或包括前端组件,诸如具有图形用户界面或互联网浏览器的客户端计算机,或者它们的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(诸如通信网络)来连接。例如,通信网络的示例包括lan、wan以及形成互联网的计算机和网络。
93.计算机系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过诸如所描述的网络交互。客户端和服务器的关系是通过运行在各自计算机上的计算机程序产生的,并且彼此之间具有客户端-服务器关系。
94.此外,图中描绘的逻辑流程不需要所示的特定次序或顺序地来实现期望的结果。此外,可以从所描述的流程中提供其他步骤,或者可以取消步骤,并且可以向所描述的系统添加其他组件,或者从所描述的系统中移除组件。因此,其他实现方式在所附权利要求的范围内。
95.已经描述了本公开的多种实现方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实现方式在所附权利要求的范围内。
再多了解一些

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

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

相关文献