CN102782683A - 用于数据库服务器的缓冲池扩展 - Google Patents
用于数据库服务器的缓冲池扩展 Download PDFInfo
- Publication number
- CN102782683A CN102782683A CN2011800121265A CN201180012126A CN102782683A CN 102782683 A CN102782683 A CN 102782683A CN 2011800121265 A CN2011800121265 A CN 2011800121265A CN 201180012126 A CN201180012126 A CN 201180012126A CN 102782683 A CN102782683 A CN 102782683A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- buffer pool
- visit
- primary memory
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
此处所描述的主题的各方面涉及用于数据库***的缓冲池。在各方面,诸如固态存储的次存储器被用于扩展数据库***的缓冲池。可以通过采样算法来确定诸如火热、热门和冷门的阈值,所述阈值用于基于页面的访问历史来分类页面。当数据库***需要释放主存储器中的缓冲池中的空间时,可以基于该页面被如何分类以及次存储器或其他存储的条件来将一个页面驱逐到次存储器中的缓冲池或其他存储。
Description
背景技术
对于数据库,当数据库页面的工作集被保持在主存储器中时,存在良好的性能。不幸地是,由于许多大型数据库的大小原因,要将工作集保持在主存储器中并不是切实可行的。对于一个大型数据库而言,这意味着该数据库的大多数数据页面驻留在具有足够容量的I/O子***上,所述子***通常是使用诸如磁盘的旋转介质来构建。这样的子***是昂贵的,会占据大量的空间并消耗大量的能耗。这些子***经常成为数据库的瓶颈,因为在相同速率时,旋转介质的性能与主存储器和处理器相比并不领先。
在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
发明内容
简言之,此处所描述的主题的各方面涉及用于数据库***的缓冲池。在各方面,诸如固态存储的次存储器被用于扩展数据库***的缓冲池。可以通过采样算法来确定诸如火热、热门和冷门的阈值,所述阈值用于基于页面的访问历史来分类页面。当数据库***需要释放主存储器中的缓冲池中的空间时,可以基于该页面被如何分类以及次存储器或其他存储的条件来将一个页面驱逐到次存储器中的缓冲池或其他存储。
提供本发明内容是为了简要地标识在以下详细描述中进一步描述的主题的一些方面。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
除非上下文清楚地指出,否则短语“此处所描述的主题”指的是具体实施方式中描述的主题。术语“方面”被当作“至少一个方面”。标识具体实施方式中所描述的主题的各方面不旨在标识所要求保护的主题的关键特征或必要特征。
上述各方面和此处所描述的主题的其它方面是借助于示例说明的,并且不受附图限制,附图中相同的标号指示相似的元素。
附图说明
图1是表示其中可结合本文所描述主题的各方面的示例性通用计算环境的框图;
图2是概括地表示此处所描述的主题的各方面可以在其中实现的示例性***的框图;
图3是表示根据此处所描述的主题的各方面的托管数据库的***的组件的框图;以及
图4是概括地表示根据此处所描述的主题的各方面的、可在扫描页面以确定阈值且适合时驱逐页面中发生的一些示例性动作的流程图;以及
图5是概括地表示根据此处所描述的主题的各方面的、可在由DBMS接收访问请求且缓冲池已满时发生的一些示例性动作的流程图。
具体实施方式
定义
如本文所使用的,术语“包括”及其变体被当作开放式术语,表示“包括但不限于”。除非上下文另外清楚地指示出,否则术语“或”被当作“和/或”。术语“基于”被当作“至少部分地基于”。术语“一个实施例”和“一实施例”被当作“至少一个实施例”。术语“另一实施例”被当作“至少一个其他实施例”。其他显式或隐式定义可包括在下文中。
示例性操作环境
图1示出可在其上实现本文所描述的主题的各方面的合适的计算***环境100的示例。计算***环境100仅为合适的计算环境的一个示例,并非旨在对本文所描述的主题的各方面的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本文所描述的主题的各方面可与众多其他通用或专用计算***环境或配置一起操作。可适用于这里所述的主题的各方面的已知计算***、环境或配置的例子包括个人计算机、服务器计算机、手持或膝上型设备、多处理器***、基于微控制器的***、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒,媒体中心或其他家电的家电设备、嵌入汽车或附加到汽车的计算设备、其他移动设备、包括任何上述***或设备的分布式计算环境等等。
本文所描述的主题的各方面可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本文所描述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现本文所描述的主题的各方面的示例性***包括计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、***存储器130以及将包括***存储器的各种***组件耦合至处理单元120的***总线121。***总线121可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、***总线、以及局部总线。作为示例,而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层(Mezzanine)总线的***部件互连(PCI)总线、扩展***部件互连(PCI-X)总线、高级图形端口(AGP)、以及PCI Express(PCIe)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EEPROM、闪存或其它存储器技术CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语已调制数据信号摂是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
***存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。包含诸如在启动期间帮助在计算机110内的元件之间传输信息的基本例程的基本输入/输出***133(BIOS)通常储存储在ROM 131中。RAM 132通常包含处理单元120可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作***134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动非易失性光盘156中读取或向其写入的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字多功能盘、其他光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140等不可移动存储器接口连接到***总线121,而磁盘驱动器151和光盘驱动器155则通常由诸如接口150等可移动存储器接口连接至***总线121。
以上讨论并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作***144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可与操作***134、应用程序135、其他程序模块136和程序数据137相同,也可与它们不同。操作***144、应用程序145、其他程序模块146和程序数据147在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162和定点设备161(通常被称为鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、写字板等。这些以及其他输入设备通常通过耦合到***总线的用户输入接口160连接到处理单元120,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。
监视器191或其他类型的显示设备也通过诸如视频接口190之类的接口连接至***总线121。除了监视器以外,计算机还可包括诸如扬声器197和打印机196之类的其他***输出设备,它们可通过输出***接口195来连接。
计算机110可使用到一个或多个远程计算机(诸如,远程计算机180)的逻辑连接而在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,但在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN联网环境中使用时,计算机110可包括调制解调器172或用于通过诸如因特网等的WAN 173来建立通信的其它装置。可为内置或可为外置的调制解调器172可以经由用户输入接口160或其他合适的机构连接至***总线121。在联网环境中,相对于计算机110所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。
数据库缓冲池
如前所述,I/O子***通常成为数据库的瓶颈。图2是概括地表示此处所描述的主题的各方面可以在其中实现的示例性***的框图。***200可以包括一个或多个处理器202、数据库管理***(DBMS)205、旋转介质210-211,并可以包括其他组件。DBMS 205可以管理缓冲池215中的页面。可以在主存储器220和固态存储225(在此以后有时被称为SSS 225)中维护缓冲池215。
可以使用诸如计算机110的一个或多个计算机来实现***200,而***200可以实现一个或多个数据库。该***的(多个)处理器202对应于图1的处理单元120,并且被包括在同一计算机上或可以跨多个计算机分布。处理器202执行对应于DBMS 205的指令以提供数据库。
数据库可包括关系数据库、面向对象的数据库、分层数据库、网络数据库、其他类型的数据库、上述的某种组合或扩展等。可将存储于数据库中的数据组织为表格、记录、对象、其他数据结构等。可将存储于数据库中的数据存储在专用数据库文件、专用硬盘分区、HTML文件、XML文件、电子数据表、平面文件、文档文件、配置文件、其他文件等中。
可以通过诸如DBMS 205的DBMS来访问数据库中的数据。DBMS 205可包括一个或多个程序,其控制数据库的数据的组织、存储、管理和检索。DBMS205可接收访问数据库中的数据的请求,并可执行提供该访问所需要的操作。此处使用的访问可包括读取数据、写入数据、删除数据、更新数据、以及包括以上两个或更多个的组合等。
在描述本文所描述的主题的各方面的时,为简洁起见,本文有时候使用与关系数据库相关联的术语。尽管本文有时候使用关系数据库术语,但也可将本文的技术应用到其它类型的数据库,包括之前已经提到的那些。
DBMS 205在操作上管理主存储器和次存储器中的缓冲池中的页面,并基于确定一个页面是否具有对应于至少三种分类的访问来驱逐该页面。这将在下面被更详细地描述,但简言之,如果对该页面的访问位于第一百分比范围内,则该页面可被认作处于第一分类中(例如“火热”)。如果该页面具有位于第二百分比范围内的访问,则该页面可被认作处于第二分类中(例如“热门”)。如果该页面具有位于第三百分比范围内的访问,则该页面可被认作处于第三分类中(例如“冷门”)。页面的分类可被用于将页面驱逐出主存储器220和/或SSS 225。
处于效率、性能或其他原因,数据库可以将对应于表格、索引的数据或其他数据库数据定位在一个诸如旋转介质210的存储设备集上,而将对应于日志的数据定位在诸如旋转介质211的另一存储设备集上。对于某些数据库,仅有一个存储设备集可被用于存储表格和日志。
缓冲池215包括在(相对于旋转介质210-211)更快的存储器中的一个或多个数据库的部分。所述一个或多个数据库的部分有时称为页面。缓冲池215的存储器(例如主存储器220)的一些可以是易失的。就是说,当存储器断电时,存储器会丢失存储在其上的任何数据。主存储器220可以被实现为RAM、高速缓存、处理器存储器或其他易失的高速存储器。缓冲池215的其他存储器(例如SSS 225)可以是非易失的。就是说,当非易失的存储器断电时,该存储器会持久保存存储在其上的任何数据。
可以动态改变分配给缓冲池215的SSS(或其他存储器)的量。就是说,分配给缓冲池215的SSS(或其他存储器)的字节在DBMS 205执行之前、期间或之后,可以被自动地、半自动地或手动地增加、减少或设定为0。
DBMS 205可以维护关于存储在缓冲池215中的数据库的页面的元数据。对于每个页面,该元数据可包括,例如,用于存储页面上的数据被访问的最近的一个或两个时间的两个时间戳、指示该页面是否已被修改的脏标记、指示该页面的副本是否被存储在SSS 225中的标记、指示该页面已经被访问的次数的计数、指示对该页面的访问的频率的加权值(对于更近的访问具有更多加权)、关于该页面的其他信息等等。该元数据可以被(例如作为页面)存储在缓冲池215中或某个其他位置处。
在操作中,当DBMS 205接收访问数据的请求时,DBMS 205可以先确定该数据是否在缓冲池215中。如果该数据不在缓冲池215中,则DBMS可以确定在主存储器220中是否存在将数据从旋转介质210读入该主存储器220的空间。如果主存储器220中不存在空间,则DBMS确定是否可以将一个页面从主存储器220中驱逐出以腾出空间来从旋转介质210中读取该页面。
虽然上述步骤已经以某种顺序方式被描述,在其他实现中,它们可以以不同的顺序或并行地发生。例如,在一个实施例中,DBMS 205可以尝试维护主存储器220中的某个空闲空间部分。为了这么做,周期性地或当DBMS 205确定主存储器220中的空闲空间减少到阈值之下时,DBMS 205可以扫描主存储器220以确定将哪个页面驱逐出主存储器220以释放空间。以此方式,DBMS205可以保留主存储器220中的某些空间以用于在从旋转介质210读取和写入页面时使用。
在一个实施例中,当存在存储器压力(例如缓冲池中的空闲空间低于预定的、计算的、选择的或其他阈值,进程请求更多的存储器或满足某些其他存储器压力条件)时,DBMS 205可以执行一个扫描算法。该扫描算法可以确定可被用于将页面分类成不同类别的阈值的数值。例如,在一个实施例中,扫描算法可以基于关于页面而维护的元数据来确定将页面分类成火热、热门和冷门类别的阈值。
在一个实施例中,扫描算法可以通过采样选中数目的随机页面的元数据来确定阈值。从所述采样中,可以确定至少两个阈值。阈值可以对应于关于对页面的访问频率的百分比。具有低于两个阈值中最低阈值的访问特性的页面可以被认为是冷门的。具有在最低阈值和较高阈值之间的访问特性的页面可以被认为是热门的。具有高于较高阈值的访问特性的页面可以被认为是火热的。
术语“火热”、“热门”和“冷门”并不意味着要对在此所述的主题的各方面施加限制。这些术语的一个理念在于对页面的访问可以落入百分比中。落入较高百分比范围之内的页面可以被称为是火热的。落入较低和较高百分比之间的页面可以被称为是热门的。落入较低百分比范围之内的页面可以被称为是冷门的。在不背离在此所述的主题的各方面的精神和范围的情况下,可以用其他词、数字、标识符、数据结构等等来取代火热、热门和冷门这些词。而且,虽然仅给出了三种称号,在其他实施例中,可以存在超过三种的称号。
一种可以用于分类页面的示范性标准是对页面的访问的频率。另一种可以用于分类页面的示范性标准是对页面的访问历史。例如,访问历史可以包括页面已经被访问的最近一个或两个时间。如果仅最近访问时间被用于分类页面,这种标准有时被称作最近使用(LRU)算法。如果最近访问时间的邻近时间被用于分类页面,这种标准有时被称作(LRU-2)算法。上述例子并不旨在是包括一切的或是穷举的。实际上,基于在此的示教,本领域中的技术人员可以认识到许多其他标准可以被用于分类页面。
在一个实施例中,仅当确定较低阈值的采样可以在主存储器220和SSS 225中的页面上执行时,才在主存储器220中的页面上执行确定较高阈值的采样。
在确定了这些阈值之后,当DBMS 205需要驱逐页面以在主存储器220中空出更多空间时,DBMS 205可以以任意各种顺序,例如包括顺序、循环、随机、最近使用、基于位置、另一顺序等等,来扫描遍历缓冲池中的页面。如果页面在冷门阈值之上且在热门阈值之下,并且SSS 225中存在可用的空间,则DBMS 205可以将该页面复制到SSS 225或(通过向诸如页面队列的数据结构中的要被从主存储器220复制到SSS 225的页面放置指针)指示只要可行的话该页面就要被复制到SSS 225中。在已经将页面复制到SSS 225之后,主存储器220中释放的空间可以被用于存储另一页面。
如果在SSS 225中不存在用于热门和冷门页面的足够空间,则冷门的页面将被转储清除(flush)或复制在队列中以转储清除到磁盘(如果是脏的)或标记为可用(如果是干净的)。转储清除到磁盘的页面可以来自主存储器220以及SSS 225。在这种情况下,在一个实施例中,与从SSS 225转储清除冷门页面相比,将优先权给予从主存储器220转储清除冷门页面。例如,可以为从主存储器220和SSS 225转储清除冷门页面维护一个或多个数据结构(例如一个或多个队列)。在已经将来自主存储器220的冷门页面转储清除到磁盘之后,可以将来自SSS 225的冷门页面转储清除到磁盘。在另一个实施例中,从主存储器220转储清除冷门页面可以与从SSS 225转储清除冷门页面交替进行。如果硬件子***提供了适合的设备,可以并行执行从主存储器220转储清除冷门页面和从SSS 225转储清除冷门页面。
当合适的硬件(例如直接存储器存取(DMA)硬件等)可用时,将来自SSS 225的页面转储清除到磁盘可以在不需要从SSS 225读取页面到主存储器220的情况下进行。当这样的硬件对于SSS 225不可用时,将来自SSS 225的页面转储清除到磁盘可以通过读取页面到主存储器220并随后将该页面从主存储器220复制到磁盘上来执行。
当DBMS 205需要访问在SSS 225中但不在主存储器220中的页面时,可以从SSS 225将该页面复制到主存储器220中。
当缓冲页面要被写入SSS 225时,如果可能的话,可以将多个写入合并成单个写入。这可以增加I/O吞吐量并增加SSS 225的寿命期望。
如果达到了SSS 225的I/O阈值,则可将新的I/O定向到磁盘。当对SSS 225的访问接近SSS 225的读/写带宽或某个其他预定带宽时可以达到I/O阈值。可以例如依据I/O响应时间、I/O的数目或某个其他因素来确定是否已经达到I/O阈值。例如,通过访问的某种模式或频率,传输从SSS 225到RAM 220的数据的I/O可以超过SSS 225可用的带宽。在这种情况下,可以将后续I/O发送给旋转介质210直到SSS225可用于更多I/O。
图3是表示根据此处所描述的主题的各方面的托管数据库的***的组件的框图。组件300包括元数据305、主存储器缓冲页面310、SSS缓冲页面315和其他存储320。元数据305包括关于先前描述的页面的数据。元数据305可以被存储在主存储器、高速缓存或某种其他高速存储器中。元数据305可以指示页面被存储在主存储器和/或SSS中。
主存储器缓冲页面310可以被存储在诸如RAM或其他易失存储器之类的主存储器中。这样的存储器可以在不需要机械移动的情况下被访问。换句话说,这样的存储器可以在不需要主存储器的任何组件的物理移动的情况下提供对数据的访问。这样的存储器通常比机械类型的存储要更加快。
主存储器缓冲页面310可以包括火热页面、热门页面和冷门页面,这取决于有多少空间可用。例如,主存储器缓冲页面310可以包括来自其他存储320的某些最近被检索的冷门页面。一些主存储器缓冲页面310的副本可以被存储在SSS缓冲页面315中。主存储器缓冲页面310中的一些页面可能尚未被复制到SSS缓冲页面315。而且,SSS缓冲页面315可以包括不存在于主存储器缓冲页面310中的页面。
SSS缓冲页面315可以被存储在次存储器中。为了实现性能增益,该次存储器可以比存储320执行得更好(例如更快的响应时间、更多的带宽等等)。可以在不需要机械移动的情况下访问某种存储器(例如固态存储),并且该存储器是非易失的。虽然,这种存储器可以比存储320执行得更好,但该存储器可能比主存储器更慢。
其他存储320可以包括诸如硬盘、磁带、其他非易失存储等之类的非易失存储。这种其他存储320可以包括组件(例如臂、盘或其他介质等等),这些组件在操作上移动(例如在盘上往返、旋转或其他方式)以提供对存储320的存储设备上的存储器的访问。在不昂贵的实现中,存储320可以具有比***300的主存储器和SSS更少的吞吐量。然而,在一些***中,通过使用联合工作的许多存储设备(例如磁盘),存储320的吞吐量可以接近或超过SSS的吞吐量,尽管响应时间相对较大。
元数据305存储了关于在主存储器缓冲页面310和SSS缓冲页面315中的页面的信息。这样的信息可以包括先前结合图2所述的元数据。
图2-3中示出的组件是示例性的且不意味着包括一切的可能需要或包括的组件。在其他实施例中,结合图2-3描述的组件和/或功能可被包括在其他组件(示出或未示出)中或者被放置在子组件中而不背离此处所描述的主题的各方面的精神或范围。在某些实施例中,结合图2-3所描述的组件和/或功能可跨多个设备地分布。
图4-5是概括地表示根据此处所描述的主题的各方面的可发生的动作的流程图。为解释简明起见,结合图4-5来描述的方法被描绘和描述为一系列动作。可以理解和明白,此处所描述的主题的各方面不受所示出的各动作和/或各动作次序的限制。在一个实施例中,各动作以如下描述的次序发生。然而,在其它实施例中,各动作可以并行地发生、以另一次序发生、和/或与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据此处所描述的主题的各方面的方法所必需的。另外,本领域的技术人员将了解和明白,该方法也可以替代地经由状态图而被表示为一系列相互相关联的状态或者被表示为事件。
图4是概括地表示根据此处所描述的主题的各方面的、可在扫描页面以确定阈值且适合时驱逐页面中发生的示例性动作的流程图。在框405,动作开始。
在框410处,接收扫描页面以确定阈值的请求。例如,参考图4,响应于存储器压力,DBMS 205可以向缓冲池组件发送扫描页面的请求。
在框415,访问页面的元数据。例如,参考图3,访问元数据305。取代访问所有的元数据,可以采样数据库缓冲池的多个随机选择页面的这些元数据。在一个实施例中,采样页面的元数据可以包括从页面的元数据中为每个经采样的页面获得一个或两个时间戳,其中所述一个或两个时间戳对应于访问经采样的页面的最近的一个或多个时间。将这种元数据提供给一个函数(例如分类函数),该函数生成对应于对该页面的访问的值。由函数为该采样的元数据所生成的值可以被用于选择阈值。例如,在从函数获得值之后,可以选择对应于这些值的不同预定百分比的阈值。百分比的范围(例如0-5、5-25、25-100)可以对应于火热、热门和冷门。
在框420,可以从所述元数据中确定冷门阈值。例如,冷门阈值可以对应于具有在0到25之间的百分比范围的经采样的页面的访问频率。一旦已经确定冷门阈值,如果将上述函数应用于由页面的元数据所表示的访问数据返回小于或等于该冷门阈值的值时,就可以确定该页面是冷门的。
在框425,可以从所述元数据中确定热门阈值。例如,热门阈值可以对应于具有在25到75之间的百分比范围的经采样的页面的访问频率。一旦已经确定热门阈值,如果将上述函数应用于由页面的元数据所表示的访问数据返回大于冷门阈值且小于或等于热门阈值的值时,就可以确定该页面是热门的。
在框430处,接收驱逐页面的请求。例如,参考图2,DBMS 205的驱逐组件可以接收将一个页面从缓冲池215中驱逐出去以为一个或多个其他页面释放空间的请求。
在框435,可以选择缓冲池215的页面以考虑用于驱逐。例如,参考图3,可以选择主存储器缓冲页面310中的一个考虑用于驱逐。选择可以使用用于循环遍历页面以尝试找出适于驱逐的页面的算法、队列或其他数据结构等等来做出。
在框440处,分类页面。这可以通过将上述函数应用于页面的元数据以获得一个值来完成。随后,可以将该值与前述的阈值相比较以确定该页面是火热、热门还是冷门的。
在框445,如果合适,驱逐该页面。例如,如果确定该页面是冷门的,则将该页面驱逐到磁盘。如果该页面是热门的,则将该页面复制到SSS中,除非达到SSS的吞吐量的阈值,在这种情况下,就将该页面驱逐到磁盘。如果该页面是火热的,则将该页面保留在主存储器中,无需被驱逐。
在框450处,可以执行其他动作(如果存在)。
图5是概括地表示根据此处所描述的主题的各方面的、可在由DBMS接收访问请求且缓冲池已满时发生的一些示例性动作的流程图。在框505,动作开始。
在框510,接收访问数据库的数据的请求。例如,参考图2,DBMS 205可接收访问数据库中的数据的请求。
在框515,DBMS确定数据驻留在主存储器之外。
例如,参考图2,DBMS 205可以确定所请求的数据驻留在SSS 225或旋转介质210中。在框520,DBMS确定主存储器中的缓冲池满了。例如,参考图2,DBMS 205确定主存储器220被页面填满并且需要驱逐一个页面以为数据腾出空间。
在框525处,选择用于驱逐的页面。选择用于驱逐的页面可以包括使用根据基于对页面的访问的频率的至少三种分类(例如火热、热门和冷门)中的一个来分类页面的函数(例如先前所述的分类函数)。例如,参考图2,DBMS 205可以确定主存储器220中用于驱逐的页面。
在框530处,驱逐页面。例如,参考图2,DBMS 205可以将所选的页面驱逐到SSS 225或旋转介质210。将页面驱逐到SSS 225可以包括将页面复制到SSS 225中。这将把页面保持在缓冲池215中,仅仅是不在缓冲池的主存储器220中。在这种方式中,SSS 225可以扩展缓冲池(而不是仅仅作为用于被驱逐出主存储器220的页面的单独高速缓存)。
在框535处,可以执行其他动作(如果存在)。
虽然,上述讨论引用了使用固态存储来扩展缓冲池,但在其他实施例中,除了固态存储之外的存储也可被用于扩展缓冲池。其他存储可以是目前现有的或还在开发的。根据在此描述的主题的各方面,其他存储可以具有比旋转存储更好但比主存储器更差的吞吐量、带宽或某个其他特性。
如从上述详细描述中可以看见,已经描述了关于数据***的缓冲池的各方面。尽管本文所描述的主题的各方面易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而,应当理解,并不旨在将所要求保护主题的各方面限制于所公开的具体形式,而是相反地,目的是要覆盖落入本文所描述的主题的各方面的精神和范围之内的所有修改、替换构造和等效方案。
Claims (15)
1.一种至少部分地由计算机实现的方法,所述方法包括:
访问数据库缓冲池的页面的元数据,所述数据库缓冲池潜在地包括被存储在主存储器中的页面、存储在固态存储器中的页面以及存储在主存储器和固态存储器两者之中的页面;
从所述元数据中确定用于确定页面是否是冷门的冷门阈值,其中如果将一个函数应用于由所述页面的元数据所表示的访问数据返回小于或等于所述冷门阈值的值,则所述页面是冷门的;
从所述元数据中确定用于确定页面是否是热门的热门阈值,其中如果将所述函数应用于所述页面的元数据的访问数据返回大于所述冷门阈值且小于或等于所述热门阈值的值,则所述页面是热门的;以及
将页面从所述主存储器或所述固态存储器驱逐出去以为一个或多个其他页面释放空间。
2.如权利要求1所述的方法,其特征在于,其中访问数据库缓冲池的页面的元数据包括对所述数据库缓冲池的一个数目的随机选择的页面的元数据进行采样,所述数目小于所述数据库缓冲池的所有页面。
3.如权利要求2所述的方法,其特征在于,其中访问所述数据库缓冲池的页面的元数据包括从所述页面的元数据中为每个经采样的页面获得一个或两个时间戳,其中所述一个或两个时间戳对应于访问经采样的页面的最近一个或多个时间,对至少所述一个或两个时间戳施加所述函数以生成指示所述页面是火热、热门或冷门的值。
4.如权利要求1所述的方法,其特征在于,其中驱逐页面包括如果所述固态存储器具有可用的空闲空间并且如果在所述固态存储器中不存在所述冷门页面的副本,则将所述冷门页面复制到所述固态存储器中。
5.如权利要求1所述的方法,其特征在于,进一步包括改变用于所述数据库缓冲池的所述固态存储的量。
6.如权利要求1所述的方法,其特征在于,还包括确定是否已经达到所述固态存储的I/O阈值,并且如果达到,则将所述页面复制到除所述主存储器和所述固态存储器之外的存储上。
7.如权利要求1所述的方法,其特征在于,其中,将页面驱逐出所述固态存储器包括将多个页面在单个写入操作中从所述主存储器复制到所述固态存储器。
8.一种在计算环境中的***,包括:
一个或多个存储设备集,包括在操作上移动以提供对所述存储设备的数据的访问的组件;
主存储器,是易失的且操作上无需所述主存储器的任意组件的物理移动就能提供对其上存储的数据的访问;
次存储器,是非易失的且操作上无需所述次存储器的任意组件的物理移动就能提供对其上存储的数据的访问;
一个或多个处理器,在操作上执行对应于数据库管理***的指令,所述数据库管理***在操作上管理所述主存储器和次存储器中的缓冲池中的页面,并基于确定页面是否具有对应于至少三种分类的访问来驱逐所述页面,如果对所述页面的访问在第一百分比范围之内则所述页面具有对应于第一分类的访问,如果对所述页面的访问在第二百分比范围之内则所述页面具有对应于第二分类的访问,如果对所述页面的访问在第三百分比范围之内则所述页面具有对应于第三分类的访问。
9.如权利要求8所述的***,其特征在于,所述一个或多个存储设备集包括一个或多个硬盘,所述主存储器包括随机存取存储器,而所述次存储器包括固态存储器。
10.如权利要求8所述的***,其特征在于,所述数据库管理***在操作上还扫描所述缓冲池的随机选择的页面的元数据以确定所述第一、第二和第三范围,所述元数据包括指示每个页面被访问的最近一个或多个时间的数据。
11.如权利要求8所述的***,其特征在于,所述数据库管理***在操作上驱逐页面包括:所述数据库管理***在操作上将被确定为处于第二百分比范围内的页面从所述主存储器驱逐到所述次存储器上。
12.如权利要求8所述的***,其特征在于,所述数据库管理***在操作上驱逐页面包括:在将所选中的页面复制到所述存储设备中的一个或多个之前,所述数据库管理***在操作上将被确定为处于第三百分比范围内的所选中的页面从所述次存储器复制到所述主存储器上。
13.如权利要求8所述的***,其特征在于,其中所述第一百分比范围包括百分之0-百分之5,所述第二百分比范围包括百分之5-百分之25,而所述第三百分比范围包括百分之25-百分之100。
14.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在被执行时执行以下动作,包括:
接收对数据库数据的请求;
确定所述数据驻留在除主存储器之外的存储中;
确定所述主存储器中的缓冲池是满的;
基于一函数选择要从主存储器中的所述缓冲池中驱逐出的候选页面,所述函数根据基于对所述候选页面的访问的至少三种分类中的一个对所述候选页面分类;以及
将所述候选页面从主存储器中驱逐出去。
15.如权利要求14所述的计算机存储介质,其特征在于,选择要从主存储器中的所述缓冲池中驱逐出的候选页面包括查找处于所述分类中的第三种分类中的页面,所述分类中的第三种分类表示与其他分类中任一分类中的页面相比较少频率地被访问的页面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/717,139 US8712984B2 (en) | 2010-03-04 | 2010-03-04 | Buffer pool extension for database server |
US12/717,139 | 2010-03-04 | ||
PCT/US2011/026930 WO2011109564A2 (en) | 2010-03-04 | 2011-03-02 | Buffer pool extension for database server |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102782683A true CN102782683A (zh) | 2012-11-14 |
CN102782683B CN102782683B (zh) | 2013-08-21 |
Family
ID=44532279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800121265A Active CN102782683B (zh) | 2010-03-04 | 2011-03-02 | 用于数据库服务器的缓冲池扩展 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8712984B2 (zh) |
EP (1) | EP2542989B1 (zh) |
JP (1) | JP5722352B2 (zh) |
CN (1) | CN102782683B (zh) |
WO (1) | WO2011109564A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682005A (zh) * | 2015-11-05 | 2017-05-17 | 华为技术有限公司 | 一种确定数据库热页面的方法及装置 |
CN110300934A (zh) * | 2017-02-15 | 2019-10-01 | Sig技术股份公司 | 包装设备数据交换机以及用于运行包装设备数据交换机的方法 |
CN110750209A (zh) * | 2018-07-24 | 2020-02-04 | 三星电子株式会社 | 固态驱动器和用于元数据访问的方法 |
CN111309251A (zh) * | 2020-01-21 | 2020-06-19 | 青梧桐有限责任公司 | 数据存储方法、***、电子设备及可读存储介质 |
CN112262376A (zh) * | 2018-05-09 | 2021-01-22 | 美光科技公司 | 用于存储器的预取管理 |
CN112579481A (zh) * | 2020-12-07 | 2021-03-30 | 海光信息技术股份有限公司 | 数据处理方法、数据处理装置和计算装置 |
CN115757438A (zh) * | 2023-01-06 | 2023-03-07 | 本原数据(北京)信息技术有限公司 | 数据库的索引节点处理方法和装置、计算机设备及介质 |
US11915788B2 (en) | 2018-05-09 | 2024-02-27 | Micron Technology, Inc. | Indication in memory system or sub-system of latency associated with performing an access command |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090087498A (ko) | 2006-12-06 | 2009-08-17 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 고-용량, 비-휘발성 스토리지를 위한 캐시로서의 솔리드-스테이트 스토리지 장치, 시스템 및 방법 |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US8712984B2 (en) | 2010-03-04 | 2014-04-29 | Microsoft Corporation | Buffer pool extension for database server |
US9235531B2 (en) | 2010-03-04 | 2016-01-12 | Microsoft Technology Licensing, Llc | Multi-level buffer pool extensions |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9514174B2 (en) | 2012-06-30 | 2016-12-06 | Microsoft Technology Licensing, Llc | Classification of data in main memory database systems |
CN103631528B (zh) * | 2012-08-21 | 2016-05-18 | 苏州捷泰科信息技术有限公司 | 用固态硬盘作为缓存器的读写方法、***及读写控制器 |
US8984240B2 (en) * | 2012-08-30 | 2015-03-17 | International Business Machines Corporation | Reducing page faults in host OS following a live partition mobility event |
US9330055B2 (en) * | 2013-06-04 | 2016-05-03 | International Business Machines Corporation | Modular architecture for extreme-scale distributed processing applications |
US9558080B2 (en) | 2013-10-31 | 2017-01-31 | Microsoft Technology Licensing, Llc | Crash recovery using non-volatile memory |
US9208086B1 (en) * | 2014-01-09 | 2015-12-08 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US20170046096A1 (en) * | 2014-04-24 | 2017-02-16 | Hewlett Packard Enterprise Development Lp | Structuring page images in a memory |
US9436601B2 (en) | 2014-09-15 | 2016-09-06 | International Business Machines Corporation | Categorizing memory pages based on page residences |
WO2016122549A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Read only bufferpool |
US20160255169A1 (en) * | 2015-02-27 | 2016-09-01 | Futurewei Technologies, Inc. | Method and system for smart object eviction for proxy cache |
US9792116B2 (en) * | 2015-04-24 | 2017-10-17 | Optimum Semiconductor Technologies, Inc. | Computer processor that implements pre-translation of virtual addresses with target registers |
CN108139872B (zh) * | 2016-01-06 | 2020-07-07 | 华为技术有限公司 | 一种缓存管理方法、缓存控制器以及计算机*** |
KR102540765B1 (ko) * | 2016-09-07 | 2023-06-08 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US20180095914A1 (en) | 2016-10-03 | 2018-04-05 | Ocient Llc | Application direct access to sata drive |
US10761745B1 (en) | 2016-12-14 | 2020-09-01 | Ocient Inc. | System and method for managing parity within a database management system |
EP3555774B8 (en) | 2016-12-14 | 2024-03-27 | Ocient Inc. | Efficient database management system utilizing silo and manifest |
US10228864B1 (en) * | 2016-12-30 | 2019-03-12 | Parallels International Gmbh | Pre-fetching data based on memory usage patterns |
US10747765B2 (en) | 2017-05-30 | 2020-08-18 | Ocient Inc. | System and method for optimizing large database management systems with multiple optimizers |
JP6974706B2 (ja) * | 2017-08-14 | 2021-12-01 | 富士通株式会社 | 情報処理装置、ストレージシステムおよびプログラム |
US11182125B2 (en) | 2017-09-07 | 2021-11-23 | Ocient Inc. | Computing device sort function |
US20190354470A1 (en) * | 2018-05-16 | 2019-11-21 | Sap Se | Reduced Database Backup Memory Usage |
US11886436B2 (en) | 2018-10-15 | 2024-01-30 | Ocient Inc. | Segmenting a partition of a data set based on a data storage coding scheme |
US11709835B2 (en) | 2018-10-15 | 2023-07-25 | Ocient Holdings LLC | Re-ordered processing of read requests |
US11249916B2 (en) | 2018-10-15 | 2022-02-15 | Ocient Holdings LLC | Single producer single consumer buffering in database systems |
US11880368B2 (en) | 2018-10-15 | 2024-01-23 | Ocient Holdings LLC | Compressing data sets for storage in a database system |
US11256696B2 (en) | 2018-10-15 | 2022-02-22 | Ocient Holdings LLC | Data set compression within a database system |
US10877675B2 (en) * | 2019-02-15 | 2020-12-29 | Sap Se | Locking based on categorical memory allocation |
US10922159B2 (en) | 2019-04-16 | 2021-02-16 | International Business Machines Corporation | Minimally disruptive data capture for segmented applications |
US11093500B2 (en) | 2019-10-28 | 2021-08-17 | Ocient Holdings LLC | Enforcement of minimum query cost rules required for access to a database system |
US11106679B2 (en) | 2019-10-30 | 2021-08-31 | Ocient Holdings LLC | Enforcement of sets of query rules for access to data supplied by a plurality of data providers |
US11609911B2 (en) | 2019-12-19 | 2023-03-21 | Ocient Holdings LLC | Selecting a normalized form for conversion of a query expression |
US11061910B1 (en) | 2020-01-31 | 2021-07-13 | Ocient Holdings LLC | Servicing concurrent queries via virtual segment recovery |
US11853364B2 (en) | 2020-01-31 | 2023-12-26 | Ocient Holdings LLC | Level-based queries in a database system and methods for use therewith |
US11238041B2 (en) | 2020-03-25 | 2022-02-01 | Ocient Holdings LLC | Facilitating query executions via dynamic data block routing |
US11599463B2 (en) | 2020-03-25 | 2023-03-07 | Ocient Holdings LLC | Servicing queries during data ingress |
US11580102B2 (en) | 2020-04-02 | 2023-02-14 | Ocient Holdings LLC | Implementing linear algebra functions via decentralized execution of query operator flows |
US11294916B2 (en) | 2020-05-20 | 2022-04-05 | Ocient Holdings LLC | Facilitating query executions via multiple modes of resultant correctness |
US11775529B2 (en) | 2020-07-06 | 2023-10-03 | Ocient Holdings LLC | Recursive functionality in relational database systems |
US11321288B2 (en) | 2020-08-05 | 2022-05-03 | Ocient Holdings LLC | Record deduplication in database systems |
US11755589B2 (en) | 2020-08-05 | 2023-09-12 | Ocient Holdings LLC | Delaying segment generation in database systems |
US11880716B2 (en) | 2020-08-05 | 2024-01-23 | Ocient Holdings LLC | Parallelized segment generation via key-based subdivision in database systems |
US11762578B2 (en) * | 2020-09-29 | 2023-09-19 | International Business Machines Corporation | Buffer pool contention optimization |
US11822532B2 (en) | 2020-10-14 | 2023-11-21 | Ocient Holdings LLC | Per-segment secondary indexing in database systems |
US11507578B2 (en) | 2020-10-19 | 2022-11-22 | Ocient Holdings LLC | Delaying exceptions in query execution |
US11675757B2 (en) | 2020-10-29 | 2023-06-13 | Ocient Holdings LLC | Maintaining row durability data in database systems |
US11297123B1 (en) | 2020-12-11 | 2022-04-05 | Ocient Holdings LLC | Fault-tolerant data stream processing |
US11314743B1 (en) | 2020-12-29 | 2022-04-26 | Ocient Holdings LLC | Storing records via multiple field-based storage mechanisms |
US11734277B2 (en) * | 2021-02-05 | 2023-08-22 | International Business Machines Corporation | Database buffer pool optimization |
US11645273B2 (en) | 2021-05-28 | 2023-05-09 | Ocient Holdings LLC | Query execution utilizing probabilistic indexing |
US20230033029A1 (en) * | 2021-07-22 | 2023-02-02 | Vmware, Inc. | Optimized memory tiering |
US11803544B2 (en) | 2021-10-06 | 2023-10-31 | Ocient Holdings LLC | Missing data-based indexing in database systems |
US11983172B2 (en) | 2021-12-07 | 2024-05-14 | Ocient Holdings LLC | Generation of a predictive model for selection of batch sizes in performing data format conversion |
CN115905168B (zh) * | 2022-11-15 | 2023-11-07 | 本原数据(北京)信息技术有限公司 | 基于数据库的自适应压缩方法和装置、设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101563A (zh) * | 2007-07-23 | 2008-01-09 | 清华大学 | 基于海量数据分级存储***的迁移管理方法 |
US20080040748A1 (en) * | 2006-08-09 | 2008-02-14 | Ken Miyaki | Dynamic rating of content |
CN101320353A (zh) * | 2008-07-18 | 2008-12-10 | 四川长虹电器股份有限公司 | 嵌入式浏览器缓存设计方法 |
CN101459726A (zh) * | 2007-12-13 | 2009-06-17 | 中兴通讯股份有限公司 | 场景缓存更新方法及支持该方法的移动流媒体终端 |
CN101615191A (zh) * | 2009-07-28 | 2009-12-30 | 武汉大学 | 海量点云数据的存储与实时可视化方法 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680573A (en) | 1994-07-12 | 1997-10-21 | Sybase, Inc. | Method of buffering data objects in a database |
JPH08153014A (ja) * | 1994-11-30 | 1996-06-11 | Hitachi Ltd | クライアントサーバシステム |
JPH08235042A (ja) * | 1995-02-28 | 1996-09-13 | N T T Data Tsushin Kk | 複数ジャーナル一括取得方式 |
US5829038A (en) | 1996-06-20 | 1998-10-27 | Intel Corporation | Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure |
US5897634A (en) | 1997-05-09 | 1999-04-27 | International Business Machines Corporation | Optimized caching of SQL data in an object server system |
US5940823A (en) * | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System for the distribution and storage of electronic mail information |
US6393415B1 (en) * | 1999-03-31 | 2002-05-21 | Verizon Laboratories Inc. | Adaptive partitioning techniques in performing query requests and request routing |
ATE390788T1 (de) * | 1999-10-14 | 2008-04-15 | Bluearc Uk Ltd | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen |
JP2001282617A (ja) * | 2000-03-27 | 2001-10-12 | Internatl Business Mach Corp <Ibm> | 共有されたキャッシュを動的に区分するための方法及びシステム |
CA2312444A1 (en) | 2000-06-20 | 2001-12-20 | Ibm Canada Limited-Ibm Canada Limitee | Memory management of data buffers incorporating hierarchical victim selection |
US6754662B1 (en) * | 2000-08-01 | 2004-06-22 | Nortel Networks Limited | Method and apparatus for fast and consistent packet classification via efficient hash-caching |
JP2003216460A (ja) * | 2002-01-21 | 2003-07-31 | Hitachi Ltd | 階層ストレージ装置及びその制御装置 |
KR20050062538A (ko) * | 2002-08-16 | 2005-06-23 | 일렉트로 싸이언티픽 인더스트리이즈 인코포레이티드 | 전자 부품용 모듈 벨트 캐리어 |
AU2003272358A1 (en) * | 2002-09-16 | 2004-04-30 | Tigi Corporation | Storage system architectures and multiple caching arrangements |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
CA2408481C (en) | 2002-10-17 | 2009-10-06 | Ibm Canada Limited-Ibm Canada Limitee | Autonomic reallocation of memory among buffer pools |
US20040205297A1 (en) | 2003-04-14 | 2004-10-14 | Bearden Brian S. | Method of cache collision avoidance in the presence of a periodic cache aging algorithm |
US7080220B2 (en) | 2003-07-03 | 2006-07-18 | International Business Machines Corporation | Page replacement with a re-reference indicator |
JP4394428B2 (ja) * | 2003-12-05 | 2010-01-06 | Dts株式会社 | ストレージキャッシング型コンピュータプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにストレージキャッシング型コンピュータ |
CA2465065A1 (en) | 2004-04-21 | 2005-10-21 | Ibm Canada Limited - Ibm Canada Limitee | Application cache pre-loading |
US7383389B1 (en) * | 2004-04-28 | 2008-06-03 | Sybase, Inc. | Cache management system providing improved page latching methodology |
US8019735B2 (en) | 2004-05-21 | 2011-09-13 | Oracle International Corporation | Systems and methods for query caching |
JP4331101B2 (ja) * | 2004-12-27 | 2009-09-16 | 株式会社東芝 | キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム |
US7689607B2 (en) * | 2005-04-15 | 2010-03-30 | Microsoft Corporation | Database page mirroring |
JP5242397B2 (ja) * | 2005-09-02 | 2013-07-24 | メタラム インコーポレイテッド | Dramをスタックする方法及び装置 |
US7409504B2 (en) | 2005-10-06 | 2008-08-05 | International Business Machines Corporation | Chained cache coherency states for sequential non-homogeneous access to a cache line with outstanding data response |
US20070094450A1 (en) | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Multi-level cache architecture having a selective victim cache |
US7386673B2 (en) * | 2005-11-30 | 2008-06-10 | Red Hat, Inc. | Method for tracking of non-resident pages |
US7596662B2 (en) | 2006-08-31 | 2009-09-29 | Intel Corporation | Selective storage of data in levels of a cache memory |
US8719501B2 (en) | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
US20080147974A1 (en) | 2006-12-18 | 2008-06-19 | Yahoo! Inc. | Multi-level caching system |
JP5224706B2 (ja) * | 2007-03-23 | 2013-07-03 | キヤノン株式会社 | 記憶装置及び記憶装置の制御方法 |
US8055988B2 (en) | 2007-03-30 | 2011-11-08 | International Business Machines Corporation | Multi-bit memory error detection and correction system and method |
US8464024B2 (en) | 2007-04-27 | 2013-06-11 | Hewlett-Packard Development Company, L.P. | Virtual address hashing |
US7711905B2 (en) | 2007-07-16 | 2010-05-04 | International Business Machines Corporation | Method and system for using upper cache history information to improve lower cache data replacement |
JP2009053820A (ja) | 2007-08-24 | 2009-03-12 | Nec Electronics Corp | 階層型キャッシュメモリシステム |
US8863091B2 (en) * | 2007-10-19 | 2014-10-14 | Oracle International Corporation | Unified tracing service |
US7912812B2 (en) | 2008-01-07 | 2011-03-22 | International Business Machines Corporation | Smart data caching using data mining |
US9805077B2 (en) | 2008-02-19 | 2017-10-31 | International Business Machines Corporation | Method and system for optimizing data access in a database using multi-class objects |
JP2009223442A (ja) * | 2008-03-13 | 2009-10-01 | Hitachi Ltd | ストレージシステム |
US8914567B2 (en) * | 2008-09-15 | 2014-12-16 | Vmware, Inc. | Storage management system for virtual machines |
US8375178B2 (en) * | 2008-11-12 | 2013-02-12 | Oracle International Corporation | Memory page eviction based on present system operation |
US8417891B2 (en) | 2008-12-15 | 2013-04-09 | Intel Corporation | Shared cache memories for multi-core processors |
US8250111B2 (en) * | 2009-02-27 | 2012-08-21 | International Business Machines Corporation | Automatic detection and correction of hot pages in a database system |
US8145859B2 (en) * | 2009-03-02 | 2012-03-27 | Oracle International Corporation | Method and system for spilling from a queue to a persistent store |
US8438337B1 (en) | 2009-09-30 | 2013-05-07 | Netlogic Microsystems, Inc. | System and method for conditionally sending a request for data to a home node |
US8161241B2 (en) * | 2010-01-12 | 2012-04-17 | International Business Machines Corporation | Temperature-aware buffered caching for solid state storage |
US9235531B2 (en) | 2010-03-04 | 2016-01-12 | Microsoft Technology Licensing, Llc | Multi-level buffer pool extensions |
US8712984B2 (en) * | 2010-03-04 | 2014-04-29 | Microsoft Corporation | Buffer pool extension for database server |
-
2010
- 2010-03-04 US US12/717,139 patent/US8712984B2/en active Active
-
2011
- 2011-03-02 JP JP2012556228A patent/JP5722352B2/ja active Active
- 2011-03-02 CN CN2011800121265A patent/CN102782683B/zh active Active
- 2011-03-02 WO PCT/US2011/026930 patent/WO2011109564A2/en active Application Filing
- 2011-03-02 EP EP11751324.2A patent/EP2542989B1/en active Active
-
2014
- 2014-03-13 US US14/208,268 patent/US9069484B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080040748A1 (en) * | 2006-08-09 | 2008-02-14 | Ken Miyaki | Dynamic rating of content |
CN101101563A (zh) * | 2007-07-23 | 2008-01-09 | 清华大学 | 基于海量数据分级存储***的迁移管理方法 |
CN101459726A (zh) * | 2007-12-13 | 2009-06-17 | 中兴通讯股份有限公司 | 场景缓存更新方法及支持该方法的移动流媒体终端 |
CN101320353A (zh) * | 2008-07-18 | 2008-12-10 | 四川长虹电器股份有限公司 | 嵌入式浏览器缓存设计方法 |
CN101615191A (zh) * | 2009-07-28 | 2009-12-30 | 武汉大学 | 海量点云数据的存储与实时可视化方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682005A (zh) * | 2015-11-05 | 2017-05-17 | 华为技术有限公司 | 一种确定数据库热页面的方法及装置 |
CN110300934A (zh) * | 2017-02-15 | 2019-10-01 | Sig技术股份公司 | 包装设备数据交换机以及用于运行包装设备数据交换机的方法 |
CN112262376A (zh) * | 2018-05-09 | 2021-01-22 | 美光科技公司 | 用于存储器的预取管理 |
US11822477B2 (en) | 2018-05-09 | 2023-11-21 | Micron Technology, Inc. | Prefetch management for memory |
US11915788B2 (en) | 2018-05-09 | 2024-02-27 | Micron Technology, Inc. | Indication in memory system or sub-system of latency associated with performing an access command |
CN112262376B (zh) * | 2018-05-09 | 2024-04-23 | 美光科技公司 | 用于存储器的预取管理 |
CN110750209A (zh) * | 2018-07-24 | 2020-02-04 | 三星电子株式会社 | 固态驱动器和用于元数据访问的方法 |
CN111309251A (zh) * | 2020-01-21 | 2020-06-19 | 青梧桐有限责任公司 | 数据存储方法、***、电子设备及可读存储介质 |
CN112579481A (zh) * | 2020-12-07 | 2021-03-30 | 海光信息技术股份有限公司 | 数据处理方法、数据处理装置和计算装置 |
CN112579481B (zh) * | 2020-12-07 | 2023-01-20 | 海光信息技术股份有限公司 | 数据处理方法、数据处理装置和计算装置 |
CN115757438A (zh) * | 2023-01-06 | 2023-03-07 | 本原数据(北京)信息技术有限公司 | 数据库的索引节点处理方法和装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011109564A2 (en) | 2011-09-09 |
EP2542989B1 (en) | 2017-08-23 |
EP2542989A2 (en) | 2013-01-09 |
US8712984B2 (en) | 2014-04-29 |
US20110219169A1 (en) | 2011-09-08 |
WO2011109564A3 (en) | 2012-01-19 |
EP2542989A4 (en) | 2015-01-14 |
JP5722352B2 (ja) | 2015-05-20 |
CN102782683B (zh) | 2013-08-21 |
US9069484B2 (en) | 2015-06-30 |
JP2013521579A (ja) | 2013-06-10 |
US20140195750A1 (en) | 2014-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102782683B (zh) | 用于数据库服务器的缓冲池扩展 | |
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
US8595451B2 (en) | Managing a storage cache utilizing externally assigned cache priority tags | |
US9792227B2 (en) | Heterogeneous unified memory | |
US9772949B2 (en) | Apparatus, system and method for providing a persistent level-two cache | |
US9779027B2 (en) | Apparatus, system and method for managing a level-two cache of a storage appliance | |
US10432723B2 (en) | Storage server and storage system | |
CN105637470B (zh) | 用于脏数据管理的方法和计算设备 | |
US10558395B2 (en) | Memory system including a nonvolatile memory and a volatile memory, and processing method using the memory system | |
US8688914B2 (en) | Promotion of partial data segments in flash cache | |
CN109800185B (zh) | 一种数据存储***中的数据缓存方法 | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
KR20120090965A (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
CN103620549A (zh) | 用于统一数据存储的存储介质抽象 | |
CN109804359A (zh) | 用于将数据回写到存储设备的***和方法 | |
US8438339B2 (en) | Cache management for a number of threads | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
US20050138289A1 (en) | Virtual cache for disk cache insertion and eviction policies and recovery from device errors | |
EP3120251A1 (en) | Asynchronously prefetching sharable memory pages | |
CN108664415B (zh) | 共享替换策略计算机高速缓存***和方法 | |
US9218294B1 (en) | Multi-level logical block address (LBA) mapping table for solid state | |
KR20190018730A (ko) | 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법 | |
US20140195571A1 (en) | Fast new file creation cache | |
CN105138277A (zh) | 一种固态盘阵列的缓存管理方法 | |
CN117389909A (zh) | 内存数据淘汰方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150511 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150511 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |