CN107257957B - 至次级应用的应用高速缓存复制 - Google Patents
至次级应用的应用高速缓存复制 Download PDFInfo
- Publication number
- CN107257957B CN107257957B CN201680012026.5A CN201680012026A CN107257957B CN 107257957 B CN107257957 B CN 107257957B CN 201680012026 A CN201680012026 A CN 201680012026A CN 107257957 B CN107257957 B CN 107257957B
- Authority
- CN
- China
- Prior art keywords
- cache
- application
- network node
- identifiers
- portions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/264—Remote server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
- G06F2212/284—Plural cache memories being distributed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
将服务于一个网络节点上的主应用的主应用高速缓存复制到服务于第二网络节点上的次级应用的次级应用高速缓存中。标识在主应用高速缓存内的高速缓存部分,然后标识符(但不是高速缓存部分)被传送到第二网络节点。一旦接收到这些标识符,则可以将它们标识的高速缓存部分取回到次级应用高速缓存中。可以重复地执行这个过程,使得次级应用高速缓存朝向与主应用高速缓存相同的状态移动,尽管在主应用通过接收读写入请求而操作时,主应用高速缓存的状态也改变。
Description
背景技术
通过因特网或经由企业网络可用于用户的信息量实际上是无限的,这就是当今的时代通常被称为“信息时代”的原因。当计算硬件为计算机提供硬件支持时,指导硬件操作以执行无数功能的是应用程序。为了支持信息时代,这样的应用需要访问信息,信息通常被称为数据。
为了获得最佳性能,数据通常以层级形式存在,其中更加频繁地和/或最近使用的数据以更高的访问速度更多地被本地高速缓存,并且其中较少使用的数据以较慢的访问速度被高速缓存外部可用。数据访问的新近度和/或频率常常是对数据的未来访问的预测,并且常常与类似于温度(诸如“温暖”、“热度”、“冷度”、“温度”)的参考一起被提及。例如,气体分子越热,其与周围分子更频繁且更积极地相互作用。因此,温度隐喻被广泛地应用于数据访问。
当应用与底层数据存储层级交互时,应用建立高速缓存,以使得应用能够接近峰值性能,因为温暖数据被加载到更高效地被访问的高速缓存中。为了实现可用性,特别是在云计算环境中,应用通常会具有运行在不同的计算节点上的一个或两个次级副本应用。对主应用进行的写入也在次级应用处被进行。如果在一个计算节点上的主应用失败,则云计算基础架构将切换到次级应用之一。
本文中要求保护的主题不限于解决任何缺点或只在诸如上述环境中操作的实施例。相反,仅提供该背景技术部分以说明一个示例性技术领域,其中可以实践本文中描述的一些实施例。
发明内容
本文中描述的至少一些实施例操作在这样的环境中,其中主应用具有操作在其他网络节点上的一个或多个次级应用(诸如副本应用)。作为示例,这样的冗余应用可以被操作为用于应用的可用性的目的。根据本文中描述的原理,主应用的主应用高速缓存被评估,以用于朝向相同状态移动次级应用的次级应用高速缓存的目的。这样,如果主应用确实失败,则次级应用可以继续以与次级应用占据主要作用的应用高速缓存的类似的(如果不是相同的)内容进行操作。
对主应用的写入请求也在次级应用处被执行。然而,任何给定的次级应用高速缓存仍然可能处于与主应用高速缓存不同的状态,因为主应用暴露于与次级应用不同的读取请求。例如,主应用可以是读取请求的排他性执行者。此外,可能存在一些情况,其中虽然在主应用处执行写入,但是次级应用中的一个或多个不执行写入操作(例如,由于通信难度)。因此,任何给定的次级应用高速缓存的状态在任何给定的时间可以不同于主应用高速缓存的状态。
根据本文中描述的原理,存在一种用于在次级应用高速缓存中至少部分地复制主应用高速缓存的方法。该方法包括标识主应用高速缓存内的至少一些高速缓存部分标识符,并且引起所标识的高速缓存部分标识符被传送到第二网络节点。例如,这可以由与主应用高速缓存位于同一机器上的分布式复制模块的部分来实现。一旦这些标识符被接收到,则至少一个高速缓存部分被取回到次级应用高速缓存中,该至少一个高速缓存部分被标识在所传送的高速缓存部分标识符中次级。例如,该取回可以由与次级应用高速缓存位于同一计算机上的分布式复制模块的部分来实现。这个过程可以重复地被执行,使得次级应用高速缓存朝着与主应用高速缓存相同的状态移动,尽管当主应用通过接收读写入请求而操作时,主应用高速缓存的状态也在改变。此外,这个过程可以被执行以用于多个次级副本应用,使得其各自的应用高速缓存趋于更接近于主应用高速缓存的状态。
与高速缓存部分本身相比,高速缓存部分标识符可能非常小。因此,在一个实施例中,可以使用在主应用高速缓存中的高速缓存部分的标识符来频繁地更新运行次级应用的第二网络节点。然而,由于高速缓存部分本身大得多,所以标识的高速缓存部分被取回和放置到次级应用高速缓存中的频率可能不那么频繁。这样的较低频率的取回可以利用效率,因为在高速缓存部分被弹入和弹出主应用高速缓存的情况下,可以避免将该高速缓存部分加载到次级应用高速缓存中。此外,如果温暖信息也与每个标识符相关联,则可以通过高速缓存部分的温暖来将高速缓存部分的取回优先化。
本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
为了描述可以获得的上述以及其他优点和特征的方式,将通过参考附图来呈现各种实施例的更具体的描述。应当理解,这些附图仅描绘了示例性实施例,并且因此不应当被认为是对本发明的范围的限制,将通过使用附图以附加的特征和细节来描述和解释实施例,在附图中:
图1抽象地示出了其中可以采用本文中描述的一些实施例的计算系统;
图2示出了包括多个网络节点的网络系统,每个网络节点在其上操作应用副本的至少部分、相关联的高速缓存和分布式高速缓存复制模块的部分;
图3示出了用于在次级应用高速缓存中至少部分地复制主应用高速缓存的方法的流程图;
图4A示出了图2的网络系统的状态,但是其中示出了由主应用的操作所致的在主应用高速缓存内的三个高速缓存部分;
图4B示出了图2的网络系统的后续状态,但是其中源部分已经通知了主应用高速缓存内的至少一些标识符的目标部分;
图4C示出了图2的网络系统的后续状态,但是其中目标部分已经取回到相关联的次级应用高速缓存中,那些高速缓存部分中的至少一些由所接收的标识符的至少一些所标识标识;以及
图5示出了所捕获的高速缓存部分状态,其包括用于相关联的高速缓存部分的高速缓存部分标识符以及用于相关联的高速缓存部分的热度度量。
具体实施方式
本文中描述的至少一些实施例操作在这样的环境中,其中主应用具有操作在其他网络节点上的一个或多个次级应用(诸如副本应用)。作为示例,这样的冗余应用可以被操作以用于应用的可用性的目的。根据本文中描述的原理,主应用的主应用高速缓存被评估,以用于朝着相同状态移动次级应用的次级应用高速缓存的目的。这样,如果主应用确实失败,则次级应用可以继续以与次级应用占据主要作用的应用高速缓存的类似的(如果不是相同的)内容进行操作。
对主应用进行的写入请求也在次级应用处被执行。然而,任何给定的次级应用高速缓存仍然可能与主应用高速缓存处于不同的状态,因为主应用暴露于与次级应用不同的读取请求。例如,主应用可以是读取请求的排他性的执行者。此外,可能存在一些情况,其中虽然在主应用处执行写入,但是次级应用中的一个或多个不执行写入操作(例如,由于通信难度)。因此,任何给定的次级应用高速缓存的状态在任何给定的时间可以不同于主应用高速缓存的状态。
根据本文中描述的原理,存在一种用于在次级应用高速缓存中至少部分地复制主应用高速缓存的方法。该方法包括标识主应用高速缓存内的至少一些高速缓存部分标识符,并且引起所标识的高速缓存部分标识符被传送到第二网络节点。例如,这可以由分布式复制模块的部分来实现,该分布式复制模块的部分与主应用高速缓存位于同一机器上。一旦这些标识符被接收到,则至少一个高速缓存部分被取回到次级应用高速缓存中,该至少一个高速缓存部分被标识在所传送的高速缓存部分标识符中次级。例如,该取回可以由与次级应用高速缓存位于同一计算机上的分布式复制模块的部分来实现。这个过程可以重复地被执行,使得次级应用高速缓存朝着与主应用高速缓存相同的状态移动,尽管在主应用通过接收读写请求而操作时,主应用高速缓存的状态也在改变。此外,这个过程可以被执行以用于多个次级副本应用,使得其各自的应用高速缓存趋于更接近主应用高速缓存的状态。
与高速缓存部分本身相比,高速缓存部分标识符可能非常小。因此,在一个实施例中,可以使用在主应用高速缓存中的高速缓存部分的标识符来频繁地更新运行次级应用的第二网络节点。然而,由于高速缓存部分本身大得多,所以所标识的高速缓存部分被取回和放置到次级应用高速缓存中的频率可能不那么频繁。这样的较低频率的取回可以利用效率,因为在高速缓存部分被弹入和弹出主应用高速缓存的情况下,可以避免将该高速缓存部分加载到次级应用高速缓存中。此外,如果温暖信息也与每个标识符相关联,则可以通过高速缓存部分的温暖来将高速缓存部分到次级应用高速缓存中的取回优先化。
将关于图1来描述对计算系统的一些介绍性讨论。然后,将关于随后的图来呈现本文中描述的实施例的结构和操作。
计算系统现在越来越多地采用各种各样的形式。计算系统可以例如是手持设备、家用电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、甚至是在传统上不被认为是计算系统的设备,诸如可穿戴设备(例如眼镜)。在本说明书和权利要求书中,术语“计算系统”广义地被定义为包括具有至少一个物理和有形处理器、以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形存储器的任何设备或系统(或其组合)。存储器可以采用任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上,并且可以包括多个组成的计算系统。
如图1所示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。本文中也可以使用术语“存储器”来指代非易失性大容量存储装置,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中使用的,术语“可执行模块”或“可执行部件”可以指代可在计算系统上执行的软件对象、例程或方法。本文中描述的不同的部件、模块、引擎和服务可以被实现为在计算系统上执行的对象或过程(例如,作为单独的线程)。
在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作以软件来实现,则(执行该动作的相关联的计算系统的)一个或多个处理器响应于已经执行的计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实施。这样的操作的示例涉及数据的操纵。计算机可执行指令(和所操纵的数据)可以被存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,该通信信道108使得计算系统100能够通过例如网络110来与其他计算系统通信。
本文中描述的实施例可以包括或利用具有计算机硬件(诸如例如一个或多个处理器和系统存储器)的专用或通用计算系统,如下面更详细地讨论的。本文中描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种明显不同种类的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式来存储所需程序代码装置并且可以由通用或专用计算系统来访问的任何其他物理和有形存储介质。
“网络”被定义为使得能够在计算系统和/或模块和/或其他电子设备之间传送电子数据的一个或多个数据链路。当信息通过网络或其他通信连接(硬连线、无线、或者硬连线或无线的组合)传送或提供给计算系统时,计算系统正确地将连接视为传输介质。传输介质可以包括可用于以计算机可执行指令或数据结构的形式来携带期望的程序代码装置并且可以由通用或专用计算系统来访问的网络和/或数据链路。上述的组合也应当被包括在计算机可读介质的范围内。
此外,在到达各种计算系统部件时,计算机可执行指令或数据结构形式的程序代码装置可以被自动地从传输介质传送到存储介质(反之亦然)。例如,通过网络或数据链路所接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传送到计算系统处的计算系统RAM和/或更不易失性的存储介质。因此,应当理解,存储介质可以被包括在也(或者甚至主要地)利用传输介质的计算系统部件中。
计算机可执行指令包括例如当在处理器处被执行时引起通用计算系统、专用计算系统或专用处理设备执行某个功能或功能组的指令和数据。计算机可执行指令可以是例如在由处理器直接执行之前经历一些转换(诸如编译)的二进制或甚至指令,诸如中间格式指令,诸如汇编语言、或甚至源代码。虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于上述特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。
本领域技术人员将理解,本发明可以在具有很多类型的计算系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等。本发明也可以在分布式系统环境中实现,在分布式系统环境中,通过网络(通过硬连线数据链路、无线数据链路、或通过硬连线和无线数据链路的组合)链接的本地和远程计算系统都执行任务。在分布式系统环境中,程序模块可能位于本地和远程存储设备二者中。
图2示出了包括多个网络节点的网络系统200。例如,网络系统200包括第一网络节点210、第二网络节点220和潜在的第三网络节点230。然而,省略号240表示可以在包括两个或更多个网络节点的任何网络环境中操作的、本文中描述的原理。在一个实施例中,网络系统200是云计算环境,并且网络节点210、220、230和240可以是该云计算环境内的计算节点。
网络200还包括存储器250,网络节点210、220、230和240可能潜在地从该存储器250读取或向其写入。存储器250可以位于单个网络节点上,或者可以跨多个网络节点而分布。作为示例,如果网络系统200处于云计算环境中,则存储器250可以是存储节点。
第一网络节点210具有在其上操作的应用211的至少部分。第二网络节点220具有在其上操作的、用于主应用211的次级应用221的至少部分。第三网络节点230具有在其上的操作的、用于主应用211的次级应用231的至少部分。
为了提供应用的高可用性,应用211的次级版本(例如,副本)221、231在网络系统200内操作,并且与主应用211相关联。因此,在第一网络节点210上运行的应用211可以考虑“主”应用211。换言之,如果主应用211由于任何原因(诸如主应用211的软件的故障或第一网络节点210本身的故障)而停止正确操作,则次级应用221和231之一准备好至少大致在主应用211停止之处继续,并且接管作为主应用的角色。如果成为主应用的次级应用(例如,次级应用221)也失败,则其他次级应用231大致可以在其他次级应用221停止之处接管。在保证有两层冗余的上下文中,如果主应用211确实失败,并且次级应用221成为主应用,则附加应用(未示出)可能与目前的主应用221相关联,从而维持两级冗余。
应用211可以是如下任何应用,对这种应用而言,高可用性可能是有利的。作为示例,应用211可以是数据库应用,在这种情况下,次级应用221和231可能是类似的(例如,副本)数据库应用。应用211也可以是虚拟机,在这种情况下,次级应用221和231可能是类似的(例如,副本)虚拟机。应用211也可以是操作系统,在这种情况下,次级应用221和231可能是类似的(例如,副本)操作系统。
每个网络节点还包括用于该网络节点的高速缓存。例如,网络节点210、220和230具有对应的高速缓存212、222和232,该对应的高速缓存212、222和232可以用作相应的本地应用211、221和231的应用高速缓存。例如,主应用211从存储器250读取或向存储器250写入的数据可以被高速缓存在主应用高速缓存212内。在本文中描述的实施例中,向存储器250的写入由主应用211执行,而不是次级应用221和231执行,向存储器250的这种写入直接从应用逻辑产生并从而导致数据被存储在应用高速缓存中。应用高速缓存212、222和232可以是易失性的、非易失性的或其组合。此外,应用高速缓存212、222和232可以是多于一级的高速缓存,并且因此表示潜在的多级高速缓存。
本文中称为“主中心”实施例的一个实施例中,所有读取操作都被引导到主应用211,并且因此只有主应用211通过从存储器250读取并且在主应用高速缓存212中高速缓存读取的内容来响应于读取请求。次级应用221和231仅响应于主应用高速缓存212中的变化来执行读取操作,以便应用高速缓存222和232变得更加跟上主应用高速缓存212。
本文中将另一实施例称为“分布式读取”实施例。在分布式读取实施例中,应用副本211、221和231中的任一个可以通过从存储器250读取数据、并且在相应的应用高速缓存212、222和232内高速缓存所读取的数据,来对读取请求做出响应。虽然给出了这两个具体实施例,但是本文中描述的一般原理绝不限于这些具体实施例。
在任一实施例中,对主应用211的写入请求也被尝试,并且优选地在次级应用221和231处完成。因此,高速缓存状态的差异可能是由于暴露于不同的读取请求集合(例如,在主中心实施例中,次级应用221和231根本不接收读取请求)。但是,高速缓存状态的一些差异可能是由于一个或多个次级应用处的写入请求失败而导致。然而,在写入请求失败的情况下,也可能存在一致性问题,这些问题也应当被解决。在如下实施例中,其中在单个事务处理中以原子方式进行对主应用高速缓存的写入和对次级应用高速缓存的写入,则所有差异将归因于读取请求的差异。
每个网络节点都具有在其上操作的分布式高速缓存复制模块的部分。例如,网络节点210、220和230具有存储在其上的分布式高速缓存复制模块的相应部分213、223和233。部分213、223和233以如下目标通信:应用高速缓存222和232至少随时间趋向于朝着与主应用高速缓存相同的状态移动。这样,如果主应用211失败,则次级应用221或231之一可以以如下的应用高速缓存状态继续进行,该应用高速缓存状态至少比没有分布式高速缓存复制模块的操作更接近主应用高速缓存212的状态。
图3示出了用于在次级应用高速缓存中至少部分地复制主应用高速缓存的方法300的流程图。例如,方法300可以在图2的网络系统200中执行,在该环境中,主应用高速缓存是主应用高速缓存212,并且次级应用高速缓存是次级应用高速缓存222和/或次级应用高速缓存232。因此,图3的方法300将经常参考图2的网络系统200来描述。此外,图4A至4C分别示出了环境200的各种状态400A至400C。因此,图3的方法300还将分别经常参考图4A至4C的状态400A至400C来描述。首先,将关于图4A至4C来描述主中心实施例。此后,这些原理将被扩展以适用于分布式读取实施例。
方法300的一些部分可以由分布式高速缓存复制模块的部分(下文中称为“源部分”)来执行,该分布式高速缓存复制模块与主应用高速缓存驻留在同一网络节点上。由源部分执行的动作在图3的左列中在标题“源部分”下被示出。方法300的其他部分可以由与次级应用高速缓存驻留在同一网络节点上的分布式高速缓存复制模块的部分(下文中称为“目标部分”)来执行。由目标部分执行的动作在图3的右栏中在标题“目标部分”下被示出。例如,在次级应用高速缓存222和232朝向主应用高速缓存212被复制的情况下,在第一网络节点210上的分布式高速缓存复制模块的部分213将是源部分,并且在第二和第三网络节点220和230上的分布式高速缓存复制模块的相应的部分223和233每个分别是目标部分的实例。部分223将用作用于次级应用高速缓存222朝向主应用高速缓存212的复制的目标部分。部分233将用作用于次级应用高速缓存232朝向主应用高速缓存212的复制的目标部分。
根据方法300,源部分标识主应用高速缓存内的高速缓存部分的至少一些高速缓存部分标识符(动作311)。例如,图4A示出了图2的网络系统200的状态400A。图4A中的网络系统类似于图2的网络系统,不同之处在于,示出了由于主应用的操作而在主应用高速缓存212内的三个高速缓存部分401、402和403。源部分213标识这些高速缓存部分401、402和403在主应用高速缓存212内。因此,相应的标识符411、412和413在源部分213内。高速缓存部分401、402和403的标识符411、412和413远小于高速缓存部分401、402和403本身。
在源部分标识在主应用高速缓存内的高速缓存部分的至少一些高速缓存部分标识符之后,源部分将用于所标识的高速缓存部分中的至少一些的标识符传送到在另一网络节点上操作的相应的次级应用(动作312)。该通信被执行(动作312)以用于潜在的多个次级应用。例如,图4B示出了网络系统200的后续状态400B。具体地,源部分213将标识符411、412、413中的至少一些传送到目标部分223,如箭头421所示。因此,箭头421表示源部分213执行动作312的一个实例。替代地或另外地,源部分213将标识符411、412、413中的至少一些传送到目标部分233,如箭头422所示。因此,箭头422表示源部分213执行动作312的另一潜在实例。
在一些实施例中,所传送的标识符将取决于应用的作用。例如,在图4B中,次级应用221在主应用211发生故障的情况下或许将成为主应用211的直接后继者。此外,假设次级应用231仅是后继者的后继者。在这种情况下,与对于针对第三应用231进行操作的目标部分233相比,与对于针对次级应用221进行操作的目标部分223的标识可能更为完整。例如,在图4B中,目标部分223被示出为被通知所有的标识符411、412和413,而目标部分232被示出为仅被通知这些标识符中的一些标识符411和412。
作为另一示例,标识符可以被限制为由于读取操作而被放置到主应用高速缓存中的那些高速缓存部分。因此,由于已知已经在次级应用高速缓存处也被成功完成的写入操作而在主应用高速缓存内的高速缓存部分可能被排除在通信之外。
在接收到标识符(动作321)之后,目标部分将在所传送的高速缓存部分标识符中所标识的至少一个高速缓存部分取回到次级应用高速缓存中(动作322)。例如,图4C示出了网络系统200的后续状态400C。具体地,目标部分223接收标识符(如箭头421所示),并且目标部分233也接收标识符(如箭头422所示)。目标部分223通过将所标识的高速缓存部分中的至少一个取回到次级应用高速缓存222中(如虚线箭头431所示)来响应于接收到标识符(如箭头421所示)。目标部分233通过将所标识的高速缓存部分中的至少一个取回到次级应用高速缓存232中(如虚线箭头432所示)来响应于接收到标识符(如箭头422所示)。
在一个实施例中,目标部分将其被立即通知的所有高速缓存部分取回到相应的次级应用高速缓存中。这样做会导致次级应用高速缓存是主应用高速缓存的实时的高保真复制。在其他实施例中,目标源不立即取回一个或多个或潜在的所有高速缓存部分。在一些实施例中,可能完全不取回所标识的高速缓存部分中的一个或多个。
作为示例,源部分可以执行标识动作(动作311)和传送动作(312)多次,以用于当主应用操作并且主应用高速缓存内的高速缓存部分的标识改变时,不同的所标识的高速缓存部分标识符。此外,目标部分可以多次执行取回所标识的高速缓存部分的动作(动作322)。因此,随着时间的推移,次级应用高速缓存趋向于朝向与主应用高速缓存相同的状态的移动目标移动。因此,如果由于主应用的故障,次级应用需要接管,则次级应用高速缓存将比没有这样的复制尝试的情况下更加温暖和准备就绪。
例如,与高速缓存部分本身相比,高速缓存部分标识符可能非常小。因此,可以使用在主应用高速缓存内的标识符来频繁地更新目标部分。然而,由于高速缓存部分本身大得多,所以与高速缓存部分被标识的平均频率相比,标识的高速缓存部分被取回和放置到次级应用高速缓存中的平均频率可能不那么频繁(例如,至少两倍、一个数量级、几个数量级甚至更多个数量级)。这样的较低频率的取回可以利用效率,因为在高速缓存部分被弹入和弹出主应用高速缓存的情况下,可以避免将该高速缓存部分加载到次级应用高速缓存中。此外,如果温暖信息也与每个标识符相关联,则可以通过高速缓存部分的温暖来将高速缓存部分取回到次级应用高速缓存中来优先化。
在图4C的所示情况下,由于某种原因或另一原因,目标部分223执行其逻辑以确定,至于当前,只有由标识符411和412所标识的高速缓存部分401和402将被取回到次级应用高速缓存222中(参见箭头431)。因此,高速缓存部分413可以稍后被取回。此外,由于某种原因或另一原因,目标部分233执行其逻辑以确定,至于当前,只有由标识符411所标识的高速缓存部分401将被取回到次级应用高速缓存222中(参见箭头432)。因此,高速缓存部分412可以稍后被取回。
存在与将数据(诸如页面)加载到本地应用高速缓存中相关联的一些网络和计算资源。因此,依赖于各种参数,源部分可以限制目标部分被通知的标识符,并且目标部分可以限制实际上被取回到应用高速缓存中的数据。例如,目标部分被通知(动作312)、以及目标部分取回(动作322)的进取性(aggressiveness)可以取决于各种因素之一或组合,诸如目标部分是否已经被通知标识符标识了主应用高速缓存内的高速缓存部分,和/或所标识的高速缓存部分是否已经存在于次级高速缓存中。替代地或另外地,频率还可以取决于相关联的次级应用的作用、次级应用将成为主应用(可能永远地或在一定时间范围内)的似然估计、相关联的高速缓存部分的热度度量等。
关于热度度量,在一个实施例中,源部分不仅传送标识符本身,而且还传达相关联的热度量度,该相关联的热度量度与主应用211已经访问高速缓存部分的频率和/或新近度相关。图5示出了所捕获的高速缓存部分状态500,该状态500可以在动作312中传送。高速缓存部分状态500包括用于相关联的高速缓存部分的高速缓存部分501标识符。此外,高速缓存部分状态500可以可选地包括用于相关联的高速缓存部分的一个或多个热度量度510。“热度”度量是指与不久之后可以由主应用211访问高速缓存部分的可能性相关的度量。由于温度参考一种气体分子与另一种气体分子相互作用的频率和可能性,所以在数据访问领域也采用温度来表示数据将被应用访问的可能性。当然,部分数据的温度、热度或温度的确定是近似的估计,并且不一定是确定性的,并且不是数据本身的函数,而是应用在历史上如何与数据交互的函数。相对于一个应用热的数据可能相对于另一应用是冷的。
注意,此外,作为将高速缓存部分取回到应用高速缓存中(动作322)的部分,目标部分还可以从应用高速缓存中释放高速缓存部分。例如,如果通过动作312的传送,目标部分能够确定高速缓存部分不再在主应用高速缓存内,则目标部分可以从次级应用高速缓存中释放高速缓存部分(如果存在于其中)。当然,在将高速缓存部分取回到应用高速缓存中时所考虑的相同因素也可以当确定要从应用高速缓存释放高速缓存部分时被考虑。这在高速缓存部分刚刚从主应用高速缓存被释放并且稍后被返回到主应用高速缓存中的情况下可能会保留计算资源。通过引入一些延迟,次级网络节点可以放弃释放和重新取回应用高速缓存。
至此,已经描述了主中心实施例,其中首先对主应用高速缓存212进行由于应用状态改变而引起的更改。对次级应用高速缓存222和232的任何更改都响应于此。然而,在分布式读取的实施例中,任何应用高速缓存212、222和232可以首先响应于读取请求来改变,该读取请求针对相应的应用副本211、221或231。在这种情况下,对于首先对次级应用高速缓存222的任何变化,部分223充当分布式高速缓存复制模块的源部分,并且部分213和233充当分布式高速缓存复制模块的目标部分。此外,对于首先对次级应用高速缓存232的任何变化,部分233充当分布式高速缓存复制模块的源部分,并且部分213和223充当分布式高速缓存复制模块的目标部分。
因此,已经描述的是用于在其中存在分布式应用副本操作的环境中复制应用高速缓存的有效机制。依赖于计算系统、副本的作用、数据的温暖、以及各种其他因素,复制可能是立即的或较不进取的。因此,本文中描述的原理允许将平衡引入到这样的分布式复制中。
在不脱离本发明的精神或基本特征的情况下,本发明可以以其他具体形式来实施。所描述的实施例仅在所有方面被认为是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是以上描述来表示。在权利要求的等同物的含义和范围内的所有变化将被包括在其范围内。
Claims (20)
1.一种在计算机系统处实现的方法,所述计算机系统包括一个或多个处理器和主应用,所述主应用至少部分地在第一网络节点上操作,并且在所述第一网络节点上包括主应用高速缓存,所述主应用具有关联的次级应用,所述次级应用至少部分地在第二网络节点上操作,并且在所述第二网络节点上包括次级应用高速缓存,用于至少部分地在所述次级应用高速缓存中复制所述主应用高速缓存,所述方法包括:
标识已被添加到所述主应用高速缓存的多个高速缓存部分;
标识多个标识符,所述多个标识符的每一个与所述多个高速缓存部分中的一个高速缓存部分相关联;以及
将所述多个标识符传送至所述第二网络节点,所述第二网络节点被配置为:
响应于接收与所述主应用高速缓存中的多个高速缓存部分相关联的所述多个标识符,取回一个或多个高速缓存部分,所述一个或多个高速缓存部分的每一个与所接收到的所述多个标识符中的一个标识符相对应,其中所述一个或多个高速缓存部分是从存储节点所取回,所述存储节点由所述第一网络节点和所述第二网络节点共享;以及
将所述至少一个高速缓存部分高速缓存在所述次级应用高速缓存中。
2.根据权利要求1所述的方法,其中取回所述一个或多个高速缓存部分包括:取回与所接收到的所述多个标识符中的一个标识符相关联的所有高速缓存部分。
3.根据权利要求1所述的方法,其中当所述主应用操作时,标识高速缓存部分、标识与所述高速缓存部分相关联的标识符、以及传送所述标识符针对不同的标识符被执行多次。
4.根据权利要求3所述的方法,其中当所述主应用操作时,取回所述高速缓存部分也发生多次。
5.根据权利要求4所述的方法,其中传送所述多个标识符的平均频率比取回所述一个或多个高速缓存部分的平均频率更频繁至少两倍。
6.根据权利要求4所述的方法,其中传送所述多个标识符的平均频率比取回所述一个或多个高速缓存部分的平均频率更频繁至少一个数量级。
7.根据权利要求1所述的方法,所述第一网络节点是云计算机系统的第一计算节点,所述第二网络节点是所述云计算机系统的第二计算节点,并且取回所述一个或多个高速缓存部分包括:从所述云计算机系统的存储节点取回。
8.根据权利要求1所述的方法,所述方法还包括以下操作:
向第三网络节点传送所述多个标识符的至少一些,所述第三网络节点操作与所述主应用相关联的第三应用的至少部分,所述第三应用包括所述第三网络节点上的第三应用高速缓存;以及
由所述第三网络节点取回所述高速缓存部分中的至少一个高速缓存部分。
9.根据权利要求1所述的方法,所述次级应用高速缓存是易失性存储器。
10.根据权利要求9所述的方法,所述主应用高速缓存也是易失性存储器。
11.根据权利要求1所述的方法,所述次级应用高速缓存是非易失性存储器和/或存储装置。
12.根据权利要求11所述的方法,所述主应用高速缓存也是非易失性存储器和/或存储装置。
13.根据权利要求1所述的方法,所述主应用是数据库应用。
14.根据权利要求1所述的方法,所述主应用是虚拟机。
15.根据权利要求1所述的方法,所述主应用是操作系统。
16.一种计算机系统,包括:
第一网络节点,所述第一网络节点包括一个或多个第一处理器并且在所述一个或多个第一处理器处操作主应用的至少一部分,所述第一网络节点还具有所述主应用的主应用高速缓存;
第二网络节点,所述第二网络节点包括一个或多个第二处理器,并且在所述一个或多个第二处理器处操作主应用的次级应用的至少一部分,所述第二网络节点也具有所述次级应用的次级应用高速缓存,并且其中所述第一网络节点被配置为:
标识已被添加到所述主应用高速缓存的多个高速缓存部分;
标识多个标识符,所述标识符的每一个标识符与所述多个高速缓存部分中的一个高速缓存部分相关联;以及
将所述多个标识符传送至所述第二网络节点,以及
所述第二网络节点被配置为:
响应于接收与所述主应用高速缓存中的多个高速缓存部分相关联的所述多个标识符,取回一个或多个高速缓存部分,所述一个或多个高速缓存部分的每一个与所接收到的所述多个标识符中的一个标识符相对应,其中所述一个或多个高速缓存部分是从存储节点所取回,所述存储节点由所述第一网络节点和所述第二网络节点共享;以及
将所述至少一个高速缓存部分高速缓存在所述次级应用高速缓存中。
17.一种非瞬态计算机可读存储介质,具有存储于其上的计算机程序,所述计算机程序由计算机系统的一个或多个处理器可执行以使得所述计算机系统至少部分地在次级应用缓存中复制主应用高速缓存,所述计算机程序包括指令,所述指令可执行以使得所述计算机系统执行至少以下操作:
将在第一网络节点上运行的主应用与在第二网络节点上运行的次级应用相关联,所述主应用包括在所述第一网络节点上的主应用高速缓存,并且所述次级应用包括在所述第二网络节点上的次级应用高速缓存;
标识已被添加到所述主应用高速缓存的多个高速缓存部分;
标识多个标识符,所述标识符的每一个标识符与所述多个高速缓存部分中的一个高速缓存部分相关联;以及
将所述多个标识符传送至所述第二网络节点,所述第二网络节点被配置为:
响应于接收与所述主应用高速缓存中的多个高速缓存部分相关联的所述多个标识符,取回一个或多个高速缓存部分,所述一个或多个高速缓存部分的每一个与所接收到的所述多个标识符中的一个标识符相对应,其中所述一个或多个高速缓存部分是从存储节点所取回,所述存储节点由所述第一网络节点和所述第二网络节点共享;以及
将所述至少一个高速缓存部分高速缓存在所述次级应用高速缓存中。
18.根据权利要求17所述的非瞬态计算机可读存储介质,其中所述计算机程序还包括指令,所述指令可执行以使得所述计算机系统标识与所接收到的所述标识符相关联的哪些高速缓存部分要基于所述次级应用的作用而被取回。
19.根据权利要求17所述的非瞬态计算机可读存储介质,其中所述计算机程序还包括指令,所述指令可执行以使得所述计算机系统标识与所接收到的所述标识符相关联的所述高速缓存部分中的哪些要基于哪些高速缓存部分已经在所述次级应用高速缓存中而被取回。
20.根据权利要求17所述的非瞬态计算机可读存储介质,其中所述计算机程序还包括指令,所述指令可执行以使得所述计算机系统至少执行以下操作:
标识要从所述次级应用高速缓存中释放的一个或多个高速缓存部分;以及
从所述次级应用高速缓存中释放所标识的所述一个或多个高速缓存部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/631,698 US9684596B2 (en) | 2015-02-25 | 2015-02-25 | Application cache replication to secondary application(s) |
US14/631,698 | 2015-02-25 | ||
PCT/US2016/019000 WO2016137910A1 (en) | 2015-02-25 | 2016-02-23 | Application cache replication to secondary application(s) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107257957A CN107257957A (zh) | 2017-10-17 |
CN107257957B true CN107257957B (zh) | 2020-05-08 |
Family
ID=55485365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680012026.5A Active CN107257957B (zh) | 2015-02-25 | 2016-02-23 | 至次级应用的应用高速缓存复制 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9684596B2 (zh) |
EP (1) | EP3262512B1 (zh) |
CN (1) | CN107257957B (zh) |
WO (1) | WO2016137910A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9684607B2 (en) | 2015-02-25 | 2017-06-20 | Microsoft Technology Licensing, Llc | Automatic recovery of application cache warmth |
US9684596B2 (en) | 2015-02-25 | 2017-06-20 | Microsoft Technology Licensing, Llc | Application cache replication to secondary application(s) |
US11301144B2 (en) | 2016-12-28 | 2022-04-12 | Amazon Technologies, Inc. | Data storage system |
US10514847B2 (en) * | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US11327857B2 (en) * | 2018-04-04 | 2022-05-10 | Netapp Inc. | Faster replay of metadata and data operations using inode number based dependency graph |
US11169723B2 (en) | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
CN110297783B (zh) * | 2019-07-03 | 2021-01-15 | 西安邮电大学 | 基于实时动态迁移机制的分布式cache结构 |
US11182096B1 (en) | 2020-05-18 | 2021-11-23 | Amazon Technologies, Inc. | Data storage system with configurable durability |
US11681443B1 (en) | 2020-08-28 | 2023-06-20 | Amazon Technologies, Inc. | Durable data storage with snapshot storage space optimization |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463513B1 (en) * | 1999-09-07 | 2002-10-08 | International Business Machines Corporation | Cache storage optimization in a data storage library of a redundant copy synchronization token tracking system |
CN1451116A (zh) * | 1999-11-22 | 2003-10-22 | 阿茨达科姆公司 | 分布式高速缓存同步协议 |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
US8612383B2 (en) * | 2008-11-05 | 2013-12-17 | Mastercard International Incorporated | Method and systems for caching objects in a computer system |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
WO2014158156A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Storing data from cache lines to main memory based on memory addresses |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US6021480A (en) | 1996-06-05 | 2000-02-01 | Compaq Computer Corporation | Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line |
US6571324B1 (en) | 1997-06-26 | 2003-05-27 | Hewlett-Packard Development Company, L.P. | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system |
US6549210B1 (en) | 1999-02-03 | 2003-04-15 | Ati Technologies Inc. | Method and apparatus for cache index hashing |
US7085955B2 (en) | 2001-09-14 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | Checkpointing with a write back controller |
US6769048B2 (en) | 2001-12-06 | 2004-07-27 | Sun Microsystems, Inc. | Cache synchronization method, system and apparatus for a distributed application and an object located in a client cache |
US20040024969A1 (en) | 2002-07-31 | 2004-02-05 | Texas Instruments Incorporated | Methods and apparatuses for managing memory |
CA2433254A1 (en) | 2003-06-25 | 2004-12-25 | Ibm Canada Limited - Ibm Canada Limitee | System and method for warm shutdown and restart of a buffer pool |
US7502892B2 (en) | 2003-12-30 | 2009-03-10 | Intel Corporation | Decoupling request for ownership tag reads from data read operations |
US7475190B2 (en) * | 2004-10-08 | 2009-01-06 | International Business Machines Corporation | Direct access of cache lock set data without backing memory |
US20070005883A1 (en) | 2005-06-30 | 2007-01-04 | Trika Sanjeev N | Method to keep volatile disk caches warm across reboots |
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
US7934054B1 (en) * | 2005-11-15 | 2011-04-26 | Oracle America, Inc. | Re-fetching cache memory enabling alternative operational modes |
AU2006331932B2 (en) | 2005-12-19 | 2012-09-06 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7769951B2 (en) | 2007-04-10 | 2010-08-03 | Yahoo! Inc. | Intelligent caching of user data for real time communications |
CN101470645B (zh) | 2007-12-29 | 2012-04-25 | 华为技术有限公司 | 一种高速缓存数据恢复的方法和装置 |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US8117317B2 (en) * | 2008-12-31 | 2012-02-14 | Sap Ag | Systems and methods for integrating local systems with cloud computing resources |
US20100318584A1 (en) | 2009-06-13 | 2010-12-16 | Microsoft Corporation | Distributed Cache Availability During Garbage Collection |
CN102043727B (zh) | 2009-10-10 | 2014-04-02 | 成都市华为赛门铁克科技有限公司 | 恢复固态硬盘映射表的方法及其装置 |
US8683465B2 (en) | 2009-12-18 | 2014-03-25 | International Business Machines Corporation | Virtual image deployment with a warm cache |
US8375180B2 (en) | 2010-02-05 | 2013-02-12 | International Business Machines Corporation | Storage application performance matching |
CN102012849B (zh) | 2010-11-19 | 2012-10-24 | 中国人民大学 | 一种基于闪存的数据库恢复方法 |
JP5603507B2 (ja) | 2010-12-29 | 2014-10-08 | エンパイア テクノロジー ディベロップメント エルエルシー | ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 |
CN102567490B (zh) | 2011-12-21 | 2013-12-04 | 华为技术有限公司 | 数据库内的描述信息的恢复和数据的缓存方法及设备 |
US9317435B1 (en) | 2012-12-18 | 2016-04-19 | Netapp, Inc. | System and method for an efficient cache warm-up |
US20140201157A1 (en) * | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods for rule-based virtual machine data protection |
US9037799B2 (en) | 2013-02-11 | 2015-05-19 | Avago Technologies General Ip (Singapore) Pte Ltd | Rebuild of redundant secondary storage cache |
US10114755B2 (en) | 2013-06-14 | 2018-10-30 | Nvidia Corporation | System, method, and computer program product for warming a cache for a task launch |
US9882984B2 (en) | 2013-08-02 | 2018-01-30 | International Business Machines Corporation | Cache migration management in a virtualized distributed computing system |
JPWO2015029230A1 (ja) * | 2013-08-30 | 2017-03-02 | 株式会社日立製作所 | 記憶装置及びデータ制御方法 |
US9114758B1 (en) | 2013-10-21 | 2015-08-25 | Alan S Poudrier | Convertible cargo carrier and cart system |
US9684607B2 (en) | 2015-02-25 | 2017-06-20 | Microsoft Technology Licensing, Llc | Automatic recovery of application cache warmth |
KR101730781B1 (ko) | 2013-12-12 | 2017-04-26 | 인텔 코포레이션 | 경쟁 상태를 검출하는 기법 |
US9684596B2 (en) | 2015-02-25 | 2017-06-20 | Microsoft Technology Licensing, Llc | Application cache replication to secondary application(s) |
-
2015
- 2015-02-25 US US14/631,698 patent/US9684596B2/en active Active
-
2016
- 2016-02-23 CN CN201680012026.5A patent/CN107257957B/zh active Active
- 2016-02-23 EP EP16708567.9A patent/EP3262512B1/en active Active
- 2016-02-23 WO PCT/US2016/019000 patent/WO2016137910A1/en active Application Filing
-
2017
- 2017-05-24 US US15/604,338 patent/US10204048B2/en active Active
-
2018
- 2018-11-29 US US16/204,778 patent/US10613978B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463513B1 (en) * | 1999-09-07 | 2002-10-08 | International Business Machines Corporation | Cache storage optimization in a data storage library of a redundant copy synchronization token tracking system |
CN1451116A (zh) * | 1999-11-22 | 2003-10-22 | 阿茨达科姆公司 | 分布式高速缓存同步协议 |
US8612383B2 (en) * | 2008-11-05 | 2013-12-17 | Mastercard International Incorporated | Method and systems for caching objects in a computer system |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
WO2014158156A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Storing data from cache lines to main memory based on memory addresses |
Also Published As
Publication number | Publication date |
---|---|
EP3262512A1 (en) | 2018-01-03 |
US20190129851A1 (en) | 2019-05-02 |
EP3262512B1 (en) | 2022-11-02 |
US10204048B2 (en) | 2019-02-12 |
US10613978B2 (en) | 2020-04-07 |
US20170255555A1 (en) | 2017-09-07 |
WO2016137910A1 (en) | 2016-09-01 |
CN107257957A (zh) | 2017-10-17 |
US20160246719A1 (en) | 2016-08-25 |
US9684596B2 (en) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107257957B (zh) | 至次级应用的应用高速缓存复制 | |
US11687555B2 (en) | Conditional master election in distributed databases | |
US8151062B2 (en) | Consistency models in a distributed store | |
US8712961B2 (en) | Database caching utilizing asynchronous log-based replication | |
CN110998557B (zh) | 通过分布式存储器的高可用性数据库系统及方法 | |
CN112236753A (zh) | 使用基于索引节点编号的依赖图更快地重放元数据和数据操作 | |
US10540119B2 (en) | Distributed shared log storage system having an adapter for heterogenous big data workloads | |
CN107408078B (zh) | 应用高速缓存热度的自动恢复 | |
CA2847597A1 (en) | Clustered client failover | |
US11288237B2 (en) | Distributed file system with thin arbiter node | |
WO2020143410A1 (zh) | 数据存储方法及装置、电子设备、存储介质 | |
US20140089260A1 (en) | Workload transitioning in an in-memory data grid | |
US10082978B2 (en) | Distributed shared log storage system having an adapter for heterogenous big data workloads | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
Krishna et al. | Improving performance of a distributed file system using a speculative semantics-based algorithm | |
US10853293B2 (en) | Switch-based inter-device notational data movement system | |
Krishna et al. | Improving the performance of read operations in distributed file system | |
US20200097372A1 (en) | Persistent storage segment cache for recovery | |
CN118449999A (zh) | 消息读写请求处理方法、系统、计算设备及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |