CN108140048A - 分层存储装置中的列式高速缓存 - Google Patents

分层存储装置中的列式高速缓存 Download PDF

Info

Publication number
CN108140048A
CN108140048A CN201680059389.4A CN201680059389A CN108140048A CN 108140048 A CN108140048 A CN 108140048A CN 201680059389 A CN201680059389 A CN 201680059389A CN 108140048 A CN108140048 A CN 108140048A
Authority
CN
China
Prior art keywords
mirror
image format
copy
volatile memory
storage system
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.)
Pending
Application number
CN201680059389.4A
Other languages
English (en)
Inventor
R·D·迈克尼科尔
V·沙
X·华
J·卡普
S·K·茶文
M·科尔根
T·拉希里
A·T·H·吴
K·梅亚潘
A·加内什
J·R·洛埃扎
K·尤玛玛格斯瓦兰
Y·秦
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
Oracle America Inc
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 CN108140048A publication Critical patent/CN108140048A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions

Landscapes

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

Abstract

提供了用于在较低存储层中存储存储器内单元(IMU)并在查询处理需要时将IMU复制到DRAM的技术。还提供了用于在IMU从较高存储层的高速缓存中被逐出时将其复制到较低存储层的技术。提供了用于在存储系统内实现IMU的功能的技术,以使数据库服务器能够将诸如过滤之类的任务推送到存储系统,其中存储系统可以访问其自己的存储器内的IMU以执行任务。与数据集相关联的元数据可以被用于指示用于数据的IMU应当由数据库服务器机器创建还是在存储系统内创建。

Description

分层存储装置中的列式高速缓存
技术领域
本发明涉及数据库系统,并且更具体而言,涉及在不同的存储层之间交换存储器内单元(in-memory unit)。
背景技术
改进关系数据库系统中的数据访问时间的一种方式是将整个数据库对象或者其部分预先加载到易失性存储器中。例如,如果表T1的副本已经预先加载到易失性存储器中,那么涉及表T1的操作可以更快地执行。例如,在美国专利No.9,292,564(“镜像专利”)中描述了用于将数据库对象或其部分预先加载到易失性存储器中的技术,该专利通过引用并入本文。
在易失性存储器内,数据库对象(或其部分)的存储器内副本被存储在存储器内单元(“IMU”)中。存储在IMU中的数据被称为组块(chunk)。任何给定的组块都可以包括来自数据库对象的所有数据或来自数据库对象的数据的子集。例如,来自表T1的数据可以被划分成四个组块,这些组块可以分别被加载到四个不同的IMU中。
如“镜像专利”中所解释的,IMU中的数据的格式可以与相同数据在持久性存储装置中存储的格式不同。例如,用于在盘上存储来自表T的数据的格式(“持久格式”)可以是以行为主,而用于在易失性存储器中存储相同数据的格式(“镜像格式”)可以是以列为主。此外,IMU内的数据的一些或全部可以被压缩。当IMU内的数据的一些或全部被压缩时,该IMU可以被称为存储器内压缩单元(“IMCU”)。
可以加载到IMU中的数据的量受可用易失性存储器的量的限制。因此,为了有效地充分利用IMU,有必要智能地选择哪些元素(例如,表、分区、列等等)被加载到IMU中。被选择用于加载到IMU中的数据库元素在本文被称为“待镜像元素”。
理想情况下,在任何给定的时间处,可用于存储IMU的易失性存储器将由来自当前被访问最多的数据库元素中的组块填充。遗憾的是,哪些元素被访问最多会随着时间而改变。例如,在表T1被大量访问的时段期间,在易失性存储器中对表T1的组块进行镜像可以实现最大的益处。然而,在稍后表T1不被访问的时间,使用被表T1的组块占用的易失性存储器来高速缓存正被更多访问的不同的表T2的组块会更有益。在美国专利申请No.14/922,086中描述了用于动态改变哪些数据库元素在易失性存储器中被镜像的技术,该申请全部内容通过引用并入本文。
无论系统如何确定待镜像元素,都有可能先前被选择为待镜像元素的元素不再被选为待镜像元素。这种元素从易失性存储器中被逐出,以便为新选择的待镜像元素释放空间。一旦元素已经从易失性存储器中被逐出,对该元素中的数据项的后续请求就必须以持久格式获得数据项。以持久格式获得数据项可以涉及从盘读取数据项,或者访问先前已加载到缓冲区高速缓存中的盘块的副本。以镜像格式访问数据项的镜像副本不再可能,因为镜像副本已从易失性存储器中被逐出,以便为当前选择的待镜像元素腾出空间。
因此,使用常规技术,元素的数据项通常以镜像格式从非常快的存储装置(易失性存储器)可用,或者仅以持久格式(从盘或高速缓存)可用。对于具有一个或多个存储层(这一个或多个存储层具有在易失性存储器和磁盘之间的性能特性)的系统,这种对数据进行镜像的全有或全无(all-or-nothing)做法是低效的。
本节中描述的做法是可以追求的做法,但不一定是先前已经构想或追求的做法。因此,除非另有说明,否则不应当假定本节中描述的任何做法仅仅因为它们被纳入本节中就符合作为现有技术。
附图说明
在附图中:
图1是根据实施例的、其中服务器节点和存储系统二者都具有多层存储装置的计算机系统的框图;
图2是图1的计算机系统的框图,其中存储器内单元已经响应于从DRAM中被逐出而被移动到NVRAM;
图3是图2的计算机系统的框图,其中存储器内单元已经响应于从NVRAM中被逐出而被移动到NVMe FLASH(NVMe闪存);
图4是图3的计算机系统的框图,其中存储器单元已经响应从NVMe FLASH中被逐出而被转储(flush)到盘;
图5是其中服务器节点仅具有易失性存储器并且存储系统具有四层存储装置的计算机系统的框图;
图6是示出根据实施例的、当查询被接收时可能不在易失性存储器中的IMU如何被用于处理该查询的流程图;以及
图7是根据实施例的、可以被用于实现本文描述的技术的计算机系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节,以提供对本发明的透彻理解。然而,将认识到的是,本发明可以在没有这些具体细节的情况下实践。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地模糊本发明。
一般概述
本文描述的技术不是采用全有或全无做法来对数据进行镜像,而是涉及将镜像格式数据存储在不同的存储层。随着时间的流逝并且变得有必要将存储来自特定组块的镜像格式数据的IMU从特定级别的存储装置逐出时,该IMU被移动到较低级别的存储层中,而不是被完全删除。因此,镜像格式的IMU的副本继续存在,但与从IMU获得数据相关联的开销增加。然而,增加的开销仍然显著低于当对应的组块再次被大量访问时在易失性存储器中从头开始重建该组块的镜像格式IMU所需的开销。
除了在多个存储级别之间移动镜像格式的IMU之外,还提供了用于初始地将IMU预先加载到低于DRAM的存储级别的技术。例如,当发生加载-触发事件以使得IMU被初始地构建和加载时,可以在DRAM存储级别和NVRAM存储级别二者中都创建IMU。特定IMU的DRAM级别副本可以被使用直至被逐出。在该IMU从DRAM中被逐出之后,IMU的NVRAM副本仍然存在。当下一次数据库服务器需要IMU时,可以简单地将IMU从NVRAM复制到DRAM。将IMU从NVRAM复制到DRAM的处理比基于从盘获得的持久格式数据在DRAM中重建IMU要快几个数量级。
通过将镜像格式IMU预先加载到低于(即,慢于)DRAM级别的存储级别中,可以在数据库系统内维护数量明显更多的镜像格式IMU。这尤其是对的,因为这种较低的存储层可以比DRAM便宜得多。因此,让数据库系统在这些较低级别具有显著更多的可用存储在经济上是可行的。
还提供了将创建和使用IMU的功能推送到存储系统的技术。当数据库服务器使用例如美国专利No.8,825,678中描述的技术(该专利的全部内容通过引用并入本文)将工作推送到存储系统时,存储系统维护的IMU的可用性可以显著提高查询处理的性能。
具体而言,存储系统可以将数据库对象的组块预先加载到存储系统自己的任何一个存储层中的IMU中。然后,数据库服务器实例可以将更高级别的数据库操作(包括但不限于扫描/过滤和聚集操作)传送到存储系统,并让存储系统使用在其自己的存储器中加载的IMU来执行这些操作所需的一些或全部工作。例如,假设表T1的盘上版本存储以行为主的格式的数据。当表T1被大量使用时,存储系统可以以列为主的格式将包含来自表T1的列c1的值的IMU预先加载到它自己的易失性存储器中。然后,数据库服务器实例可以指示存储系统处理涉及列c1的过滤条件。为了处理该过滤条件,存储系统可以使用该IMU,而不是基于从表T1的盘上副本读取的以行为主的数据来执行操作。
当存储系统需要从存储系统的易失性存储器中逐出IMU时,存储系统可以首先将该IMU复制到存储系统内的较低存储层(诸如NVMe FLASH)。因此,当再次需要该镜像格式的IMU时,存储系统可以简单地将该IMU从其NVMe FLASH复制到其DRAM,而不是从头开始重建IMU。
使用本文描述的技术,可以使用较大较慢的存储层来处理(cover against)存在选择性列高速缓存时的突然性能恶化。例如,如果数据库管理员(DBA)已经通过有选择地对热列(hot column)进行高速缓存来优化系统的DRAM资源,那么使用其它不太常用的列的查询可以使用从较慢的存储层临时取回到DRAM中的列式数据。
对于通常由于Java访问层(SerDe)而处理缓慢的Hadoop数据,Hadoop拆分的列式高速缓存带来的好处甚至更大。在这种情况下,可以将列式高速缓存写入最慢的分层存储层:硬盘。这既是由于Hadoop数据存储库上的通常庞大的尺寸,又是由于相对性能益处依然巨大。
具有多个IMU存储层的数据库系统
图1是包括多个存储层的数据库系统的框图。参考图1,数据库系统包括两个节点(节点1和2)。节点1具有三个服务器侧存储层:DRAM 104、NVRAM 116和NVMe FLASH 124。类似地,节点2具有三个服务器侧存储层:DRAM 164、NVRAM 176和NVMe FLASH 184。
这些服务器侧存储层中的每一个都可以被用于存储IMU。具体而言,在节点1内,DRAM 104用于存储DRAM级别IMU 110(IMU 112和114),NVRAM 116用于存储NVRAM级别IMU118(IMU 120),并且NVMe FLASH 124用于存储NVMe级别IMU 126(IMU 128)。类似地,在节点2内,DRAM 164用于存储DRAM级别IMU 170(IMU 172和174),NVRAM 176用于存储NVRAM级别IMU 178(IMU 180),并且NVMe FLASH 184用于存储NVMe级别IMU 186(IMU 188)。
节点1和2二者都可以访问存储系统132,存储系统132包括持久性地存储由数据库系统管理的数据库的盘160。在图1中所示的实施例中,存储系统132包括四个存储装置侧存储层:DRAM 134、NVRAM 142、NVME FLASH 150和盘160。类似于节点1和2中的层,存储系统132中的层可以用于存储IMU。具体而言,在存储系统132内,DRAM 134用于存储DRAM级别IMU136(IMU 138和140),NVRAM 142用于存储NVRAM级别IMU 144(IMU 146),并且NVMe FLASH150用于存储NVMe级别IMU 152(IMU 154)。盘160也可以存储镜像格式的IMU,如下文中将更详细描述的那样。
处理器102表示正在节点1内执行数据库服务器实例106的一个或多个处理器。处理器162表示正在节点2内执行数据库服务器实例166的一个或多个处理器。数据库服务器实例106和166二者都管理存储在盘160上的包括表T1的数据库。由数据库服务器实例106从盘160读取的持久格式数据块可以临时存储在缓冲区高速缓存108中。类似地,由数据库服务器实例166从盘160读取的持久格式数据块可以临时存储在缓冲区高速缓存168中。
在逐出后沿存储层向下推送IMU
在从设备的存储层中逐出IMU后,可以将该IMU移动到同一设备中的较低存储层。因此,逐出节点1的DRAM 104中的IMU可以使该IMU移动到节点1内的另一个存储层(NVRAM116或NVMe FLASH 124)。类似地,逐出存储系统132的DRAM 134中的IMU可以使该IMU移动到存储系统132的另一个存储层(NVRAM 142、NVMe FLASH 150或盘160)。
为了解释的目的,将假定镜像格式是以列为主,并且来自表T1的数据项被镜像在初始地加载到节点1的DRAM 104中的存储器内单元IMU 112中,如图1中所示。当将IMU 112从DRAM 104中逐出以便为被更大量使用的数据腾出空间时,IMU 112可以被传送到仍然比磁盘快的不同存储层(诸如NVRAM 116)。图2是图示其中IMU 112已经从DRAM 104中被逐出并复制到NVRAM 116中以便为新加载的IMU 200腾出空间的情况的框图。
当IMU 112存储在NVRAM 116中时,要访问来自表T1的数据项的请求可以使IMU112从NVRAM 116被复制回DRAM 104中。一旦回到DRAM 104中,IMU 112就可以被用于处理数据库请求。将IMU 112从NVRAM 116复制到DRAM中并且然后从DRAM 104访问IMU 112可以比从头开始在DRAM 104中重建IMU 112或者从磁盘(或从对应盘块的经高速缓存的副本)读取以行为主的格式的表T1的数据项显著更快。
根据一个实施例,将IMU 112从NVRAM 116复制到DRAM 104中不会使IMU 112从NVRAM 116中被移除。因此,当IMU 112再次从DRAM 104中被逐出时,IMU 112不需要被再次复制到NVRAM 116中,因为IMU 112的副本仍然驻留在NVRAM 116中。
如果在稍后的时间点要从NVRAM 116中逐出IMU 112以便在NVRAM 116中为被更大量使用的IMU腾出空间,那么可以将IMU 112移动到较慢的存储层(例如,NVMe FLASH 124)。图3是图示其中IMU 112已经从NVRAM 116中被逐出并复制到NVMe FLASH 124中以便为IMU300腾出空间的情况的框图。
当IMU 112被存储在NVMe FLASH 124中时,要访问来自表T1的数据项的请求可以使IMU 112从NVMe FLASH 124被复制到DRAM 104中。一旦在DRAM 104中,IMU 112就可以被用于处理数据库请求。将IMU 112从NVMe FLASH 124复制到DRAM中并且然后从DRAM 104访问IMU 112可以比从头开始在DRAM 104中重建IMU 112或者从磁盘(或从对应盘块的经高速缓存的副本)读取以行为主的格式的表T1的数据项显著更快。
最后,如果要从NVMe FLASH 124中逐出IMU 112以便在NVMe FLASH 124中为被更大量使用的IMU腾出空间,那么可以简单地删除/覆写IMU 112,从而迫使将来要访问来自表T1的数据项的请求从磁盘160上(或从缓冲区高速缓存108中对应持久格式的盘块的高速缓存副本)的表T1读取以行为主的格式的数据。
可替代地,在从NVMe FLASH逐出后,IMU 112可以被传送到以行为主的数据(表T1)驻留在其上的同一存储层(例如,磁盘160)。图4是图示其中IMU 112已经从NVMe FLASH 124中被逐出并被复制到盘160以便为IMU 400腾出空间的情况的框图。
如图4中所示,当相同数据的以行为主格式形式和镜像格式形式二者都在同一层上时,将不会实现存储访问速度的改进。然而,对于某些类型的操作,使用镜像格式数据可以导致更高效的查询处理。例如,在查询涉及包含数百个列的表的仅单个列(或列组)的情况下,从盘160检索包含仅针对那列(或列组)的列向量的IMU可以导致显著更快的查询处理,即使该IMU与用于该表的以行为主的数据存储在同一存储层中。因此,响应于查询,数据库系统可以将IMU 112从盘160加载到DRAM 104中,并且使用IMU 112来处理该查询。因为IMU 112不需要从头开始重建并且IMU 112是镜像格式的,所以,与当从NVMe FLASH 124逐出时IMU 112的副本未存储到盘160时相比,许多查询可以被更快地处理。
因此,这种新做法跨多种存储类型来进行IMU的高速缓存,这些存储类型具有递增的资源可用性但具有依次更慢的性能:
DRAM->NVRAM->NVMe FLASH->盘。
基于使用来沿存储层向上推送IMU
在上面给出的示例中,IMU 112沿各个存储层逐渐向下迁移,以便为被更大量访问的数据腾出空间。然而,在任何时间点,IMU 112中的数据的访问频率可能增加到数据库系统确定IMU 112应当在存储层级中向上移动的地步。例如,当IMU 112被存储在NVME FLASH124上时,IMU 112的访问频率可以增加到数据库服务器实例106确定IMU 112应当移动到NVRAM 116的地步。将IMU 112移动到NVRAM 116可以具有从NVRAM 116中逐出不同IMU(例如,IMU 120)的后果。然后,被逐出的IMU 120可以向下移动到NVMe FLASH 124。
多层跳跃
在上面给出的示例中,IMU在存储层中一次上移一个级别,或者在存储层中一次下移一个级别。然而,IMU的访问频率可以改变使得IMU一次向上或向下跳跃多个层。例如,之前很少被访问以至于根本没有被镜像的数据可以开始被大量访问。在这些情况下,在易失性存储器中创建IMU时,不是将IMU复制到NVMe FLASH层,而是可以将IMU复制到NVRAM层(由此跳过NVMe FLASH层)。
以类似的方式,IMU在易失性存储器中的访问频率可以降低,使得在从DRAM 104逐出时,IMU直接移动到NVMe FLASH层(由此跳过NVRAM层)、移动到盘,或者被删除而不移动到任何地方(只留下对应的盘上的以行为主的数据)。
存储系统内的层间移动
在上述示例中,IMU 112沿着节点1的存储层向下移动以便为被更频繁访问的数据腾出空间,并随着其访问频率增加而沿着节点1的存储层向上移动。以类似的方式,IMU可以在存储系统132的存储装置侧的多个层之间移动。具体而言,从较快的存储装置被逐出的IMU可以移动到较慢的存储装置,并且较慢的存储装置中的IMU可以响应于增加的访问频率而移动到较快的存储装置。
搜索数据
因为本文的技术允许IMU存在于多个存储层中的任何一个上,因此对数据项的请求可以触发对于对应IMU的搜索。具体而言,在一个实施例中,当表或分区被标记为用于列式高速缓存并且表扫描驱动程序没有在DRAM高速缓存中找到用于数据的IMU时,它检查该IMU在NVRAM高速缓存中的存在,并且如果不在那里,那么然后在NVMe FLASH高速缓存中检查。如果在那些层中的任何一个中被找到,那么将该IMU从那个位置被复制到DRAM中。这允许将相同的列式格式和相同的列式优化应用于数据,而无需在DRAM中持续(constantly)维护IMU,从而,与全有或全无镜像做法相比,性能下降更平滑。如果数据未在列式高速缓存中找到并且被标记为用于存储器内高速缓存,那么从盘读取该组块,将其重新格式化为镜像格式并写入存储层。
IMU的多层创建
根据实施例,单个加载-触发事件可以导致在多个存储层中创建包含镜像格式的数据的相同IMU。具体而言,在响应于加载-触发事件而在DRAM中初始地建立IMU时,可以在一个或多个其它存储层中创建该IMU的副本。在其中创建IMU副本的其它(一个或多个)存储层可以(a)在用户生成的元数据中指示,或者(b)由数据库服务器基于包括使用统计信息在内的各种因素自动决定。例如,与特定数据库对象相关联的用户指定的元数据可以指示该对象是启用NVRAM的。在这些情况下,当在DRAM中为来自该对象的数据建立IMU时,还在NVRAM中创建该IMU的副本。类似地,将数据库对象标记为启用NVMe FLASH可以使得在DRAM和NVMe FLASH二者中都创建包含来自该数据库对象的数据的IMU。
如果数据库对象在没有指定的存储层的情况下是存储器内启用的,那么数据库服务器可以基于各种因素(包括访问统计信息)自动决定哪个层是适当的。例如,数据库服务器可以使得在DRAM和NVMe FLASH二者中创建包含不太被使用的数据的IMU,并且使得在DRAM和NVRAM二者中创建包含频繁使用的数据的IMU。包含最频繁使用的数据的新创建的IMU可以仅被维护在DRAM中,直到被逐出。如上面所解释的,在从DRAM逐出后,这些IMU可以被复制到较低的存储层。
替代配置
上面给出的示例涉及在服务器侧具有三个存储层(DRAM、NVRAM、NVMe FLASH)并且在存储装置侧具有四个存储层(DRAM、NVRAM、NVMe FLASH、磁盘)的系统。然而,本文描述的技术可以应用于具有至少两个存储层的任何系统。例如,即使在仅具有DRAM和磁盘存储装置的系统中,从RAM中逐出的IMU也可以被移动到磁盘,而不是简单地被删除。类似地,在创建时,可以在DRAM中和盘上都创建IMU的副本。
图5是图示仅具有一个服务器侧存储层的系统的框图。根据一个实施例,数据库对象可以被标记为在服务器存储器中或在存储装置存储器中。当对象被标记为“在服务器存储器中”时,节点1中的加载-触发事件将使得仅在DRAM 104中创建包含来自该对象的数据的IMU。另一方面,当对象被标记为“在存储装置存储器中”时,节点1中的加载-触发事件将使得在存储系统132的DRAM 134中创建包含来自该对象的数据的IMU。除了在DRAM 134中创建之外,加载-触发事件还可以使得在存储系统132内的其它层之一中创建IMU的副本。
例如,与表T1相关联的元数据可以指示“在存储装置存储器中”和“NVRAM级别”。基于这个元数据,用于表T1的加载-触发事件可以使得在DRAM 134和NVRAM 142二者中都创建具有来自表T1的数据的IMU。类似地,如果与表T1相关联的元数据指示“在存储装置存储器中”和“NVMe级别”,那么用于表T1的加载-触发事件将使得在DRAM 134和NVRAM 142二者中都创建具有来自表T1的数据的IMU。
如从以上给出的示例中可以明显看出的,与对象相关联的元数据可以指示(a)IMU将在哪个设备(服务器或存储装置)中被创建,以及(b)IMU在其中被创建的(一个或多个)层。甚至当IMU的较高层的副本被逐出时,IMU的较低层的副本也仍然存在。因此,在DRAM级别重新创建IMU仅涉及从较低级别的存储装置复制IMU,而不是从头开始重新创建IMU。
存储系统中基于IMU的操作
使用本文描述的技术,可以使IMU直接可被存储系统的处理单元访问。因此,创建和使用IMU来执行数据库操作的功能也被推送到存储系统。例如,如美国专利No.8,825,678中所述,当向数据集应用过滤器的任务被推送到存储系统时,存储系统132可以使用存储在DRAM 134中的IMU中的镜像格式数据来执行该任务。如果执行任务所需的IMU不在DRAM 134中,而是在存储系统132内的另一个存储层处,那么存储系统132将IMU从其驻留的存储层复制到DRAM 134,然后使用该IMU执行所请求的任务。应用过滤器仅仅是存储系统132使用DRAM 134中的IMU的任务的一个示例。然而,数据库服务器实例可以针对其使用镜像格式数据的任何任务都可以被推送到存储系统132,存储系统132现在可以直接访问存储在其任何存储层中的IMU中的镜像格式数据。
另外,当数据库服务器要求存储系统132执行可以利用镜像格式数据更高效地完成的任务时,如果所需的IMU不存在于任何存储装置侧存储层中,那么存储系统132本身可以创建所需的IMU。如上面所解释的,当在DRAM 134中创建IMU时,存储系统132可以同时在一个或多个其它存储装置侧存储层上创建IMU。因此,即使IMU可能随后从DRAM 134中被逐出,IMU也可以在将来需要时被快速复制回DRAM 134中。
查询处理示例
图6是示出根据实施例的、响应于接收查询而由计算机系统执行的步骤的流程图。参考图6,在步骤600处,系统接收数据库查询。为了解释的目的,将假设数据库服务器实例106接收到要求检索表T1的、其中列c1具有值“fred”的行的查询。在步骤602处,数据库服务器实例106的查询优化器确定可以通过使用包含用于列c1的列向量的IMU来最高效地处理该查询所需的过滤。
在步骤604处,数据库服务器实例106确定IMU是否已经被加载(在节点1中或者在存储系统132中)。如果IMU已经被加载,那么控制前进到步骤606,以确定哪个设备具有IMU。如果IMU在服务器(即,节点1)上被加载,那么控制转到步骤608。在步骤608处,确定IMU是否在服务器侧存储装置的DRAM层。如果是,那么在步骤610处,数据库服务器实例106使用DRAM104中的IMU来处理查询。
如果在步骤608处确定包含用于列c1的列向量的IMU当前不在DRAM中,那么在步骤612处,将IMU从该IMU所驻留的存储层复制到DRAM 104中。然后,在步骤610处,数据库服务器实例106使用DRAM 104中的IMU来处理查询。
如果在步骤606处确定所需的IMU被加载在存储系统132中而不是在节点1中,那么控制转到步骤630。在步骤630处,确定IMU是否在存储装置侧存储的DRAM层。如果是,那么在步骤624处,将执行过滤操作的任务推送到存储系统132,并且在步骤626中,存储系统132使用DRAM 134中的IMU来执行过滤操作。
如果在步骤630处确定包含用于列c1的列向量的IMU当前不在存储装置侧DRAM中,那么在步骤632处,将IMU从该IMU所驻留的存储装置侧存储层复制到DRAM 134中。然后,在步骤624处,将执行过滤操作的任务推送到存储系统132,并且在步骤626中,存储系统132使用DRAM 134中的IMU来执行过滤操作。
如果在步骤604处确定IMU既没有被加载在节点1中也没有被加载在存储系统132内,那么控制转到步骤614。在步骤614处,确定IMU应当加载在哪里。这个确定可以基于各种因素。例如,如上面所提到的,与表T1相关联的元数据可以指示IMU是要被加载在服务器侧还是被加载在存储装置侧。可替代地,数据库服务器实例106可以基于诸如以下的因素来确定哪个设备应当构建并加载IMU:
·其它节点访问该数据的频率如何,
·服务器与存储装置上的CPU负载,
·存储装置的占用率,
·数据有多“热”(频繁更新的数据优选地在服务器侧,以降低刷新的成本),
·访问模式(大型的长时间运行的查询优选地在存储装置上),
·各种存储器层的尺寸,以及
·设备的业务。
作为示例,如果节点2频繁地访问列c1,那么数据库服务器可以决定包含用于c1的列向量的IMU应当在存储系统132内被构建并使用。由于节点1和2二者都通过存储系统132访问数据,因此这两个节点都将受益于让存储系统132构建并使用IMU。另一方面,如果表T1被节点1排他性地使用,并且节点1具有大DRAM池,那么数据库服务器可以决定在节点1的DRAM 104中构建IMU。
如果确定要在服务器侧加载IMU,那么控制转到步骤616。在步骤616处,确定节点1的“目标层”。目标层是要在其中构建IMU的层。在一些情况下,DRAM 104可以是唯一的目标层。在其它情况下,目标层可以包括DRAM 104和节点1的其它存储层之一。例如,如果与表T1相关联的元数据指示用于列c1的IMU是启用NVRAM的,那么目标层是DRAM 104和NVRAM 116二者。在步骤618处,在目标层中构建IMU。在IMU已经被构建之后,在步骤610中,服务器使用IMU来处理查询。
除了目标层是存储装置侧存储层之外,步骤620和622类似于步骤616和618。一旦在存储装置侧目标层中创建了IMU,就将任务推送到存储系统(步骤624),并且存储系统使用在存储装置侧DRAM中创建了的IMU来执行该任务。在执行任务之后,存储系统可以将任务的结果以列式格式返回给服务器。服务器可以将这些结果作为IMU高速缓存在服务器机器内,并使用该IMU来处理后续查询。
硬件概述
根据一个实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行所述技术,或者可以包括诸如被永久性地编程以执行所述技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可以包括编程为按照固件、存储器、其它储存器或者其组合中的程序指令执行所述技术的一个或多个通用硬件处理器。这种专用计算设备还可以合并定制的硬连线逻辑、ASIC或FPGA与定制的编程来实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现所述技术的任何其它设备。
例如,图7是图示本发明的实施例可以在其上实现的计算机系统700的框图。计算机系统700包括总线702或者用于传送信息的其它通信机制,以及与总线702耦合的用于处理信息的硬件处理器704。硬件处理器704可以是例如通用微处理器。
计算机系统700还包括耦合到总线702用于存储信息和要由处理器704执行的指令的主存储器706(诸如随机存取存储器(RAM)或其它动态存储设备)。主存储器706还可以用于在要由处理器704执行的指令的执行期间存储临时变量或其它中间信息。当存储在处理器704可访问的非瞬态存储介质中时,这种指令使计算机系统700变成为执行指令中所规定的操作而定制的专用机器。
计算机系统700还包括只读存储器(ROM)708或者耦合到总线702的其它静态存储设备,用于为处理器704存储静态信息和指令。提供了存储设备710(诸如磁盘、光盘或固态驱动器),并且耦合到总线702,用于存储信息和指令。
计算机系统700可以经由总线702耦合到显示器712(诸如阴极射线管(CRT)),用于向计算机用户显示信息。输入设备714(包括字母数字和其它键)耦合到总线702,用于向处理器704传送信息和命令选择。另一种类型的用户输入设备是光标控制716(诸如鼠标、轨迹球或者光标方向键),用于向处理器704传送方向信息和命令选择并且用于控制显示器712上的光标运动。这种输入设备通常具有在两个轴(第一个轴(例如,x)和第二个轴(例如,y))中的两个自由度,这允许设备在平面内规定位置。
计算机系统700可以利用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术,这些与计算机系统相结合,使计算机系统700成为或者把计算机系统700编程为专用机器。根据本发明的一个实施例,本文的技术由计算机系统700响应于处理器704执行包含在主存储器706中的一条或多条指令的一个或多个序列而执行。这种指令可以从另一个存储介质(诸如存储设备710)读到主存储器706中。包含在主存储器706中的指令序列的执行使处理器704执行本文所述的过程步骤。在替代实施例中,硬连线的电路系统可以代替软件指令或者与其结合使用。
如在本文所使用的,术语“存储介质”指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态驱动器,诸如存储设备710。易失性介质包括动态存储器,诸如主存储器706。存储介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带,或者任何其它磁性数据存储介质,CD-ROM,任何其它光学数据存储介质,任何具有孔图案的物理介质,RAM、PROM和EPROM、FLASH-EPROM、NVRAM,任何其它存储器芯片或盒式磁带。
存储介质与传输介质不同但是可以与其结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线702的配线。传输介质还可以采取声或光波的形式,诸如在无线电波和红外线数据通信中产生的那些。
各种形式的介质可以参与把一条或多条指令的一个或多个序列携带到处理器704供执行。例如,指令最初可以在远端计算机的磁盘或固态驱动器上携带。远端计算机可以把指令加载到其动态存储器中并且利用调制解调器经电话线发送指令。位于计算机系统700本地的调制解调器可以在电话线上接收数据并且使用红外线发送器把数据转换成红外线信号。红外线检测器可以接收在红外线信号中携带的数据并且适当的电路系统可以把数据放在总线702上。总线702把数据携带到主存储器706,处理器704从该主存储器706检索并执行指令。由主存储器706接收的指令可以可选地在被处理器704执行之前或之后存储在存储设备710上。
计算机系统700还包括耦合到总线702的通信接口718。通信接口718提供耦合到网络链路720的双向数据通信,其中网络链路720连接到本地网络722。例如,通信接口718可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器,或者提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口718可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何此类实现中,通信接口718都发送和接收携带表示各种类型信息的数字信号流的电、电磁或光信号。
网络链路720通常通过一个或多个网络向其它数据设备提供数据通信。例如。网络链路720可以通过本地网络722提供到主计算机724或者到由互联网服务提供商(ISP)726操作的数据设备的连接。ISP 726又通过现在通常称为“互联网”728的全局分组数据通信网络提供数据通信服务。本地网络722和互联网728都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号以及在网络链路720上并通过通信接口718的信号是传输介质的示例形式,其中信号把数字数据带到计算机系统700或者携带来自计算机系统700的数字数据。
计算机系统700可以通过(一个或多个)网络、网络链路720和通信接口718发送消息和接收数据,包括程序代码。在互联网示例中,服务器730可以通过互联网728、ISP 726、本地网络722和通信接口718发送对应于程序的所请求代码。
所接收的代码可以在其被接收时由处理器704执行,和/或存储在存储设备710或其它非易失性储存器中,供随后执行。
在前面的说明书中,已经参考各种具体细节描述了本发明的实施例,这些细节可从因实现而异。因而,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。

Claims (34)

1.一种在包括持久性存储装置的存储层、易失性存储器的存储层以及一个或多个附加存储层的系统中使用的方法,包括:
以持久格式将数据集的持久格式副本存储在所述持久性存储装置上;
以镜像格式将所述数据集的第一镜像格式副本存储在所述一个或多个附加存储层当中的特定存储层中;
其中所述镜像格式不同于所述持久格式;
其中所述特定存储层具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速度;
响应于要求访问所述数据集的查询,执行以下步骤:
将所述第一镜像格式副本从所述特定存储层复制到所述易失性存储器,以在所述易失性存储器中创建第二镜像格式副本;以及
使用所述第二镜像格式副本来处理所述查询;并且
其中所述方法由一个或多个计算设备执行。
2.如权利要求1所述的方法,其中:
所述查询由在服务器机器上执行的数据库服务器实例接收;以及所述易失性存储器、所述特定存储层和所述持久性存储装置位于与所述服务器机器分开的存储系统中。
3.如权利要求2所述的方法,其中使用所述第二镜像格式副本来处理所述查询的步骤包括:
使所述数据库服务器实例将任务传送给所述存储系统;
所述存储系统将所述第一镜像格式副本复制到所述存储系统的所述易失性存储器;以及
所述存储系统使用所述第二镜像格式副本来执行所述任务。
4.如权利要求3所述的方法,还包括:所述存储系统以列式格式向所述数据库服务器实例返回所述任务的结果,并且所述数据库服务器实例将所述结果作为存储器内单元存储在所述服务器机器内。
5.如权利要求3所述的方法,其中所述任务是所述查询所需的过滤操作或聚集操作。
6.如权利要求2所述的方法,还包括:在所述数据集的任何镜像格式副本在所述存储系统中存在之前,所述存储系统通过在所述存储系统的至少两个存储层中构建所述数据集的镜像格式副本,来对加载-触发事件做出响应。
7.如权利要求6所述的方法,其中所述至少两个存储层包括所述易失性存储器以及性能比所述易失性存储器慢的至少一个固态存储层。
8.如权利要求1所述的方法,其中:
所述查询由在服务器机器上执行的数据库服务器实例接收;
所述易失性存储器和所述特定存储层位于所述服务器机器上;以及
所述持久性存储装置位于与所述服务器机器分开的存储系统中。
9.如权利要求8所述的方法,还包括:在所述数据集的任何镜像格式副本在所述服务器机器中存在之前,所述服务器机器通过在所述服务器机器的至少两个存储层中构建所述数据集的镜像格式副本,来对加载-触发事件做出响应。
10.如权利要求9所述的方法,其中所述至少两个存储层包括所述易失性存储器以及性能比所述易失性存储器慢的至少一个固态存储层。
11.一种在包括持久性存储装置的存储层、易失性存储器的存储层以及一个或多个附加存储层的系统中使用的方法,包括:
以持久格式将数据集的持久格式副本存储在所述持久性存储装置上;
基于来自所述持久格式副本的数据,以镜像格式在所述易失性存储器中构建所述数据集的第一镜像格式副本;
其中所述镜像格式不同于所述持久格式;
响应于所述第一镜像格式副本从所述易失性存储器中被逐出,将所述第一镜像格式副本从所述易失性存储器复制到特定存储层,以在所述特定存储层中创建第二镜像格式副本;
其中所述特定存储层是所述一个或多个附加存储层之一;
其中所述特定存储层具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速度;并且
其中所述方法由一个或多个计算设备执行。
12.如权利要求11所述的方法,其中:
所述持久性存储装置包含由在服务器机器上执行的数据库服务器实例管理的数据库;
所述数据集来自所述数据库中的表;以及
所述易失性存储器、所述特定存储层和所述持久性存储装置位于与所述服务器机器分开的存储系统中。
13.一种方法,包括:
在可操作地耦合到服务器机器的存储系统内进行以下操作,其中所述服务器机器正在执行管理数据库的数据库服务器实例:
以持久格式将数据集的持久格式副本存储在持久性存储装置上;以及
以镜像格式将所述数据集的镜像格式副本存储在所述存储系统的易失性存储器中;
其中所述数据集来自由所述数据库服务器实例管理的所述数据库中的表;
其中所述镜像格式不同于所述持久格式;
响应于由所述数据库服务器实例接收的要求访问所述数据集的查询,执行以下步骤:
使所述数据库服务器实例将任务传送到所述存储系统;以及
所述存储系统使用所述镜像格式副本来执行所述任务。
14.如权利要求13所述的方法,其中将所述数据集的所述镜像格式副本存储在所述易失性存储器中包括:在所述存储系统中,从具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速率的存储层复制所述镜像格式副本。
15.如权利要求13所述的方法,其中将所述数据集的所述镜像格式副本存储在所述易失性存储器中包括:由所述存储系统从所述持久格式副本构建所述镜像格式副本。
16.如权利要求15所述的方法,其中所述存储系统响应于单个事件而在所述存储系统的所述易失性存储器和另一个存储层二者中构建所述镜像格式副本,其中所述另一个存储层具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速率。
17.一种方法,包括:
在可操作地耦合到服务器机器的存储系统内,以持久格式在持久性存储装置上存储数据集的持久格式副本,其中所述服务器机器正在执行管理数据库的数据库服务器实例;
其中所述数据集来自由所述数据库服务器实例管理的所述数据库中的表;
响应于加载-触发事件,执行以下步骤:
读取与所述数据集相关联的元数据,以确定要在其中以镜像格式构建所述数据集的镜像格式副本的目标设备;
其中所述目标设备是所述存储系统和所述服务器机器之一;
其中所述镜像格式不同于所述持久格式;以及
使用从所述持久格式副本获得的数据,在所述目标设备的易失性存储器中构建所述镜像格式副本。
18.用于在包括持久性存储装置的存储层、易失性存储器的存储层以及一个或多个附加存储层的系统中使用的一个或多个非瞬态计算机可读介质,所述介质具有存储于其上的指令,所述指令在被执行时使得:
以持久格式将数据集的持久格式副本存储在所述持久性存储装置上;
以镜像格式将所述数据集的第一镜像格式副本存储在所述一个或多个附加存储层的特定存储层中;
其中所述镜像格式不同于所述持久格式;
其中所述特定存储层具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速度;
响应于要求访问所述数据集的查询,执行以下步骤:
将所述第一镜像格式副本从所述特定存储层复制到所述易失性存储器,以在所述易失性存储器中创建第二镜像格式副本;以及
使用所述第二镜像格式副本来处理所述查询。
19.如权利要求18所述的非瞬态计算机可读介质,其中:
所述查询由在服务器机器上执行的数据库服务器实例接收;以及
所述易失性存储器、所述特定存储层和所述持久性存储装置位于与所述服务器机器分开的存储系统中。
20.如权利要求19所述的非瞬态计算机可读介质,其中使用所述第二镜像格式副本来处理所述查询的步骤包括:
使所述数据库服务器实例将任务传送给所述存储系统;
所述存储系统将所述第一镜像格式副本复制到所述存储系统的所述易失性存储器;以及
所述存储系统使用所述第二镜像格式副本来执行所述任务。
21.如权利要求20所述的非瞬态计算机可读介质,其存储用于如下操作的指令:使所述存储系统以列式格式向所述数据库服务器实例返回所述任务的结果并且使所述数据库服务器实例将所述结果作为存储器内单元存储在所述服务器机器内。
22.如权利要求20所述的非瞬态计算机可读介质,其中所述任务是所述查询所需的过滤操作或聚集操作。
23.如权利要求19所述的非瞬态计算机可读介质,其存储用于如下操作的指令:在所述数据集的任何镜像格式副本在所述存储系统中存在之前,使所述存储系统通过在所述存储系统的至少两个存储层中构建所述数据集的镜像格式副本来对加载-触发事件做出响应。
24.如权利要求23所述的非瞬态计算机可读介质,其中所述至少两个存储层包括所述易失性存储器以及性能比所述易失性存储器慢的至少一个固态存储层。
25.如权利要求18所述的非瞬态计算机可读介质,其中:
所述查询由在服务器机器上执行的数据库服务器实例接收;
所述易失性存储器和所述特定存储层位于所述服务器机器上;以及
所述持久性存储装置位于与所述服务器机器分开的存储系统中。
26.如权利要求25所述的非瞬态计算机可读介质,其存储用于如下操作的指令:在所述数据集的任何镜像格式副本在所述服务器机器中存在之前,使得所述服务器机器通过在所述服务器机器的至少两个存储层中构建所述数据集的镜像格式副本来对加载-触发事件做出响应。
27.如权利要求26所述的非瞬态计算机可读介质,其中所述至少两个存储层包括所述易失性存储器以及性能比所述易失性存储器慢的至少一个固态存储层。
28.用于在包括持久性存储装置的存储层、易失性存储器的存储层以及一个或多个附加存储层的系统中使用的一个或多个非瞬态计算机可读介质,所述计算机可读介质存储指令,所述指令在被执行时使得:
以持久格式将数据集的持久格式副本存储在所述持久性存储装置上;
基于来自所述持久格式副本的数据,以镜像格式在所述易失性存储器中构建所述数据集的第一镜像格式副本;
其中所述镜像格式不同于所述持久格式;
响应于所述第一镜像格式副本从所述易失性存储器中被逐出,将所述第一镜像格式副本从所述易失性存储器复制到特定存储层,以在所述特定存储层中创建第二镜像格式副本;
其中所述特定存储层是所述一个或多个附加存储层之一;
其中所述特定存储层具有比所述易失性存储器慢并且比所述持久存储装置快的访问速度。
29.如权利要求28所述的非瞬态计算机可读介质,其中:
所述持久性存储装置包含由在服务器机器上执行的数据库服务器实例管理的数据库;
所述数据集来自所述数据库中的表;以及
所述易失性存储器、所述特定存储层和所述持久性存储装置位于与所述服务器机器分开的存储系统中。
30.一个或多个存储指令的非瞬态计算机可读介质,所述指令在被执行时使得:
在可操作地耦合到服务器机器的存储系统内执行以下操作,其中所述服务器机器正在执行管理数据库的数据库服务器实例:
以持久格式将数据集的持久格式副本存储在持久性存储装置上;以及
以镜像格式将所述数据集的镜像格式副本存储在所述存储系统的易失性存储器中;
其中所述数据集来自由所述数据库服务器实例管理的所述数据库中的表;
其中所述镜像格式不同于所述持久格式;
响应于由所述数据库服务器实例接收的要求访问所述数据集的查询,执行以下步骤:
使所述数据库服务器实例将任务传送到所述存储系统;以及
所述存储系统使用所述镜像格式副本来执行所述任务。
31.如权利要求30所述的非瞬态计算机可读介质,其中将所述数据集的所述镜像格式副本存储在所述易失性存储器中包括:在所述存储系统中,从具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速率的存储层复制所述镜像格式副本。
32.如权利要求30所述的非瞬态计算机可读介质,其中将所述数据集的所述镜像格式副本存储在所述易失性存储器中包括:由所述存储系统从所述持久格式副本构建所述镜像格式副本。
33.如权利要求32所述的非瞬态计算机可读介质,其中所述存储系统响应于单个事件而在所述存储系统的所述易失性存储器和另一个存储层二者中构建所述镜像格式副本,其中所述另一个存储层具有比所述易失性存储器慢并且比所述持久性存储装置快的访问速率。
34.一个或多个存储指令的非瞬态计算机可读介质,所述指令在被执行时使得:
在可操作地耦合到服务器机器的存储系统内,以持久格式在持久性存储装置上存储数据集的持久格式副本,其中所述服务器机器正在执行管理数据库的数据库服务器实例;
其中所述数据集来自由所述数据库服务器实例管理的所述数据库中的表;
响应于加载-触发事件,执行以下步骤:
读取与所述数据集相关联的元数据,以确定要在其中以镜像格式构建所述数据集的镜像格式副本的目标设备;
其中所述目标设备是所述存储系统和所述服务器机器之一;
其中所述镜像格式不同于所述持久格式;以及
使用从所述持久格式副本获得的数据,在所述目标设备的易失性存储器中构建所述镜像格式副本。
CN201680059389.4A 2015-10-22 2016-10-22 分层存储装置中的列式高速缓存 Pending CN108140048A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562245193P 2015-10-22 2015-10-22
US62/245,193 2015-10-22
US15/331,599 US10678788B2 (en) 2015-10-22 2016-10-21 Columnar caching in tiered storage
US15/331,599 2016-10-21
PCT/US2016/058329 WO2017070627A1 (en) 2015-10-22 2016-10-22 Columnar caching in tiered storage

Publications (1)

Publication Number Publication Date
CN108140048A true CN108140048A (zh) 2018-06-08

Family

ID=57219061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680059389.4A Pending CN108140048A (zh) 2015-10-22 2016-10-22 分层存储装置中的列式高速缓存

Country Status (4)

Country Link
US (1) US10678788B2 (zh)
EP (3) EP4209921A1 (zh)
CN (1) CN108140048A (zh)
WO (1) WO2017070627A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111241010A (zh) * 2020-01-17 2020-06-05 中国科学院计算技术研究所 一种基于缓存划分及回滚的处理器瞬态攻击防御方法
CN112740195A (zh) * 2018-08-06 2021-04-30 甲骨文国际公司 数据库系统中维护统计的技术

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11163781B2 (en) * 2019-01-14 2021-11-02 Sap Se Extended storage of text analysis source tables
CN110263002A (zh) * 2019-06-24 2019-09-20 北京小米移动软件有限公司 一种推送信息的存储、查询方法、装置及介质
US11334489B2 (en) * 2020-07-20 2022-05-17 Google Llc Elastic columnar cache for cloud databases
US11429397B1 (en) 2021-04-14 2022-08-30 Oracle International Corporation Cluster bootstrapping for distributed computing systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182359A (zh) * 2013-05-23 2014-12-03 杭州宏杉科技有限公司 一种缓存分配方法及装置
US20150046402A1 (en) * 2013-08-12 2015-02-12 International Business Machines Corporation Data backup across physical and virtualized storage volumes
CN104657378A (zh) * 2013-11-20 2015-05-27 青岛海信移动通信技术股份有限公司 一种文件缓存方法及装置

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1332631A (en) 1971-02-26 1973-10-03 Ibm Data processing system
SE8307228D0 (sv) 1983-12-30 1983-12-30 Grundstenen 16808 Ab Datakomprimering
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5487164A (en) 1993-09-14 1996-01-23 International Business Machines Corporation Distribution-based replacement selection sorting system
US5504890A (en) 1994-03-17 1996-04-02 Sanford; Michael D. System for data sharing among independently-operating information-gathering entities with individualized conflict resolution rules
US5778430A (en) 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US6044367A (en) 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US5870759A (en) 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US6009432A (en) 1998-07-08 1999-12-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
KR100372582B1 (ko) 2000-02-23 2003-02-17 가부시키가이샤 히타치세이사쿠쇼 데이터처리방법 및 시스템 및 그 처리프로그램을 기록한계산기판독이 가능한 기록매체
US20030046396A1 (en) 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US7237027B1 (en) 2000-11-10 2007-06-26 Agami Systems, Inc. Scalable storage system
US6961728B2 (en) 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US7149769B2 (en) 2002-03-26 2006-12-12 Hewlett-Packard Development Company, L.P. System and method for multi-destination merge in a storage area network
US7228354B2 (en) 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
JP3977698B2 (ja) 2002-07-05 2007-09-19 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US7370068B1 (en) 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
US7203691B2 (en) 2002-09-27 2007-04-10 Ncr Corp. System and method for retrieving information from a database
JP4318914B2 (ja) 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
US7103603B2 (en) 2003-03-28 2006-09-05 International Business Machines Corporation Method, apparatus, and system for improved duplicate record processing in a sort utility
WO2004090742A1 (en) 2003-04-03 2004-10-21 Commvault Systems, Inc. System and method for dynamically sharing storage volumes in a computer network
US7555497B2 (en) 2003-08-21 2009-06-30 Microsoft Corporation Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
US7155466B2 (en) 2003-10-27 2006-12-26 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US7349925B2 (en) 2004-01-22 2008-03-25 International Business Machines Corporation Shared scans utilizing query monitor during query execution to improve buffer cache utilization across multi-stream query environments
US8078607B2 (en) 2006-03-30 2011-12-13 Google Inc. Generating website profiles based on queries from webistes and user activities on the search results
US20060064405A1 (en) 2004-09-21 2006-03-23 Xiaoye Jiang Hybrid client-server protocol for fast writes to a file
WO2006037613A2 (en) 2004-10-04 2006-04-13 Clearpace Software Limited Method and system for implementing an enhanced database
US7499917B2 (en) 2005-01-28 2009-03-03 International Business Machines Corporation Processing cross-table non-Boolean term conditions in database queries
US7512625B2 (en) 2005-04-01 2009-03-31 International Business Machines Corporation Method, system and program for joining source table rows with target table rows
CA2837984C (en) * 2005-11-28 2021-11-16 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US7430553B2 (en) 2005-12-30 2008-09-30 Microsoft Corporation Managing states with delta pager
US7574560B2 (en) 2006-01-03 2009-08-11 Emc Corporation Methods, systems, and computer program products for dynamic mapping of logical units in a redundant array of inexpensive disks (RAID) environment
JP2008011403A (ja) 2006-06-30 2008-01-17 Toshiba Corp 受信装置および受信方法
US20080059492A1 (en) 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
US7797468B2 (en) 2006-10-31 2010-09-14 Hewlett-Packard Development Company Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
US7849073B2 (en) 2006-12-18 2010-12-07 Ianywhere Solutions, Inc. Load balancing for complex database query plans
US8706687B2 (en) 2007-01-24 2014-04-22 Hewlett-Packard Development Company, L.P. Log driven storage controller with network persistent memory
US8892780B2 (en) 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US8099565B2 (en) 2007-03-27 2012-01-17 The Board Of Regents Of The University Of Texas System Methods and devices for determining quality of services of storage systems
US7761425B1 (en) 2007-03-29 2010-07-20 Symantec Corporation Low-overhead means of performing data backup
US7664866B2 (en) 2007-04-10 2010-02-16 Apertio Limited Sub-tree access control in network architectures
US7882304B2 (en) 2007-04-27 2011-02-01 Netapp, Inc. System and method for efficient updates of sequential block storage
US8782075B2 (en) 2007-05-08 2014-07-15 Paraccel Llc Query handling in databases with replicated data
US8671076B2 (en) 2007-05-08 2014-03-11 Bmc Software, Inc. Database recovery using logs applied to consistent copies
US7698272B2 (en) 2007-08-30 2010-04-13 International Business Machines Corporation Apparatus, system, and method for deterministic file allocations for parallel operations
CN101425039A (zh) 2007-11-02 2009-05-06 鹏智科技(深圳)有限公司 控制存储装置文件拷贝的电子设备及方法
US7979399B2 (en) 2008-06-10 2011-07-12 International Business Machines Corporation Database journaling in a multi-node environment
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
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
EP2350875A1 (en) 2008-09-19 2011-08-03 Oracle International Corporation Storage-side storage request management
JP4659888B2 (ja) 2009-02-13 2011-03-30 株式会社日立製作所 データベース処理システム、計算機及びデータベース処理方法
US10152504B2 (en) 2009-03-11 2018-12-11 Actian Netherlands B.V. Column-store database architecture utilizing positional delta tree update system and methods
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8583692B2 (en) 2009-04-30 2013-11-12 Oracle International Corporation DDL and DML support for hybrid columnar compressed tables
US20100325352A1 (en) 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
US8204892B2 (en) 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8868510B2 (en) 2009-12-03 2014-10-21 Sybase, Inc. Managing data storage as an in-memory database in a database management system
US8433684B2 (en) 2010-03-30 2013-04-30 Sybase, Inc. Managing data backup of an in-memory database in a database management system
US8793328B2 (en) * 2010-12-17 2014-07-29 Facebook, Inc. Distributed storage system
US8880508B2 (en) 2010-12-30 2014-11-04 Sap Se Processing database queries using format conversion
US20120323971A1 (en) 2011-06-14 2012-12-20 Sybase, Inc. Optimizing data storage and access of an in-memory database
US9122606B2 (en) 2011-11-21 2015-09-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for distributing tiered cache processing across multiple processors
US8918436B2 (en) 2011-12-22 2014-12-23 Sap Ag Hybrid database table stored as both row and column store
JP5826114B2 (ja) 2012-05-25 2015-12-02 クラリオン株式会社 データ解凍装置、データ圧縮装置、データの解凍プログラム、データの圧縮プログラム、及び、圧縮データ配信システム
US20140040218A1 (en) 2012-07-31 2014-02-06 Hideaki Kimura Methods and systems for an intent lock engine
US8856484B2 (en) 2012-08-14 2014-10-07 Infinidat Ltd. Mass storage system and methods of controlling resources thereof
GB2505185A (en) 2012-08-21 2014-02-26 Ibm Creating a backup image of a first memory space in a second memory space.
US10579634B2 (en) * 2012-08-30 2020-03-03 Citus Data Bilgi Islemleri Ticaret A.S. Apparatus and method for operating a distributed database with foreign tables
US20140075493A1 (en) 2012-09-12 2014-03-13 Avaya, Inc. System and method for location-based protection of mobile data
US9390129B2 (en) * 2013-01-30 2016-07-12 Oracle International Corporation Scalable and adaptive evaluation of reporting window functions
US10296462B2 (en) * 2013-03-15 2019-05-21 Oracle International Corporation Method to accelerate queries using dynamically generated alternate data formats in flash cache
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US9251210B2 (en) 2013-04-19 2016-02-02 Oracle International Corporation Caching external data sources for SQL processing
US20150088919A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Transforming a query to reuse stored data
US9128972B2 (en) 2013-09-21 2015-09-08 Oracle International Corporation Multi-version concurrency control on in-memory snapshot store of oracle in-memory database
US9292564B2 (en) * 2013-09-21 2016-03-22 Oracle International Corporation Mirroring, in memory, data from disk to improve query performance
US9606921B2 (en) 2013-09-21 2017-03-28 Oracle International Corporation Granular creation and refresh of columnar data
US9323799B2 (en) 2013-09-21 2016-04-26 Oracle International Corporation Mechanism to run OLTP workload on in-memory database under memory pressure
US9715353B2 (en) * 2014-09-16 2017-07-25 International Business Machines Corporation Data set management
US9952782B1 (en) 2014-12-30 2018-04-24 Nutanix, Inc. Method and system for accessing data between different virtual disk formats in a virtualization environment
US9922114B2 (en) * 2015-01-30 2018-03-20 Splunk Inc. Systems and methods for distributing indexer configurations
US10192065B2 (en) 2015-08-31 2019-01-29 Commvault Systems, Inc. Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US20170166136A1 (en) 2015-12-09 2017-06-15 Charles Jones Document storage system
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182359A (zh) * 2013-05-23 2014-12-03 杭州宏杉科技有限公司 一种缓存分配方法及装置
US20150046402A1 (en) * 2013-08-12 2015-02-12 International Business Machines Corporation Data backup across physical and virtualized storage volumes
CN104657378A (zh) * 2013-11-20 2015-05-27 青岛海信移动通信技术股份有限公司 一种文件缓存方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
于利胜等: "基于行存储模型的模拟列存储策略研究", 《计算机研究与发展》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112740195A (zh) * 2018-08-06 2021-04-30 甲骨文国际公司 数据库系统中维护统计的技术
CN111241010A (zh) * 2020-01-17 2020-06-05 中国科学院计算技术研究所 一种基于缓存划分及回滚的处理器瞬态攻击防御方法
CN111241010B (zh) * 2020-01-17 2022-08-02 中国科学院计算技术研究所 一种基于缓存划分及回滚的处理器瞬态攻击防御方法

Also Published As

Publication number Publication date
EP4209921A1 (en) 2023-07-12
EP4209922A1 (en) 2023-07-12
US20170116269A1 (en) 2017-04-27
WO2017070627A1 (en) 2017-04-27
EP3365811A1 (en) 2018-08-29
US10678788B2 (en) 2020-06-09
EP3365811B1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
CN108140048A (zh) 分层存储装置中的列式高速缓存
US10242050B2 (en) Database caching in a database system
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
US7430570B1 (en) Shadow directory structure in a distributed segmented file system
CN1517885B (zh) 关于利用原子性更新的中央高速缓冲存储器的方法和系统
US7797275B2 (en) System and method of time-based cache coherency maintenance in user file manager of object-based storage system
US20130232215A1 (en) Virtualized data storage system architecture using prefetching agent
CN108140040A (zh) 存储器中数据库的选择性数据压缩
CN106021381A (zh) 一种云存储服务系统的数据访问/存储方法及装置
US10503693B1 (en) Method and system for parallel file operation in distributed data storage system with mixed types of storage media
DE112012001302T5 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
JP2003122508A5 (zh)
CN103067433A (zh) 一种分布式存储系统的数据迁移方法、设备和系统
CN105138678A (zh) 一种地图瓦片数据的读取、分发方法及读取、分发系统
JPWO2004055675A1 (ja) ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
US20230259522A1 (en) Virtual database tables with updatable logical table pointers
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
CN104166661A (zh) 数据存储系统和数据存储方法
CN108369588A (zh) 数据库级别自动存储管理
CN107220248A (zh) 一种用于存储数据的方法和装置
Aishwarya et al. Efficient prefetching technique for storage of heterogeneous small files in Hadoop Distributed File System Federation
CN104956318B (zh) 用于在数据存储系统中实现存储的细粒度、可伸缩分配的方法和装置
CN115878625A (zh) 数据处理方法和装置及电子设备
EP3696688B1 (en) Locking based on categorical memory allocation
CN106649141A (zh) 一种基于ceph的存储交互装置及存储系统

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