CN113015967B - 辅助存储服务器高速缓存 - Google Patents

辅助存储服务器高速缓存 Download PDF

Info

Publication number
CN113015967B
CN113015967B CN201980074402.7A CN201980074402A CN113015967B CN 113015967 B CN113015967 B CN 113015967B CN 201980074402 A CN201980074402 A CN 201980074402A CN 113015967 B CN113015967 B CN 113015967B
Authority
CN
China
Prior art keywords
cache
storage server
data blocks
server
storage
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
Application number
CN201980074402.7A
Other languages
English (en)
Other versions
CN113015967A (zh
Inventor
是佳
W·张
V·纳加拉简
S-Y·黄
K·尤玛玛格斯瓦兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN113015967A publication Critical patent/CN113015967A/zh
Application granted granted Critical
Publication of CN113015967B publication Critical patent/CN113015967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了涉及在不降级服务于客户端应用的存储请求的执行的情况下从数据库服务器的主存储服务器故障转移到辅助存储服务器的技术。辅助存储服务器的存储器层次结构包括辅助高速缓存和辅助持久性存储装置,该辅助持久性存储装置存储了还在主存储服务器上存储的数据块的副本。在实施例中,主存储装置向辅助存储器高速缓存转发(一个或多个)驱逐通知。辅助存储装置将在主驱逐通知中引用的(一个或多个)块集合从辅助存储装置加载到辅助高速缓存中。在中断事件之后,第二存储服务器的高速缓存自从主高速缓存中最后驱逐的(一个或多个)块以来是最新的,因此可以从辅助高速缓存中检索块,从而避免从辅助持久性存储装置中检索那些块。

Description

辅助存储服务器高速缓存
技术领域
实施例一般而言涉及信息存储装置和检索技术。更具体而言,实施例涉及客户端侧高速缓存的服务器侧扩展。
背景技术
本部分中描述的方法是可以采用的方法,但不一定是先前已经设想或采用的方法。因此,除非另有指示,否则不应当仅由于在本节中包括了本节所描述的任何方法而将该方法假设为现有技术。
对于服务于客户端应用的数据库管理系统(DBMS)而言,确保数据库管理系统的适当运作所依赖的组件的冗余是重要的。在基于云的数据库管理系统中,它变得尤为重要,在该系统中,客户端应用和数据库管理系统之间没有交叉可见性。客户端应用的管理员无法控制云数据库管理系统的操作,反之亦然。
如果DBMS组件有故障,由此DBMS无法服务于来自客户端应用的查询,那么客户端应用可能由于经历不可接受的停机而受到不利影响。因此,确保DBMS组件的冗余并具有DBMS的每个关键组件的对应的备用组件是常见的。
在服务于来自数据库管理系统的(一个或多个)数据库服务器的存储请求的存储服务器的情况下,通常不仅在存储设备级别(例如,基于RAID的冗余)而且在存储服务器级别上都保证了冗余。单独的辅助(secondary)存储服务器与服务于数据库服务器存储请求的主存储服务器的数据保持同步。如果发生影响主存储服务器的中断事件,那么DBMS会故障转移数据库服务器以使用辅助存储服务器。
“中断事件”术语在本文中是指使得存储服务器不能至少部分地服务于接收到的存储请求的任何事件。中断事件的非限制性示例是存储器或存储器模块故障、需要为了修复而对存储服务器进行重新引导或重置的非存储器组件的故障、以及为了计划内或计划外的维护而对存储服务器进行的任何重新引导或重置。
在故障转移到辅助存储服务器之后,辅助存储服务器的高速缓存至少部分为空。因此,因为存储请求具有高速缓存未命中(cache miss)并由访问缓慢的持久性存储装置提供服务,所以客户端应用在处理其请求时会经历时延。随着辅助存储服务器高速缓存的填充,时延消失,但是在相当长的时间内,辅助存储服务器降级数据库管理系统及其客户端应用的性能。
此外,当主存储服务器恢复时,它还可能具有或者过期的高速缓存或者部分为空的高速缓存。因此,当存储请求被路由回主存储服务器时,DBMS及其客户端遭受另一个性能挫折。
附图说明
在附图中:
图1是描绘一个或多个实施例中的示例聚类的DBMS的系统图的框图。
图2是描绘实施例中的存储服务器的存储器层次结构的框图。
图3是描绘实施例中就单个数据块而言的驱逐处理的流程图。
图4是描绘实施例中用于响应驱逐通知的示例方法的流程图。
图5-图6是描绘实施例中用于响应读取请求的示例方法的流程图。
图7是描绘实施例中对于辅助持久性高速缓存和辅助持久性存储装置的物理体系架构的示例的框图。
图8是描绘实施例中由中断事件造成的主存储服务器和辅助存储服务器的状态过渡的状态图。
图9是描绘可以在其上实现本技术的实施例的示例计算机系统的框图。
图10是描绘一个或多个实施例中的用于控制计算机系统的操作的软件系统的框图。
虽然每个附图都出于描绘清楚示例的目的而描绘了特定实施例,但是其它实施例可以省略、添加、重新排序和/或修改附图中所示的任何元素。为了描绘清楚示例,可以参考一个或多个其它附图来描述一个或多个附图,但是在其它实施例中不需要使用在一个或多个其它附图中描绘的特定布置。
具体实施方式
在以下描述中,出于说明的目的,阐述了许多具体细节以便提供对本公开的透彻理解。但是,将显而易见的是,可以在没有这些具体细节的情况下实践本公开。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地使本公开变得晦涩。诸如“第一”和“第二”之类的修饰词被用于区分元素并且不一定指示任何特定次序。
总体概述
本文中的方法描述了在不降级服务于数据库服务器的客户端应用的存储请求的执行的情况下,从数据库服务器的主存储服务器到辅助存储服务器的故障转移。
一种在故障转移到辅助存储服务器期间避免降级存储性能的方法是数据库服务器将每个读取的数据或其信息发送到辅助存储服务器。辅助存储服务器使用接收到的数据来保持其高速缓存为最新,从而进行预热。但是,这种方法将显著增加I/O操作,并给将存储服务器与数据库服务器通信地耦合的网络造成负担。
在实施例中,当基于高速缓存策略使数据从(一个或多个)数据库服务器过期时,导致数据从高速缓存中被驱逐,通知被发送到辅助存储服务器。辅助存储服务器使用该通知将被驱逐的数据的副本从其持久性存储装置加载到其高速缓存中。
由于通知而不是数据本身被发送到辅助存储服务器,因此系统的I/O性能得到了显著改善。该通知仅包括元数据,该元数据可以采用被驱逐的数据的地址(或地址范围)的形式,从而显著改善了通过网络将数据传输到辅助存储服务器的计算成本。
在从数据库服务器高速器缓存中驱逐数据时而不是在每次读取数据时根据发送的通知得到该系统的进一步改善。因此,通知的生成和发送频率较低,从而进一步避免对数据库管理系统的I/O造成负担,并改善了其性能。
虽然填充在辅助高速缓存中的被驱逐的数据可能不像保持在数据库服务器高速缓存中的数据那样新,但是在一段时间之后,大多数经常访问的数据将在某个点从数据库服务器缓存中被驱逐。由于辅助存储服务器的持久性高速缓存比数据库服务器高速缓存大得多,因此大多数(如果不是全部)最经常访问的数据最终将被复制到辅助存储服务器的持久性高速缓存中。因而,在故障转移之后,辅助存储服务器可以无延迟地服务于数据库服务器的存储请求,从而虽然进行了故障转移,但仍维持数据库管理系统的相同性能。
在实施例中,在主存储服务器恢复之后,虽然进行了恢复,但其健康状态仍被设置为降级。在这段时间期间,存储请求将继续被路由到辅助存储装置,而不是恢复的主存储服务器。在实施例中,当处于降级状态时,具有不足高速缓存的数据的恢复的主存储装置开始接收关于数据驱逐的通知。与故障转移之前的辅助存储服务器类似,主存储装置使用通知来预热其高速缓存。因而,一旦预热,当主存储服务器接管来自辅助存储服务器的存储请求时,性能就不会降级。
系统概述
本文描述的技术可以在聚类的数据库环境上实现。聚类的数据库环境提供了许多优点,诸如容错和负载平衡。一些聚类的数据库环境具有所有共享或磁盘共享体系架构。参考图1,数据库服务器100-102并发地访问或“共享”主存储服务器104,并共同实现数据库管理系统(DBMS)的服务器侧功能。就概念而言,数据库服务器100-102作为前端服务器进行操作,而存储服务器104作为后端服务器进行操作。为了便于参考,在下文中将前端和后端分别称为数据库侧和存储侧。虽然图1的聚类的数据库环境仅描绘了两个数据库服务器,但是应当认识到的是,聚类的数据库环境可以包括任何数量的数据库服务器。
每个数据库服务器100、102是运行数据库服务器的一个或多个实例的计算节点。每个数据库服务器实例是存储器和与存储服务器104交互以访问其中的存储器位置的处理的集合。存储服务器104表现出与每个数据库服务器100、102的服务器-客户端关系。例如,数据库服务器100、102可以从存储服务器104请求数据,并且作为响应,诸如主存储服务器104之类的存储服务器可以将所请求的数据返回给数据库服务器100、102。因此,从存储服务器的角度来看,数据库侧和存储侧还可以分别称为客户端侧和服务器侧。
在实施例中,聚类的数据库环境包括冗余共享的存储服务器,诸如主存储服务器104和辅助存储服务器124。在正常操作期间,来自数据库服务器100和102的读取存储请求被定向到主存储服务器104。写入存储请求被定向到主存储服务器104和辅助存储服务器124两者。因而,聚类的数据库环境使辅助存储装置124的存储的数据与主存储服务器104的数据更新保持最新。如果发生影响主存储服务器104服务于来自数据库服务器100和/或102的存储请求的能力的中断事件,那么请求被定向到辅助存储服务器124。由于辅助存储服务器124存储最新的数据,因此存储请求仍可以由辅助存储服务器124来服务。
在实施例中,数据库服务器100/102以及存储服务器104和124通过网络与彼此中的一个或多个通信地耦合。诸如网络150之类的网络广义地表示包括通信网络的数字数据电信网络,诸如局域网(LAN)、无线LAN(WLAN)、存储区域网络(SAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、自组织网络、内部网、外部网、虚拟专用网(VPN)、互联网的一部分、互联网、公用电话交换网(PSTN)的一部分、蜂窝网络,或其组合。
存储服务器104可以包括持久性存储装置112和/或可以通信地耦合到包括持久性存储装置112的外部设备。持久性存储装置112可以包括在没有任何电力的情况下保留数据的一个或多个存储设备。例如,持久性存储装置112可以包括一个或多个磁存储盘。持久性存储装置112可以用作支持多个高速缓存(诸如数据库服务器高速缓存106-108和持久性高速缓存110)的数据存储。出于诸如高速缓存未命中或硬件故障之类的各种原因,在多个高速缓存中可能不存在期望的数据。但是,当多个高速缓存中不存在期望的数据时,存储服务器104可以从持久性存储装置112检索数据的副本。类似地,在实施例中,辅助存储服务器包括持久性存储装置122和持久性高速缓存120。针对主存储服务器104的持久性存储装置112和持久性高速缓存110描述的布置和功能可以类似地应用于辅助存储服务器124的持久性存储装置122和持久性高速缓存120。
数据库系统实现数据库侧高速缓存。在图1的示例中,数据库服务器100-102分别包括高速缓存106-108。每个数据库侧高速缓存106、108可以是数据库服务器100、102的易失性存储器的全部或一部分。易失性存储器的示例包括随机存取存储器(RAM)、主存储器(main memory)等。
一般而言,在易失性存储器中执行输入/输出(I/O)操作比在诸如持久性存储装置112之类的非易失性存储器中执行I/O操作更快。一个原因是易失性存储器相对于非易失性存储器是较低时延存储介质。例如,在RAM中执行I/O操作可以避免较高花费的盘I/O操作、查找时间等。另一个原因是易失性存储器通常比非易失性存储器更靠近处理器。例如,RAM可以在芯片上或与芯片相邻,而硬盘驱动器在芯片外并经由通信架构耦合到处理器。
鉴于以上所述,可以理解,当诸如网络150之类的网络连接将数据库侧处理器与存储侧非易失性存储器分离时,在本地易失性存储器中而不是在远程非易失性存储器中执行I/O操作较快。在图1的示例中,每个数据库服务器100、102远离持久性存储装置112/122,从而将I/O执行时间暴露于网络时延。为了减少这种暴露,数据库服务器100、102本地高速缓存从存储服务器104/124接收到的数据,以便加速涉及该数据的未来I/O操作的执行。
为了进一步加速I/O操作的执行,数据库服务器100-102还可以经由互连(图1中未示出)彼此通信地耦合。互连基于“高速缓存融合”或在数据库侧高速缓存之间直接传送数据来启用甚至更快的I/O操作的执行。提供了高速缓存融合技术,用于将资源(诸如脏(dirty)数据块或干净(clean)数据块)从一个数据库服务器的高速缓存传送到另一个数据库服务器的高速缓存,而无需先将资源写入盘。当数据库服务器(请求者)期望修改资源时,请求者询问资源的当前版本。具有当前版本的数据库服务器(保持者)直接将当前版本运送到请求者。在运送该版本后,保持者失去修改资源的许可,但继续在存储器中保留该资源的副本。当资源的保留版本或其更高(later)版本被写入盘时,保持者可以丢弃资源的保留版本。否则,保持者不丢弃保留的版本。在服务器发生故障的情况下,根据需要,将在故障服务器的重做日志中进行了修改的所有资源的先前副本用作应用故障服务器的重做日志的起点。使用这种技术,恢复单服务器故障(最常见的故障形式),而不必合并对资源访问不良的各种数据库服务器的恢复日志。例如,“脏”数据块可以从数据库侧高速缓存106被传送到数据库侧高速缓存108,而无需将“脏”数据块写入持久性存储装置112/122的中间步骤。
术语“数据块”在本文中是指其中存储数据的逻辑结构。每个数据块与物理存储空间的特定数量的字节对应。例如,每个数据块可以与两个KB(千字节)的磁盘空间对应。但是,为了清楚起见,可以将数据作为数据块存储在高速缓存中以及持久性存储装置112/122中。实际上,高速缓存的数据块可以被归类为“干净”或“脏”。“干净”数据块是存储在持久性存储装置112/122中的数据块的相同版本的数据块的副本。换言之,“干净”数据块在被高速缓存后还没有被修改。相反,“脏”数据块是存储在持久性存储装置112/122中的数据块的不同版本的数据块的副本。例如,“脏”数据块可能已经在数据库服务器高速缓存106、108中被修改。为了清楚和易于说明,术语“数据”和“数据块”在本文中用于指数据或数据块以及数据或数据块的副本。
简介:存储服务器高速缓存
聚类的数据库系统还可以在存储侧采用某种形式的高速缓存。诸如存储服务器104之类的存储服务器可以包括诸如持久性高速缓存110之类的持久性高速缓存,和/或可以通信地耦合到包括持久性高速缓存的外部设备。像持久性存储装置112/122一样,持久性高速缓存110/120可以包括在没有任何电力的情况下保留数据的一个或多个存储设备。但是,相对于持久性存储装置112/122,持久性高速缓存110/120通常是较低时延的存储介质。例如,持久性高速缓存120可以包括一个或多个固态驱动器。
对于从数据库服务器100/102接收存储请求的主存储服务器104,主持久性高速缓存110可以被用作支持数据库侧高速缓存106-108的存储侧高速缓存。出于诸如高速缓存未命中或硬件故障之类的各种原因,数据库侧高速缓存106、108中可能不存在期望的数据。但是,当数据库侧高速缓存106、108中不存在期望的数据时,存储服务器104可以在主持久性存储装置112中寻找该数据之前在主持久性高速缓存110中寻找该数据。如上面所提到的,在主持久性高速缓存110中执行I/O操作通常比在主持久性存储装置112中执行I/O操作更快,因此在任何可能的时候,存储服务器104在主持久性高速缓存110中而不是在主持久性存储装置112中执行I/O操作。
通常,任何给定的数据库侧高速缓存106、108中的数据很可能在主持久性高速缓存110中被复制。如本文所使用的,术语“包含性”是指主持久性高速缓存110与任何给定的数据库侧高速缓存106、108之间的这种关系。为了阐明“包含性”高速缓存的含义,参考下图。
数据库侧高速缓存
A B C D E
存储侧高速缓存
A B C D E F G H I J
值得注意的是,数据块A-E中的每一个都被存储在数据库侧高速缓存和存储侧高速缓存两者中。
但是,相对于易失性存储器,主持久性高速缓存110通常是更高时延的存储介质。例如,包括往返消息传递成本和上下文切换成本,在闪存中执行I/O操作可以花费大约250微秒,而在易失性存储器中执行I/O操作可以花费不到100微秒。此外,主持久性高速缓存110可能与减少与网络相关的时延成本的某些技术不兼容。例如,远程直接存储器访问(RDMA)使得能够从一个计算机的存储器区域直接存储器访问另一个计算机的存储器区域,而不涉及任一计算机的操作系统,但是主持久性高速缓存110通常被实现为设备,而不是存储器区域。相反,存储侧易失性存储器是存储器区域,因此可以使用RDMA在不到10微秒内在存储侧易失性存储器中执行I/O操作。
因此,期望实现存储侧易失性存储器高速缓存以实现甚至更快的I/O操作的执行。但是,在许多情况下,存储侧的易失性存储器的存储容量被限制为小于任何数据库侧高速缓存的存储容量。这防止存储侧易失性存储器表现出与任何数据库侧高速缓存的包含性关系。为了说明该问题,参考下图。
数据库侧高速缓存
A B C D E
存储侧高速缓存
A B C
值得注意的是,存储侧高速缓存没有足够的空间来存储数据块D-E。以这种方式实现的存储侧高速缓存将用处不大(如果有的话),因为数据库侧的高速缓存未命中必然意味着存储侧的高速缓存未命中。
因此,需要一种稳健的方法,该方法用于即使在存储侧易失性存储器高速缓存具有比任何数据库侧高速缓存都小的存储容量时,也使用存储侧易失性存储器高速缓存来启用I/O操作的较快执行。
本文公开的实施例涉及数据库侧高速缓存的存储侧扩展。像数据库侧高速缓存一样,存储侧扩展被实现为表现出低时延和高每秒I/O操作(IOPS)的易失性存储器。虽然存储侧易失性存储器的操作很像任何给定数据库侧高速缓存的尾部扩展,但是就存储器层次结构(hierarchy)而言,存储侧易失性存储器还可以被认为位于数据库侧高速缓存之下但在存储侧持久性高速缓存和存储侧持久性存储装置之上。
使用存储侧易失性存储器作为数据库侧高速缓存的尾部扩展避免了其中数据库侧的高速缓存未命中必然意味着存储侧的高速缓存未命中的情况。即使存储侧易失性存储器具有小于任何数据库侧高速缓存的存储容量,这也是真的,因为存储侧易失性存储器不应当具有存储在任何数据库侧高速缓存中的数据块的任何副本。换言之,存储侧易失性存储器对任何数据库侧高速缓存是“排他”的。
如以下将更详细描述的,“排他”高速缓存表现出或者/或关系,在该关系中任何给定的数据块都可以存储在或者高速缓存A或者高速缓存B中,但不能同时存储在高速缓存A和高速缓存B两者中。一般而言,至少使用若干个措施来实现排他性。当存储侧满足来自数据库侧的读取请求时,所请求的数据块被存储在数据库侧高速缓存中。但是,如果从存储侧易失性高速缓存中检索到了所请求的数据块,那么还会从存储侧易失性高速缓存中驱逐所请求的数据块。相反,当从数据库侧高速缓存中驱逐干净数据块时,该数据块将以响应的方式存储在存储侧易失性高速缓存中。
因为相同的数据块未同时存储在数据库侧和存储侧易失性高速缓存两者中,所以易失性高速缓存可以共同存储更多的数据块。因此,通过存储侧的高速缓存命中可以满足对导致数据库侧的高速缓存未命中的数据块的请求。在一些实施例中,驱逐数据库侧易失性高速缓存的尾端中的“冷(cold)”数据块,然后将其存储在存储侧易失性高速缓存中,从而使存储侧易失性高速缓存操作得很像具有一个或多个数据库侧高速缓存作为其“热(hot)”端的最近最少使用(LRU)和/或最不经常使用(LFU)高速缓存的“冷”端。
易失性高速缓存扩展
易失性高速缓存扩展技术与数据库侧高速缓存的存储侧扩展相关。像数据库侧高速缓存一样,存储侧扩展被实现为表现出低时延和高每秒I/O操作(IOPS)的易失性存储器。虽然存储侧易失性存储器操作得很像任何给定的数据库侧高速缓存的尾部扩展,但是就存储器层次结构而言,存储侧易失性存储器还可以被认为位于数据库侧高速缓存之下但在存储侧持久性高速缓存和存储侧持久性存储装置之上。
使用存储侧易失性存储器作为数据库侧高速缓存的尾部扩展避免其中数据库侧的高速缓存未命中必然意味着存储侧的高速缓存未命中的情况。即使存储侧易失性存储器具有小于任何数据库侧高速缓存的存储容量,这也是真的,因为存储侧易失性存储器不应当具有存储在任何数据库侧高速缓存中的数据块的任何副本。换言之,存储侧易失性存储器对任何数据库侧高速缓存是“排他”的。
“排他”高速缓存表现出或者/或关系,在该关系中任何给定的数据块都可以存储在或者高速缓存A或者高速缓存B中,但不能同时存储在高速缓存A和高速缓存B中。一般而言,至少使用若干种措施来实现排他性。当存储侧满足来自数据库侧的读取请求时,所请求的数据块被存储在数据库侧高速缓存中。但是,如果从存储侧易失性高速缓存中检索到所请求的数据块,那么还会从存储侧易失性高速缓存中驱逐所请求的数据块。相反,当从数据库侧高速缓存中驱逐了干净数据块时,该数据块将以响应的方式存储在存储侧易失性高速缓存中。
因为相同的数据块未同时存储在数据库侧和存储侧易失性高速缓存中,所以易失性高速缓存可以共同存储更多的数据块。因此,通过存储侧的高速缓存命中可以满足对导致数据库侧的高速缓存未命中的数据块的请求。在一些实施例中,驱逐数据库侧易失性高速缓存的尾端中的“冷”数据块,然后将其存储在存储侧易失性高速缓存中,从而使存储侧易失性高速缓存操作得很像具有一个或多个数据库侧高速缓存作为其“热”端的最近最少使用(LRU)和/或最不经常使用(LFU)高速缓存的“冷”端。
为了实现I/O操作的更快执行,数据库侧高速缓存扩增了存储侧易失性存储器。在实施例中,易失性高速缓存116/126被实现为存储服务器104/124的易失性存储器。如上面所提到的,相对于非易失性存储器,易失性存储器提供较低的时延和较高的IOPS。因此,当在数据库侧发生高速缓存未命中时,与分别从持久性高速缓存110/120或持久性存储装置112/122检索期望的数据相比,从易失性高速缓存116/126检索期望的数据将更高效。
在一个实施例中,主易失性高速缓存116可以被认为是数据库侧高速缓存106-108的扩展,其中主易失性高速缓存116是在头端具有数据库侧高速缓存106-108的单个逻辑高速缓存的尾端。在聚类的数据库环境中,数据库侧高速缓存106-108共同形成逻辑高速缓存的头端。但是,为了清楚和易于说明,参考包括单个数据库侧高速缓存106、108的逻辑高速缓存。
类似地,当辅助存储服务器124正在服务于来自数据库服务器100/102的存储请求时,可以将辅助易失性高速缓存视为数据库服务器106-108的逻辑高速缓存的扩展。
因为相同的数据块未同时存储在数据库侧和存储侧易失性高速缓存中,所以易失性高速缓存可以共同存储更多的数据块。因此,通过存储侧的高速缓存命中可以满足对导致数据库侧的高速缓存未命中的数据块的请求。
简介:存储器层次结构
在一些实施例中,驱逐了数据库侧易失性高速缓存的尾端中的“冷”数据块,然后将其存储在存储侧持久性高速缓存中,或者可替代地或附加地存储在易失性高速缓存中,从而使存储侧高速缓存操作得很像具有一个或多个数据库侧高速缓存作为其“热”端的最近最少使用(LRU)和/或最不经常使用(LFU)高速缓存的“冷”端。
图2是描绘实施例中的存储服务器的存储器层次结构的框图。存储器层次结构200包括逻辑高速缓存,该逻辑高速缓存在其“热”或头端包括数据库侧高速缓存106,并且在一些实施例中,在其“冷”或尾端包括易失性高速缓存116/126。例如,逻辑高速缓存可以是LRU和/或LFU高速缓存。因此,逻辑高速缓存的最近最多和/或最经常访问的数据块被存储在数据库侧,而逻辑高速缓存的最近最少和/或最不经常访问的数据块被存储在存储侧。但是,数据库侧高速缓存106和/或易失性高速缓存116/126作为同一高速缓存的部分共同操作。它们表现出“排他”的关系,因为不需要在同一高速缓存内存储数据块的副本。
在一些实施例中,当数据库侧高速缓存106的最冷数据块被驱逐以释放存储器用于最近访问的数据块时,被驱逐的数据块被移动到存储侧的易失性高速缓存116/126。数据库服务器100、102可以基于访问计数、访问频率和/或访问时间来跟踪“热度”或“冷度”。当在数据库侧高速缓存106处发生高速缓存未命中时,将从存储侧易失性高速缓存116/126读取的数据块移回到数据库侧高速缓存106。从某种意义上说,存储侧易失性高速缓存116/126的最热数据块被返回到数据库侧。但是,不需要在易失性高速缓存116/126中跟踪“热度”或“冷度”。例如,易失性高速缓存116或126可以被实现得很像先进先出(FIFO)队列。
在图2的示例中,存储器层次结构200还包括持久性高速缓存110或120和持久性存储装置112或122。值得注意的是,持久性高速缓存110或120被描绘为具有比数据库侧高速缓存106和易失性高速缓存116或126单独或组合而言更大的存储容量。进而,持久性存储装置112或122被描绘为具有比持久性高速缓存110或120更大的存储容量。
如上面所提到的,持久性高速缓存110或120“包括”数据库侧高速缓存106。因此,在存储服务器104包括易失性高速缓存106的实施例中,持久性高速缓存110或120还“包括”易失性高速缓存116或126。为了维持持久性高速缓存110或120与包括数据库侧高速缓存106和/或易失性高速缓存116或126的逻辑高速缓存之间的“包含性”关系,易失性高速缓存116或126可以被实现为相对于持久性高速缓存110或120的“写通(write-though)”高速缓存。换言之,在确认写入完成之前,将写入存储服务器104的数据块写入持久性高速缓存110或120,并且在一些实施例中,将其写入易失性高速缓存116或126。因而,持久性高速缓存110或120可以用作逻辑高速缓存的数据的备份源。
在一些实施例中,基于将持久性高速缓存110或120实现为相对于持久性存储装置112或122的“回写”高速缓存来高效地执行写入。因此,当将数据块写入持久性高速缓存110或120时,向写入的请求者确认写入的完成,而无需等待将数据块也写入持久性存储装置112或122。当从持久性高速缓存110或120驱逐数据块时,该数据块随后被写入持久性存储装置112或122。
在实施例中,辅助存储服务器124包括相同的层次结构或逻辑高速缓存:辅助易失性高速缓存126、辅助持久性高速缓存120和辅助持久性存储装置122。在中断事件之后,当辅助存储服务器124成为数据库服务器100的存储服务器时,使用与上述用于存储服务器104相同的技术来更新整个存储器层次结构中的数据块。
本文描述了在不同的存储服务器是数据库服务器的主存储服务器的同时用于更新辅助存储服务器的快速访问存储器的其它技术。例如,使用本文描述的技术,在主存储服务器104是用于数据库存储请求的主存储服务器的同时,辅助存储服务器124在其持久性存储装置120中维护相对热的数据块。
驱逐通知
如上面所提到的,从逻辑高速缓存中周期性地驱逐干净数据块。这种逻辑高速缓存可以是一个或多个数据库侧高速缓存106-108,并且在一些实施例中可以是易失性高速缓存116/126。如将在下面更详细地描述的,可以分批驱逐数据块。但是,为了清楚和易于说明,图3是描绘在实施例中就单个数据块而言的驱逐处理的流程图。
在方框304处,基于高速缓存的(一个或多个)策略从逻辑高速缓存中驱逐数据块。在方框308处,托管逻辑高速缓存的服务器生成将被发送到(一个或多个)存储服务器的驱逐。有利地,与数据块的传输相比,驱逐通知的传输所涉及的计算资源更少,因为驱逐通知包括的数据量小于数据块。通常,驱逐通知包括唯一地识别数据块的元数据。例如,驱逐通知可以包括盘号、偏移量和/或数据块的任何其它地址。驱逐通知包含任何存储服务器识别其存储器(例如,持久性存储装置、持久性高速缓存和/或易失性高速缓存)中的数据块所需的信息。
在方框312处,为了将(一个或多个)辅助存储服务器的(一个或多个)高速缓存保持为“热”并在发生故障转移到辅助存储服务器时具有更好的命中率,服务器识别作为逻辑高速缓存的辅助存储服务器的一个或多个辅助存储服务器。在方框316处,服务器向(一个或多个)辅助存储服务器发送驱逐通知。
例如,由于需要加载新请求的数据块,数据库服务器100可以从数据库服务器高速缓存106驱逐具有最低命中率的数据块。在驱逐后,数据库服务器100生成驱逐通知并确定要发送驱逐通知的目标存储服务器。数据库服务器100可以向所有辅助存储服务器发送驱逐,或者可以向被表示为主存储服务器的待机备用的辅助存储服务器发送驱逐。因此,除了向主存储服务器104发送驱逐通知之外(或作为其替代),数据库服务器100还向辅助存储服务器124发送驱逐通知。
继续图3,在方框320处,逻辑高速缓存的辅助存储服务器(诸如辅助存储服务器124)接收驱逐通知。
逻辑高速缓存扩展
作为辅助存储服务器接收驱逐通知的替代或附加,逻辑高速缓存的主存储服务器还可以接收驱逐通知的副本。图4是描绘用于由主存储服务器104响应驱逐通知的处理的流程图。在方框400处,主存储服务器104从数据库服务器100、102接收驱逐通知。驱逐通知指示该数据块已经从一个或多个数据库侧高速缓存106/108中被驱逐。
如上面所提到的,就像辅助存储服务器124一样,主存储服务器104包括存储器层次结构200,该存储器层次结构200包括主易失性高速缓存116和主持久性高速缓存110。在方框402处,存储服务器104在接收到驱逐通知后从主持久性高速缓存110检索数据块。例如,存储服务器104可以在主持久性高速缓存110中扫描与驱逐通知中包括的盘地址对应的存储器地址。此后,存储服务器104可以在该存储器地址处检索存储在主持久性高速缓存110中的数据块。值得注意的是,数据块应当位于主持久性高速缓存110中,因为主持久性高速缓存110“包括”从其驱逐了数据块的数据库侧高速缓存106、108。
在方框404处,主存储服务器104将数据块存储在主易失性高速缓存116中。此时,数据块既存储在主易失性高速缓存116中,又存储在主持久性高速缓存110中,但不存储在数据库侧高速缓存106-108中。因此,主持久性高速缓存110保持“包括”主易失性高速缓存116和数据库侧高速缓存106-108。此外,主易失性高速缓存116保持对数据库侧高速缓存106-108的“排他”。
当辅助存储服务器124在故障转移之后承担主存储服务器的角色并服务于数据库服务器100/102的存储请求时,针对图4描述的技术也适用于辅助存储服务器124及其存储器层次结构。
批驱逐
在实施例中,从逻辑高速缓存中按批驱逐数据块。对于从数据库服务器高速缓存中驱逐的数据块,批驱逐(batch eviction)确保除非已从所有数据库侧高速缓存106-108驱逐了数据块,否则该数据块不会存储在主易失性高速缓存116中。因此,直到确定数据块不再存储在数据库侧高速缓存106-108中的任何一个中,关于被驱逐的数据块的信息才被批处理(batchup)。仅在做出确定之后,才由主存储服务器104发送和接收引用被驱逐的数据块的驱逐通知。例如,数据库服务器100可以基于经由互连与数据库服务器102的通信来做出这个确定。
在实施例中,不是基于来自(一个或多个)数据库服务器的驱逐来预热辅助高速缓存,而是驱逐通知可以由来自主存储服务器的易失性高速缓存的驱逐造成。在其中逻辑高速缓存被扩展到主存储服务器104的主易失性高速缓存116中的这种实施例中,当从主易失性高速缓存116驱逐数据块时,可以由主存储服务器104生成驱逐通知。并非来自主易失性高速缓存116的所有数据块驱逐都可以包括在驱逐通知中。例如,基于数据块到数据库高速缓存的传送的驱逐不能包括在驱逐通知中。可以通过基于数据块的命中率而不是由于数据库服务器高速缓存未命中而引起的读取请求从易失性高速缓存116中驱逐(一个或多个)数据块来触发驱逐通知。
继续图3,在方框320处,无论驱逐通知的源服务器如何,当数据块已从逻辑高速缓存中被驱逐时,辅助存储服务器124接收驱逐通知。
预热辅助包含性高速缓存
在方框324处,基于接收到的驱逐通知,辅助存储服务器124确定是否将由驱逐通知所引用的一个或多个块加载到辅助存储服务器124的包含性高速缓存中。辅助存储服务器124的包含性高速缓存的非限制性示例是辅助持久性高速缓存120。对于第二高速缓存中缺失的驱逐通知的数据块,在方框328处,辅助存储服务器124从辅助持久性存储装置122访问缺失的数据块。辅助存储服务器124将被访问的数据块加载到辅助持久性高速缓存120中。
可替代地,该处理可以跳过方框324处的确定,并且在方框328处,辅助存储服务器124可以从辅助持久性存储装置122加载驱逐通知中所引用的所有数据块。加载操作本身可以跳过辅助持久性高速缓存120中已加载的块。
在方框328处,辅助存储服务器124可以通过使用驱逐通知中的信息访问辅助持久性存储装置122中驱逐通知中的数据块来将数据块加载到辅助持久性高速缓存120中。此类信息的非限制性示例包括驱逐通知中包括的盘号、偏移量和/或数据块的任何其它地址。
基于(一个或多个)数据库服务器的数据块访问请求,将缺失的块加载到辅助存储服务器124的持久性高速缓存120中以预热包含性高速缓存。因而,辅助存储装置的包含性高速缓存以与逻辑高速缓存的锁步长使用经常访问的数据块进行更新。如果发生影响主存储服务器104服务于数据库服务器100/102的存储请求的中断事件,那么这些存储请求将被路由到辅助存储服务器124。利用已经预热的辅助高速缓存120,即使在中断事件之后,也将以低时延为被路由的存储请求提供服务。
命中率统计信息
继续图3,如果确定数据块已经存在于辅助包含性高速缓存(诸如辅助持久性高速缓存120)中,那么在方框332处命中率统计信息被更新以指示该数据块的较高命中率。可以针对包括该数据块的存储器的任何单元来更新统计信息。存储器的单元的非限制性示例是数据块本身、数据块的范围或包括该数据块的存储器地址的范围;或者存储数据块的存储器模块或持久性高速缓存120。
在实施例中,辅助存储服务器124使用命中率统计信息来确定辅助持久性高速缓存120的“热”和“冷”区域。因而,当辅助持久性高速缓存120对于加载(一个或多个)新的数据块来说已满时,辅助存储服务器124可以根据本文讨论的技术从辅助持久性高速缓存120的冷端驱逐数据块。
中断事件之后的读取请求
当发生影响主存储服务器对存储请求的服务的中断事件时;请求被路由到主存储服务器的辅助存储服务器。例如,当主存储服务器104具有严重的存储器故障时,对数据库服务器100/102的存储请求被路由到辅助存储服务器124。因为辅助存储服务器124具有相同的存储器体系架构200,所以在实施例中,使用与对主存储服务器104相同的技术来处理存储请求。
图5-图6共同描绘了在一个或多个实施例中在涉及存储器层次结构200的主存储服务器104和辅助存储服务器124上的读取处理。在一个或多个实施例中,不管请求是由主存储服务器104还是辅助存储服务器124接收的,都以相同的方式响应数据库侧的高速缓存未命中在存储侧执行读取处理。
在方框500处,存储服务器104或124从数据库服务器100、102接收请求。该请求是针对数据库侧高速缓存106、108中不存在的数据块。在实现高速缓存融合的实施例中,该请求可以是针对所有数据库侧高速缓存106-108中都不存在的数据块。
在方框502处,在接收到请求后,存储服务器104或124确定易失性高速缓存116或126中是否也不存在该数据块。如果存储服务器104或124确定该数据块被存储在易失性高速缓存中,那么方框502前进到方框504。否则,方框502前进到方框510。
在方框504处,存储服务器104或124从易失性高速缓存116或126中检索数据块。方框504前进到方框506-508,其可以以任何次序执行,包括并发执行。
在方框506处,存储服务器104或124将数据块发送到发起请求的数据库服务器100、102。这使得数据块被存储在数据库服务器100、102的高速缓存106、108中。从某种意义上说,数据块已返回到包括数据库侧高速缓存106-108和存储侧易失性高速缓存116或126的逻辑高速缓存的“热”端。
在方框508处,存储服务器104或124从易失性高速缓存116或126中驱逐数据块。这样做维持了易失性高速缓存116或126与数据库侧高速缓存106-108之间的“排他”关系。
方框510将图5连接到图6。方框510前进到图6的方框600。图6描绘了在存储服务器104或124确定易失性高速缓存116或126中不存在数据块之后的读取处理。
在方框600处,存储服务器104或124确定该数据块是否存储在持久性高速缓存110或120中。如果存储服务器104或124确定数据块被存储在持久性高速缓存110或120中,那么方框600前进到方框602。否则,方框600前进到方框604。
在方框602处,存储服务器104或124从持久性高速缓存110或120中检索数据块。如上面所提到的,持久性高速缓存110或120中的数据集“包括”逻辑高速缓存中的数据集,该逻辑高速缓存包括易失性高速缓存116或126和数据库侧高速缓存106-108。因此,持久性高速缓存110或120可以存储逻辑高速缓存中不存在的数据。
在方框604处,存储服务器104或124将数据块发送到发起请求的数据库服务器100、102。这使得数据块被存储在数据库服务器100、102的高速缓存106、108中。
在方框606处,在确定持久性高速缓存110或120中不存在数据块之后,存储服务器104或124从持久性存储装置112中检索数据块。方框606前进到方框604和608,其可以以任何次序执行,包括并发执行。
在方框608处,存储服务器104或124将数据块存储在持久性高速缓存110或120中。这确保了持久性高速缓存110或120保持对数据库侧高速缓存106-108“包含性”。
在实施例中,因为为了更新任何数据块,所以使用用于读取处理的上述步骤的一个或多个步骤来执行用于写入数据块的处理;数据库服务器需要首先读取数据块。
中断事件之后的主存储装置恢复
在中断事件之后,主存储服务器可以恢复并且可以被激活以服务于来自数据库服务器的存储请求。但是,如上面所讨论的,在恢复之后,主存储服务器的一个或多个高速缓存被清除干净或包含过时的数据。因此,如果主存储服务器开始为存储请求提供服务,那么将有许多高速缓存未命中,这将造成存储请求的高时延。主存储服务器将不得不从访问较慢的持久性存储装置中检索所请求的数据块。
例如,即使中断事件是主持久性高速缓存110的持久性高速缓存模块之一的部分故障,对受影响模块的存储请求也被重定向到辅助存储服务器124。当更换有缺陷的模块时,新模块中没有数据。因此,如果将新请求定向到新模块,那么将有许多高速缓存未命中。
图7是描绘用于持久性高速缓存110和持久性存储装置112的物理体系架构的示例的框图。在图7中,持久性高速缓存110包括闪存模块702和闪存模块704。这种闪存模块中的每一个为不同的盘集合提供服务,因此为不同的数据块集合提供服务。闪存模块702是持久性存储装置112的盘720和盘722的持久性高速缓存,并且闪存模块704是盘724和盘726的持久性高速缓存。在这种示例中,闪存模块702可能发生故障并被新闪存模块取代。由此,主存储服务器104可以在线并且准备好服务于所有存储请求。但是,因为闪存模块702最初是空的,所以要从盘720和盘722而不是从快速访问闪存模块702检索对具有盘720和盘722的存储器地址的数据块的任何存储请求。这种存储请求将经历高时延并造成客户端应用的执行问题。同时,对具有盘724的存储器地址的数据块的存储请求以低时延来被服务,因为这些请求中的许多请求是闪存模块704中存储的数据块的高速缓存命中。
为了减轻空高速缓存对于新恢复的主存储服务器的不利影响,将对具有受影响的地址范围的数据块的存储请求继续路由到故障转移之后已经接管的辅助存储服务器。在此期间,主存储服务器的受影响的高速缓存类似于辅助存储服务器那样被预热。主存储服务器接收驱逐通知,并使用本文描述的技术利用来自持久性存储装置的缺失的数据块更新主持久性高速缓存。因此,存储服务器的角色相反,使得辅助存储服务器继续作为主存储服务器执行,而主存储服务器成为辅助存储服务器并接收驱逐通知以预热包含性高速缓存。
图8是描绘实施例中由中断事件造成的主存储服务器和辅助存储服务器的状态过渡的状态图。在初始状态800,主存储服务器104的健康状态指示在线和正在主动服务来自数据库服务器100/102的存储请求。辅助存储服务器124是处于待机模式的辅助存储服务器,并且通过使用本文描述的技术处理驱逐通知来维护热高速缓存。
在中断事件之后,主存储服务器104的状态在状态810处降级以指示离线健康状态。在状态810处,辅助存储服务器124在线并且接管服务于不能再由主存储服务器104服务的存储请求。该过渡不会不利地影响服务于存储请求的速度,因为辅助存储服务器124已经预热了包含性高速缓存。
在主存储服务器104从中断恢复并且可以潜在地服务于存储请求之后,健康状态在状态820处被升级以指示降级状态而不是在线状态。但是,为了避免高速缓存未命中,辅助存储服务器124在状态820处继续服务于存储请求。同时,主存储服务器104使用本文描述的技术来接收驱逐通知以预热包含性高速缓存。
高速缓存预热准则
在实施例中,对“预热准则”的满足确定恢复的主存储服务器是否可以被重新配置为作为(一个或多个)数据库服务器的主存储服务器来操作。术语“预热准则”在本文中是指一种准则,其定义何时初始为空的包含性高速缓存被充分地预热,使得该高速缓存的命中率统计信息类似于从未清空的高速缓存。
在以上针对图7描述的示例中,预热准则可以是新闪存模块702的命中率在连续运行的闪存模块704的命中率的阈值之内。可替代地,如果所有主存储服务器104的包含性高速缓存都已被清除或过时,那么在恢复后,将新预热的主持久性高速缓存110的命中率与辅助持久性高速缓存120的命中率进行比较。
当针对恢复的主存储服务器104满足预热准则时,状态过渡到状态800。在状态800处,主存储服务器104被升级以指示在线健康状态。数据库服务器100/102将来自辅助存储服务器124的存储请求重定向到预热的主存储服务器104。在状态800处,辅助存储服务器124返回到辅助角色并接收驱逐通知以使持久性高速缓存120保持预热。
硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括被持久地编程为执行这些技术的数字电子设备(诸如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
例如,图9是图示可以在其上实现本公开实施例的计算机系统900的框图。计算机系统900包括总线902或用于传送信息的其它通信机制,以及与总线902耦合以处理信息的硬件处理器904。硬件处理器904可以是例如通用微处理器。
计算机系统900还包括耦合到总线902用于存储信息和将由处理器904执行的指令的主存储器906,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器906还可以用于存储在执行由处理器904执行的指令期间的临时变量或其它中间信息。当这些指令存储在处理器904可访问的非暂态存储介质中时,这些指令使计算机系统900成为被定制以执行指令中指定的操作的专用机器。
计算机系统900还包括耦合到总线902的只读存储器(ROM)908或其它静态存储设备,用于存储静态信息和处理器904的指令。提供存储设备910(诸如磁盘、光盘或固态驱动器)并耦合到总线902,用于存储信息和指令。
计算机系统900可以经由总线902耦合到显示器912(诸如阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备914耦合到总线902,用于将信息和命令选择传送到处理器904。另一种类型的用户输入设备是光标控件916(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器904并用于控制显示器912上的光标移动。这种输入设备通常具有两个轴(第一轴(例如,x)和第二轴(例如,y))上的两个自由度,这允许设备指定平面中的位置。
计算机系统900可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统900成为专用机器或将计算机系统900编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器904执行包含在主存储器906中的一个或多个指令的一个或多个序列,由计算机系统900执行所述的技术。这些指令可以从另一个存储介质(诸如存储设备910)读取到主存储器906中。包含在主存储器906中的指令序列的执行使得处理器904执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合使用。
如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态驱动器,诸如存储设备910。易失性介质包括动态存储器,诸如主存储器906。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔模式的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线902的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
各种形式的介质可以涉及将一个或多个指令的一个或多个序列传送到处理器904以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统900本地的调制解调器可以在电话线上接收数据并使用红外发射器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线902上。总线902将数据传送到主存储器906,处理器904从主存储器906检索并执行指令。由主存储器906接收的指令可以可选地在由处理器904执行之前或之后存储在存储设备910上。
计算机系统900还包括耦合到总线902的通信接口918。通信接口918提供耦合到网络链路920的双向数据通信,其中网络链路920连接到本地网络922。例如,通信接口918可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口918可以是提供与兼容局域网(LAN)的数据通信连接的LAN卡。还可以实现无线链路。在任何此类实现中,通信接口918都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路920通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路920可以通过本地网络922提供到主计算机924或到由互联网服务提供商(ISP)926操作的数据设备的连接。ISP 926进而通过全球分组数据通信网络(现在通常称为“互联网”928)提供数据通信服务。本地网络922和互联网928都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路920上并通过通信接口918的信号(其将数字数据携带到计算机系统900和携带来自计算机系统900的数字数据)是传输介质的示例形式。
计算机系统900可以通过(一个或多个)网络、网络链路920和通信接口918发送消息和接收数据,包括程序代码。在互联网示例中,服务器930可以通过互联网928、ISP 926、本地网络922和通信接口918传输对于应用程序的所请求代码。
接收到的代码可以在被接收到时由处理器904执行,和/或存储在存储设备910或其它非易失性存储器中以供稍后执行。
软件概述
图10是可以用于控制计算机系统900的操作的软件系统1000的框图。软件系统1000及其组件,包括它们的连接、关系和功能,仅仅是示例性的,并且不意味着限制(一个或多个)示例实施例的实现。适于实现(一个或多个)示例实施例的其它软件系统可以具有不同的组件,包括具有不同的连接、关系和功能的组件。
提供软件系统1000用于指导计算机系统900的操作。可以存储在系统存储器(RAM)906和固定存储装置(例如,硬盘或闪存)910上的软件系统1000包括内核或操作系统(OS)1010。
OS 1010管理计算机操作的低级方面,包括管理处理的执行、存储器分配、文件输入和输出(I/O)以及设备I/O。表示为1002A、1002B、1002C...1002N的一个或多个应用程序可以被“加载”(例如,从固定存储装置910传送到存储器906中)以供系统1000执行。意图在系统900上使用的应用或其它软件也可以被存储为可下载的计算机可执行指令集,例如,用于从互联网位置(例如,Web服务器、app商店或另一个在线服务)下载和安装。
软件系统1000包括图形用户界面(GUI)1015,用于以图形(例如,“点击”或“触摸手势”)方式接收用户命令和数据。进而,这些输入可以由系统1000根据来自操作系统1010和/或(一个或多个)应用1002的指令来操作。GUI 1015还用于显示来自OS 1010和(一个或多个)应用1002的操作结果,用户可以提供附加的输入或终止会话(例如,注销)。
OS 1010可以直接在系统1000的裸硬件1020(例如,(一个或多个)处理器904)上执行。可替代地,管理程序或虚拟机监视器(VMM)1030可以插入在裸硬件1020和OS 1010之间。在这个配置中,VMM 1030充当系统900的OS 1010与裸硬件1020之间的软件“缓冲”或虚拟化层。
VMM 1030实例化并运行一个或多个虚拟机实例(“客人机”)。每个客人机包括“客人”操作系统(诸如OS 1010),以及被设计为在客人操作系统上执行的一个或多个应用(诸如(一个或多个)应用1002)。VMM 1030向客人操作系统呈现虚拟操作平台并管理客人操作系统的执行。
在一些情况下,VMM 1030可以允许客人操作系统如同其直接在系统900的裸硬件1020上运行一样运行。在这些实例中,被配置为直接在裸硬件1020上执行的客人操作系统的相同版本也可以在VMM 1030上执行而无需修改或重新配置。换言之,VMM 1030可以在一些情况下向客人操作系统提供完全硬件和CPU虚拟化。
在其它情况下,客人操作系统可以被专门设计或配置为在VMM 1030上执行以提高效率。在这些实例中,客人操作系统“意识到”它在虚拟机监视器上执行。换言之,VMM 1030可以在某些情况下向客人操作系统提供半虚拟化。
为了说明可以用于实现(一个或多个)示例实施例的基本底层计算机组件,给出了上述基本计算机硬件和软件。但是,(一个或多个)示例实施例不必限于任何特定的计算环境或计算设备配置。代替地,根据本公开,(一个或多个)示例实施例可以在本领域技术人员将理解为能够支持本文呈现的(一个或多个)示例实施例的特征和功能的任何类型的系统体系架构或处理环境中实现。
云计算
本文一般地使用术语“云计算”来描述计算模型,该计算模型使得能够按需访问计算资源的共享池,诸如计算机网络、服务器、软件应用和服务,并且允许以最少的管理工作或服务提供商交互来快速提供和释放资源。
云计算环境(有时称为云环境或云)可以以各种不同方式实现,以最好地适应不同需要。例如,在公共云环境中,底层计算基础设施由组织拥有,该组织使其云服务可供其它组织或公众使用。相反,私有云环境一般仅供单个组织使用或在单个组织内使用。社区云旨在由社区内的若干组织共享;而混合云包括通过数据和应用可移植性绑定在一起的两种或更多种类型的云(例如,私有、社区或公共)。
一般而言,云计算模型使得先前可能由组织自己的信息技术部门提供的那些职责中的一些能够代替地作为云环境内的服务层来输送,以供消费者使用(根据云的公共/私人性质,在组织内部或外部)。取决于特定实现,由每个云服务层提供或在每个云服务层内提供的组件或特征的精确定义可以有所不同,但常见示例包括:软件即服务(SaaS),其中消费者使用在云基础设施上运行的软件应用,同时SaaS提供者管理或控制底层云基础设施和应用。平台即服务(PaaS),其中消费者可以使用由PaaS提供者支持的软件编程语言和开发工具,以开发、部署和以其它方式控制它们自己的应用,同时PaaS提供者管理或控制云环境的其它方面(即,运行时执行环境下的一切)。基础设施即服务(IaaS),其中消费者可以部署和运行任意软件应用,和/或提供进程、存储装置、网络和其它基础计算资源,同时IaaS提供者管理或控制底层物理云基础设施(即,操作系统层下面的一切)。数据库即服务(DBaaS),其中消费者使用在云基础设施上运行的数据库服务器或数据库管理系统,同时DbaaS提供者管理或控制底层云基础设施、应用和服务器,包括一个或多个数据库服务器。
扩展和替代
在前面的说明书中,已经参考众多具体细节描述了本公开的实施例,这些细节可以从实现到实现有所变化。因而,说明书和附图应被视为说明性而非限制性的。本公开的范围的唯一和排他性指示,以及申请人意图作为本公开的范围的内容,是以发布这种权利要求书的具体形式从本申请发布的权利要求书集合的字面和等同范围,包括任何后续更正。

Claims (17)

1.一种计算机实现的方法:
在数据库服务器的辅助存储服务器处接收驱逐通知,所述驱逐通知指示已经从特定高速缓存中驱逐了数据块的第一集合,所述辅助存储服务器持久地存储数据的副本,所述数据的副本持久地存储在主存储服务器上并包括所述数据块的第一集合的第一副本;
其中所述辅助存储服务器包含存储器层次结构,所述存储器层次结构包括辅助高速缓存和存储所述数据块的第一集合的第二副本的辅助持久性存储装置;
在接收到所述驱逐通知后:
从所述辅助存储服务器的辅助持久性存储装置中检索所述数据块的第一集合的第二副本,并且
将所述数据块的第一集合的第二副本加载到所述辅助高速缓存中;
在中断事件之后,基于所述数据库服务器处对至少包括所述数据块的第一集合的子集的数据的请求,在所述辅助存储服务器处接收对至少所述数据块的第一集合的子集的第一请求;
在接收到对至少所述数据块的第一集合的子集的第一请求后:
从存储在所述辅助存储服务器的辅助高速缓存上的所述数据块的第一集合的第二副本中检索至少所述数据块的第一集合的子集,而无需从存储在所述辅助存储服务器的辅助持久性存储装置上的所述数据块的第一集合的第二副本中检索至少所述数据块的第一集合的子集的任何数据块,并且
将至少所述数据块的第一集合的子集发送到所述数据库服务器。
2.根据权利要求1所述的方法,其中所述辅助高速缓存是持久性高速缓存存储器。
3.根据权利要求1所述的方法,其中所述主存储服务器包含包括易失性高速缓存的存储器层次结构。
4.根据权利要求1所述的方法,其中已经从其中驱逐了所述数据块的第一集合的所述特定高速缓存是所述主存储服务器的易失性高速缓存。
5.根据权利要求1所述的方法,其中已经从其中驱逐了所述数据块的第一集合的所述特定高速缓存是所述数据库服务器的易失性高速缓存。
6.根据权利要求1所述的方法,还包含:
在所述数据库服务器的辅助存储服务器处接收第二驱逐通知,所述第二驱逐通知指示已经从所述特定高速缓存中驱逐了数据块的第二集合;
确定所述数据块的第二集合包括存储在所述辅助高速缓存中的所述数据块的第一集合中的一个或多个数据块;
更新所述一个或多个数据块的元数据以指示已经访问了所述一个或多个数据块,从而递增所述一个或多个数据块的命中率统计信息。
7.根据权利要求6所述的方法,还包含:
确定所述辅助高速缓存大于数据块的阈值容量;
至少基于所述一个或多个数据块的命中率统计信息,从所述辅助高速缓存中驱逐至少一个数据块。
8.根据权利要求1所述的方法,还包含向所述主存储服务器发送指示已经从所述数据库服务器驱逐了所述数据块的第一集合的驱逐通知。
9.根据权利要求1所述的方法,其中所述中断事件是基于所述主存储服务器上的存储器故障而触发的,并且所述方法还包含:
降级所述主存储服务器的健康状态,以指示所述主存储服务器离线。
10.根据权利要求1所述的方法,其中所述辅助高速缓存是辅助持久性高速缓存,并且第二存储服务器的存储器层次结构还包含辅助易失性高速缓存,并且所述方法还包含:
在所述中断事件之后:
在所述数据库服务器的辅助存储服务器处接收第二驱逐通知,所述第二驱逐通知指示已经从所述特定高速缓存中驱逐了数据块的第二集合;
在接收到第二驱逐通知后:
从所述辅助存储服务器的辅助持久性高速缓存中检索所述数据块的第二集合,并且
将所述数据块的第二集合存储在第二存储服务器的辅助易失性高速缓存中。
11.根据权利要求1所述的方法,其中所述中断事件是基于所述主存储服务器上的存储器故障而触发的,并且所述方法还包含:
在降级所述主存储服务器的健康状态以指示所述主存储服务器离线之后,检测到所述主存储服务器已经恢复;
更新所述主存储服务器的健康状态以指示降级的健康状态,而不是在线状态;
在升级所述主存储服务器的健康状态以指示降级的健康状态之后:
在所述主存储服务器处接收第二驱逐通知,所述第二驱逐通知指示已经从所述特定高速缓存中驱逐了数据块的第二集合;
在接收到第二驱逐通知后:
从所述主存储服务器的主持久性存储装置中检索所述数据块的第二集合的副本,并且
将所述数据块的第二集合的副本加载到主持久性高速缓存中。
12.根据权利要求1所述的方法,其中所述主存储服务器包括主持久性高速缓存,所述主持久性高速缓存包含第一非易失性存储器模块和第二非易失性存储器模块,并且所述方法还包含:
其中所述中断事件是基于第一非易失性存储器模块的故障而触发的;
在所述中断事件之后,检测到第一非易失性存储器模块被新的第一非易失性存储器模块取代;
基于由所述主存储服务器接收到的驱逐通知来执行将数据块的一个或多个集合加载到所述新的第一非易失性存储器模块的持久性高速缓存中;
比较所述新的第一非易失性存储器模块的持久性高速缓存的命中率与第二非易失性存储器模块的持久性高速缓存的命中率,
基于所述比较,确定所述主存储服务器的健康状态。
13.根据权利要求12所述的方法,还包含:
至少部分地基于所述新的第一非易失性存储器模块的持久性高速缓存的命中率与第二非易失性存储器模块的持久性高速缓存的命中率之间的差小于阈值,使得所述主存储服务器的健康状态指示所述主存储服务器在线。
14.一种计算机实现的方法:
生成驱逐通知,所述驱逐通知指示已经从数据库服务器的特定高速缓存中驱逐了数据块的集合;
对于被指定为所述数据库服务器的主存储服务器的第一存储服务器,确定第二存储服务器是存储所述数据块的集合的第一副本的所述主存储服务器的辅助存储服务器;
其中所述辅助存储服务器包含至少辅助高速缓存和辅助持久性存储装置的存储器层次结构,所述辅助持久性存储装置存储数据的副本,所述数据的副本存储在主存储服务器中并包括所述数据块的集合的第二副本;
向所述辅助存储服务器发送驱逐通知,所述驱逐通知指示已经从所述数据库服务器的特定高速缓存中驱逐了所述数据块的集合;
其中所述辅助存储服务器对所述驱逐通知的接收使得所述辅助存储服务器:
从所述辅助存储服务器的辅助持久性存储装置中检索所述数据块的集合的第二副本,并且
将所述数据块的集合的第二副本加载到所述辅助高速缓存中;在中断事件之后:
接收对来自至少所述数据块的集合的子集中的数据的请求,
在所述辅助存储服务器处使得从存储在所述辅助存储服务器的特定高速缓存上的所述数据块的集合的第二副本中检索至少所述数据块的集合的子集,而无需使得从存储在所述辅助存储服务器的辅助持久性存储装置上的所述数据块的集合的第二副本中检索任何数据块,并且
从所述辅助存储服务器接收至少所述数据块的集合的子集。
15.一种或多种存储指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时使得执行如权利要求1-14中任何一项所述的方法。
16.一种系统,包含:
一个或多个硬件处理器;
一个或多个存储指令的存储介质,所述指令在由所述一个或多个硬件处理器执行时使得执行如权利要求1-14中任何一项所述的方法。
17.一种包括指令的计算机程序产品,所述指令在由一个或多个硬件处理器执行时使得执行如权利要求1-14中任何一项所述的方法。
CN201980074402.7A 2018-10-05 2019-09-30 辅助存储服务器高速缓存 Active CN113015967B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/153,674 2018-10-05
US16/153,674 US10831666B2 (en) 2018-10-05 2018-10-05 Secondary storage server caching
PCT/US2019/053863 WO2020072378A1 (en) 2018-10-05 2019-09-30 Secondary storage server caching

Publications (2)

Publication Number Publication Date
CN113015967A CN113015967A (zh) 2021-06-22
CN113015967B true CN113015967B (zh) 2024-04-26

Family

ID=68242879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980074402.7A Active CN113015967B (zh) 2018-10-05 2019-09-30 辅助存储服务器高速缓存

Country Status (4)

Country Link
US (1) US10831666B2 (zh)
EP (1) EP3861451B1 (zh)
CN (1) CN113015967B (zh)
WO (1) WO2020072378A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703706B2 (en) 2011-02-28 2017-07-11 Oracle International Corporation Universal cache management system
US11327887B2 (en) 2017-09-14 2022-05-10 Oracle International Corporation Server-side extension of client-side caches
US11099952B2 (en) * 2018-11-06 2021-08-24 International Business Machines Corporation Leveraging server side cache in failover scenario
US11522975B2 (en) * 2020-10-09 2022-12-06 Sap Se Double persistence layer using an in-memory map
CN114741367B (zh) * 2022-06-13 2023-02-24 腾讯科技(深圳)有限公司 数据同步方法、装置、电子设备、存储介质和程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035838A (zh) * 2013-03-08 2014-09-10 海坎普系统股份有限公司 硬件支持的存储日志记录
EP2842040A1 (en) * 2012-04-27 2015-03-04 Hewlett-Packard Development Company, L.P. Collaborative caching
CN107148622A (zh) * 2014-09-23 2017-09-08 甲骨文国际公司 智能闪存高速缓存记录器

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897634A (en) 1997-05-09 1999-04-27 International Business Machines Corporation Optimized caching of SQL data in an object server system
US6078994A (en) 1997-05-30 2000-06-20 Oracle Corporation System for maintaining a shared cache in a multi-threaded computer environment
US6542926B2 (en) 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6353833B1 (en) 1998-09-29 2002-03-05 International Business Machines Corporation Caching of distributed dynamic SQL statements in a multiple node RDBMS
US6633891B1 (en) 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
US6434672B1 (en) 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
US6557082B1 (en) 2000-03-30 2003-04-29 International Business Machines Corporation Method and apparatus for ensuring cache coherency for spawned dependent transactions in a multi-system environment with shared data storage devices
US6851024B1 (en) 2000-08-17 2005-02-01 Hewlett-Packard Development Company, L.P. Exclusive caching in computer systems
US7970816B2 (en) 2002-03-01 2011-06-28 NetSuite Inc. Client-side caching of pages with changing content
US7120651B2 (en) 2003-08-01 2006-10-10 Oracle International Corporation Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US7421562B2 (en) 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US7240168B2 (en) 2004-03-10 2007-07-03 Intel Corporation Method and system to order memory operations
JP4631301B2 (ja) 2004-03-31 2011-02-16 株式会社日立製作所 記憶装置のキャッシュ管理方法
US7822727B1 (en) 2004-07-02 2010-10-26 Borland Software Corporation System and methodology for performing read-only transactions in a shared cache
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US7581066B2 (en) 2005-04-29 2009-08-25 Sap Ag Cache isolation model
US7581064B1 (en) 2006-04-24 2009-08-25 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7890463B2 (en) 2006-09-28 2011-02-15 Xeround Systems Ltd. Apparatus and method for a distributed storage global database
US7840752B2 (en) 2006-10-30 2010-11-23 Microsoft Corporation Dynamic database memory management policies
US7917699B2 (en) 2007-12-21 2011-03-29 Mips Technologies, Inc. Apparatus and method for controlling the exclusivity mode of a level-two cache
US8489820B1 (en) 2008-03-18 2013-07-16 Netapp, Inc Speculative copying of data from main buffer cache to solid-state secondary cache of a storage server
US20090276654A1 (en) 2008-05-02 2009-11-05 International Business Machines Corporation Systems and methods for implementing fault tolerant data processing services
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8332593B2 (en) 2008-12-24 2012-12-11 Nuon, Inc. Memory space management and mapping for memory area network
US8769205B2 (en) 2009-01-20 2014-07-01 Oracle International Corporation Methods and systems for implementing transcendent page caching
KR101056460B1 (ko) 2009-06-05 2011-08-11 세종대학교산학협력단 캐쉬 제어기 및 캐쉬 블록 교체 방법
US8326839B2 (en) 2009-11-09 2012-12-04 Oracle International Corporation Efficient file access in a large repository using a two-level cache
US9009101B2 (en) 2010-07-01 2015-04-14 Sybase, Inc. Reducing contention of transaction logging in a database management system
US9703706B2 (en) 2011-02-28 2017-07-11 Oracle International Corporation Universal cache management system
WO2013101050A1 (en) 2011-12-29 2013-07-04 Intel Corporation Multi-level memory with direct access
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US20150212744A1 (en) * 2014-01-26 2015-07-30 Haim Helman Method and system of eviction stage population of a flash memory cache of a multilayer cache system
US10725934B2 (en) * 2015-10-08 2020-07-28 Shanghai Zhaoxin Semiconductor Co., Ltd. Processor with selective data storage (of accelerator) operable as either victim cache data storage or accelerator memory and having victim cache tags in lower level cache wherein evicted cache line is stored in said data storage when said data storage is in a first mode and said cache line is stored in system memory rather then said data store when said data storage is in a second mode
US20170300427A1 (en) * 2016-04-18 2017-10-19 Mediatek Inc. Multi-processor system with cache sharing and associated cache sharing method
JP6708019B2 (ja) * 2016-06-29 2020-06-10 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US10324809B2 (en) * 2016-09-12 2019-06-18 Oracle International Corporation Cache recovery for failed database instances
US20180336143A1 (en) * 2017-05-22 2018-11-22 Microsoft Technology Licensing, Llc Concurrent cache memory access
US20200104259A1 (en) * 2018-09-28 2020-04-02 Intel Corporation System, method, and apparatus for snapshot prefetching to improve performance of snapshot operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2842040A1 (en) * 2012-04-27 2015-03-04 Hewlett-Packard Development Company, L.P. Collaborative caching
CN104035838A (zh) * 2013-03-08 2014-09-10 海坎普系统股份有限公司 硬件支持的存储日志记录
CN107148622A (zh) * 2014-09-23 2017-09-08 甲骨文国际公司 智能闪存高速缓存记录器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
代理Web Cache性能分析;顾丽红, 吴少刚;计算机工程与应用(第13期);全文 *

Also Published As

Publication number Publication date
EP3861451B1 (en) 2022-12-14
US20200110700A1 (en) 2020-04-09
CN113015967A (zh) 2021-06-22
US10831666B2 (en) 2020-11-10
WO2020072378A1 (en) 2020-04-09
EP3861451A1 (en) 2021-08-11

Similar Documents

Publication Publication Date Title
CN113015967B (zh) 辅助存储服务器高速缓存
US11068395B2 (en) Cached volumes at storage gateways
US10042760B2 (en) Scalable cloud storage architecture
US10540279B2 (en) Server-based persistence management in user space
JP7263314B2 (ja) 分散ストアによる高可用性データベース
US8909996B2 (en) Utilizing multiple storage devices to reduce write latency for database logging
US9081691B1 (en) Techniques for caching data using a volatile memory cache and solid state drive
US8832380B2 (en) Storage system having cache partition size set based on drive type
US7930588B2 (en) Deferred volume metadata invalidation
CN107577617B (zh) 基于快速持久性存储器的回写储存器高速缓存
CN107844434B (zh) 通用高速缓存管理系统
US7793061B1 (en) Techniques for using flash-based memory as a write cache and a vault
US9274956B1 (en) Intelligent cache eviction at storage gateways
US9559889B1 (en) Cache population optimization for storage gateways
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
WO2022005744A1 (en) Fully coherent efficient non-local storage cluster file system
US20240231646A1 (en) Storage System and Method Using Persistent Memory
CN112513828A (zh) 以分布式方式实现文件的一致性和页面高速缓存支持
US11327887B2 (en) Server-side extension of client-side caches
GB2522742A (en) Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
US8700861B1 (en) Managing a dynamic list of entries for cache page cleaning

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