在存储器中镜像盘中的数据以提高查询性能制造技术

技术编号:13252433 阅读:102 留言:0更新日期:2016-05-15 15:42
提供了用于以一种格式持久性地维护数据,但是使该数据以多于一种的格式让数据库服务器可用的技术。例如,其中使数据可用于查询处理的格式之一是基于盘上格式,而其中使数据可用于查询处理的另一种格式独立于盘上格式。处于独立于盘格式的格式的数据可以专门在易失性存储器中进行维护,以减少使数据与数据的盘上格式拷贝保持同步相关联的开销。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据库系统,并且更具体地,涉及在存储器中以一种格式镜像以另一种格式驻留在盘上的数据。
技术介绍
鉴于主存储器变得越来越便宜和越来越大,当数据被存储在存储器中时,需要新的数据格式来加快查询处理。现有的格式是为盘而设计的,并且当存储在存储器中(例如,在缓冲区高速缓存中)时,这些格式对于查询不是最优的。例如,对于数据库系统来说,将数据持久性地存储在“盘块”中是常见的。通常,在每个盘块内,数据以行为主的格式进行布置。即,一行中的所有列的值后面跟着用于下一行的所有列的值。为了提高性能,一些盘块可以在易失性存储器内的“缓冲区高速缓存”中进行高速缓存。从易失性存储器访问数据比从盘访问数据明显更快。但是,即使在易失性存储器内,数据仍然是以行为主的盘块格式,这对于某些类型的数据库操作不是最优的。与行为主的盘块相比,列状格式对于存储器中的查询处理具有许多吸引人的优点,诸如高速缓存局部性和压缩性。因此,一些数据库服务器现在采用新的表类型,用于以列为主的格式持久性地存储数据。在列为主的格式中,数据可以被读入到易失性存储器中,其中与数据以行为主的盘块存储时相比,它可以被用来更高效地处理某些查询。不幸的是,将以行为主的盘块持久性地存储数据的现有数据库迁移到使用新的列为主的表类型的任务不是简单的任务。此外,在执行这种迁移之后,对于可以在以行为主的盘块中存储的数据上更高效执行的查询类别来说,查询处理将变得较为低效。作为替代,一些数据库系统将数据保持在行为主的盘块中,但是采用列存储索引。列存储索引不取代现有的表,并且因此不需要将整个数据库迁移到新的表结构。相反,列存储索引更像作为传统的二级索引。例如,这种列存储索引仍然被持久保存到盘中。不幸的是,随着对通过其进行索引的数据执行更新,可能需要大量的开销来维护这种索引。作为还有的另一种替代,数据库可以被复制,其中数据库的第一副本用常规的行为主的盘块存储数据,而第二副本以列为主的格式存储数据。当数据库以这种方式进行复制时,利用行为主的数据最高效处理的查询可以被路由到第一副本,而利用列为主的数据最高效处理的查询可以被路由到第二副本。不幸的是,由于在被复制的系统之间发生的滞后,这种技术并不能很好地工作。具体而言,在任何给定的时间点,在其中一个副本处做出的一些改变将还没有被应用到另一个副本。因此,在复制机制中固有的滞后会导致不可预测的假像,并且有可能地,导致不正确的结果。此外,每个事务通常需要看见其自己的改变,甚至在那些改变已被提交之前。但是,数据库的改变通常直到改变已被提交时才被复制。因此,即使在另一个副本处的数据的格式可能对于一些操作是更高效的,事务也可能被限制为利用其中做出事务未提交的改变的副本。本节中描述的方法是可以实行的方法,但不一定是先前已被构思或实行的方法。因此,除非另外指出,否则不应当假定在本节中描述的任何方法仅仅凭其包括在本节中就有资格作为现有技术。附图说明在附图中:图1是根据实施例的、同时维护在易失性存储器中的镜像格式数据和在持久性存储装置上的持久性格式数据的数据库系统的框图;图2a是用于例子的表的框图;图2b是根据实施例的、用于表的数据项如何可以被同时以两种格式维护的框图,其中一种格式是存储器中(in-memory)格式;图3是示出根据实施例的、存储在易失性存储器中的与镜像格式数据结合的日志的框图;图4是示出根据实施例的、来自单个表的数据如何可以基于行的范围在IMCU之间进行划分的框图;图5a是示出可以如何分配不同的数据库服务器实例来管理不同MF数据集合的框图,其中所述集合基于行的范围;图5b是示出可以如何分配不同的数据库服务器实例来管理不同MF数据集合的框图,其中所述集合基于列;图6是示出根据实施例的、存储改变行的位图和位改变的记录的SMU的框图;图7是示出根据实施例的、用于执行扫描操作的步骤的流程图;图8是示出根据实施例的、用于实现改变行的位图的结构的框图;及图9是示出可用来实现本文所述的技术的计算机系统的框图。具体实施方式在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本专利技术的透彻理解。但是,很显然,本专利技术可以在没有这些具体细节的情况下进行实践。在其它情况下,众所周知的结构和设备以框图的形式示出,以避免不必要地模糊本专利技术。总体概述不同数据格式具有不同的好处。因此,本文所描述的技术用于以一种格式持久性地维护数据,但是使该数据以多于一种的格式对数据库服务器可用。在一种实施例中,其中使数据可用于查询处理的格式中之一是基于盘上(on-disk)格式,而其中使数据可用于查询处理的另一种格式独立于该盘上格式。对应于盘上格式的格式在本文被称为“持久性格式”或“PF”。处于持久性格式的数据在本文被称为PF数据。独立于盘上格式的存储器中格式被称为“镜像格式”或“MF”。处于镜像格式的数据在本文被称为MF数据。例如,在一种实施例中,持久性格式是行为主的盘块,而镜像格式是列为主的格式。根据一种实施例,镜像格式完全独立于持久性格式。但是,MF数据初始地基于持久存储的PF数据,而不基于任何持久性MF结构在存储器中构建。由于不需要持久性MF结构,因此现有数据库的用户不需要将其现有数据库中的数据或结构迁移到另一种格式。因此,使用行为主的盘块的常规数据库系统可以继续使用那些盘块来持久存储其数据,而无需执行任何数据迁移,同时仍然获得由于具有在易失性存储器中可用的数据的列为主的表示而产生的性能益处。存储器中MF数据被维护为在事务上与PF数据一致。MF数据在事务上是一致的,因为从MF数据提供给事务的任何数据项将是如果数据项从PF数据提供的话将会被提供的同一版本。此外,那一版本反映了在事务的快照时间之前提交的所有改变,并且不反映在事务的快照时间之后提交的改变。因此,当提交对在MF数据中被镜像的数据项做出改变的事务时,使得该改变相对于PF数据和MF数据两者都可见。另一方面,如果做出改变的事务被中止或回滚,则该改变相对于PF数据和MF数据两者被回滚。在一种实施例中,确保PF数据的读和写之间的一致性的同一事务管理器也被用于确保MF数据的读和写之间的一致性。因为MF数据以在事务上一致的方式保持最新,因此,如果存储器中MF数据包括由数据库操作所需的数据,则数据库操作可以或者从存本文档来自技高网...

【技术保护点】
一种方法,包括:在持久性存储装置中维护数据库服务器可访问的数据库;其中数据库包括以持久性格式存储在持久性存储装置上的第一组数据;通过将第一组数据转换到镜像格式产生第二组数据;其中镜像格式与持久性格式不同并且独立于持久性格式;在数据库服务器可访问的易失性存储器中维护第二组数据;其中在第二组数据中的每个数据项是在第一组数据中的对应数据项的拷贝;在易失性存储器内,当数据库服务器执行对第一组数据做出改变的数据库操作时,数据库服务器维护第二组数据在事务上与第一组数据一致。

【技术特征摘要】
【国外来华专利技术】2013.09.21 US 61/880,852;2014.03.19 US 61/955,574;1.一种方法,包括:
在持久性存储装置中维护数据库服务器可访问的数据库;
其中数据库包括以持久性格式存储在持久性存储装置上的
第一组数据;
通过将第一组数据转换到镜像格式产生第二组数据;
其中镜像格式与持久性格式不同并且独立于持久性格式;
在数据库服务器可访问的易失性存储器中维护第二组数据;
其中在第二组数据中的每个数据项是在第一组数据中的对
应数据项的拷贝;
在易失性存储器内,当数据库服务器执行对第一组数据做出改变
的数据库操作时,数据库服务器维护第二组数据在事务上与第一组数
据一致。
2.如权利要求1所述的方法,还包括:
由数据库服务器接收执行需要驻留在第一组数据和第二组数据两
者中的一个或多个数据项的数据库命令的请求;
响应于接收到请求,数据库服务器确定是从第一组数据还是从第
二组数据获取用于执行数据库命令的所述一个或多个数据项将更高效;
响应于数据库服务器确定从第一组数据获取所述一个或多个数据
项将更高效,数据库服务器从第一组数据获取所述一个或多个数据项;

响应于数据库服务器确定从第二组数据获取所述一个或多个数据
项将更高效,数据库服务器从第二组数据获取所述一个或多个数据项。
3.如权利要求2所述的方法,其中:
在数据库内,属于第一组数据的数据项以特定顺序被存储;及
维护第二组数据的步骤包括,在易失性存储器内,以反映所述特

\t定顺序的方式排序属于第二组数据的数据项。
4.如权利要求1所述的方法,其中镜像格式是列为主的格式。
5.如权利要求4所述的方法,其中持久性格式是行为主的格式。
6.如权利要求2所述的方法,其中:
所述一个或多个数据项是第一组数据项;
所述数据库命令还需要驻留在第一组数据和第二组数据两者中的
第二组数据项;
所述数据库服务器确定从第一组数据获取第一组数据项更高效,
并且从第二组数据获取第二组数据项更高效;及
在所述数据库命令的执行期间,数据库服务器从第一组数据获取
第一组数据项,并且从第二组数据获取第二组数据项。
7.如权利要求2所述的方法,还包括:
在易失性存储器中维护处于持久性格式的数据项的高速缓存;及
所述数据库服务器至少部分地基于所述一个或多个数据项是否当
前驻留在高速缓存中,确定是从第一组数据还是从第二组数据获取所
述一个或多个数据项将更高效。
8.如权利要求1所述的方法,其中维护第二组数据在事务上与
第一组数据一致的步骤包括,通过记录存储在易失性存储器中的日志
的改变,隐式地对属于第二组...

【专利技术属性】
技术研发人员:J·卡普A·加内什V·玛瓦V·拉贾T·拉希里A·L·霍利维S·哈塞S·K·查万N·穆克尔杰T·H·李M·J·格莱森K·库恩切塔帕达姆
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1