当前位置: 首页 > 专利查询>伊姆西公司专利>正文

用于对数据库进行分区的方法和系统技术方案

技术编号:9899947 阅读:113 留言:0更新日期:2014-04-10 10:37
本发明专利技术涉及一种用于对数据库进行分区的方法和系统。其中,对数据库进行分区的方法,包括:将所述数据库中的多个条目分组成一个或多个条目组,以使同一个所述条目组中的条目总是被一个或多个事务同时访问;以及将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务总数最小化。通过本发明专利技术,可以获得有效、灵活、便利的数据库分区方法,极大地提高了系统性能。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种用于对数据库进行分区的方法和系统。其中,对数据库进行分区的方法,包括:将所述数据库中的多个条目分组成一个或多个条目组,以使同一个所述条目组中的条目总是被一个或多个事务同时访问;以及将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务总数最小化。通过本专利技术,可以获得有效、灵活、便利的数据库分区方法,极大地提高了系统性能。【专利说明】用于对数据库进行分区的方法和系统
本专利技术涉及数据库分区领域,更具体地,涉及面向事务型工作负载的数据库分区。
技术介绍
随着计算机和网络技术的不断发展,对数据库技术的要求也日益提升。随着在线事务处理应用(例如在线交易应用)的规模的不断扩大和用户量的不断提升,这些应用产生了越来越多的数据和越来越多高度并发的事务,从而扩展性成为影响这些系统发展的主要障碍。系统的扩展性不好,会对系统的性能和吞吐量产生严重的影响。为了解决扩展性的问题,许多基于Web的公司采用了经济有效的、并行的数据库管理系统(以下简称为DBMS)(例如Greenplum数据库),将数据和工作负载跨大量不共享任何内容的节点(例如商品服务器)进行分区。然而,在这些DBMS上的在线事务(transaction)处理(online transaction process,简称为0LTP)应用的可扩展性取决于最理想的数据库分区设计的存在:最理想的数据库分区设计限定了应用的数据和工作负载如何跨集群中的多个节点进行分区,以及对这些数据的查询和各项事务如何路由到多个节点。这转而确定了访问存储在各个节点上的事务的数量尤其是分布式事务的数量以及负载跨集群的分布的不均衡(skew)程度。对这两个因素进行优化对衡量复杂系统而言非常关键,如果没有恰当的设计,由于阻塞(blocking)、节点间通信以及负载平衡问题所引起的开销,DBMS的性能很可能并不好于单节点系统。
技术实现思路
针对上述问题,本专利技术提供一种用于对数据库进行分区的方法和系统。根据本专利技术的一个方面,提供一种对数据库进行分区的方法,包括:将所述数据库中的多个条目分组成一个或多个条目组,以使同一个所述条目组中的条目总是被一个或多个事务同时访问;以及将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务总数最小化。根据本专利技术的另一方面,提供一种对数据库进行分区的系统,包括:分组装置,被配置为将所述数据库中的多个条目分组成一个或多个条目组,以使同一个所述条目组中的条目总是被一个或多个事务同时访问;以及分区装置,被配置为将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务总数最小化【专利附图】【附图说明】通过参考附图阅读下文的详细描述,本专利技术实施方式的上述以及其他目的、特征和优点将变得明显。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,其中相同的参考标号表示相同或相似的元素。图1图示了本专利技术的实施方式可以实现于其中的示例性环境100。图2图示了根据本专利技术一个示例性实施方式的用于对数据库进行分区的方法200的流程图。图3图示了根据本专利技术示例性实施方式的用于对数据库进行分区的系统300的框图。图4图示了根据本专利技术一个示例性实施方式的用于对数据库进行分区的系统的示例界面。图5图示了适合用来实践本专利技术实施方式的计算机系统500的框图。【具体实施方式】下面将参考附图中示出的若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。首先参考图1,其图示了本专利技术的实施方式可以实现于其中的示例性环境100。如图所示,在示例环境100中,总是存在对数据库管理系统DBMS102进行访问的高度并发的工作负载,对于事务型数据库而言,工作负载可以包括大量的事务101。很明显,采用单节点数据库系统来应对这些事务除了对该单节点的存储能力有极高的要求外,对其的处理能力也是一种挑战。因此,较为常见的方法是将数据库102划分成多个分区(例如如图1中所示的分区1、分区2...),每个分区对应存储于集群的多个分布式节点上(例如如图1中所示的103节点I至节点η)。分布式节点103具有相应的服务器以完成对事务101的处理。换而言之,节点102同时具有对数据库分区的存储能力以及对事务101的处理能力。这样,对DBMS 102的大量并发的事务101访问就被分散为对一个或多个分布式节点103的访问,一方面降低了对各个分布式节点103的能力要求,另一方面也加快了对事务访问的处理速度。如前所述,在这样的环境100中,对数据库进行分区的方式无疑是非常关键的。以下参照图2详细描述根据本专利技术示例性实施方式的对数据库进行分区的方法200。应当理解,方法200中示出的步骤仅仅是示意性的。例如,这些步骤可以按照不同的顺序执行甚至并行执行。此外,方法200也可以包括附加的步骤,替换某些步骤,或者省略某些步骤。条目组分组如图2所示,方法200开始之后,在步骤S202,首先将数据库中的多个条目分组成一个或多个条目组,以使得被分组于同一条目组中的全部条目在工作负载的执行期间始终被同时访问。这一步骤基于对工作负载和数据库的分析,确定出在工作负载执行期间总是被同时访问的条目,并将它们聚合成群组,作为后续划分的最小单元。在某些可选方式中,条目组的大小从数据库元数据和存储在系统目录中的统计数据中派生出。此外,还可以在可选方式中记录关于工作负载的各个事务还涉及到哪些条目组的有关信息。数据库典型地例如可以是关系数据库,为使本领域技术人员更好地理解本专利技术,以下以关系数据库为例进一步说明该步骤S202的示例性实现,然而本领域技术人员应知,其完全可以是其它类型的数据库,并且步骤S202也可以以其它方式实现,本专利技术在此方面不受限制。在关系数据库中,数据库条目例如可以为元组(tuple)。如本领域技术人员所知,术语“元组”是关系数据库中的基本概念,关系例如可以是一张表,而表中的每行(即数据库中的每条记录)可以称之为一个元组。因此,对于关系数据库而言,步骤S202例如可以包括基于从工作负载中提取的信息,将数据库中的每张表划分成一个或多个元组群组(tuplegroup)。术语“元组群组”是关系内的元组集合,在工作负载执行过程中,元组群组始终一起被访问。每个元组群组实质上代表最小项谓词(min-term predicate)。给定关系R,其中A是R的属性,则在R上定义的简单谓词P具有如下形式:P:Α Θ const其中,const是常数,并且Θ £{=,<,关,>,≤,≥}。给定从工作负载派生的、关系R上的简单谓词{Ρ1,Ρ2,...,ρη}集,则最小项谓词M可以定义为:【权利要求】1.一种对数据库进行分区的方法,包括: 将所述数据库中的多个条目分组成一个或多个条目组,以使同一个所述条目组中的条目总是被一个或多个事务同时访问;以及 将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务数目最小化。2.根据权利要求1所述的方法,其中,将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务数目最小化本文档来自技高网
...
用于对数据库进行分区的方法和系统

【技术保护点】
一种对数据库进行分区的方法,包括:将所述数据库中的多个条目分组成一个或多个条目组,以使同一个所述条目组中的条目总是被一个或多个事务同时访问;以及将所述一个或多个条目组划分为设定数目个分区,以使跨多于一个分区进行访问的事务数目最小化。

【技术特征摘要】

【专利技术属性】
技术研发人员:曹逾郭小燕陈继东
申请(专利权)人:伊姆西公司
类型:发明
国别省市:美国;US

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

1