对ORACLE存储器中数据库的存储器中快照存储的多版本并行控制制造技术

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

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据库系统,并且更具体地,涉及在存储器中以一种格式镜像以另一种格式驻留在盘上的数据。
技术介绍
鉴于主存储器变得越来越便宜和越来越大,当数据被存储在存储器中时,需要新的数据格式来加快查询处理。现有的格式是为盘而设计的,并且当存储在存储器中(例如,在缓冲区高速缓存中)时,这些格式对于查询不是最优的。例如,对于数据库系统来说,将数据持久性地存储在“盘块”中是常见的。通常,在每个盘块内,数据以行为主的格式进行布置。即,一行中的所有列的值后面跟着用于下一行的所有列的值。为了提高性能,一些盘块可以在易失性存储器内的“缓冲区高速缓存”中进行高速缓存。从易失性存储器访问数据比从盘访问数据明显更快。但是,即使在易失性存储器内,数据仍然是以行为主的盘块格式,这对于某些类型的数据库操作不是最优的。与行为主的盘块相比,列状格式对于存储器中的查询处理具有许多吸引人的优点,诸如高速缓存局部性和压缩性。因此,一些数据库服务器现在采用新的表类型,用于以列为主的格式持久性地存储数据。在列为主的格式中,数据可以被读入到易失性存储器中,其中与数据以行为主的盘块存储时相比,它可以被用来更高效地处理某些查询。不幸的是,将以行为主的盘块持久性地存储数据的现有数据库迀移到使用新的列为主的表类型的任务不是简单的任务。此外,在执行这种迀移之后,对于可以在以行为主的盘块中存储的数据上更高效执行的查询类别来说,查询处理将变得较为低效。作为替代,一些数据库系统将数据保持在行为主的盘块中,但是采用列存储索引。列存储索引不取代现有的表,并且因此不需要将整个数据库迀移到新的表结构。相反,列存储索引更像作为传统的二级索引。例如,这种列存储索引仍然被持久保存到盘中。不幸的是,随着对通过其进行索引的数据执行更新,可能需要大量的开销来维护这种索引。作为还有的另一种替代,数据库可以被复制,其中数据库的第一副本用常规的行为主的盘块存储数据,而第二副本以列为主的格式存储数据。当数据库以这种方式进行复制时,利用行为主的数据最高效处理的查询可以被路由到第一副本,而利用列为主的数据最高效处理的查询可以被路由到第二副本。不幸的是,由于在被复制的系统之间发生的滞后,这种技术并不能很好地工作。具体而言,在任何给定的时间点,在其中一个副本处做出的一些改变将还没有被应用到另一个副本。因此,在复制机制中固有的滞后会导致不可预测的假像,并且有可能地,导致不正确的结果。此外,每个事务通常需要看见其自己的改变,甚至在那些改变已被提交之前。但是,数据库的改变通常直到改变已被提交时才被复制。因此,即使在另一个副本处的数据的格式可能对于一些操作是更高效的,事务也可能被限制为利用其中做出事务未提交的改变的副本。本节中描述的方法是可以实行的方法,但不一定是先前已被构思或实行的方法。因此,除非另外指出,否则不应当假定在本节中描述的任何方法仅仅凭其包括在本节中就有资格作为现有技术。【附图说明】在附图中:图1是根据实施例的、同时维护在易失性存储器中的镜像格式数据和在持久性存储装置上的持久性格式数据的数据库系统的框图;图2a是用于例子的表的框图;图2b是根据实施例的、用于表的数据项如何可以被同时以两种格式维护的框图,其中一种格式是存储器中(in-memory)格式;图3是示出根据实施例的、存储在易失性存储器中的与镜像格式数据结合的日志的框图;图4是示出根据实施例的、来自单个表的数据如何可以基于行的范围在MCU之间进行划分的框图;图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数据包括由数据库操作所需的数据,则数据库操作可以或者从存储器中MF数据或者从PF数据中被满足。MF数据镜像已经在PF数据中存在的数据。但是,虽然在MF数据中的所有项都是在PF数据中的对应项的镜像版本(尽管以不同的格式被组织),但是不是所有在PF数据中的项都需要在MF数据中被镜像。因此,MF数据可以是PF数据的子集。由于不是所有的PF数据都必须在MF数据中镜像,因此,在一些情况下,查询可能需要只能被PF数据满足的数据。例如,如果表具有列A、B和C,并且只有列A在MF数据中被镜像,则需要来自列B的值的查询必须从PF数据中获得那些值。但是,即使在那些情况下,MF数据仍然可以用于(a)满足查询的一部分,和/或(b)加快从PF数据中所需数据的检索。例如,MF数据可以用来识别必须从PF数据中检索的特定行。根据一种实施例,为了减少开销,不维护MF数据的盘上拷贝。在一种可替代的实施例中,MF的拷贝可以被存储,但不试图使MF数据的盘上拷贝与正在PF数据上执行的更新本文档来自技高网...

【技术保护点】
一种方法,包括:在持久性存储装置中维护数据库服务器可访问的数据库;其中数据库包括第一数据集合;在数据库服务器可访问的易失性存储器中维护第二数据集合;其中在第二数据集合中的每个数据项是在第一数据集合中的对应数据项的拷贝;其中第一数据集合和第二数据集合二者都具有特定数据项的拷贝;维护指示第二数据集合中的哪些数据项不再有效的位图;其中维护位图包括通过以下步骤对所述特定数据项的更新做出响应:更新所述特定数据项在所述第一数据集合中的拷贝;在不更新所述特定数据项在所述第二数据集合中的拷贝的情况下,在所述位图中设置与所述特定数据项对应的特定位,以指示所述特定数据项在所述第二数据集合中的拷贝无效。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:V·拉贾S·哈塞A·加内什V·玛瓦苏爽A·穆里克S·潘德森
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

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

1