CN100590620C - 用于使记录在分区之间移动的系统和方法 - Google Patents
用于使记录在分区之间移动的系统和方法 Download PDFInfo
- Publication number
- CN100590620C CN100590620C CN200710097027A CN200710097027A CN100590620C CN 100590620 C CN100590620 C CN 100590620C CN 200710097027 A CN200710097027 A CN 200710097027A CN 200710097027 A CN200710097027 A CN 200710097027A CN 100590620 C CN100590620 C CN 100590620C
- Authority
- CN
- China
- Prior art keywords
- subregion
- current
- rank
- field
- record
- 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.)
- Expired - Fee Related
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Abstract
在一个实施例中,将数据分成被划分为多个级别的分区。按照级别的创建时间对级别进行排序。在当前分区上接收请求,该请求包括用于对记录中的字段进行标识的关键字以及该关键字的值。确定该值是否存在于当前分区的字段中。如果确定为假,那么从当前分区向下一较老分区发送消息,并且该消息命令下一较老分区将具有该值的记录从下一较老分区移动到当前分区。如果确定为真,那么如果下一较新分区发送了该请求,则使在所述字段中具有所述值的记录从当前分区移动到下一较新分区,并且从当前分区中删除该记录。
Description
技术领域
本发明的实施例通常涉及具有分区数据的计算机系统,并且具体地说涉及使数据记录在分区之间移动。
背景技术
基本上,计算机系统用于数据的存储、处理、以及分析。用于对数据进行管理的一个机制被称为数据库管理系统,其还被称为数据库系统或者简称为数据库。最通用的通常被称为关系数据库(RDB),该关系数据库将数据组织在下述这样的表格中,所述表格具有用于表示数据库中的各个条目或记录的行,以及用于定义将什么存储在每个行、条目、或者记录中的列。每个表格在数据库之内具有唯一的名称,并且每一列在特定表格之内具有唯一的名称。数据库还具有下述索引,该索引是用于向数据库管理系统通知在给定所索引的列值的情况下某一行在表格中的位置的数据结构,其与用于向读者通知在哪一页上出现了给定单词的书索引相类似。
通常在多个分区上对数据库中的数据进行划分或分布,其中在这多个分区中使用一个以上的物理数据空间来存储数据库表格,但是该表格表现为用于诸如查询、插入、更新、以及删除这样的数据处理操作的一个对象。分区具有两种基本类型:横向和纵向。横向分区可将表格分成不相交的行集合,该不相交的行集合物理地存储在不同数据空间中并且对其进行单独存取。与此不同的是,纵向分区可将表格分成不相交的列集合,该不相交的列集合物理地存储在不同数据空间中并且对其进行单独存取。对数据进行分区可显著提高对数据进行存取的请求的性能,但是分区还具有这样的可能性,即,如果不适当地进行分区,则会使性能降低。
数据库管理员通常对数据进行分区以使它均匀分布在多个分区上,以便提高对分区进行存取的请求的性能,从而使得没有一个分区是该请求的瓶颈。令人遗憾的是,在对数据的数月或数年的操作(例如更新、插入、以及删除)之后,分区可能变得越来越不均匀地分布,这会导致请求对分区的不均匀分布。必然会出现性能降低,这是因为,具有最多数据的分区接收最多请求,并且由此变为性能瓶颈。
为了对分区数据的不均匀分布进行校正,管理员通常通过使数据在现有分区之间移动,或者通过创建新分区并且将来自现有分区的数据拷贝到新分区,来对数据进行重新分布。当前技术在对数据进行重新分布的同时必须关闭数据库或中断对数据库的请求。由于通常所涉及的数据量很大,因此重新分布可能会花费数小时、数天、或乃至数星期,在此时间期间数据是不可用的。对于许多用户来说,这种数据不可用性的持续时间是很恼人的或无法接受的。
因此,需要一种用于使数据在分区上重新分布的改进技术。
发明内容
提供了一种方法、装置、系统、以及信号承载介质。在一个实施例中,将数据划分成被分成多个级别的分区。按照级别的创建时间,将级别排序成从最新级别至最老级别。在当前分区上接收请求,并且该请求包括用于对记录中的字段进行标识的关键字以及该关键字的值。确定该值是否存在于当前分区的字段中。如果确定为假,那么从当前分区向下一较老分区级别中的下一较老分区发送消息,其中该消息命令下一较老分区将在所述字段中具有所述值的记录从下一较老分区移动到当前分区。如果确定为真,那么如果下一较新分区发送了该请求,则将在所述字段中具有所述值的记录从当前分区移动到下一较新分区,并且从当前分区中删除该记录。一旦当前分区中的数据是空的,则删除当前分区。在一个实施例中,使在所述字段中具有所述值的记录从当前分区移动到最新分区。按照这种方式,在仍执行对分区的请求的同时,可使记录从较老分区移动到较新分区。
附图说明
在下文中结合附图对本发明的各种实施例进行描述:
图1描述了用于实现本发明实施例的示例性系统的高级方框图;
图2描述了根据本发明实施例的存储器中的示例性分区的方框图;
图3A描述了根据本发明实施例的示例性数据的方框图;
图3B描述了根据本发明实施例的示例性的最新级别路由表的方框图;
图3C描述了根据本发明实施例的示例性的次最新级别路由表的方框图;
图4描述了根据本发明实施例的用于第一检查器的示例性数据结构的方框图;
图5描述了根据本发明实施例的用于创建新分区的示例性处理的流程图;
图6描述了根据本发明实施例的用于客户机上的路由器的示例性处理的流程图;
图7描述了根据本发明实施例的用于分区上的路由器的示例性处理的流程图;
图8描述了根据本发明实施例的用于分区上的路由器的进一步示例性处理的流程图;
图9描述了根据本发明实施例的用于使值在分区之间移动的示例性处理的流程图;
图10描述了根据本发明实施例的用于移除分区的示例性处理的流程图。
然而,应该明白的是,附图仅仅对本发明的示例性实施例进行说明,并且因此不应当被认为是对本发明范围的限制,对于本发明而言应当承认其他等效的实施例。
具体实施方式
参考附图,其中在整个若干视图中相同的数字表示相同的部分,图1描述了根据本发明实施例的通过网络130与客户机计算机系统132相连的服务器计算机系统100的高级方框图图示。在这里,仅仅为了方便起见,使用了术语“客户机”和“服务器”,并且在各个实施例中,在一个环境中作为客户机进行操作的计算机可能在另一环境中作为服务器进行操作,并且反之亦然。在一个实施例中,计算机系统100的硬件部件可以由可从纽约Armonk的国际商业机器公司中得到的eServer iSeries计算机系统来实现。然而,本领域普通技术人员应该明白的是,本发明的实施例中的机制和装置可同样应用于任何适当的计算系统。
计算机系统100的主要部件包括一个或多个处理器101、主存储器102、终端接111、存储接口112、I/O(输入/输出)设备接113、以及通信/网络接口114,它们通过存储器总线103、I/O总线104、以及I/O总线接口单元105进行耦合以便进行部件间通信。
计算机系统100包括一个或多个通用可编程中央处理单元(CPU)101A、101B、101C、以及101D,它们在此被总称为处理器101。在一个实施例中,计算机系统100包括典型的构成相对大系统的多处理器;然而,在另一个实施例中,计算机系统100或者可以是单CPU系统。每个处理器101执行存储在主存储器102中的指令,并且可以包括一个或多个级别的板上高速缓存。
主存储器102是用于对数据和程序进行存储或编码的随机存取半导体存储器。在另一个实施例中,主存储器102表示计算机系统100的整个虚拟内存,并且还可以包括与计算机系统100相耦合的或通过网络130连接的其他计算机系统的虚拟内存。主存储器102在概念上是单个单片式实体,但是,在其他实施例中,主存储器102是诸如由高速缓存和其他存储器设备构成的分级结构这样的更复杂的结构。例如,存储器可存在于多级的高速缓存中,并且可以进一步按照功能对这些高速缓存进行划分,从而使得一个高速缓存保存指令,而另一个高速缓存保存由一个处理器或多个处理器所使用的非指令数据。如在各种所谓的非一致存储器访问(NUMA)计算机体系结构中大家所熟知的那样,可以进一步对存储器进行分配并且使其与不同CPU或不同CPU集合相关联。
存储器102包括分区156。虽然将分区156说明为包含在计算机系统100中的存储器102之内,但是,在其他实施例中,它们中的一些或所有可以在不同计算机系统上,并且可以例如通过网络130对其进行远程存取。计算机系统100可以使用下述虚拟寻址机制,该虚拟寻址机制可使计算机系统100中的程序操作起来如同它们仅对大的单个存储设备实体进行存取而不是对多个较小存储设备实体进行存取那样。因此,虽然将分区156说明为包含在主存储器102之内,但是分区156的所有部分不一定都同时完全包含在相同存储设备之中。此外,虽然将分区156说明为单个实体,但是在其他实施例中可对它们中的一些或者它们中的一些的某些部分进行单独地封装。
分区156包括数据157、路由器158、路由表160、以及第一检查器164。下面参考图2对分区156进行进一步描述。下面参考图3A对数据157进行进一步描述。下面参考图3B和3C对路由表160进行进一步描述。下面参考图4对第一检查器164进行进一步描述。
在一个实施例中,路由器158包括可在处理器101上执行的指令或者可由在处理器101上执行的指令所解释的语句,以执行在下面参考图5、6、7、8、9、以及10所进一步描述的功能。在另一个实施例中,路由器158可以用微码来实现。在另一个实施例中,路由器158可以经由逻辑门用硬件和/或其他适当的硬件技术来实现。
存储器总线103提供用于在处理器101、主存储器102、以及I/O总线接口单元105之间传送数据的数据通信路径。I/O总线接口单元105进一步与系统I/O总线104相耦合,以便将数据传送到各种I/O单元并且对来自各种I/O单元的数据进行传送。I/O总线接口单元105通过系统I/O总线104与也被称为I/O处理器(IOP)或I/O适配器(IOA)的多个I/O接口单元111、112、113、以及114进行通信。系统I/O总线104例如可以是工业标准PCI(外围部件接口)总线,或者可以是任何其他适当的总线技术。
I/O接口单元支持与各种存储设备和I/O设备进行通信。例如,终端接口单元111支持一个或多个用户终端121、122、123、以及124的附连。存储接口单元112支持一个或多个直接存取存储设备(DASD)125、126、以及127(它们典型的是旋转的磁盘驱动器存储设备,但是作为选择,它们也可以是包括被配置为就主机而言表现为单个大存储设备的盘驱动器阵列的其他设备)的附连。根据需要,可将主存储器102的内容存储到直接存取存储设备125、126以及127中,或者可从直接存取存储设备125、126以及127中取回主存储器102的内容。
I/O设备接口113提供了与任何各种其他输入/输出设备或者其他类型的设备的接口。在图1的示意性实施例中示出了打印机128和传真机129这样的两个设备,但是在其他实施例中可以存在可能不同类型的许多其他这种设备。网络接口114提供了从计算机系统100至其他数字设备和计算机系统的一个或多个通信路径;这种路径可以包括例如一个或多个网络130。
虽然图1中将存储器总线103显示为用于在处理器101、主存储器102、以及I/O总线接口105当中提供直接通信路径的相对简单的单总线结构,但是事实上存储器总线103可以包括多个不同总线或通信路径,它们可以按照诸如分层的星形或网络配置中的点到点链路、多个分层总线、平行和冗余的路径、或者任何其他适当类型的配置这样的任何各种形式布置。此外,虽然I/O总线接口105和I/O总线104被显示为单个相应单元,但是计算机系统100实际上可以包括多个I/O总线接口单元105和/或多个I/O总线104。虽然示出了使系统I/O总线104与到达各种I/O设备的各种通信路径分离的多个I/O接口单元,但是在其他实施例中I/O设备中的一些或全部直接与一个或多个系统I/O总线相连。
图1中所描述的计算机系统100具有多个附连的终端121、122、123以及124,它们可能诸如典型的为多用户“大型机”计算机系统。典型地,在这种情况下,附连设备的实际数目大于图1中所示的数目,但是本发明并不局限于任何特定大小的系统。作为选择,计算机系统100可以是典型地仅包括单个用户显示器和键盘输入的单用户系统,或者可以是几乎没有或者没有直接用户接口但是接收来自其他计算机系统(客户机)的请求的服务器或类似设备。在其他实施例中,计算机系统100可以是被实现为个人计算机、便携式计算机、膝上型计算机或笔记本计算机、PDA(个人数字助理)、平板计算机、袖珍计算机、电话、传呼机、车辆、电话会议系统、仪器、或者任何其他适当类型的电子设备。
网络130可以是任何适当的网络或者网络的组合,并且可以支持适用于对送至/来自计算机系统100的数据和/或代码进行通信的任何适当协议。在各种实施例中,网络130可以代表直接或间接与计算机系统100相连的存储设备或存储设备的组合。在一个实施例中,网络130可以支持Infiniband。在另一个实施例中,网络130可以支持无线通信。在另一个实施例中,网络130可以支持诸如电话线或电缆这样的硬布线通信。在另一个实施例中,网络130可以支持以太网IEEE(电气及电子工程师协会)802.3x规范。在另一个实施例中,网络130可以是互联网并且可以支持IP(网际协议)。
在另一个实施例中,网络130可以是局域网(LAN)或广域网(WAN)。在另一个实施例中,网络130可以是热点服务提供者网络。在另一个实施例中,网络130可以是企业内部网。在另一个实施例中,网络130可以是GPRS(通用分组无线业务)网络。在另一个实施例中,网络130可以是任何适当的蜂窝数据网络或基于小区的无线电网络技术。在另一个实施例中,网络130可以是IEEE 802.11B无线网络。在又一个实施例中,网络130可以是任何适当的网络或网络的组合。虽然示出了一个网络130,但是在其他实施例中可以存在任何数目(包括零)的(相同类型或不同类型的)网络。
客户机计算机系统132可以包括计算机系统100的先前所述的硬件和/或软件元件中的一些或者全部。客户机计算机系统132包括与存储器102相连的处理器101。客户机计算机系统132中的存储器102包括路由器158、路由表160、以及应用程序170。该应用程序170向路由器158发送请求。路由器158使用路由表160将请求路由到分区156。虽然将客户机计算机系统132说明为与计算机系统100相分离并且通过网络130与计算机系统100相连,但是在另一个实施例中,客户机计算机系统132可以是计算机系统100的一部分,例如,客户机132可以被实现为存储在存储器102中的软件程序和数据。
应该明白的是,图1用来在高级别上对计算机系统100、网络130、以及客户机计算机系统132的代表性的主要部件进行描述,各个部件可以具有比图1所示更高的复杂性,可以存在不同于图1所示部件的部件,或者除了图1所示的部件之外还可以存在其它部件,并且这些部件的数目、类型以及配置是可以改变的。在这里公开了这种外加复杂性或外加变化的若干具体示例;但是应该明白的是,这些仅仅是示例性的并且不一定仅仅是这种变化。
可以用下述许多方式来实现图1中所说明的并且实现了本发明的各种实施例的各种软件组件,所述方式包括使用在下文中被称为“计算机程序”或简称为“程序”的各种计算机软件应用程序、例程、组件、程序、对象、模块、数据结构等。计算机程序典型地包括下述一个或多个指令,该指令在各个时间上驻留于计算机系统100中的各种存储器和存储设备中,并且当由计算机系统100中的一个或多个处理器101读取并执行时,该指令可使计算机系统100执行要执行构成本发明实施例的各个方面的步骤或单元所必需的步骤。
此外,虽然本发明的实施例已经在完全发挥功能的计算机系统的环境中进行了描述并且在下文中还将在该环境中进行描述,但是可将本发明的各个实施例分发作为各种形式的程序产品,并且不管用于实际上执行这种分发的特定类型的信号承载介质如何,都可同样地应用本发明。可以通过可操作地或者可通信地与处理器101连接(直接或间接地)的各种有形信号承载介质,将用于对该实施例的功能进行定义的程序递送至计算机系统100。信号承载介质可以包括但并不局限于:
(1)永久存储在不可重写型存储介质上的信息,所述不可重写型存储介质例如是与计算机系统附连的或位于其之内的只读存储器设备,诸如可由CD-ROM驱动器读取的CD-ROM;
(2)存储在例如硬盘驱动器(例如,DASD 125、126、或127)、CD-RW、或者盘之类的可重写型存储介质上的可变信息;或者
(3)通过通信介质、诸如通过例如网络130之类的计算机或电话网络而传送至计算机系统100的信息。
当有形信号承载介质编码有用于指导本发明功能的计算机可读且可执行的指令或者携带了这种指令时,这种有形信号承载介质代表了本发明的实施例。
本发明的实施例可作为与客户机公司、非营利组织、政府机构、内部“组织机构”等的约定服务的一部分进行递送。这些实施例的方面可以包括对计算机系统进行配置以执行并且部署用于实现在这里所描述的一些或所有方法的软件系统和web服务。这些实施例的方面还可以包括对客户机公司进行分析、对该分析做出响应而创建建议、产生用于实现该建议的某些部分的软件、将该软件集成到现有处理和基本设施之中、对在这里所描述的方法和系统的使用进行测量、将费用分配给用户、以及向用户开出他们使用这些方法和系统的帐单。
此外,基于下述应用来对下文中描述的各种程序进行标识,在本发明的特定实施例中对于所述应用实现了各种程序。但是,仅仅为了方便起见,使用随后的任何特定程序专门用语,并且因此本发明的实施例不应当局限于只是在通过这种专门用语所标识的和/或隐含的任何特定应用中使用。
图1中所说明的示意性环境不打算对本发明做出限制。实际上,在不脱离本发明的范围的情况下可使用其他替换性硬件和/或软件环境。
图2描述了根据本发明实施例的存储器102中的示例性分区的方框图。存储器102包括示例性分区156-1、156-2、156-3、156-4、156-5、以及156-6,所有这些分区均是分区156(图1)的示例性实例。将分区划分成可以具有任何数目的分区级别205-1和205-2。
将分区级别205-1命名为“N级别”,这意味着它是最新分区级别并且比诸如被命名为“N-1”级别的分区级别205-2(这意味着它比分区级别205-1(N级别)要老一个级别)这样的所有其他分区级别要新。分区级别的崭新度(newness)是指创建包含在分区级别之内的分区并且将新创建的分区的记录放入用于该分区级别的路由表160之中的日期和/或时间。因此,按照级别的创建时间将分区级别205-1和205-2排序成从最新级别205-1至最老级别、即图2的示例中的分区级别205-2,但是在其他实施例中可存在更多的级别。
分区级别(N级别)205-1包括分区M1156-1和分区M2-2。分区M1(N级别)156-1包括数据(N级别)157-1、路由器(N级别)158-1、路由表(N级别)160-1、以及第一检查器(N级别)164-1。数据(N级别)157-1是数据157(图1)的示例。路由器(N级别)158-1是路由器158(图1)的示例。路由表(N级别)160-1是路由表160(图1)的示例。第一检查器(N级别)164-1是第一检查器164(图1)的示例。
分区M2(N级别)156-2包括数据(N级别)157-2、路由器(N级别)158-2、路由表(N级别)160-2、以及第一检查器(N级别)164-2。数据(N级别)157-2是数据157(图1)的示例。路由器(N级别)158-2是路由器158(图1)的示例。路由表(N级别)160-2是路由表160(图1)的示例。第一检查器(N级别)164-2是第一检查器164(图1)的示例。
分区级别(N-1级别)205-2包括分区A(N-1级别)156-3、分区B(N-1级别)156-4、分区M(N-1级别)156-5、以及分区Z(N-1级别)156-6。分区M(N-1级别)156-5包括数据(N-1级别)157-3、路由器(N-1级别)158-3、路由表(N-1级别)160-3、以及第一检查器(N-1级别)164-3。数据(N-1级别)157-3是数据157(图1)的示例。路由器(N-1级别)158-3是路由器158(图1)的示例。路由表(N-1级别)160-3是路由表160(图1)的示例。第一检查器(N-1级别)164-3是第一检查器164(图1)的示例。
分区M1(N级别)156-1和分区M2(N级别)156-2表示将要替换分区M(N-1级别)156-5的新创建的分区。数据库管理员可以请求路由器158做出该改变,这是因为,例如分区M(N-1级别)156-5中的数据(N-1级别)157-3具有比其他分区(例如分区A(N-1级别)156-3或分区Z(N-1级别)156-6)更多的记录或者正在接收比其他分区更多的请求。但是,不必使所有数据(N-1级别)157-3都立刻移动到分区M1(N级别)156-1中的数据(N级别)157-1以及移动到分区M2(N级别)中的数据(N级别)157-2。作为替代,如随后参考图5、6、7、8、9以及10所进一步描述的那样,路由器158随着时间的流逝使记录从数据(N-1级别)157-3移动到分区M1(N级别)156-1中的数据(N级别)157-1以及移动到分区M2(N级别)中的数据(N级别)157-2,同时路由器158继续对来自客户机计算机系统132的数据请求进行处理。最终,可以使曾经处于分区M 156-5中的所有数据都移动到较新的分区M1 156-1和156-2,在此之后可以删除分区M 156-5。但是,在完成使所有数据从分区M 156-5移动到较新分区级别的时间之前,曾经位于分区M 156-5中的数据分布在数据157-3、数据157-1、数据157-2上。
路由器158使用用于每个级别的各个路由表,按照从最新级别开始并且朝着最老级别前进的分区级别的顺序,在分区级别中搜索所请求的数据(通过共同对数据记录进行标识的关键字和值进行搜索)。特定分区级别不包括分布在各个分区上或划分成各个分区的所有数据,例如,分区级别205-2中的分区A(N-1级别)156-3不具有分区级别205-1中的对应分区。
图3A描述了根据本发明实施例的示例性数据157的方框图。数据157包括可以是行或数据项的示例性记录300和301,其每一个都包括列或字段302、303、以及304。列302、303、以及304中的一些或全部都可用作关键字以对数据157进行存取。列或字段302、303、以及304将值存储在记录300和301中。例如,记录300包括列302中的值“Marie”、列303中的值“Minnesota”、以及列304中的值“55901”。作为另一示例,记录301包括列302中的值“murie”、列303中的值“Texas”、以及列304中的值“78758”。列302、303、以及304中的一些或全部都可用作关键字,以通过用于对相关联记录(例如记录300)进行标识的关键字(例如名称字段)与值(例如“Marie”)的指定组合来对数据157中的记录进行存取。
图3B描述了根据本发明实施例的示例性的最新路由表(N级别)160-1的方框图。路由表(N级别)160-1是路由表160(图1)的示例。路由器(N级别)158-1和路由器(N级别)158-2使用路由表(N级别)160-1确定向其分配了由所接收到的请求所请求的数据的分区156,以便将该请求路由到适当分区。
路由表(N级别)160-1包括记录305、310、315、320、以及325,其每一个都包括关键字字段330、值字段335、以及分区标识符字段340。关键字字段330对数据157中的列或字段进行标识。值字段335对可能存在于由相应关键字330所标识的数据157中的字段或列中的值或值范围进行标识。将关键字330的值335分配给或使其属于由它们的相应分区标识符340所标识的它们的相应分区156。
值335被分配给或属于由分区标识符340所标识的分区156,不一定意味着:关键字330的值335实际上存在于或实际上被存储在由分区标识符340所标识的分区156的数据157中。作为替代,关键字330的值335被分配给或属于由分区标识符340所标识的分区156,意味着:如果关键字330的值335存在于或存储在路由表(N级别)160-1中所标识的分区156内的数据中,那么将关键字330的值335存储在由其相应分区标识符340所标识的分区156中。例如,如果开始“MB”的值存在于路由表(N级别)160-1中所标识的分区中,那么将开始“MB”的值存储在用于分区“M1”156-1(记录315)的数据(N级别)157-1中,而不是存储在记录305、310、320、或者325中所标识的分区内的数据157中。
如在最新路由表(N级别)160-1中所说明的那样,新分区方案特别包括分区M1和M2(记录315和320)。在记录315中所标识的分区M1包括在名称字段中具有从Ma开始至Mk的值的记录,并且在记录320中所标识的分区M2包括在名称字段中具有从Ml-Mz开始的值的记录。
值得注意的是,所有分区标识符340不必对处于N级别上的分区进行标识。例如,如图2中所说明的,分区A 156-3(在记录305中所标识的)、分区B 156-4(在记录305中所标识的)、以及分区Z 156-6(记录325)处于N-1级别上。但是,如图2中所说明的,分区M1 156-1(在记录315中所标识的)以及分区M2 156-2(在记录320中所标识的)处于N级别上。当前分区级别上的路由器通过经由与请求相关联的关键字和值查找当前分区上的当前路由表中的分区标识符,来查找适当分区以发送请求。所找到的分区标识符可以对处于当前路由器的当前分区级别上或者与当前路由器不同的分区级别上的分区进行标识。
图3C描述了根据本发明实施例的示例性N-1级别路由表160-3的方框图。路由表(N-1级别)160-3是路由表160(图1)的示例。路由器(N-1级别)158-3使用路由表(N-1级别)160-3确定向其分配了由所接收到的请求所请求的数据的分区,以便将该请求路由到适当分区。路由表160-3包括记录350、355、360、以及365,其每一个都包括关键字字段370、值字段375、以及分区标识符字段380。
关键字字段370对数据157中的列或字段进行标识。值字段375对可能存在于由相应关键字370所标识的数据157中的字段或列中的值或值范围进行标识。将关键字370的值335分配给或使其属于由它们的相应分区标识符380所标识的它们的相应分区156。
图4描述了根据本发明实施例的第一检查器164的示例性数据结构。第一检查器164包括删除数据关键字列表405和移动中(in-moving)数据关键字列表410。
删除数据关键字列表405表示已从分区156的数据157中删除掉的记录。删除数据关键字列表405包括示例性记录420、425、以及430,其每一个都包括关键字字段435、值字段440、以及分区标识符字段445。已从由分区标识符445所标识的分区156中的数据157中删除了关键字435的值字段440。
移动中数据关键字列表410包括示例性记录460和465,其每一个都包括关键字字段470、值字段475、以及分区标识符字段480。由关键字字段470和值字段475所表示的数据157中的记录处于正使其移出由分区标识符字段480所标识的分区156这样的处理中。
图5描述了根据本发明实施例的用于在服务器计算机系统100上的路由器(N-1)158-3的示例性处理的流程图。控制在块500开始。此后控制继续至块505,在块505中,分区(N-1级别)156-5上的路由器(N-1级别)158-3根据较老分区(N-1级别)156-5创建新分区(N级别)156-1和156-2。此后控制继续至块510,在块510中,路由器(N-1)158-3创建新路由器(N级别)158-1和158-2。
此后控制继续至块515,在块515中,路由器(N级别)158-1创建新路由表(N级别)160-1,并且路由器(N级别)158-2创建新路由表(N级别)160-2。路由表(N级别)160-1和160-2可以是相同的路由表,并且路由器158-1和158-2可以是相同的路由器。此后控制继续至块520,在块520中,路由器(N级别)158-1创建新的第一检查器(N级别)164-1并且路由器(N级别)158-2创建新的第一检查器(N级别)164-2。在创建其相应分区156-1和156-2时,不一定创建数据(N级别)157-1和157-2。此后控制继续至块599,在块599中,图5中的逻辑返回。
图6描述了根据本发明实施例的用于在客户机计算机系统132上的路由器158的示例性处理的流程图。控制在块600开始。此后控制继续至块605,在块605中,客户机计算机系统132上的应用程序170向客户机计算机系统132上的路由器158提出请求。该请求包括关键字和该关键字的值。该关键字对数据157中的字段或列进行标识。该值是位于所标识的字段、记录、或者列之内的数据值。关键字和关键字的值一起对数据157之内的记录、行、或者数据项进行标识,并且该记录、行、或者数据项可以包括该值以及其他数据。
此后控制继续至块610,在块610中,客户机计算机系统132上的路由器158根据与该请求一起接收到的关键字和值,从最新路由表(N级别)中确定出最新分区(N级别)。例如,如果所接收到的关键字是“名称”,并且所接收到的值是“Marie”,那么客户机计算机系统132上的路由器158通过查找关键字字段330中的名称关键字以及值335的范围“MA-MK”之内的值“Marie”,来确定记录315中的最新分区M1340。
此后控制继续至块615,在块615中,客户机计算机系统132上的路由器158向所确定的分区(N级别)发送请求。此后控制继续至块620,在块620中,如随后参考图7所进一步描述的那样,分区(N级别)对该请求进行处理。此后控制继续至块625,在块625中,客户机计算机系统132上的路由器158接收来自分区(N级别)的响应。此后控制继续至块630,在块630中,客户机计算机系统132上的路由器158向应用程序170发送所述响应。此后控制继续至块699,在块699中,图6中的逻辑返回。
图7和8描述了根据本发明实施例的用于当前分区(N-I级别)156上的当前路由器(N-I级别)158的示例性处理的流程图。如在这里所使用的,“N-I”是指当前分区级别,其是指与当前正在执行所说明的逻辑的路由器158相关联的分区级别。用与最新分区级别“N”的差值来表示当前分区级别“N-I”。因此,如果I=0,那么当前分区级别是最新创建的分区级别205-1;如果I=1,那么当前分区级别是次最新创建的分区级别205-2;等等。此外,分区级别“N-I-1”是指比当前分区级别要老一个级别的分区级别,而分区级别“N-I+1”是指比当前分区级别要新一个级别的分区级别。作为特例,如果I=0,那么N-I+1是指客户机计算机系统132,这是因为不存在比最新分区级别更新的分区级别,并且客户机计算机系统132向处于最新分区级别上的分区发送请求并且接收来自其的响应。
控制在块700开始。此后控制继续至块705,在块705中,当前分区(N-I级别)156上的当前路由器(N-I级别)158接收来自较新分区(N-I+1级别)或者在I=0的情况下接收来自客户机计算机系统132的请求、关键字、以及该关键字的值。此后控制继续至块710,在块710中,当前分区(N-I级别)156上的当前路由器(N-I级别)158确定该值是否存在于由当前分区(N-I级别)156的当前数据(N-I级别)157中的关键字所标识的字段中。
如果块710的确定是真,那么该值存在于由当前分区(N-I级别)156的当前数据(N-I级别)157中的关键字所标识的字段中,因此控制继续至图8中的块825,在块825中,当前分区(N-I级别)156上的当前路由器(N-I级别)158确定该请求是否是删除请求。如果块825的确定是真,那么该请求是删除请求,因此控制继续至块830,在块830中,当前分区(N-I级别)156上的当前路由器(N-I级别)158将所述关键字和值添加到当前分区(N-I级别)156上的当前第一检查器(N-I级别)164中的当前删除数据关键字列表(N-I级别)405上。此后控制继续至块835,在块835中,如随后参考图9所进一步描述的那样,当前分区(N-I级别)156上的当前路由器(N-I级别)158可选地执行以下处理之一:1)使由该请求中的关键字和值所标识的记录从当前分区(N-I级别)156上的当前数据(N-I级别)157移动到下一较新分区级别(N-I+1级别)的下一较新数据(N-I+1级别)157;或者2)启动数据移动器线程,以使由该请求中的关键字和值所标识的记录从当前分区(N-I级别)156的当前数据(N-I级别)157移动到最新分区(N)156的最新数据(N)。使记录移动的处理包括:在将记录发送到较新分区(N-I+1级别)之后,或者在将记录发送到最新分区(N)之后,从当前数据(N-I级别)中删除记录。如果I=0,则使记录移动到较新分区(N)156是指将响应中的数据发送到客户机132。此后控制继续至块899,在块899中,图8中的逻辑返回。
如果块825的确定是假,那么该请求不是删除请求,因此控制继续至先前所述的块835。
如果块710的确定是假,那么该值不存在于由当前分区(N-I级别)156的当前数据(N-I级别)157中的关键字所标识的字段中,因此控制继续至块715,在块715中,当前分区(N-I级别)156上的当前路由器(N-I级别)158确定所述关键字和值是否存在于当前分区(N-I级别)156的当前第一检查器(N-I级别)164的当前删除数据关键字列表(N-I级别)405中。如果块715的确定是真,那么所述关键字和值存在于当前删除数据关键字列表(N-I级别)405中,并且已从当前分区(N-I级别)156的当前数据(N-I级别)157中删除了关键字值,因此控制继续至先前所述的图8中的块825。
如果块715的确定是假,那么所述关键字和值不存在于删除关键字列表(N-I级别)405中,并且没有从当前分区(N-I级别)156的当前数据(N-I级别)157中删除关键字值,因此控制继续至块720,在块720中,当前分区(N-I级别)156上的当前路由器(N-I级别)158确定所述关键字和值是否存在于当前分区(N-I级别)156中的当前移动中关键字列表(N-I级别)410中。如果块720确定是真,那么所述关键字和值存在于当前分区(N-I级别)156中的当前移动中关键字列表(N-I级别)410中,并且由该关键字值所标识的记录处于正使其移动到当前分区(N-I级别)156的数据(N-I级别)157中这样的处理中,因此控制继续至块725,在块725中,当前分区(N-I级别)156上的当前路由器(N-I级别)158等待完成将由所述关键字和值所标识的记录移动到当前分区(N-I级别)156的当前数据(N-I级别)157中。一旦移动完成了,此后控制就继续至先前所述的块825。
如果块720的确定是假,那么所述关键字和值不存在于当前分区(N-I级别)156上的当前移动中关键字列表(N-I级别)410中,并且由该关键字值所标识的记录不处于使其移动到当前分区(N-I级别)156的数据(N-I级别)157中这样的处理中,因此控制继续至图8的块805,在块805中,当前分区(N-I级别)156上的当前路由器(N-I级别)158将所请求的关键字、值、以及当前分区(N-I级别)156的标识符添加到当前分区(N-I级别)156上的当前移动中列表(N-I级别)410上。此后控制继续至块810,在块810中,当前分区(N-I级别)156上的当前路由器(N-I级别)158将一条消息与该请求一起发送到下一较老分区级别(N-I-1级别)上的下一较老路由器(N-I-1级别)。该消息命令下一较老分区级别(N-I-1级别)上的下一较老路由器(N-I-1级别)将由该请求中的关键字和值所标识的记录通过所说明的对图7中的逻辑的递归调用而从下一较老分区(N-I-1级别)156中的下一较老数据(N-I-1级别)157移动到当前分区(N-I级别)156中的当前数据(N-I级别)157。递归调用仅是为了方便说明起见而使用的,并且在另一个实施例中各个分区级别205-L和205-2所使用的路由器158可以是彼此不递归调用的独立实体。
此后控制继续至块815,在块815中,如随后参考图9所进一步描述的那样,当前分区(N-I级别)156上的当前路由器(N-I级别)158启动数据移动器线程,以使由该请求中的关键字和值所标识的记录从当前分区(N-I级别)156移动到最新分区级别中的最新分区(N)156。此后控制继续至块820,在块820中,当前路由器(N-I级别)158等待由关键字值所标识的记录到达当前分区(N-I级别)156上的当前数据(N-I级别)157。响应于记录到达,当前路由器(N-I级别)158从移动中列表410中除去(删除)所述关键字、值、以及当前分区(N-I级别)156。此后控制继续至先前所描述的块825。
图9描述了根据本发明实施例的用于使值在分区之间移动的示例性处理的流程图。控制在块900开始。此后控制继续至块905,在块905中,路由器(N-I级别)156确定当前分区(N-I级别)156或最新分区(N)156是否为忙。如果块905的确定是真,那么当前分区(N-I级别)156或最新分区(N)156中的至少一个为忙,这意味着当前路由器(N-I级别)158或路由器(N)忙于处理请求或移动数据,因此控制继续至块945,在块945中,路由器等待某一个时段。此后控制回到先前所述的块905。
如果块905的确定是假,那么当前分区(N-I级别)156和最新分区(N)156这两者都不忙,所以控制继续至块910,在块910中,当前分区(N-I级别)156上的当前路由器(N-I级别)158查找具有与该请求中的关键字和值相匹配的关键字和值的当前分区(N-I级别)156中的所有记录、行、或者记录。此后控制继续至块915,在块915中,当前分区(N-I级别)156上的当前路由器(N-I级别)158选择具有存在于当前分区(N-I级别)156中的关键字值的记录的一部分。此后控制继续至块920,在块920中,当前分区(N-I级别)156上的当前路由器(N-I级别)158将与关键字值相关联的记录的所选部分发送到最新分区(N)156的移动中关键字列表410。此后控制继续至块925,在块925中,当前路由器(N-I级别)158使与该关键字值相关联的所选记录从当前分区(N-I级别)156中的当前数据(N-I级别)157移动到最新分区(N)156,并且从当前分区(N-I级别)156中的当前数据(N-I级别)157中删除所选记录。此后控制继续至块930,在块930中,当前分区(N-I级别)156上的当前路由器(N-I级别)158从最新分区(N)156的移动中关键字列表410除去(删除)具有关键字值的所选部分。
此后控制继续至块935,在块935中,当前分区(N-I级别)156上的当前路由器(N-I级别)158确定当前分区(N-I级别)156中的当前数据(N-I级别)157是否为空。如果块935的确定是真,那么当前分区(N-I级别)156中的当前数据(N-I级别)157为空,因此控制继续至块940,在块940中,如随后参考图10所进一步描述的那样,当前分区(N-I级别)156上的当前路由器(N-I级别)158除去(删除)当前分区(N-I级别)156和当前路由表(N-I级别)160。此后控制继续至块999,在块999中图9中的逻辑返回。
如果块935的确定是假,那么当前分区(N-I级别)156中的当前数据(N-I级别)157不为空,因此控制继续至块899,在块899中图9中的逻辑返回。
本发明的实施例支持根据需要由客户机开始的在分区之间的数据移动以及由服务器开始的在分区之间的数据移动。按照这种方式,可使数据从较老分区移动到较新分区,同时仍执行发往分区的请求。客户机开始的在分区之间的数据移动具有较高优先级,以确保客户机服务并且确保在对数据进行重新分区期间不会妨碍性能。服务器开始的数据移动通过使用计算机的空闲周期,例如通过如先前针对块905所描述的那样等待直到这两个分区都不忙,而使重新分区处理加速。
图10描述了根据本发明实施例的用于除去当前分区(N-I级别)156的示例性处理的流程图。控制在块1000开始。此后控制继续至块1005,在块1005中,当前路由器(N-I级别)158确定当前分区(N-I级别)156中的当前数据(N-I级别)157是否为空。如果块1005的确定是真,那么当前分区(N-I级别)156中的当前数据(N-I级别)157为空(不包含记录),因此控制继续至块1010,在块1010中,当前路由器(N-I级别)158从当前分区(N-I级别)156中除去(删除)路由表(N-I级别)。此后控制继续至块1015,在块1015中,当前路由器(N-I级别)158从存储器102中除去(删除)当前分区(N-I级别)156。此后控制继续至块1099,在块1099中图10中的逻辑返回。
如果块1005的确定是假,那么当前分区(N-I级别)156中的当前数据(N-I级别)157不为空(仍包括至少一个记录),因此控制继续至块1020,在块1020中,当前路由器(N-I级别)158等待某一个时段。此后控制回到先前所述的块1005。
在本发明的示意性实施例的先前详细说明中,参考了构成其一部分的附图(其中相同的数字表示相同元件),其中附图是通过说明在其中可实施本发明的特定示意性实施例而给出的。对这些实施例进行了足够详细地描述,以使本领域普通技术人员可实施本发明,但是也可使用其他实施例,并且在不背离本发明的范围的情况下可做出逻辑上的、机械的、电的、以及其他改变。在先前的描述中,对许多具有细节进行了描述以提供对本发明实施例的彻底了解。但是,无需这些细节也可实施本发明。在其他情况下,为了不使本发明难以理解,没有详细地示出众所周知的电路、结构、以及技术。
在该说明书内使用的词语“实施例”的不同情况未必是指相同实施例,但是它们可以指相同实施例。在这里所说明的或所描述的任何数据和数据结构仅仅是示例性的,并且在其他实施例中,可使用不同量的数据、不同数据类型、不同字段、不同的字段数目和类型、不同字段名称、不同的行数目和类型、不同记录、不同条目、或者不同的数据组织结构。此外,可将任何数据与逻辑进行组合,从而使得分离的数据结构不是必需的。因此,先前的详细说明不应构成限制,并且本发明的范围仅由所附权利要求书来定义。
Claims (14)
1、一种用于使记录在分区之间移动的方法,包括:
在当前分区上接收请求,其中当前分区是多个分区中的一个,其中数据被划分到多个分区,其中多个分区被划分成多个级别,其中当前级别包括当前分区,其中按照级别的创建时间将所述级别排序成从最新级别至最老级别,并且其中该请求包括关键字和该关键字的值,其中该关键字对数据中的记录中的字段进行标识;
确定所述值是否存在于当前分区的字段中;
如果所述值存在于当前分区的字段中,那么如果下一较新分区发送了该请求,则使在所述字段中具有所述值的记录从当前分区移动到下一较新分区,并且从当前分区中删除该记录;以及
如果所述值不存在于当前分区的字段中,那么从当前分区向下一较老分区级别中的下一较老分区发送消息,其中该消息命令下一较老分区将在所述字段中具有所述值的记录从下一较老分区移动到当前分区。
2、根据权利要求1的方法,其中,多个分区中的每一个包括一个相应的路由器,其中,当前分区中的当前路由器执行确定所述值是否存在于当前分区的字段中的操作,所述方法进一步包括:
如果所述值存在于当前分区的字段中,那么如果一个客户机计算机中的客户机路由器发送了该请求,则将在所述字段中具有所述值的记录从当前分区发送到所述客户机路由器,其中当前路由器执行将在所述字段中具有所述值的记录从当前分区发送到所述客户机路由器的操作。
3、根据权利要求1的方法,其中,确定所述值是否存在于当前分区的字段中进一步包括:
确定是否已从当前分区中删除了该关键字的值。
4、根据权利要求1的方法,其中,确定所述值是否存在于当前分区的字段中进一步包括:
确定该记录是否已从下一较老分区移动到当前分区。
5、根据权利要求2的方法,进一步包括:
将在所述字段中具有所述值的记录从当前分区移动到最新级别的最新分区,其中最新级别是在比其他所有多个级别的创建时间更新的最新创建时间创建的,其中将在所述字段中具有所述值的记录从当前分区移动到最新级别的最新分区进一步包括:找到当前分区中的多个记录,其中所述关键字进一步识别多个记录中的字段;选择多个记录中的一部分;以及,将多个记录的所述部分从当前分区移动到最新分区,其中,当前分区中的当前路由器执行将在所述字段中具有所述值的记录从当前分区移动到最新分区的操作,其中客户机路由器向最新分区中的最新路由器发送请求。
6、根据权利要求5的方法,其中,所述将在所述字段中具有所述值的记录从当前分区移动到最新级别的最新分区进一步包括:
等待移动在所述字段中具有所述值的记录直至当前分区和最新分区不忙于移动其他记录为止。
7、根据权利要求5的方法,进一步包括:
如果当前分区中的数据为空,那么删除当前分区。
8、一种用于使记录在分区之间移动的系统,该系统包括:
在当前分区上接收请求的装置,其中当前分区是多个分区中的一个,其中数据被划分到多个分区,其中多个分区被划分成多个级别,其中当前级别包括当前分区,其中按照级别的创建时间将所述级别排序成从最新级别至最老级别,并且其中该请求包括关键字和该关键字的值,其中该关键字对数据中的记录中的字段进行标识;
确定所述值是否存在于当前分区的字段中的装置;
如果所述值存在于当前分区的字段中、那么如果下一较新分区发送了该请求、则使在所述字段中具有所述值的记录从当前分区移动到下一较新分区、并且从当前分区中删除该记录的装置;以及
如果所述值不存在于当前分区的字段中、那么从当前分区向下一较老分区级别中的下一较老分区发送消息、其中该消息命令下一较老分区将在所述字段中具有所述值的记录从下一较老分区移动到当前分区的装置。
9、根据权利要求8的系统,其中,多个分区中的每一个包括一个相应的路由器,其中,确定所述值是否存在于当前分区的字段中的装置是当前分区中的当前路由器,其中,
如果所述值存在于当前分区的字段中,那么如果一个客户机计算机中的客户机路由器发送了该请求,则当前路由器将在所述字段中具有所述值的记录从当前分区发送到所述客户机路由器。
10、根据权利要求8的系统,其中,确定所述值是否存在于当前分区的字段中的装置进一步包括:
确定是否已从当前分区中删除了该关键字的值的装置。
11、根据权利要求8的系统,其中,确定所述值是否存在于当前分区的字段中的装置进一步包括:
确定该记录是否已从下一较老分区移动到当前分区的装置。
12、根据权利要求9的系统,进一步包括:
将在所述字段中具有所述值的记录从当前分区移动到最新级别的最新分区的装置,其中最新级别是在比其他所有多个级别的创建时间更新的最新创建时间创建的,其中将在所述字段中具有所述值的记录从当前分区移动到最新级别的最新分区的装置进一步包括:找到当前分区中的多个记录的装置,其中所述关键字进一步识别多个记录中的字段;选择多个记录中的一部分的装置;以及,将多个记录的所述部分从当前分区移动到最新分区的装置,其中,将在所述字段中具有所述值的记录从当前分区移动到最新分区的装置为当前分区中的当前路由器,其中客户机路由器向最新分区中的最新路由器发送请求。
13、根据权利要求12的系统,其中,将在所述字段中具有所述值的记录从当前分区移动到最新级别的最新分区的装置进一步包括:
等待移动在所述字段中具有所述值的记录直至当前分区和最新分区不忙于移动其他记录为止的装置。
14、根据权利要求13的系统,进一步包括:
如果当前分区中的数据为空则删除当前分区的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/424,079 | 2006-06-14 | ||
US11/424,079 US7512621B2 (en) | 2006-06-14 | 2006-06-14 | Moving records between partitions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101131697A CN101131697A (zh) | 2008-02-27 |
CN100590620C true CN100590620C (zh) | 2010-02-17 |
Family
ID=38862743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710097027A Expired - Fee Related CN100590620C (zh) | 2006-06-14 | 2007-04-17 | 用于使记录在分区之间移动的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7512621B2 (zh) |
CN (1) | CN100590620C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2906624A1 (fr) * | 2006-10-03 | 2008-04-04 | Bull S A S Soc Par Actions Sim | Systeme et procede de stockage de masse. |
US7779010B2 (en) * | 2007-12-12 | 2010-08-17 | International Business Machines Corporation | Repartitioning live data |
US8364677B2 (en) * | 2008-08-01 | 2013-01-29 | International Business Machines Corporation | Method and apparatus for generating partitioning keys for a range-partitioned database |
EP2270692A1 (en) * | 2009-06-30 | 2011-01-05 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Lifecycle-based horizontal partitioning |
CN102200972A (zh) * | 2010-03-24 | 2011-09-28 | 腾讯科技(北京)有限公司 | 一种数据库维护方法和设备 |
JP2012010197A (ja) * | 2010-06-25 | 2012-01-12 | On Semiconductor Trading Ltd | Fm多重信号を処理する半導体装置 |
US8880841B2 (en) | 2011-11-15 | 2014-11-04 | International Business Machines Corporation | Distributing data among data storage partitions based on a forecasted demand in a networked computing environment |
US9323798B2 (en) * | 2013-01-14 | 2016-04-26 | International Business Machines Corporation | Storing a key value to a deleted row based on key range density |
US9152657B1 (en) * | 2013-03-14 | 2015-10-06 | The Mathworks, Inc. | Indexing to extract homogeneous arrays from heterogeneous arrays |
US10044799B2 (en) | 2013-05-28 | 2018-08-07 | International Business Machines Corporation | Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner |
US9854035B2 (en) | 2013-05-28 | 2017-12-26 | International Business Machines Corporation | Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring periodic synchronization |
US10061789B2 (en) * | 2013-10-28 | 2018-08-28 | Excalibur Ip, Llc | Dynamic database indexes for entity attribute value stores |
CN108319623B (zh) * | 2017-01-18 | 2021-10-22 | 华为技术有限公司 | 一种数据重分布方法、装置及数据库集群 |
US11640382B2 (en) * | 2021-01-05 | 2023-05-02 | Bank Of America Corporation | Optimizing database performance through intelligent data partitioning orchestration |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6125370A (en) * | 1998-04-01 | 2000-09-26 | International Business Machines Corporation | Repartitioning data |
US6269375B1 (en) * | 1998-04-01 | 2001-07-31 | International Business Machines Corporation | Rebalancing partitioned data |
US6757805B2 (en) * | 2002-05-24 | 2004-06-29 | Yu-Te Wu | Partitioning method for configuring a data storage medium with a number of virtual partitioned areas |
US6834296B2 (en) * | 2002-03-01 | 2004-12-21 | International Business Machines Corporation | Apparatus and method of multicasting or broadcasting data from one partition of a partitioned computer system to a plurality of other partitions |
CN1707462A (zh) * | 2004-06-10 | 2005-12-14 | 国际商业机器公司 | 用于动态托管分区页面分配的方法和设备 |
US7035851B1 (en) * | 2001-12-07 | 2006-04-25 | Ncr Corp. | Reorganization of database records using partition merging |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640244B1 (en) * | 2004-06-07 | 2009-12-29 | Teredata Us, Inc. | Dynamic partition enhanced joining using a value-count index |
US7302522B2 (en) * | 2004-12-27 | 2007-11-27 | Lsi Corporation | Optimizing I/O performance in a RAID subsystem using an adaptive maximum request size for a logical drive |
JP4686305B2 (ja) * | 2005-08-26 | 2011-05-25 | 株式会社日立製作所 | ストレージ管理システムおよびその方法 |
-
2006
- 2006-06-14 US US11/424,079 patent/US7512621B2/en not_active Expired - Fee Related
-
2007
- 2007-04-17 CN CN200710097027A patent/CN100590620C/zh not_active Expired - Fee Related
-
2008
- 2008-08-14 US US12/228,686 patent/US7966349B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6125370A (en) * | 1998-04-01 | 2000-09-26 | International Business Machines Corporation | Repartitioning data |
US6269375B1 (en) * | 1998-04-01 | 2001-07-31 | International Business Machines Corporation | Rebalancing partitioned data |
US7035851B1 (en) * | 2001-12-07 | 2006-04-25 | Ncr Corp. | Reorganization of database records using partition merging |
US6834296B2 (en) * | 2002-03-01 | 2004-12-21 | International Business Machines Corporation | Apparatus and method of multicasting or broadcasting data from one partition of a partitioned computer system to a plurality of other partitions |
US6757805B2 (en) * | 2002-05-24 | 2004-06-29 | Yu-Te Wu | Partitioning method for configuring a data storage medium with a number of virtual partitioned areas |
CN1707462A (zh) * | 2004-06-10 | 2005-12-14 | 国际商业机器公司 | 用于动态托管分区页面分配的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US7966349B2 (en) | 2011-06-21 |
US7512621B2 (en) | 2009-03-31 |
US20070294276A1 (en) | 2007-12-20 |
US20080320244A1 (en) | 2008-12-25 |
CN101131697A (zh) | 2008-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100590620C (zh) | 用于使记录在分区之间移动的系统和方法 | |
KR101137147B1 (ko) | 질의 강제 인덱싱 | |
JP4416821B2 (ja) | ネットワーク上でクライアントからアクセス可能なファイルセットの名前空間を維持する分散ファイル・システム | |
CN104067216A (zh) | 用于实施可扩展数据存储服务的系统和方法 | |
CN103314377B (zh) | 稀疏索引表组织 | |
CN1848849B (zh) | 复制目录修改的方法和装置 | |
US7526469B2 (en) | Method and system of database management with shared area | |
US20070239673A1 (en) | Removing nodes from a query tree based on a result set | |
JP2006107446A (ja) | ネットワーク・ドキュメントのバッチ索引付けのためのシステムおよび方法 | |
US9477772B2 (en) | Storing and retrieving objects on a computer network in a distributed database | |
US8010568B2 (en) | Enforcing constraints from a parent table to a child table | |
CN109460409A (zh) | 数据访问方法和装置 | |
WO2017156855A1 (en) | Database systems with re-ordered replicas and methods of accessing and backing up databases | |
US7506000B2 (en) | Method and system for programming disconnected data | |
US11556515B2 (en) | Artificially-intelligent, continuously-updating, centralized-database-identifier repository system | |
JP2020134961A (ja) | データベース管理システム、端末装置及び方法 | |
JP4825504B2 (ja) | データ登録・検索システムおよびデータ登録・検索方法 | |
US11301448B2 (en) | Method and system of a secondary index in a distributed data base system | |
JPS60129873A (ja) | 文書保管検索システム | |
JP2008176715A (ja) | 情報管理システム | |
JPH11265389A (ja) | 共用データベース装置および共用データベースシステム | |
US8650153B2 (en) | Storing records in databases in a randomized manner to effectively utilize database servers | |
US20030131009A1 (en) | Transaction method and system | |
CN114691683A (zh) | 一种业务数据的管理系统及其处理方法、装置和设备 | |
WO2003007525A2 (en) | Integrating electronic storage facilities |
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: 20100217 |
|
CF01 | Termination of patent right due to non-payment of annual fee |