CN102541990A - 利用虚拟分区的数据库重新分布方法和系统 - Google Patents
利用虚拟分区的数据库重新分布方法和系统 Download PDFInfo
- Publication number
- CN102541990A CN102541990A CN2011103600263A CN201110360026A CN102541990A CN 102541990 A CN102541990 A CN 102541990A CN 2011103600263 A CN2011103600263 A CN 2011103600263A CN 201110360026 A CN201110360026 A CN 201110360026A CN 102541990 A CN102541990 A CN 102541990A
- Authority
- CN
- China
- Prior art keywords
- data
- subregion
- partition
- virtual partition
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000005192 partition Methods 0.000 claims abstract description 86
- 230000004044 response Effects 0.000 claims abstract description 18
- 230000008878 coupling Effects 0.000 claims description 5
- 238000010168 coupling process Methods 0.000 claims description 5
- 238000005859 coupling reaction Methods 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims 1
- 238000013500 data storage Methods 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 230000008521 reorganization Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008929 regeneration Effects 0.000 description 3
- 238000011069 regeneration method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及利用虚拟分区的数据库重新分布方法和系统。在一些实施例中,将分区数据库存储在至少逻辑或物理第一数据存储节点上的多个逻辑或物理分区中,并且将多个逻辑分区当中的第一分区的子集配置成虚拟分区。接收指示分配第二物理数据存储节点来存储分区数据库的输入。在第二数据存储节点上配置第二分区。响应于该输入,通过将第一分区上的虚拟分区内的数据移动到第二分区,在第一和第二数据存储节点上重新分布分区数据库。
Description
技术领域
本发明总地涉及数据处理,更具体地涉及分区数据库(partitioned database)的重新分布(redistribution)。
背景技术
在存储大量数据的计算环境中,通常通过关系数据库管理系统(RDBMS)管理数据,RDBMS可以用于对一个或多个数据库进行实例化以便存储、访问和操纵数据。每个数据库包括一个或多个表格空间,表格空间进而根据关系数据模型存储表格数据。如表格组织所暗示的,逻辑上按行和列排列表格数据,每个表格行具有相关联的行密钥(row key)。
为了提供改进的可管理性、性能和/或可用性,通常将关系数据库划分成多个逻辑或物理分区(下文简称为“分区(partition)”,除非需要更确切含义),每个分区具有它自己的数据、索引、配置文件、和事务处理日志。可以将任何给定表格的表格数据定位在一个或多个分区中,表格数据驻留在其上的分区通常由散列函数确定。因为数据被跨数据库分区分布,所以可以级联地利用可能位于多个计算机上的多个处理器的能力来存储、检索、处理和管理数据库中的数据。
随着所存储数据的量不断增加,诸如在线事务处理(OLTP)系统、数据仓储(data warehousing)企业、金融和保险公司等的管理大数据量的企业经常需要扩大它们的数据存储和处理容量。例如,企业可以将一个或多个附加服务器以及它们的相关联的存储节点添加到企业的现有信息技术(IT)基础设施中,以便在避免查询响应时间恶化的同时管理增加的数据量。
为了利用附加服务器,RDBMS必须重新分布和重新组织一个或多个数据库实例,使得数据库实例不仅驻留在现有服务器的存储节点上,而且驻留在新安装服务器的存储节点上。RDBMS根据现有技术重新分布和重新组织数据库的传统过程描绘在图1中。
重新分布和重新组织数据库的传统过程从框100开始,此后转到框102,框102描绘了RDBMS做出要重新分布的整个数据库的备份。取决于数据库的大小,做出数据库的备份可能消耗相当长的处理时间(例如,数天或数星期)。然后该过程进入包括框104-118的迭代循环,其中跨现有和新存储节点逐行重新分布数据库。重新分布从框104开始,框104描绘了RDBMS读取要处理的下一个数据库行的密钥值。然后,RDBMS重新散列数据库行的密钥值,以确定重新分布之后数据库行将驻留在其上的目标分区号(框106)。在框110中,RDBMS确定目标分区号是否与现有分区号相同,即意味着数据库行将不被移动。如果目标分区号与现有分区号匹配,则该过程转到如下所述的框118。但是,如果目标分区号与现有分区号不匹配,则该过程转到框112-116。
在框112-116中,RDBMS从先有(preexisting)存储节点读取整个数据库行,将该数据库行插入新添加的存储节点上的新分区中,然后从先有存储节点中删除该数据库行。此后,在框118中,RDBMS确定数据库的所有行是否都已被处理。如果不是,则该过程返回到已经描述过的框104。但是,如果RDBMS在框118中确定数据库的所有行都被处理,则该过程转到框120。
应该理解,经由框104-118中所描绘的重新分布将所选数据库行从先有存储节点移动到新安装存储节点使先有存储节点被稀疏地填充(sparsely populated),因此未得到有效利用。因此,在框120中,RDBMS重新组织先有存储节点中的数据库行,使数据库返回到紧凑存储组织。如果成功地完成重新组织,那么RDBMS在框122中做出整个数据库的第二个备份。另外,如框124所描绘,RDBMS执行实用程序来收集有关数据库的统计,以便重新表征表格空间、索引和分区,并将这些统计记录在目录中。最后,在框126中,RDBMS将跨新添加的存储节点的数据库重新组织通知给任何分区知晓(partition-aware)应用程序(例如,Internet InformationServices(IIS))。此后,在框130中结束重新分布和重新组织数据库的传统过程。
图2A-2C描绘了根据现有技术的在新添加的数据存储节点上数据库的重新分布和重新组织。具体地说,图2A描绘了包括填充着数据库的四个数据库分区202a-202d的数据存储系统200。因为数据库的大小接近当前安装的数据存储节点的容量,所以数据仓储企业可以将一个或多个附加存储节点添加到数据存储系统200中,以便支持附加数据库分区。
在图2B中所描绘的例子中,数据仓储企业将一个或多个附加存储节点添加到数据存储系统200中,以便支持四个附加数据库分区202e-202h。图2B进一步例示了在图1的框104-118中所描绘的数据库的传统逐行重新分布之后,移动到新数据库分区202e-202h的数据库部分变得高度紧凑,但是留在原数据库分区202a-202d中的数据库部分被稀疏地填充,因此数据存储系统200的存储容量的利用率很差。于是,如上面参考图1的框120所讨论,RDBMS也必须重新组织驻留在数据库分区202a-202d上的部分,以获得图2C中所示的紧凑、分布良好的数据库。
发明内容
在一些实施例中,将分区数据库存储在至少逻辑或物理第一数据存储节点上的多个逻辑或物理分区中,并且将多个逻辑分区当中的第一分区的子集配置成虚拟分区。接收指示分配第二物理数据存储节点来存储分区数据库的输入。在第二数据存储节点上配置第二分区。响应于该输入,通过将第一分区上的虚拟分区内的数据移动到第二分区,在第一和第二数据存储节点上重新分布分区数据库。
附图说明
图1是根据现有技术重新分布和重新组织数据库的传统过程的高级流程图;
图2A-2C描绘了根据现有技术的在新数据存储节点上的数据库的传统重新分布和重新组织;
图3例示了根据一个实施例的示范性数据处理环境;
图4示出了图3的数据处理企业的示范性数据存储节点;
图5例示了根据一个实施例的分区配置数据结构的示范性实施例;
图6描绘了根据一个实施例的分区映射的示范性实施例;
图7是重新分布数据库的方法的第一示范性实施例的高级逻辑流程图;
图8例示了根据图7中描绘的第一示范性方法的数据库的示范性重新分布;
图9是重新分布数据库的方法的第二示范性实施例的高级逻辑流程图;以及
图10描绘了根据图9中所示的第二示范性方法的数据库的示范性重新分布。
具体实施方式
现在参考附图,尤其参考图3,图3例示了根据一个实施例的示范性数据处理环境300的高级框图。如图所示,示范性数据处理环境300包括可以被操作或代表诸如企业、政府机构、非营利协会、教育机构等管理大量数据的机构的数据处理企业310。为了进行通信,数据处理企业310与诸如有线或无线局域网或广域网、蜂窝式电话网络和/或公共交换电话网络(PSTN)的一个或多个电路交换或分组交换通信网络304耦合。因此,数据处理企业310可以经由通信网络304与设备302a-302d(例如,服务器计算机系统、个人计算机系统、便携式计算机系统、移动电话、智能电话、陆线电话)通信。
设备302a-302d与数据处理系统110之间的通信可以包括经由例如PSTN或互连网协议语音(VoIP)连接的语音通信、和/或经由例如即时消息发送、简单邮件传输协议(SMTP)或超文本传输协议(HTTP)的数据通信。例如,数据处理企业310与设备302a-302d之间的通信可以包括将数据请求从设备302a-302d发送到数据处理企业310和将响应数据(例如,格式化成包括这种数据的程序代码、图像、图形、文本、音频、视频、和/或文件)从数据处理企业310发送到设备302a-302d。
仍然参照图3,数据处理企业310可以包括诸如服务器312a-312n的耦合成通过通信架构314通信的一个或多个物理计算机系统,通信架构314例如可以包括像内联网、虚拟专用网(VPN)或套接字连接那样的电缆和/或网络连接。在例示的示范性实施例中,服务器312a包括允许服务器312a经由通信网络304和通信架构314通信的一个或多个网络接口316。服务器312a另外还包括处理数据和程序代码,以便例如管理、访问和操纵组织在一个或多个数据库中的数据的一个或多个处理器320。服务器312a还包括诸如端口、显示器、和附连设备等的接收输入和提供服务器312a执行的处理的输出的输入/输出(I/O)设备322。最后,服务器312a还包括数据存储体330,数据存储体330可以包括一个或多个易失性或非易失性存储设备,包括存储器、固态驱动器、光盘或磁盘驱动器、磁带驱动器等。
在描绘的实施例中,数据存储体330存储管理服务器312a的硬件资源以及向在服务器312a上执行的其它软件提供常见服务的操作系统(OS)332。例如,OS 332可以利用或操作系统之一来实现。数据存储体330还包括例如可从纽约阿蒙克市IBM公司购买到的关系数据库管理系统(RDBMS)的管理、访问和操纵例如示范性数据库350的一个或多个数据库内的数据的数据库管理器340。在一些实施例中,可以将数据库管理器340与OS 332或另一个软件程序整合在一起。除了数据库350之外,数据库管理器340还维护定义数据库350的各种逻辑分区以及将分区映射到数据处理企业310的物理存储资源的一个或多个分区配置数据结构352。如下面所进一步讨论,数据库管理器340可选地还可以维护将数据库350的虚拟分区映射到数据库350的逻辑分区的分区映射(partition map)354。
在各种实施例中,数据库管理器340和/或OS 332可以包括支持服务器312a经由通信架构314和通信网络304与其它服务器312和设备302a-302d的通信的代码。如果在一些实施例中未将适当的通信能力整合在OS 332和/或数据库管理器340内,数据存储体330可以另外包括诸如web服务器(例如,Apache、IIS等)、交互式语音应答(IVR)和/或其它程序代码的使服务器312a能够经由通信架构314和通信网络304与其它服务器312和设备302a-302d通信的通信代码342。尤其,如果得到实现,则通信代码342支持将数据库查询传送给数据库管理器340以及将响应数据从数据库管理器340传送给请求者。
应该理解,数据存储体330的内容在一些实施例中可以定域(localize)在服务器312a上,而在其它实施例中将跨多个服务器312a-312n的数据存储体330分布。另外,描绘在服务器312a的数据存储体330中的内容可选地可以部分或全部驻留在数据处理企业310的存储区域网络(SAN)360上。如图所示,SAN 360包括接收存储请求和为存储请求服务的交换机/控制器(SW/C)362和多个数据存储节点370a-370k,每个数据存储节点可以包括一个或多个物理非易失性存储器驱动器、硬盘驱动器、光存储驱动器、磁带驱动器等。在一些实施例中,数据存储节点370a-370k可以是呈现这种物理存储资源的虚拟化抽象的逻辑实体。
回顾前面的描述可以理解,实现数据处理企业310的形式可以根据一种或多种因素,例如,组织的类型、数据库350的大小、可以查询数据库350的设备302a-302d的数目等随实施例而变。可以包括例如一个或多个手持机、笔记本、台式机或服务器计算机系统的所有这些实现方式被构想为如所附权利要求书所述的本发明的实施例。
图4描绘了图3的数据处理企业310内的数据存储节点400(例如,SAN 360的数据存储节点370或服务器312的数据存储体330内的数据存储节点)的更详细视图。在所描绘的例子中,数据存储节点400寄宿着八个逻辑或物理分区,下文假设它们是分别编号为LP0-LP7的逻辑分区。逻辑分区LP0-LP7存储包括分别编号为B0-B15的十六个数据块的数据库350。在RDBMS中,每个数据块B0-B15可以对应于具有共同行密钥散列的一个或多个数据库行。
根据本公开,数据库管理器340将数据块B0-B15的一个子集指定给虚拟分区。例如,数据库管理器340可以将数据块B8-B15中的每一个指定给编号为VP8-VP15的八个虚拟分区中的相应一个虚拟分区。在各种情形下,每个虚拟分区可以包括优选地都驻留在公共逻辑分区上的一个或多个数据块。如下面参考图7-10所进一步讨论,数据库管理器340可以通过参考虚拟分区有效地重新分布数据库350。
现在参考图5,图5例示了根据一个实施例的分区配置数据结构352的示范性实施例。在所描绘的实施例中,例如可以在一个或多个数据库配置文件中实现的分区配置数据结构352包括定义数据库350的多个逻辑分区以及将逻辑分区映射到数据处理企业310的物理存储资源的多个配置条目500。
在一个示范性实施例中,分区配置数据结构352的每个配置条目500包括若干字段,包括节点号字段502、主机名字段504、逻辑分区号字段506、和虚拟分区标志508。节点号字段502规定唯一标识数据库350的分区的整数。与将节点号限于逻辑分区的传统分区数据库相反,节点号字段502优选地包括数据库350的每个逻辑和虚拟分区的唯一节点号。主机名字段504标识在节点号字段502中标识的数据库分区的TCP/IP主机名(例如,“ServerA(服务器A)”)。另外,逻辑端口字段506规定指定给在节点号字段502中标识的数据库分区的逻辑端口(例如,逻辑分区),以及虚拟分区标志508标识在节点号字段502中规定的分区是否是虚拟分区。应该理解,配置条目500可以包括提供诸如对逻辑分区的通信路径的附加配置信息和/或操作系统特有信息的一个或多个附加字段。
给定图5中所描绘的分区配置数据结构352的示范性实施例,如下面的表I所示,可以给出分区配置数据结构352的描述图4的数据存储节点400的部分。
表I
节点号 | 主机名 | 逻辑端口号 | VP |
0 | ServerA | 0 | - |
1 | ServerA | 1 | - |
2 | ServerA | 2 | - |
3 | ServerA | 3 | - |
4 | ServerA | 4 | -- |
5 | ServerA | 5 | - |
6 | ServerA | 6 | - |
7 | ServerA | 7 | - |
8 | ServerA | 0 | V |
9 | ServerA | 1 | V |
10 | ServerA | 2 | V |
11 | ServerA | 3 | V |
12 | ServerA | 4 | V |
13 | ServerA | 5 | V |
14 | ServerA | 6 | V |
15 | ServerA | 7 | V |
现在参考图6,图6例示了根据一个实施例的示范性分区映射354。在所描绘的实施例中,数据库管理器340将分区映射354实现成包括多个行600的查找表,每个行包括散列值字段602、虚拟分区号字段604、和逻辑分区号字段606。这样,每个行600将相应散列值(例如,经由散列函数从数据库350的一行的行密钥中导出)与逻辑分区号以及虚拟分区号(如果适用的话)相关联。例如,假设散列值的范围在0到4095之间以及数据存储节点400实现了如图4所示的八个逻辑分区LP0-LP7,则分区映射354可以包括存储总结在下面的表II中的值的4096个行600。
表II
散列值 | 虚拟分区号 | 逻辑分区号 |
0 | - | 0 |
1 | - | 1 |
2 | - | 2 |
3 | - | 3 |
… | … | … |
7 | - | 7 |
8 | 8 | 0 |
9 | 9 | 1 |
10 | 10 | 2 |
… | … | … |
15 | 15 | 7 |
16 | - | 0 |
… | … | … |
23 | - | 7 |
24 | 8 | 0 |
… | … | … |
31 | 15 | 7 |
… | … | … |
4095 | - | 7 |
现在参考图7,图7例示了根据第一实施例重新分布数据库的示范性方法的高级逻辑流程图。所描绘的方法例如可以通过服务器312的一个或多个处理器320执行数据库管理器340来执行。与本文给出的其它逻辑流程图一样,应该理解这些步骤按逻辑的而不是时间上严格的顺序来描绘,并且在至少一些实施例中,可以同时或按与所例示不同的顺序执行一个或多个步骤。
图7中所描绘的过程从框700开始,此后转到框702,框702例示了数据库管理器340例如响应于管理人员输入或自动地根据预定默认设置在数据库350中配置所希望数目的虚拟分区。在表I所述和图4中所描绘的示范性分区数据库350中,数据库管理器340可以在框702中输入分区配置数据结构352的最后八个条目500,以便在逻辑分区LP0-LP7内分别建立虚拟分区VP8-VP15。如上所述,虚拟分区包含数据库350的将随着被分配来存储数据库350的物理存储容量扩展而被重新分布的数据。随着虚拟分区的数量和位置被配置,数据库管理器340可选地建立分区映射354,以便在数据的散列值(例如,行密钥的散列值)与通过分区配置数据结构352配置的逻辑和虚拟分区之间迅速地映射(框704)。框704是可选的,因为数据库管理器340可以替代性地按需要计算与每个散列值相关联的逻辑和虚拟分区。
该过程从框704转到框710,框710描绘了数据库管理器340确定是否接收到指示要在扩展物理存储容量上重新分布数据库350的输入。应该理解,可以通过将服务器312加入数据处理企业310、将附加数据存储节点370加入SAN 360、和/或重新分配数据处理企业310的现有数据存储节点来存储数据库350,来获得可用于存储数据库350的扩展物理存储容量。如果数据库管理器340未检测到指示要在扩展物理存储容量上重新分布数据库350的输入,则该过程仍然在框710处。当该过程仍然在框710处时,数据库管理器340执行传统数据库处理,包括响应于数据库350的结构化查询语言(SQL)查询而提供数据,以及执行任何所请求的管理或配置功能等,如本领域公知的。响应于数据库管理器340在框710处确定已接收到指示要在扩展物理存储容量上重新分布数据库350的输入(例如,用户命令),该过程转到框712。
框712描绘了数据库管理器340在被分配来存储数据库350的新物理存储节点上建立逻辑分区。然后该过程进入包括框720-730的循环,其中将虚拟分区从先有逻辑分区重新分布到在框712中建立的新逻辑分区。首先参照框720,数据库管理器340例如通过参考分区配置数据结构352来确定数据库350的所有虚拟分区是否都已被处理。响应于数据库管理器340在框720中确定数据库350的所有虚拟分区都被处理,该过程从框720转到下面所述的框740。但是,如果数据库管理器340在框720中确定并非数据库350的所有虚拟分区都被处理,那么数据库管理器340选择要处理的虚拟分区,例如,列在分区配置数据结构352中的下一个虚拟分区(框722)。
在框724中,数据库管理器340例如通过确定虚拟分区号是否与指定给在新分配的存储节点上建立的逻辑分区之一的逻辑分区号匹配,来确定是否移动所选择的要处理的虚拟分区。响应于确定不移动当前所选虚拟分区,该过程返回到已经描述过的框720。但是,如果数据库管理器340在框724中确定要移动所选虚拟分区,则该过程转到框726。框726描绘了数据库管理器340利用顺序访问操作将虚拟分区的数据从现有逻辑分区移动到具有匹配逻辑分区号的逻辑分区。然后,数据库管理器340更新数据存储节点上与被移动的分区相关联地存储的元数据(框728),并且清除分区配置数据结构352中的相关联配置条目500的虚拟分区标志508(框730)。其结果是,被移动的分区不再是虚拟分区,并被转换成新分配的数据存储节点上的逻辑分区之一的数据块。该过程从框730返回到框720,框720描绘了数据库管理器340处理下一个虚拟分区(如果有的话)。
响应于数据库管理器340在框720中确定所有虚拟分区都已被处理,数据库管理器340更新分区映射354,以反映散列值与逻辑和虚拟分区号之间的修改的关系(框740)。在框740之后,在框742中结束图7中所描绘的过程。
图8例示了根据图7中所描绘的第一示范性方法的数据库350的示范性重新分布。在显示在图8中的例子中,如前面参考图4所讨论,数据库350原来只存储在数据存储节点400的八个逻辑分区(即,LP0-LP7)上。在逻辑分区LP0-LP7上,数据库管理器340将数据块B8-B15分别配置成虚拟分区VP8-VP15。
然后,将可用于容纳数据库350的数据处理环境310的物理数据存储容量扩展成包括附加数据存储节点800。如针对框712所述,数据库管理器340将数据存储节点800配置成具有编号为LP8-LP15的八个逻辑分区。另外,根据图7的框720-730,数据库管理器340将虚拟分区VP8-VP15(分别对应于数据块B8-B15)中的每一个重新分布给数据存储节点800上的逻辑分区LP8-LP15中的相应一个,留下数据存储节点400的逻辑分区LP0-LP7上的数据块B0-B7。
假设数据存储节点800驻留在具有主机名“ServerB”的服务器312上,数据库管理器340将分区配置数据结构352从在上面的表I中总结的状态更新成在下面的表III中给出的状态。
表III
节点号 | 主机名 | 逻辑端口号 | VP |
0 | ServerA | 0 | - |
1 | ServerA | 1 | - |
2 | ServerA | 2 | - |
3 | ServerA | 3 | - |
4 | ServerA | 4 | -- |
5 | ServerA | 5 | - |
6 | ServerA | 6 | - |
7 | ServerA | 7 | - |
8 | ServerB | 0 | - |
9 | ServerB | 1 | - |
10 | ServerB | 2 | - |
11 | ServerB | 3 | - |
12 | ServerB | 4 | -- |
13 | ServerB | 5 | - |
14 | ServerB | 6 | - |
15 | ServerB | 7 | - |
另外,数据库管理器340将分区映射354从在上面的表II中总结的状态更新成在下面的表IV中给出的状态。
表IV
散列值 | 虚拟分区号 | 逻辑分区号 |
0 | - | 0 |
1 | - | 1 |
2 | - | 2 |
3 | - | 3 |
… | … | … |
7 | - | 7 |
8 | - | 0 |
9 | - | 1 |
10 | - | 2 |
… | … | … |
15 | - | 7 |
16 | - | 0 |
… | … | … |
23 | - | 7 |
24 | - | 0 |
… | … | … |
31 | - | 7 |
… | … | … |
4095 | - | 7 |
通过将图1与图7-8相比较可以注意到,图7中所描绘的示范性过程使图1的许多处理密集步骤变得不必要。例如,在图7中,无需像框106中所描绘的那样重新散列数据库350的行。另外,无需像图1的框102和122中所描绘的那样在重新分布数据库350之前或之后备份数据库350。并且,无需像框120中所描绘的那样重新组织数据库350,或像框124中所描绘的那样更新数据库统计。最后,无需像框126中所描绘的那样更新分区知晓应用程序。
参考图9,图9例示了根据第二实施例重新分布数据库的示范性方法的高级逻辑流程图。具体地说,图9中所描绘的过程经由数据库350的虚拟分区的备份和恢复,将数据库350重新分布到一个或多个新分配的物理存储节点上。
图9中所描绘的过程从框900开始,此后转到框902,框902例示了数据库管理器340例如响应于管理人员输入而在数据库350中配置希望数目的虚拟分区,如前面所描述。随着虚拟分区的数量和位置被配置,数据库管理器340可选地建立分区映射354,以便在数据的散列值(例如,行密钥的散列值)与通过分区配置数据结构352配置的逻辑和虚拟分区之间迅速地映射(框904)。该过程从框904转到框910,框910描绘了数据库管理器340确定是否接收到指示要在扩展物理存储容量上重新分布数据库350的输入。如果数据库管理器340未检测到指示要在扩展物理存储容量上重新分布数据库350的输入,则该过程仍然在框910处(在该时间期间,数据库管理器340可以执行其它传统数据库管理操作)。
响应于数据库管理器340在框910处确定接收到指示要在扩展物理存储容量上重新分布数据库350的输入,该过程转到框912。框912描绘了数据库管理器340在被分配来存储数据库350的新物理存储节点上建立逻辑分区。然后该过程进入包括框920-930的循环,其中从在框912处建立的先有逻辑分区备份虚拟分区。首先参照框920,数据库管理器340例如通过参考分区配置数据结构352来确定数据库350的所有虚拟分区是否都已被处理。响应于数据库管理器340在框920中确定数据库350的所有虚拟分区都已被处理,该过程从框920转到下面所述的框940。但是,如果数据库管理器340在框920中确定并非数据库350的所有虚拟分区都被处理,那么数据库管理器340选择要处理的虚拟分区,例如,列在分区配置数据结构352中的下一个虚拟分区(框922)。接着,数据库管理器340做出所选虚拟分区的备份,但优选地从该备份中排除寄宿该虚拟分区的逻辑分区的剩余部分(框926)。然后,数据库管理器340清除与分区配置数据结构352中的所选虚拟分区相关联的虚拟分区标志508(框930)。该过程从框930返回到框920,框920描绘了数据库管理器340处理下一个虚拟分区(如果有的话)。
响应于数据库管理器340在框920中确定先有物理存储节点上的数据库350的所有虚拟分区都已被处理,数据库管理器340将每个虚拟分区从在框926中所做的备份恢复到数据处理企业310的新分配的物理存储节点的相应逻辑分区(例如,逻辑分区号与所备份虚拟分区的虚拟分区号匹配的逻辑分区)。其结果是,被移动的分区不再是虚拟分区,并被转换成新分配的数据存储节点的逻辑分区上的数据块。然后,数据库管理器340更新数据存储节点上与所恢复分区相关联地存储的元数据(框942),并且从先有物理存储节点删除被移动的分区(框944)。数据库管理器340另外还更新分区映射354(如果存在的话),以反映散列值与逻辑和虚拟分区号之间的修改的关系(框946)。在框946之后,在框950中结束图9中所描绘的过程。
图10描绘了根据例示在图9中的第二示范性方法的数据库的示范性重新分布。在图10中所示的例子中,如前面参考图4和8所讨论,数据库350最初只存储在数据存储节点400的八个逻辑分区(即,LP0-LP7)上。在逻辑分区LP0-LP7上,数据库管理器340将数据块B8-B15分别配置成虚拟分区VP8-VP15。
然后,将被分配来容纳数据库350的数据处理环境310的物理数据存储容量扩展成包括附加数据存储节点800,在附加数据存储节点800上数据库管理器340配置了编号为LP8-LP15的八个逻辑分区。根据图9的框920-930,数据库管理器340创建虚拟分区备份1000,虚拟分区备份1000包含虚拟分区VP8-VP15(分别对应于数据块B8-B15)中的每一个的备份,但优选地排除驻留在逻辑分区LP0-LP7上的其它数据。不是执行回到宿主逻辑分区的传统恢复,数据库管理器340然后将每个虚拟分区从虚拟分区备份1000恢复到数据存储节点800上的逻辑分区LP8-LP15中的相应一个。另外,数据库管理器340从数据存储节点400删除相应虚拟分区,留下数据存储节点400的逻辑分区LP0-LP7上的数据块B0-B7。这样,数据库管理器340通过利用它的备份能力,而不是如图8中所描绘的那样直接移动数据,将数据库350的虚拟分区从先有物理数据存储节点400重新分布到新分配的物理数据存储节点800上。但是,所得到的分区配置数据结构352和分区映射354与在上面的表III和IV中总结的那些相同。
如已经描述的那样,在至少一些实施例中,将分区数据库存储在至少逻辑或物理第一数据存储节点上的多个逻辑或物理分区中,并且将多个逻辑分区当中的第一分区的子集配置成虚拟分区。接收指示分配第二物理数据存储节点来存储分区数据库的输入。在第二数据存储节点上配置第二分区。响应于该输入,通过将第一分区上的虚拟分区内的数据移动到第二分区,在第一和第二数据存储节点上重新分布分区数据库。
虽然像参考一个或多个优选实施例所述的那样具体示出了本发明,但本领域技术人员应该理解,可以不偏离本发明的精神和范围地在形式和细节上作各种改变。例如,尽管这些方面是针对执行指示本发明的功能的程序代码的计算机系统描述的,但应该理解,本发明可以替代性地实现成包括有形、非瞬时数据存储介质(例如,光或磁盘或存储器)的程序产品,该存储介质存储可以由数据处理系统处理以执行本发明的功能的程序代码。
Claims (14)
1.一种数据处理方法,包括:
将分区数据库存储在数据处理系统的至少第一数据存储节点上的多个分区中;
将所述多个分区当中的第一分区的子集配置成虚拟分区;
接收指示分配第二数据存储节点来存储分区数据库的输入;
在所述第二数据存储节点上配置分区数据库的第二分区;以及
响应于所述输入,通过将所述第一分区上的所述虚拟分区内的数据移动到所述第二分区,在所述第一和第二数据存储节点上重新分布分区数据库。
2.如权利要求1所述的方法,其中,所述虚拟分区包括所述第一分区的一个或多个数据块。
3.如权利要求2所述的方法,其中,所述虚拟分区只包括所述第一分区内的数据。
4.如权利要求1所述的方法,其中:
所述方法包括建立将所述虚拟分区与所述第一分区相关联的分区配置数据结构;以及
所述重新分布包括更新所述分区配置数据结构以指示移动到所述第二分区的数据不驻留在虚拟分区中。
5.如权利要求1所述的方法,其中:
所述方法包括建立将所述分区数据库内的数据映射到所述虚拟分区和所述多个分区中的特定分区的分区映射;以及
所述重新分布包括更新所述分区映射以指示移动到所述第二分区的数据未被映射到虚拟分区。
6.如权利要求1所述的方法,其中,所述重新分布包括:
创建所述虚拟分区内的数据的备份;以及
将数据从所述备份恢复到所述第二分区。
7.如权利要求1所述的方法,其中:
所述虚拟分区内的数据是第一数据;
在所述重新分布之前,所述第一分区存储所述第一数据和不在所述虚拟分区内的第二数据;以及
创建备份包括创建包括所述第一数据但不包括所述第二数据的备份。
8.一种数据处理系统,包括:
处理器;
与所述处理器耦合的数据存储体;以及
存储在所述数据存储体内的程序代码,当被所述处理器执行时,所述程序代码使所述数据处理系统执行如下操作:
将分区数据库存储在所述数据存储体的至少第一数据存储节点上的多个分区中;
将所述多个分区当中的第一分区的子集配置成虚拟分区;
接收指示分配所述数据存储体的第二数据存储节点来存储分区数据库的输入;
在所述第二数据存储节点上配置分区数据库的第二分区;以及
响应于所述输入,通过将所述第一分区上的所述虚拟分区内的数据移动到所述第二分区,在所述第一和第二数据存储节点上重新分布分区数据库。
9.如权利要求8所述的数据处理系统,其中,所述虚拟分区包括所述第一分区的一个或多个数据块。
10.如权利要求9所述的数据处理系统,其中,所述虚拟分区只包括所述第一分区内的数据。
11.如权利要求8所述的数据处理系统,其中:
所述程序进一步使计算机执行建立将所述虚拟分区与所述第一分区相关联的分区配置数据结构;以及
所述重新分布包括更新所述分区配置数据结构以指示移动到所述第二分区的数据不驻留在虚拟分区中。
12.如权利要求8所述的数据处理系统,其中:
所述程序进一步使计算机执行建立将所述分区数据库内的数据映射到所述虚拟分区和所述多个分区中的特定分区的分区映射;以及
所述重新分布包括更新所述分区映射以指示移动到所述第二分区的数据未被映射到所述虚拟分区。
13.如权利要求8所述的数据处理系统,其中,所述重新分布包括:
创建所述虚拟分区内的数据的备份;以及
将数据从所述备份恢复到所述第二分区。
14.如权利要求8所述的数据处理系统,其中:
所述虚拟分区内的数据是第一数据;
在所述重新分布之前,所述第一分区存储所述第一数据和不在所述虚拟分区内的第二数据;以及
所述创建备份包括创建包括所述第一数据但不包括所述第二数据的备份。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/961,544 | 2010-12-07 | ||
US12/961,544 US9684702B2 (en) | 2010-12-07 | 2010-12-07 | Database redistribution utilizing virtual partitions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541990A true CN102541990A (zh) | 2012-07-04 |
CN102541990B CN102541990B (zh) | 2015-05-20 |
Family
ID=46163197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110360026.3A Expired - Fee Related CN102541990B (zh) | 2010-12-07 | 2011-11-15 | 利用虚拟分区的数据库重新分布方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9684702B2 (zh) |
JP (1) | JP5792594B2 (zh) |
CN (1) | CN102541990B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049355A (zh) * | 2012-12-25 | 2013-04-17 | 华为技术有限公司 | 一种数据库系统恢复方法及设备 |
CN103473321A (zh) * | 2013-09-12 | 2013-12-25 | 华为技术有限公司 | 数据库管理方法与系统 |
WO2017161956A1 (zh) * | 2016-03-22 | 2017-09-28 | 北京京东尚科信息技术有限公司 | 一种数据库扩展系统、设备和用于扩展数据库的方法 |
CN107315663A (zh) * | 2017-03-10 | 2017-11-03 | 秦皇岛市第医院 | 双机群集架构 |
CN107315544A (zh) * | 2017-06-29 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种固态盘逻辑分区管理方法和装置 |
CN107787490A (zh) * | 2015-05-11 | 2018-03-09 | 甲骨文国际公司 | 分布式数据库网格中的直接连接功能 |
CN110275876A (zh) * | 2012-12-06 | 2019-09-24 | 微软技术许可有限责任公司 | 用于数据库横向扩展的方法及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9645943B2 (en) * | 2011-02-22 | 2017-05-09 | Infinidat Ltd. | Storage arrangement and method using a plurality of storage spaces which have separate control layers and separate mapping structures |
CN102968503B (zh) * | 2012-12-10 | 2015-10-07 | 曙光信息产业(北京)有限公司 | 数据库系统的数据处理方法以及数据库系统 |
ES2658188T3 (es) * | 2012-12-27 | 2018-03-08 | Huawei Technologies Co., Ltd. | Método y aparato de extensión de particiones |
US9053167B1 (en) | 2013-06-19 | 2015-06-09 | Amazon Technologies, Inc. | Storage device selection for database partition replicas |
GB2521197A (en) | 2013-12-13 | 2015-06-17 | Ibm | Incremental and collocated redistribution for expansion of an online shared nothing database |
US10860562B1 (en) | 2014-09-12 | 2020-12-08 | Amazon Technologies, Inc. | Dynamic predicate indexing for data stores |
US9785516B2 (en) * | 2014-11-25 | 2017-10-10 | Sap Se | Method and system to remove a service from a distributed database system |
US9888127B2 (en) | 2015-07-30 | 2018-02-06 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for adjusting the use of virtual resources providing communication services based on load |
US9866521B2 (en) | 2015-07-30 | 2018-01-09 | At&T Intellectual Property L.L.P. | Methods, systems, and computer readable storage devices for determining whether to forward requests from a physical telephone number mapping service server to a virtual telephone number mapping service server |
US10277736B2 (en) | 2015-07-30 | 2019-04-30 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for determining whether to handle a request for communication services by a physical telephone number mapping service or a virtual telephone number mapping service |
US9851999B2 (en) | 2015-07-30 | 2017-12-26 | At&T Intellectual Property I, L.P. | Methods, systems, and computer readable storage devices for handling virtualization of a physical telephone number mapping service |
US10095738B1 (en) | 2015-12-22 | 2018-10-09 | Amazon Technologies, Inc. | Dynamic assignment of logical partitions according to query predicate evaluations |
US11138178B2 (en) * | 2016-11-10 | 2021-10-05 | Futurewei Technologies, Inc. | Separation of computation from storage in database for better elasticity |
US10503714B2 (en) * | 2017-06-02 | 2019-12-10 | Facebook, Inc. | Data placement and sharding |
CN111104057B (zh) * | 2018-10-25 | 2022-03-29 | 华为技术有限公司 | 存储系统中的节点扩容方法和存储系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330653B1 (en) * | 1998-05-01 | 2001-12-11 | Powerquest Corporation | Manipulation of virtual and live computer storage device partitions |
US6574705B1 (en) * | 2000-11-16 | 2003-06-03 | International Business Machines Corporation | Data processing system and method including a logical volume manager for storing logical volume data |
US20070271211A1 (en) * | 2006-05-18 | 2007-11-22 | Butcher David L | Database partitioning by virtual partitions |
CN101128827A (zh) * | 2005-02-24 | 2008-02-20 | 塞朗德系统有限公司 | 用于交换网络中分布式数据管理的方法和装置 |
US20100235606A1 (en) * | 2009-03-11 | 2010-09-16 | Oracle America, Inc. | Composite hash and list partitioning of database tables |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
GB9811574D0 (en) | 1998-05-30 | 1998-07-29 | Ibm | Indexed file system and a method and a mechanism for accessing data records from such a system |
US6397308B1 (en) | 1998-12-31 | 2002-05-28 | Emc Corporation | Apparatus and method for differential backup and restoration of data in a computer storage system |
JP4199888B2 (ja) | 1999-11-15 | 2008-12-24 | 株式会社日立製作所 | データベース管理方法 |
US6745207B2 (en) * | 2000-06-02 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | System and method for managing virtual storage |
JP2004178253A (ja) | 2002-11-27 | 2004-06-24 | Hitachi Ltd | 記憶デバイス制御装置および記憶デバイス制御装置の制御方法 |
JP2005056077A (ja) | 2003-08-01 | 2005-03-03 | Hitachi Ltd | データベース制御方法 |
JP2005196602A (ja) | 2004-01-09 | 2005-07-21 | Hitachi Ltd | 無共有型データベース管理システムにおけるシステム構成変更方法 |
US7644087B2 (en) | 2005-02-24 | 2010-01-05 | Xeround Systems Ltd. | Method and apparatus for data management |
DK177245B1 (da) | 2008-06-27 | 2012-08-06 | Guldmann V As | Håndbetjening til hejsesystem |
JP5272185B2 (ja) | 2008-09-26 | 2013-08-28 | 株式会社日立製作所 | 計算機システム及びストレージシステム |
US8386529B2 (en) | 2010-02-21 | 2013-02-26 | Microsoft Corporation | Foreign-key detection |
-
2010
- 2010-12-07 US US12/961,544 patent/US9684702B2/en not_active Expired - Fee Related
-
2011
- 2011-11-09 JP JP2011245173A patent/JP5792594B2/ja not_active Expired - Fee Related
- 2011-11-15 CN CN201110360026.3A patent/CN102541990B/zh not_active Expired - Fee Related
-
2012
- 2012-08-27 US US13/595,566 patent/US20120323852A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330653B1 (en) * | 1998-05-01 | 2001-12-11 | Powerquest Corporation | Manipulation of virtual and live computer storage device partitions |
US6574705B1 (en) * | 2000-11-16 | 2003-06-03 | International Business Machines Corporation | Data processing system and method including a logical volume manager for storing logical volume data |
CN101128827A (zh) * | 2005-02-24 | 2008-02-20 | 塞朗德系统有限公司 | 用于交换网络中分布式数据管理的方法和装置 |
US20070271211A1 (en) * | 2006-05-18 | 2007-11-22 | Butcher David L | Database partitioning by virtual partitions |
US20100235606A1 (en) * | 2009-03-11 | 2010-09-16 | Oracle America, Inc. | Composite hash and list partitioning of database tables |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275876A (zh) * | 2012-12-06 | 2019-09-24 | 微软技术许可有限责任公司 | 用于数据库横向扩展的方法及装置 |
CN110275876B (zh) * | 2012-12-06 | 2023-12-19 | 微软技术许可有限责任公司 | 用于数据库横向扩展的方法及装置 |
CN103049355B (zh) * | 2012-12-25 | 2015-06-17 | 华为技术有限公司 | 一种数据库系统恢复方法及设备 |
CN103049355A (zh) * | 2012-12-25 | 2013-04-17 | 华为技术有限公司 | 一种数据库系统恢复方法及设备 |
US9460186B2 (en) | 2013-09-12 | 2016-10-04 | Huawei Technologies Co., Ltd. | Database management method and system |
CN103473321A (zh) * | 2013-09-12 | 2013-12-25 | 华为技术有限公司 | 数据库管理方法与系统 |
CN107787490A (zh) * | 2015-05-11 | 2018-03-09 | 甲骨文国际公司 | 分布式数据库网格中的直接连接功能 |
CN107787490B (zh) * | 2015-05-11 | 2021-12-07 | 甲骨文国际公司 | 分布式数据库网格中的直接连接功能 |
CN107220259A (zh) * | 2016-03-22 | 2017-09-29 | 北京京东尚科信息技术有限公司 | 一种数据库扩展系统、设备和用于扩展数据库的方法 |
WO2017161956A1 (zh) * | 2016-03-22 | 2017-09-28 | 北京京东尚科信息技术有限公司 | 一种数据库扩展系统、设备和用于扩展数据库的方法 |
US11243921B2 (en) | 2016-03-22 | 2022-02-08 | Beijing Jingdong Shangke Information Technology Co., Ltd. | Database expansion system, equipment, and method of expanding database |
CN107315663A (zh) * | 2017-03-10 | 2017-11-03 | 秦皇岛市第医院 | 双机群集架构 |
CN107315663B (zh) * | 2017-03-10 | 2020-06-09 | 秦皇岛市第一医院 | 双机群集架构 |
CN107315544A (zh) * | 2017-06-29 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种固态盘逻辑分区管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120143823A1 (en) | 2012-06-07 |
JP2012123790A (ja) | 2012-06-28 |
US20120323852A1 (en) | 2012-12-20 |
CN102541990B (zh) | 2015-05-20 |
JP5792594B2 (ja) | 2015-10-14 |
US9684702B2 (en) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541990A (zh) | 利用虚拟分区的数据库重新分布方法和系统 | |
CN109783438B (zh) | 基于librados的分布式NFS系统及其构建方法 | |
US8924357B2 (en) | Storage performance optimization | |
US10579272B2 (en) | Workload aware storage platform | |
US7447839B2 (en) | System for a distributed column chunk data store | |
US8214388B2 (en) | System and method for adding a storage server in a distributed column chunk data store | |
CN103116661B (zh) | 一种数据库的数据处理方法 | |
CN103631924B (zh) | 一种分布式数据库平台的应用方法和系统 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
US8380663B2 (en) | Data integrity in a database environment through background synchronization | |
CN1307584C (zh) | 一种用二维表实现的树的存储、访问的方法 | |
US20070061543A1 (en) | Method for a distributed column chunk data store | |
CN104679665A (zh) | 一种实现分布式文件系统块存储的方法及系统 | |
CN103595799A (zh) | 一种实现分布式共享数据库的方法 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN106155566A (zh) | 用于存储数据的方法、装置及系统 | |
WO2024021470A1 (zh) | 一种跨区域的数据调度方法、装置、设备及存储介质 | |
EP3788501B1 (en) | Data partitioning in a distributed storage system | |
US20050193021A1 (en) | Method and apparatus for unified storage of data for storage area network systems and network attached storage systems | |
US11500931B1 (en) | Using a graph representation of join history to distribute database data | |
EP3061011B1 (en) | Method for optimizing index, master database node and subscriber database node | |
US10311026B2 (en) | Compressed data layout for optimizing data transactions | |
JP2006251990A (ja) | データベース再編成プログラムおよびデータベース再編成方法 | |
EP3082050A1 (en) | Mass data fusion storage method and system | |
CN105389368A (zh) | 一种mpp架构数据库集群元数据管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150520 |
|
CF01 | Termination of patent right due to non-payment of annual fee |