当前位置: 首页 > 专利查询>诺宝公司专利>正文

数据库管理系统技术方案

技术编号:8539185 阅读:229 留言:0更新日期:2013-04-05 04:31
一种多用户、弹性的、按需的、分布式关系数据库管理系统。该数据库被划分为被称为原子的分布式对象。对于在一个位置处的原子的副本的任何改变被复制到包含那个原子的副本的所有其他位置。事务管理器操作成满足原子性、一致性、隔离性和持久性的属性。

【技术实现步骤摘要】
【国外来华专利技术】数据库管理系统
本专利技术总体上涉及数据库管理系统。更具体地,本专利技术涉及一种方法和设备,用于 实现多用户、弹性的、按需的分布式关系数据库管理系统,其特征在于原子性、性能和可扩 展性。
技术介绍
在过去这些年中,用于存储和检索消息的数据库的使用已经在大量的商业应用中 显现为重要的工具。初始,许多数据库系统在具有多个用户的单个服务器装置上操作。然 而,在过去这些年中,各种因素已经产生,它们要求数据库架构的基本特性改变。作为第一 因素,数据库存储要求已经变得极大。其次,试图访问这样的数据库的用户的数量也已经变 大。第三,用于检索具有最小的更新的相对稳定的数据的数据库的使用已经被替换为事务 处理。事务是必须整体完成的工作的单位。单个事务可以包括多个数据操纵。例如,单 个事务可以包括读取操作,随后是写入操作。近年来,大量的努力已经针对使得关系数据库 能够支持日益增长的事务处理的速率。现在通过限定ACID属性的标准来判断数据库,该ACID属性即原子性、一致性、隔 离性和持久性。原子性确保以其整体来完成所有的事务任务。一致性保证仅有效的数据被 写入数据库。隔离性保证其他操作在事务期间不能访问或“观看”在中间状态中的数据。持 久性保证一旦已经成功地处理了事务,则它不能被复原。一致性在多用户系统中特别重要,在多用户系统中,两个或更多的用户可能寻求 对于共享的易失性数据的同时访问。早期的多用户系统使用锁定操作来保证一致性。锁定 可以是排他的或写入的锁定或者是非排他的或读取的锁定,并且可以被应用到单独的记录 或被应用到页面。然而,当数据库在大小上已经增大时并且当事务速率已经提高时,用于管 理锁定的开销已经变得显著,并且在一些情况下已经变为禁止性的。多版本并发控制(MVCC)是用于保证同时性的替代处理。对于复杂数据库,MVCC可 以比锁定更有效。MVCC使用时间戳或增加的事务标识(ID)来串行化记录的不同版本。每 一个版本允许事务读取在时间戳或ID前的对象的最近版本。利用该控制方法,其他用户将 看不到例如对于记录的任何改变,直到提交了该改变。MVCC也消除了具有其他附加的开销 的锁定,并且建立了其中读取操作不能阻挡写入操作的系统。除了满足ACID测试之外,现在存在对于针对用户的连续可用性的要求。一些数 据库系统将一个计算机系统专用于事务处理,并且将另一个专用于决定支持和其他报告处 理。它们互连使得可以同时支持其他功能。随着数据库在大小和复杂度上增大,现有的数据 处理系统被替换为更强大的数据处理系统。用于适应于增长的另一种手段涉及复制系统, 其中,一个机器被指定为“头”机器,其使所有的复制机器保持同步。如果头机器故障,则处 理将那个功能分配给另一个复制机器。不同的复制机器可用于特定用户。该手段不是可扩 展的,因为所有的机器必须具有相同的能力。作为另一种手段,可以将多个自治数据库系统整合为单个“联合”数据库,该单个 “联合”数据库具有计算机网络,该计算机网络互连各个独立的数据库。联合数据库要求“中 间件”来将构成的数据库保持同步。这个“中间件”可以变得很复杂。当数据库大小增大 时,操作中间件所需要的资源可能施加足以使得整体系统性能变差的大的开销。“分区”是用于实现数据库的另一种手段,在该数据库中,逻辑数据库或其构成元 素被划分为不同的独立部分。在分布式数据库管理系统中,每一个分区可以在多个节点上 扩展。在给定节点的用户可以对于该分区执行局部事务。也可以通过形成较小的数据库或 通过分割仅一个表格的选择的元素来实现分区。对于分区存在两种一般的手段。在也被称为“分片”的水平分区中,将不同的行置 于不同的表格和不同的服务器中。一般,它们具有特定的共性,诸如邮政编码的范围或按照 范围划分为不同表格的姓。例如,第一数据库可能包括用于在范围A至M中的姓的所有记 录;第二数据库针对在范围N至Z中。作为一种形式的水平分区的分片涉及将数据库的行 定位在分离的服务器上。分片不计算在每一个表格中的行的数量,并且提高搜索性能。然 而,分片在应用级使用散列码,这使得其太难以实现。它也包含两阶段递交。分片的复杂性 使得其适合于特定应用,因为用于限定分片的基础被良好地限定。垂直分区包含创建具有较少的列并且在表格上分割列的表格。象联合数据库那 样,垂直分区需要中间件来确定如何将对于特定字段的任何请求路由到适当的分区。另外, 这些系统使用实现起来复杂的两阶段提交序列。在被称为“无共享”架构的又一种手段中,每一个节点是独立的和自给的。无共享 架构对于web发展是普及的,因为它可以简单通过以便宜的计算机的形式添加节点而向上 扩展。该手段在数据仓库应用中是普及的,在数据仓库应用中,更新趋向于比事务处理出现 得不频繁。然而,结合的处理在来自不同分区或机器的大数据集上很复杂。一些数据库系统被称为“分布式”系统。分布式系统的一种实现方式包含“簇”和 两个通信路径。高速因特网路径在簇之间承载数据。诸如锁定管理的各种控制功能需要高 速专用通信路径。虽然该手段解决了数据库的冗余和可用性问题,但是锁定管理如前所述 可能限制系统性能。在“全共享”系统中,超高速的通信使系统保持同步。然而,锁定管理可能要求大 量的带宽资源。为了避免这一点,这样的系统包含点到点的通信信道和很复杂的盘控制器。共同地,那些现有技术系统满足对于数据库系统的已知要求的一些而不是全部。 所需的是一种数据库架构,其是可扩展的、满足ACID属性原子性、一致性、隔离性和持久 性。也需要的是一种数据库系统,该数据库系统在因特网上操作而不需要专用高速通信路 径,该数据库系统提供事务处理并且在大的地理区域上可操作。
技术实现思路
因此,本专利技术的一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系统。本专利技术的另一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系 统,该数据处理系统是容错的。本专利技术的又一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系统,该数据处理系统具有高度的可用性。本专利技术的再一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系 统,该数据处理系统是独立于平台的。本专利技术的又一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系 统,该数据处理系统是原子的、一致的、隔离的和持久的。 本专利技术的又一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系 统,该数据处理系统在因特网上操作而不需要专用的高速通信路径。本专利技术的再一个目的是提供一种弹性的、可扩展的、按需的、分布式的数据处理系 统,该数据处理系统提供事务处理,并且适于在大的地理区域上实现。根据本专利技术的一个方面,一种使得用户能够与由数据和元数据构成的数据库交互 的数据库管理系统,包括其间具有通信路径的多个节点和永久存储器。每一个节点包括在 用户级处的高级输入和输出命令和在系统级处的输入和输出命令之间的接口,在系统级处 的输入和输出命令控制用于与所述数据库交互的操作序列,其中,响应于特定的系统级命 令,原子对象生成原子,每一个原子包含数据或元数据的指定片断,据此,原子的所有实例 集集体地限定在所述数据库中的所有所述元数据和数据。每一个节点另外包括用于在所 述系统中与每一个节点建立通信路径的通信控制;响应于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.03.18 US 61/315,3511.一种使得用户能够与由数据和元数据构成的数据库交互的数据库管理系统,所述系统包括A)多个节点,每一个节点包括i)在用户级处的高级输入和输出命令和在系统级处的输入和输出命令之间的接口,在系统级处的输入和输出命令控制用于与所述数据库交互的操作序列,其中,响应于特定的系统级命令,原子对象生成原子,每一个原子包含数据或元数据的指定片断,据此,原子的所有实例集集体地限定在所述数据库中的所有所述元数据和数据;ii)用于在所述系统中与每一个其他节点建立通信路径的通信控制;iii )响应于来自所述接口的系统命令而从选择的节点请求与查询相关但是在该节点中不存在的原子的副本的方法;iv)响应于来自另一个节点的对于原子的请求而复制所请求的原子以传送到该请求节点的方法,据此,仅完成查询所需的原子需要在任何给定的时间位于任何事务节点中;以及V)响应于在该节点处的原子中的改变而复制该原子以传送到在该原子所驻留的系统中的每一个其他节点的方法,B)连接到所述多个节点以在所有所述节点之间提供通信路径的装置,以及C)连接到所述通信装置以对于在原子中的信息提供永久存储器的装置,据此,在永久存储器中的原子的集合集体地包含在所述数据库中的所有所述数据和元数据。2.根据权利要求1所述的数据库管理系统,其中,所述原子对象的特定原子对象产生目录原子,所述目录原子跟踪在该节点处驻留的所有原子和具有所述驻留原子的每一个的副本的每一个节点的位置。3.根据权利要求2所述的数据库管理系统,其中,所述目录原子中的一个是在连接到所述系统的每一个节点中复制的主目录原子,其中,所述原子中的另一个是用于所述数据库的单个事务管理器原子,用于跟踪由所述接口启动的事务的进展,并且其中,所述主目录识别所述事务管理器原子的位置。4.根据权利要求3所述的数据库管理系统,其中,在所述用户级处的数据库包括具有记录和字段的命名的表格,并且根据至少一个命名的图式来操作,并且所述原子对象的其他原子对象产生i)用于包含字段的列表的每一个表格的表格原子,ii)图式原子,所述图式原子在图式和与该图式相关的命名的表格之间建立对应性,以及iii)数据库原子,所述数据库原子在所述数据库和所述命名的图式之间建立对应性。5.根据权利要求4所述的数据库管理系统,其中,在所述用户级处的所述数据库表格包括识别的记录,所述识别的记录包含字段和数据,其中,其他原子对象产生数据原子和记录状态原子,所述数据原子包含预定数量的数据记录,所述记录状态原子管理记录版本,并且其中,所述记录状态原子包括识别向该记录状态原子分配的所管理的数据原子的阵列、每一个记录版本的标识、以及对于每一个记录版本而言关于该版本和包含该版本的数据原子的位置的信息。6.根据权利要求5所述的数据库管理系统,其中,每一个数据原子另外包括在所述数据原子内的每一个记录的地址和长度以及所述数据记录。7.根据权利要求4所述的数据库管理系统,其中,在所述用户级处的数据库表格包括识别的大二进制对象,其中,其他原子对象产生包含大二进制对象的大二进制对象原子和大二进制对象记录状态原子,所述大二进制对象记录状态原子包括所有相关联的大二进制对象原子的列表和在所述大二进制对象原子中的大二进制对象的位置。8.根据权利要求7中所述的数据流管理系统,其中,每一个大二进制对象原子包括每一个大二进制对象的地址和长度以及所述大二进制对象。9.根据权利要求1所述的数据库管理系统,其中,每一个节点另外包括i)消息传送装置,用于响应于系统级命令而生成和接收预定义的消息,以及i i )用于选择所述通信路径中的一个来发送所述消息的装置。10.根据权利要求9所述的数据库管理系统,其中,每一个节点包括用于异步地测试每一个通信路径的效率的装置。11.根据权利要求10所述的数据库管理系统,其中,所述测试装置包括用于生成Ping消息并且接收ping确认消息以确定每一个通信路径的ping时间的装置。12.根据权利要求9所述的数据库管理系统,其中,所述消息传送装置包括用于将原子串行化为消息并且将消息去串行化为原子的装置,并且其中,在所选择的通信路径上异步地发送每一个消息。13.根据权利要求12所述的数据库管理系统,其中,在具有维持消息序列的控制的协议下发送消息。14.根据权利要求1所述的数据库管理系统,其中,单独的节点可以是活动的并且连接到所述系统,并且可以从所述系统断开,并且所述原子中的一个是主目录原子,所述主目录原子识别在所述系统中的每一个活动节点,并且在连接到所述系统的每一个节点中被复制,所述系统包括用于使得节点能够加入所述系统的装置,所述系统包括i )用于在加入的节点和所述活动的节点中的所选择的一个活动节点之间建立连接的装置,ii)在所述加入节点中的用于向所选择的节点请求连接的装置,iii)在所选择的节点中的用于更新其主目录原子以将所述加入的节点指示为活动的节点的装置,iv)在所选择的节点中的用于向所述加入的节点传送包括所选择的节点的标识的消息以及用于向在所述系统中的所有其他节点和永久存储器广播指示所述加入的节点的可用性的消息的装置,V)在所述加入节点中的用于通过从所选择的节点请求所述主目录原子的副本来响应于所述消息的装置,以及vi)在所选择的节点中的用于向所述加入的节点传送其更新的主目录原子的装置。15.根据权利要求14所述的数据库管理系统,其中,所述加入的节点包括用于响应于接收到所更新的主目录原子而响应于来自所述接口的请求来请求另外的原子的副本的装置。16.根据权利要求14所述的数据库管理系统,其中,所选择的节点向所有其他节点和向永久存储器广播所更新的主目录的可用性,并且每一个其他节点和永久存储器包括用于向所选择的节点确认其接收到所更新的主目录的装置。17.根据权利要求1所述的数据库管理系统,其中,在所述节点中的一个中的接口作出请求,所述请求要求新原子的产生,其中,所述原子对象的特定原子对象产生目录原子,所述目录原子跟踪在该节点处驻留的原子,所述节点中的所述一个另外包括i )在所述目录原子中,将响应于所述接口请求而跟踪所述新的原子,以使得所述目录原子创建没有内容的该新的原子并且将所述新的原子指定为用于该原子的主席的装置,ii)在所述目录原子中的向所述新的原子分配对象标识的装置,iii)在所述目录原子中的用于建立所述新的原子的状态的装置,所述状态指示没有所述新的原子的冗余的副本,并且所述新的原子不可用于其他节点,iv)在所述目录原子中的用于向在所述系统中的所有其他对应的目录原子广播所述新的原子的存在的装置,V)用于填充所述新的原子并且用于使得所述新的原子在所述系统上可用的装置。18.根据权利要求17所述的数据库管理系统,其中,永久存储器包括响应于所述新的原子的存储而向节点发送消息的装置,所述新的原子更新其状态以指示冗余副本的存在。19.根据权利要求1所述的数据库管理系统,其中,在所述节点中的一个中的接口对于仅在其他节点中存在的原子作出请求,并且其中,所述原子对象中的特定原子对象产生目录原子,所述目录原子跟踪在该节点和其他节点处驻留的原子,所述系统包括i)在所述请求目录原子中的响应于将响应于创建空的原子的接口请求而跟踪所请求的原子的接口请求的装置,ii)在所述请求目录原子中的用于建立选择最具响应性的节点并且从所述最具响应性的节点请求所述原子的副本的装置,iii)在所选择的节点中,用于向所述请求节点发送在对象消息中的所请求的原子的副本、以及用于向所述原子所在的其他节点广播所述原子的可用性的装置,iv)用于评估所接收到的对象消息的有效性、用于填充所述空原子以及用于向所选择的节点转发对象确认消息的装置。20.根据权利要求19所述的数据库管理系统,其中,所述选择的节点生成所有节点的中继器列表,所述中继器列表包含所请求的原子,所选择的节点将向所请求的原子转发从与该原子相关的其他节点到所述请求节点的消息。21.根据权利要求20所述的数据库管理系统,其中,接收所广播的对象可用消息的所述其他节点中的每一个包括用于向所选择的节点发送对象确认消息的装置,所述选择的节点包括用于响应于从另一个节点接收到每一个对象确认消息而更新所述中继器列表,以结束向所述请求节点的任何随后消息的中继。22.根据权利要求1所述的数据库管理系统,适于用以保证所述数据库的一致性的事务处理,其中,所述系统包括包含要提交的原子的第一节点、包括该原子的副本的至少一个其他节点和在永久存储器中包括的该原子的副本,所述系统包括i)在所述第一节点中的用于生成具有事务标识的提交前消息以传送到永久存储器的装置,ii)与永久存储器相关联的、用于响应于所述提交前消息而提交所述事务以及其后向所有的所述节点广播具有所述事务标识的提交消息的装置,iii)在所述第一和至少一个其他节点中的用于响应于接收到所述提交消息而更新所标识的事务的装置。23.一种使得用户能够与由数据和元数据构成的数据库交互的数据库管理系统,所述系统包括A)向用户提供对于所述数据库的访问的至少一个事务节点和维持所述整个数据库的档案的至少一个档案节点,每一个事务节点包括数据库请求引擎,所述数据库请求引擎提供在用户级处的高级输入和输出查询命令和在系统级处的输入和输出命令之间的接口,在系统级处的输入和输出命令控制用于与所述数据库交互的操作序列,其中,响应于特定的系统级命令,原子对象生成原子,每一个原子包含数据或元数据的指定片断,据此,原子的所有实例集集体地限定在所述数据库中的所有所述元数据和数据,B)...

【专利技术属性】
技术研发人员:詹姆斯·A·斯塔基
申请(专利权)人:诺宝公司
类型:
国别省市:

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

1