当前位置: 首页 > 专利查询>SAP股份公司专利>正文

使用虚拟文件数据对象的列式数据库制造技术

技术编号:8682785 阅读:203 留言:0更新日期:2013-05-09 02:44
多个虚拟文件被实例化在列式数据库中。列式数据库包括列式数据存储器,该列式数据存储器将其中包含的数据表保存到多个虚拟文件。每个虚拟文件存储在物理数据存储器中,一部分虚拟文件可能短暂高速缓存于列式数据存储器和物理数据存储器中间的持久层中。每个虚拟文件包括用于储存数据记录的数据库对象。在列式数据库中使用虚拟文件来处理操作,以便由一个事务的操作引起的对虚拟文件的改变与由其它事务的操作引起的对相同虚拟文件的改变隔离。相关设备、系统、技术和物品也被描述。

【技术实现步骤摘要】

本文描述的主题涉及用于提供在列式(columnar)数据库中使用的虚拟文件数据对象的技术。
技术介绍
数据库能够执行包含相应数据的大量并发事务(concurrent transaction)。这些并发事务可能导致对相同数据(例如,数据记录等)的改变,这使得必须在这种事务之间进行数据隔离。
技术实现思路
在一个方面,多个虚拟文件被实例化在列式数据库中。列式数据库包括列式数据存储器,该列式数据存储器将其中包含的数据表保存到多个虚拟文件。每个虚拟文件存储在物理数据存储器中,一部分虚拟文件可能短暂高速缓存于列式数据存储器和物理数据存储器中间的持久层中。每个虚拟文件包括用于储存数据记录的数据库对象。在列式数据库中使用虚拟文件来处理操作,以便由一个事务的操作引起的对虚拟文件的改变与由其它事务的操作引起的对相同虚拟文件的改变隔离。当至少一个其它事务正在执行时,可以添加用于第一事务的至少一个数据记录。在第一事务提交之后,添加的至少一个数据记录可用于其它事务。当至少一个其它事务正在执行时,可以删减用于第二事务的至少一个数据记录,在第二事务提交之前,所述经删减的至少一个数据记录(即没有被删减的记录)可用于其它事务。每个虚拟文件可以存储在持久层中的一系列数据库页面中。数据库页面可以具有固定大小或可变大小。对相应开始数据库页面和相应结束数据库页面的引用可以存储在元数据中。对虚拟文件的最后重写记录的链接可以存储在元数据中,以便重写记录详细说明对虚拟文件做出的删减改变。元数据可以存储在容器目录中,该容器目录可以被访问以识别最新版本的虚拟文件。也描述包括持久存储在非短暂计算机可读介质上的计算机可执行指令的制品,当所述计算机可执行指令由计算机执行时,使计算机执行本文中的操作。相似地,也描述可包括处理器和耦合到处理器的存储器的计算机系统。存储器可暂时或持久地存储使处理器执行本文中描述的一个或多个操作的一个或多个程序。此外,用方法说明的操作可以由单个计算系统内的或分布在两个或多个计算系统中的一个或多个数据处理器来实现。本文描述的主题提供许多优点。例如,本文描述的虚拟文件提供依次允许数据库事务被正确处理的ACID(原子性、一致性、隔离性、持久性)属性,与此同时还由列式数据存储器提供对大量(数百万)虚拟文件的快速和可伸缩的访问。此外,实施分布式的列式数据库系统所需的各种特殊操作可以在虚拟文件上容易地实现。本文描述的主题的一个或多个变化的细节在下文的附图和说明中进行阐述。基于所述说明和附图以及基于权利要求,本文描述的主题的其它特征和优点将是显而易见的。附图说明图1是说明包括数据存储应用程序的系统的框图;图2是说明由列式数据库使用虚拟文件的过程流程图;图3是说明图1的系统的细节的框图;图4是说明当事务正在被并发执行时添加虚拟文件的框图;以及图5是说明当事务正在被并发执行时删减虚拟文件的框图。在各图中相同的参考符号表示相同的单元。具体实施例方式图1示出系统100的示例,其中可以包括可配置、链接在一个或多个网络上的一个或多个可编程处理器等的计算系统102执行数据存储应用程序104的一个或多个模块、软件组件等。数据存储应用程序104可以包括数据库、企业资源程序、分布式存储系统(例如,可以从美国加州的Sunnyvale的NetApp公司获得的NetApp Filer)等中的一个或多个。所述一个或多个模块、软件组件等可以是计算系统102的本地用户以及从网络连接110上的一个或多个客户端机器106访问计算系统102的远程用户可以访问的。由一个或多个第一模块生成的一个或多个用户接口屏幕可以经由本地显示器或经由与一个客户端机器106相关的显示器来显示给用户。数据存储应用程序104的数据单元可以短暂存储在持久层112(例如,页面缓冲器或其它类型的临时持久层),其可以例如经由输入/输出组件116来以存储页面的形式将数据写到一个或多个存储器114中。一个或多个存储器114可以包括被配置用于写数据以用于较长期存储的一个或多个物理存储介质或装置(例如,硬盘驱动器、持久性闪存、随机存取存储器、光介质、磁介质等)。应该注意到,存储器114和输入/输出组件116可以被归入计算系统102中,尽管在图1中它们显示在计算系统102之外。保留在较长期存储器114的数据可以被组织为页面,每个页面具有分配给它的规定数量的存储空间。在一些实施方式中,分配给每个页面的存储空间的数量可以是常量和固定的。然而,分配给每个页面的存储空间的数量可以变化的其它实施方式也在当前主题的范围内。图2是过程流程图200,其中在210,多个虚拟文件被实例化(instantiate)在列式数据库中。列式数据库包括列式数据存储器,该列式数据存储器将其中包含的数据表保存到多个虚拟文件。每个虚拟文件存储在辅助存储器中,每个虚拟文件中的一部分可以短暂高速缓存于在列式数据存储器和物理数据存储器中间的持久层中。此外,每个虚拟文件包括用于储存数据记录的数据库对象。在220中,在实例化了虚拟文件之后,在列式数据库中使用虚拟文件来处理操作,以便由一个事务的操作引起的对虚拟文件的改变与由其它事务的操作引起的对相同虚拟文件的改变隔离。图3显示和当前主题的一个或多个特征一致的软件体系结构300。可以实现在一个或多个硬件和软件中的数据存储应用程序104可以包括数据库应用程序、网络连接存储系统等中的一个或多个。根据当前主题的至少一些实施方式,这种数据存储应用程序104可以包括持久层112或其它类型的存储缓冲器,或者要不然例如经由持久接口 302与持久层112或其它类型的存储缓冲器连接。持久层112中的页面缓冲器304可以存储一个或多个逻辑页面306,并且可以可选地包括影子页面311、活动页面313和虚拟文件的数据页面315 (即,像文件一样起作用的数据对象)等。保留在持久层112中的逻辑页面306可以经由输入/输出组件116写到存储器(例如,较长期存储器等)114,输入/输出组件116可以是软件模块、用一个或多个软件和硬件实现的子系统等。存储器114可以包括一个或多个数据卷(volume) 310,其中以物理存储块来分配存储页面312。在一些实施方式中,数据存储应用程序104可以包括行存储器303和列存储器305。行存储器303可以包括页面管理器314和/或保存点管理器316,或者可以用别的方法与页面管理器314和/或保存点管理器316通信。页面管理器314可以与持久层112的页面管理模块320进行通信,所述模块可以包括监视页面状态信息324的空闲块管理器322,所述页面状态信息例如是存储器114中的物理页面以及持久层112 (以及可选地在页面缓冲器304)中的逻辑页面的状态。保存点管理器316可以与持久层204的保存点协调器326进行通信以处理保存点,所述保存点被用于在可能的崩溃之后创建一致的数据库持久状态以重新启动。行存储器303可以经由绝对(absolute)页面API 307来访问持久接口 302。可以在连续存储中存储列的列存储器305可以经由虚拟文件AP1309访问持久接口 302。在数据存储应用程序104的一些实施方式中,持久层112的页面管理模块可以实现影子页面调度。页面管理模块320中的空闲块管理器322可以保存本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201210433346.html" title="使用虚拟文件数据对象的列式数据库原文来自X技术">使用虚拟文件数据对象的列式数据库</a>

【技术保护点】
一种计算机程序产品,包括存储指令的非短暂的机器可读介质,当所述指令由至少一个可编程处理器执行时,使所述至少一个可编程处理器执行操作,所述操作包括:在列式数据库中实例化多个虚拟文件,所述列式数据库包括列式数据存储器,所述列式数据存储器将包含在其中的数据表保存到所述多个虚拟文件,每个虚拟文件存储在物理数据存储器中并且每个虚拟文件的一部分能够短暂地高速缓存在所述列式数据存储器和所述物理数据存储器中间的持久层中,所述每个虚拟文件包括用于存储数据记录的数据库对象;以及在所述列式数据库中使用所述虚拟文件来处理操作,其中由一个事务的操作引起的对虚拟文件的改变与由其它事务的操作引起的对相同虚拟文件的改变隔离。

【技术特征摘要】
2011.11.07 US 13/290,8661.一种计算机程序产品,包括存储指令的非短暂的机器可读介质,当所述指令由至少一个可编程处理器执行时,使所述至少一个可编程处理器执行操作,所述操作包括: 在列式数据库中实例化多个虚拟文件,所述列式数据库包括列式数据存储器,所述列式数据存储器将包含在其中的数据表保存到所述多个虚拟文件,每个虚拟文件存储在物理数据存储器中并且每个虚拟文件的一部分能够短暂地高速缓存在所述列式数据存储器和所述物理数据存储器中间的持久层中,所述每个虚拟文件包括用于存储数据记录的数据库对象;以及 在所述列式数据库中使用所述虚拟文件来处理操作,其中由一个事务的操作引起的对虚拟文件的改变与由其它事务的操作引起的对相同虚拟文件的改变隔离。2.根据权利要求1所述的计算机程序产品,其中所述操作进一步包括: 当至少一个其它事务正在执行时,添加用于第一事务的至少一个数据记录,在所述第一事务提交之后,所述添加的至少一个数据记录可用于其它事务。3.根据权利要求1所述的计算机程序产品,其中所述操作进一步包括: 当至少一个其它事务正在执行时,删减用于第一事务的至少一个数据记录,在所述第一事务提交之前,所述经删减的至少一个数据记录可用于其它事务。4.根据权利要求1所述的计算机程序产品,其中每个虚拟文件存储在所述持久层中的数据库页面链中。5.根据权利要求4所述的计算机程序产品,其中所述数据库页面具有固定大小。6.根据权利要求4所述的计算机程序产品,其中所述数据库页面具有可变大小。7.根据权利要求4所述的 计算机程序产品,其中所述操作进一步包括: 对于每个虚拟文件,将对相应开始数据库页面和相应结束数据库页面的引用存储在元数据中。8.根据权利要求7所述的计算机程序产品,其中所述操作进一步包括: 将对虚拟文件的最后重写记录的链接存储在元数据中,所述重写记录详细说明对所述虚拟文件做出的删减改变。9.根据权利要求8所述的计算机程序产品,其中所述操作进一步包括: 将所述元数据存储在容器目录中,所述容器目录被访问以识别最新版本的虚拟文件。10.一种方法,包括: 在列式数据库中实例化多个虚拟文件,所述列式数据库包括列式数据存储器,所述列式数据存储器将包含在其中的数据表保存到所述多个虚拟文件,每个虚拟文件存储在物理数据存储器中并且每个虚拟文件的一部分能够短暂地高速缓存在所述列式数据存储器和所述物理数据存储器中间的持久层中,所述每个虚拟文件包括用于存储数据记录的数...

【专利技术属性】
技术研发人员:I·施赖特T·格列布T·朔伊尔
申请(专利权)人:SAP股份公司
类型:发明
国别省市:

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

1