CN104185841B - 数据库系统、管理装置、节点以及数据处理方法 - Google Patents

数据库系统、管理装置、节点以及数据处理方法 Download PDF

Info

Publication number
CN104185841B
CN104185841B CN201380003048.1A CN201380003048A CN104185841B CN 104185841 B CN104185841 B CN 104185841B CN 201380003048 A CN201380003048 A CN 201380003048A CN 104185841 B CN104185841 B CN 104185841B
Authority
CN
China
Prior art keywords
node
subregion
dispenser
backup
acquisition system
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.)
Active
Application number
CN201380003048.1A
Other languages
English (en)
Other versions
CN104185841A (zh
Inventor
服部雅
服部雅一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Publication of CN104185841A publication Critical patent/CN104185841A/zh
Application granted granted Critical
Publication of CN104185841B publication Critical patent/CN104185841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component

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)
  • Hardware Redundancy (AREA)

Abstract

本发明提供数据库系统、程序以及数据处理方法。实施方式的数据库系统具备存储数据库的多个节点、和管理多个节点的管理装置。管理装置具有第一分配部和第二分配部。第一分配部根据多个节点各自的状况的变更,来分配存储数据集合并接收对数据集合的访问请求的第一节点以及存储数据集合并作为第一节点的备份的第二节点,对多个节点的每一个指示与分配对应的动作。第二分配部根据多个节点的状况、第一节点以及第二节点的分配状况的变更,来分配作为第一节点或者第二节点的候补的第三节点,针对多个节点的每一个指示用于使第三节点作为第一节点或者第二节点进行动作的准备。

Description

数据库系统、管理装置、节点以及数据处理方法
技术领域
本发明的实施方式涉及数据库系统、程序以及数据处理方法。
背景技术
(无分享型数据库)
以往,公知有一种无分享型数据库系统。无分享型数据库系统具备相互通过网络连接的多个数据库节点。
多个数据库节点分别是独立地具有处理器、存储器(memory)以及贮存器(storage)等资源的计算机。对无分享型数据库系统而言,由于资源按每个数据库节点被完全分离,所以在数据库节点间不会产生访问冲突。因此,无分享型数据库系统能够通过增加数据库节点来使性能线形提高。即,无分享型数据库系统是能够高效地实现追加数据库节点的横向扩展(scale out)的系统。
(分割法(Partitioning))
在无分享型数据库系统,可以应用被称为分割法的技术。分割法是将数据库分割成多个,并将分割后的各个数据集合(被称为分区(Partition))分散到多个数据库节点而使其存储的技术。由于应用了分割法的无分享型数据库系统能够减小使各个数据库节点存储的数据集合,所以能够将来自客户端的访问分散到多个数据库节点。
(分片(sharding))
作为数据库技术之一,有一种被称为分片的技术。分片是将数据分割成更小的数据,自动地分散保存到多个数据库节点的技术。分片是与无分享型数据库系统的分割法类似的技术。
(分布键值(Key-Value)型数据库)
另外,公知有一种键值型数据库。键值型数据库是基于与编程言语的联想排列或者Map同样地由键和值的对构成的单纯的数据模型的数据库。 另外,还公知有一种通过基于键对键值型数据库进行分片来分散化的分布键值型数据库。
对键值型数据库而言,由于数据模型单纯,所以分片以及分割法的处理容易。另外,分布键值型数据库能够使用多个键值型数据库节点,处理由单一的键值型数据库节点无法应对那样的大规模数据集合。因此,通过将分布键值型数据库应用于具有多个数据库节点的无分享型数据库系统,可实现能够横向扩展的大规模的数据库系统。
并且,这样的应用了分布键值型数据库的无分享型数据库系统(以下称为横向扩展型数据库系统)通过将数据均衡地配置于多个数据库节点,可使来自客户端的访问分散而整体提高吞吐量(Throughput)以及响应。
现有技术文献
专利文献
专利文献1:日本特开2009-157785号公报
专利文献2:日本特开2005-196602号公报
非专利文献
非专利文献1:“MongoDB Manual Contents”、[Online]、10gen、[平成25年1月18日検索]、インターネット<URL:http://docs.mongodb.org/manual/contents/>
发明内容
发明要解决的问题
在横向扩展型数据库系统中,可应用将数据的复制品(replica:副本)存储到其他数据库节点的被称为复制(Replication)的技术。横向扩展型数据库系统通过进行复制,即使在某个数据库节点发生了故障,也能够使用存储了副本的数据库节点来继续服务。将对数据的副本进行存储的数据库节点的个数称为冗余度。在横向扩展型数据库系统中,例如设定2个或者3个作为冗余度。
这里,对横向扩展型数据库系统而言,如果数据库节点发生故障而将发生了故障的数据库节点割离,则冗余度比预先设定的值降低。横向扩展型数据库系统如果在冗余度降低的状态下长时间继续运转,则在发生了进 一步的数据库节点的故障时产生系统整体的动作停止或者大范围的数据损失的可能性变高。因此,在横向扩展型数据库系统中,需要在数据库节点发生了故障之后追加新的数据库节点,并使追加的数据库节点存储副本而恢复冗余度的结构。
另外,在横向扩展型数据库系统中,所存储的数据量有时因数据的配置而在数据库节点间不均衡。另外,在横向扩展型数据库系统中,来自客户端的访问量有时因数据的配置而在数据库节点间不均衡。
如果这样的数据配置的不均衡变大,则在横向扩展型数据库系统中,在数据量多的数据库节点或者来自客户端的访问在数据库节点中的处理时间相对变长。由于横向扩展型数据库系统的优点之一在于使来自客户端的访问分散,所以会因为这样的数据配置的不均衡而丧失优点。
为了解决以上那样的冗余度的降低以及数据配置的不均衡,横向扩展型数据库系统必须在数据配置产生了不均衡的时刻进行数据向多个数据库节点的重新配置处理。
然而,在以往的数据库系统中,必须在停止服务的状态下实施这样的重新配置处理。另外,在以往的数据库系统中,由于数据的重新配置处理的负荷非常高,所以如果不执行高效的处理则会使处理效率显著恶化。
用于解决问题的手段
实施方式涉及的数据库系统具备存储数据库的多个节点、和管理多个节点的管理装置。管理装置具有第一分配部和第二分配部。第一分配部根据多个节点各自的状况的变更,来分配存储数据集合并受理对数据集合的访问请求的第一节点、以及存储数据集合并成为第一节点的备份的第二节点,对多个节点分别指示与分配对应的动作。第二分配部根据多个节点的状况并根据第一节点以及第二节点的分配状况的变更,来分配作为第一节点或者第二节点的候补的第三节点,针对多个节点分别指示用于使第三节点作为第一节点或者第二节点动作的准备。多个节点分别具有将第一节点或者第二节点的数据集合向第三节点发送的转送部。
附图说明
图1是表示实施方式涉及的数据库系统的硬件构成的图。
图2是表示实施方式涉及的数据库系统的功能构成的图。
图3是表示数据保持表的一个例子的图。
图4是表示当前任务表的一个例子的图。
图5是表示下次任务表的一个例子的图。
图6是表示目标任务表的一个例子的图。
图7是表示数据贮存(data store)部中存储的数据集合的一个例子的图。
图8是用于对复制处理进行说明的图。
图9是用于对短期同步处理进行说明的图。
图10是用于对长期同步处理进行说明的图。
图11是表示对节点分配的任务的转变的图。
图12是表示管理装置的集群(cluster)管理部的处理流程的图。
图13是表示由管理装置的第一分配部进行的下次任务表的计算处理的流程的图。
图14是表示由管理装置的第二分配部进行的目标任务表的计算处理的流程的图。
图15是表示节点的访问处理部的处理流程的图。
图16是表示节点的节点管理部的处理流程的图。
图17是表示节点的转送部的处理流程的图。
图18是表示针对3个分区#1~#3的每一个分配了成为属主(owner)以及备份的节点的情况下的、节点30-A至节点30-C各自的状态的图。
图19是表示从图18的状态开始根据节点30-C发生了故障而执行了短期同步处理之后的、节点30-A至节点30-C各自的状态的图。
图20是表示从图19的状态开始执行的长期同步处理的一个例子的图。
图21是表示对应于图20的长期同步处理结束而执行了短期同步处理之后的、节点30-A至节点30-C各自的状态的图。
图22是表示从图21的状态开始追加了节点30-D的情况下的、节点30-A至节点30-D各自的状态的图。
图23是表示从图22的状态开始执行的长期同步处理的一个例子的图。
图24是表示对应于图23的长期同步处理结束而执行了短期同步处理 之后的、节点30-A至节点30-D各自的状态的图。
具体实施方式
图1是表示实施方式涉及的数据库系统10的硬件构成的图。数据库系统10经由网络从作为外部的计算机的客户端接收针对数据库的访问请求(例如参照、更新或者登记),执行与接收到的访问请求对应的处理。
数据库系统10具备管理装置20和多个节点30。管理装置20以及多个节点30经由网络相互连接。此外,在图1中表示了两个节点30,但数据库系统10也可以具备三个以上节点30。
作为一个例子,数据库系统10是将分布键值型数据库应用于无分享型数据库的能够横向扩展的数据库系统。这样的数据库系统10能够向多个节点30分散数据集合,作为一个巨大的数据库,能够从作为外部的计算机的客户端进行访问。
管理装置20以及多个节点30分别是硬件相互独立的计算机。多个节点30分别独立地接收来自客户端的访问请求,能够独立地进行与访问请求对应的处理。
作为一个例子,管理装置20以及多个节点30分别具有CPU(Central ProcessingUnit)12、存储器13、通信I/F14以及贮存器I/F15。另外,管理装置20以及多个节点30分别经由贮存器I/F15与外部存储装置16连接。此外,外部存储装置16也可设在节点30的内部。
另外,数据库系统10将数据库分割成多个分区来存储。分区的数量被预先决定。分割数据库的方法只要是预先决定的方法即可,可以是任意的方法。
多个节点30分别按多个分区的每一个分配是承担作为属主的任务、还是承担作为备份的任务、或者不承担属主以及备份中任意一个任务。
属主存储对应的分区的数据集合,接收来自客户端的向对应的分区的数据集合的访问请求并进行处理。另外,备份存储对应的分区的数据集合,对属主进行备份,以便例如在属主发生了故障时能取而代之承担属主的任务。此外,有时也不称为属主以及备份而称为主(master)以及从(slave)。
管理装置20对多个节点30进行管理。作为一个例子,管理装置20按 多个分区的每一个来分配作为属主的节点30以及作为备份的节点30。
该情况下,为了无论因哪个节点30的故障都能尽量恢复数据库,管理装置20按照在预先决定的范围具有冗余度的方式分配作为备份的节点30。并且,管理装置20按照数据库所含的数据集合被分散配置到多个节点30的方式,来分配作为属主以及备份的节点30。
此外,管理装置20也可以在任意的节点30中设置。另外,作为管理装置20发挥功能的节点30也可以通过任意的算法被选择。另外,在作为管理装置20发挥功能的节点30发生了故障的情况下,其他节点30也可以作为管理装置20发挥功能。
这样的数据库系统10在多个节点30中的任意节点30发生了故障的情况下,能够将发生了故障的节点30割离。另外,数据库系统10也能够重新追加节点30来提高数据库的性能。
图2是表示实施方式涉及的数据库系统10的功能构成的图。
管理装置20具有表存储部21、第一分配部22、第二分配部23、和集群管理部24。第一分配部22、第二分配部23以及集群管理部24通过管理装置20的CPU12执行程序来实现。另外,第一分配部22、第二分配部23以及集群管理部24的一部分或者全部也可以由硬件电路实现。另外,表存储部21由管理装置20的存储器13或者外部存储装置16来实现。
表存储部21存储针对多个分区的每一个的用于决定多个节点30各自的任务的4个表。4个表的每一个可以是表形式的数据,也可以是表形式以外的数据。
具体而言,表存储部21存储数据保持表、当前任务表、下次任务表以及目标任务表。
数据保持表储存针对多个分区每一个的、多个节点30各自的时间戳(timestamp)。时间戳表示对应的节点30所存储的对应的分区的数据集合的更新履历。作为一个例子,时间戳是每当数据集合被更新便加1的值。因此,某个分区中的时间戳最大的节点30意味着是存储有该分区的最新的数据集合的节点30。
此外,在数据库的大小随时间不断增加的情况下,数据保持表也可以替代时间戳而储存对应的节点30所存储的对应的分区的数据集合的大小或 者数据数等。
作为一个例子,数据保持表如图3所示,节点30由行确定,分区由列确定。该情况下,数据保持表在行与列正交的各个单元中储存由该行确定的节点30所存储的、由该列确定的分区的数据集合的时间戳。
当前任务表储存针对多个分区的每一个的、多个节点30分别被分配的在数据库中的任务。具体而言,当前任务表针多个分区的每一个储存多个节点30的每一个是被分配为属主、还是被分配为备份或者未被分配为属主也未被分配为备份。
作为一个例子,当前任务表如图4所示,由行确定节点30,由列确定分区。该情况下,当前任务表在行与列正交的位置的每一个单元中储存针对由该列确定的分区的、对由该行确定的节点30分配的任务。其中,在附图中,将被分配了作为属主的任务的记载为“OWNER”或者“O”,将被分配了作为备份的任务的记载为“BACKUP”或者“B”,将未被分配为属主也未被分配为备份的记载为“None”或“N”或者空白。
下次任务表储存针对多个分区的每一个的、多个节点30分别接下来被分配的任务。即,下次任务表针对多个分区分别储存多个节点30的每一个接下来是被分配为属主、还是被分配为备份、或者不被分配为属主也不被分配为备份。下次任务表是例如在节点30发生了故障或追加了新的节点30的情况下等,与当前任务表置换的表。
作为一个例子,下次任务表如图5所示,由行确定节点30,由列确定分区。该情况下,下次任务表在行与列正交的位置的每一个单元中储存针对由该列确定的分区的、由该行确定的节点30被分配的下一个任务。
目标任务表储存针对多个分区的每一个的、多个节点30分别被分配的作为备份的候补的任务。备份的候补是将来用于针对该分区进行该节点30承担作为属主或者备份的任务的准备的任务。此外,在本实施方式的说明中,虽然将任务的名称设为“备份的候补”,但被分配为备份的候补的节点30将来也可以成为属主。
作为一个例子,目标任务表如图6所示,由行确定节点30,由列确定分区。该情况下,目标任务表在行与列正交的位置的每一个单元中储存针对由该列确定的分区的、由该行确定的节点30被分配的作为备份的候补的 任务。其中,在附图中,在被分配了作为备份的候补的任务的情况下记载“MID-BACKUP”或者“M”,在未被分配为备份的候补的情况下设为空白。
第一分配部22根据多个节点30各自的状况的变更,对多个分区的每一个分配成为属主的节点30以及成为备份的节点30。另外,例如在多个节点30中的任意节点30发生了故障的情况下,第一分配部22将发生了故障的节点30除外,再次分配作为属主以及备份的节点30。
另外,在追加了新的节点30的情况下,第一分配部22针对多个分区的每一个,再次分配包括新的节点30在内的作为属主以及备份的节点30。另外,在因数据集合向被分配为备份的候补的节点30的发送结束而新产生了能够作为属主或者备份的节点30的情况下,第一分配部22针对多个分区的每一个再次分配作为属主以及备份的节点30。
这里,第一分配部22按照至少存在属主的方式,针对多个分区的全部分配作为属主以及备份的节点30。由此,第一分配部22能够至少使数据库发挥功能。
另外,第一分配部22以至少使数据库发挥功能作为条件,按照具有预先决定的范围内的冗余度的方式,针对多个分区的每一个分配作为属主以及备份的节点30。由此,即使任意的节点30发生了故障,第一分配部22也能够提高至少可使数据库发挥功能的可能性。
另外,作为至少使数据库发挥功能且具有预先决定的范围内的冗余度的条件,第一分配部22按照属主以及备份分散于多个节点30每一个的方式,针对多个分区的每一个分配作为属主以及备份的节点30。由此,第一分配部22能够使多个节点30各自的处理的负荷均衡。
其中,在本例中,第一分配部22通过计算下次任务表,来分配作为属主以及备份的节点30。关于利用第一分配部22计算下次任务表的计算方法的一个例子,将参照图13在后面进行说明。
第二分配部23根据多个节点30的状况以及利用当前分配表分配的属主和备份的分配状况的变更,针对多个分区的每一个分配作为备份的候补的节点30。另外,例如在多个节点30中的任意节点30发生了故障的情况下,第二分配部23将发生了故障的节点30除外来再次分配作为备份的候 补的节点30。另外,例如在追加了新的节点30的情况下,第二分配部23针对多个分区分别再次分配包括新的节点30在内的作为备份的候补的节点30。
这里,第二分配部23按照将来具有预先决定的范围内的冗余度的方式,针对多个分区的每一个分配作为备份的候补的节点30。由此,即使将来任意的节点30发生了故障,第二分配部23也能提高至少可使数据库发挥功能的可能性。
另外,第二分配部23按照将来属主以及备份分散分配于多个节点30的每一个的方式,针对多个分区的每一个分配作为备份的候补的节点30。由此,第二分配部23能够在将来使多个节点30各自的处理的负荷均衡。
其中,在本例中,第二分配部23通过计算目标任务表,来分配作为备份的候补的节点30。关于利用第二分配部23计算目标任务表的计算方法的一个例子,将参照图14在后面进行说明。
集群管理部24与多个节点30的每一个经由网络交换消息,来对多个节点30的每一个进行管理。例如,集群管理部24每隔一定时间便与多个节点30的每一个交换被称为心跳(heart beat)的消息。而且,集群管理部24根据有无心跳的回信来确定发生了故障的节点30。
另外,集群管理部24定期从多个节点30的每一个接收数据保持表。而且,集群管理部24将从全部的节点30接收到的数据保持表集中存储到表存储部21。另外,集群管理部24根据是否接收到数据保持表来确定发生了故障的节点30。
另外,集群管理部24在起动时使第一分配部22计算出下次任务表,通过将计算出的下次任务表分发给多个节点30的每一个来对多个节点30的每一个指示与分配对应的动作。另外,集群管理部24定期使第一分配部22计算下次任务表。而且,在计算出的下次任务表与当前任务表相比发生了变化的情况下,集群管理部24通过将计算出的下次任务表分发给多个节点30的每一个来对多个节点30的每一个指示与分配对应的动作。而且,集群管理部24在分发了下次任务表之后,将表存储部21中存储的当前任务表更新成下次任务表的内容。
例如,在任意的节点30发生了故障的情况下、追加了新的节点30的 情况下,或者数据集合向被分配为候补的节点30的发送结束而产生了能够分配为备份的节点30的情况下,第一分配部22将任务表从当前任务表变化成计算出的下次任务表。因此,集群管理部24在这样的情况下将下次任务表向多个节点30的每一个分发。
另外,集群管理部24定期使第二分配部23计算目标任务表,将计算出的目标任务表向多个节点30的每一个分发。集群管理部24通过分发目标任务表,来对多个节点30的每一个指示用于使被分配为候补的节点30作为属主或者备份动作的准备。其中,集群管理部24以不同的周期计算下次任务表和目标任务表。
多个节点30的每一个具有数据贮存部31、表存储部32、访问处理部33、节点管理部34、转送部35。访问处理部33、节点管理部34以及转送部35通过节点30的CPU12执行程序来实现。另外,访问处理部33、节点管理部34以及转送部35的一部分或者全部也可以由硬件电路实现。数据贮存部31以及表存储部32由节点30的存储器13或者外部存储装置16来实现。
数据贮存部31存储将数据库分割后的多个分区中自节点被当前任务表分配为属主或者备份的分区的数据集合。例如,如图7所示,在被分割为3个的分区#1~#3中,自节点相对于分区#1被分配为属主,相对于分区#3被分配为备份。该情况下,数据贮存部31存储分区#1以及分区#3的数据集合。
另外,节点30针对被目标任务表分配为备份的候补的分区,从被分配为该分区的属主的节点30接收数据集合。数据贮存部31存储自节点被目标任务表分配为备份的候补的分区的数据集合中的、从属主的节点30接收完毕的一部分或者全部。
表存储部32存储与数据保持表的自节点对应的部分。另外,表存储部32存储当前任务表、下次任务表以及目标任务表。在接收到下次任务表的情况下,当前任务表被改写成下次任务表的内容。在定期接收的目标任务表发生了变化的情况下,目标任务表被改写成变化后的内容。
访问处理部33经由网络接收来自客户端的访问请求。而且,访问处理部33针对多个分区的每一个执行与由当前任务表对自节点分配的任务对应 的处理。
具体而言,访问处理部33接收针对被当前任务表分配为属主的分区的来自客户端的访问请求,执行与该访问请求对应的处理。作为一个例子,在接收到参照请求的情况下,访问处理部33读出该分区的数据集合之中对应的数据并向客户端发送。另外,作为一个例子,在接收到更新请求的情况下,访问处理部33对该分区的数据集合所对应的数据进行更新。另外,作为一个例子,在接收到登记请求的情况下,访问处理部33向该分区的数据集合登记新的数据。
此外,访问处理部33也可以接收包括一系列访问请求的事项(transaction)。该情况下,访问处理部33通过事项处理来执行来自客户端的一系列访问请求。
另外,访问处理部33在处理了更新请求以及登记请求的情况下,与被当前任务表针对该分区分配为备份的节点30之间执行复制处理。复制处理是用于在被分配为备份的节点30中生成被分配为属主的节点30中存储的数据集合的副本(复制品)的处理。
具体如图8所示,访问处理部33在接收到针对自节点被分配为属主的分区的更新或者登记请求的情况下,将同一访问请求向被分配为备份的其他节点30发送。而且,其他节点30的访问处理部33从相对被分配为备份的分区的、被分配为属主的节点30接收更新或者登记的请求,执行与该请求对应的更新或者登记的处理。
访问处理部33通过进行这样的复制处理,能够在被分配为属主的节点30与被分配为备份的节点30之间取得数据集合的同步。
此外,在执行复制处理的情况下,被分配为属主的节点30的访问处理部33也可以发送包括一系列访问请求的事项。该情况下,被分配为备份的节点30的访问处理部33通过事项处理来执行复制处理。
另外,在处理了更新请求以及登记请求的情况下,访问处理部33对表存储部32中存储的数据保持表所对应的分区的时间戳进行更新。
节点管理部34经由网络与管理装置20的集群管理部24交换消息。对应于从集群管理部24接收到被称为心跳的消息,如果自节点没有发生故障则节点管理部34发送响应消息。另外,节点管理部34定期将表存储部32 中存储的数据保持表向集群管理部24发送。
另外,节点管理部34从集群管理部24接收下次任务表,将接收到的下次任务表存储到表存储部32。而且,在接收到下次任务表的情况下,节点管理部34如图9所示,执行为了使多个节点30的每一个以由下次任务表分配的任务进行动作而将与来自客户端的访问请求对应的处理暂时中断来进行的同步处理、即短期同步处理。
具体而言,节点管理部34为了针对多个分区的每一个使多个节点30的每一个以由下次任务表表示的任务进行动作,使访问处理部33执行与复制处理同样的处理。由此,节点管理部34针对多个分区的每一个,能够取得被分配为属主的节点30与被分配为备份的节点30之间的数据集合的同步。而且,在取得了数据集合的同步之后,节点管理部34使访问处理部33将当前任务表改写为下次任务表的内容,执行针对多个分区的每一个的由下次任务表分配的新的任务所对应的处理。
而且,如果短期同步处理结束,则节点管理部34将当前任务表的内容更新成下次任务表的内容。以后,访问处理部33能够接受来自客户端的访问请求。
另外,节点管理部34从集群管理部24定期接收目标任务表,并将接收到的目标任务表存储于表存储部32。
转送部35如图10所示,执行为了使多个节点30的每一个以由目标任务表分配的任务进行动作而不将针对来自客户端的访问请求的处理中断地进行的同步处理、即长期同步处理。具体而言,转送部35不中断针对访问请求的处理地将自节点被当前任务表分配为属主的分区的数据集合向被目标任务表分配为备份的候补且未被当前任务表分配为属主也未被分配为备份的其他节点30发送。另外,转送部35不中断针对访问请求的处理地从被当前任务表分配为属主的其他节点30接收自节点被目标任务表分配为备份的候补且未被当前任务表分配为属主也未被分配为备份的分区的数据集合。
转送部35通过执行这样的长期同步处理,能够将被分配为属主的节点30中存储的数据集合的复制存储到未被分配为属主或者备份的节点30。由此,转送部35能够新生成在长期同步处理结束之后可以作为属主或者备份 的节点30。
这里,在执行长期同步处理的情况下,转送部35通过不阻碍访问处理部33对事项的执行的后台(background)将被分配为属主的分区的数据集合发送给被分配为备份的候补的节点30。另外,转送部35通过后台从被分配为属主的节点30接收被分配为备份的候补的分区的数据集合。其中,作为一个例子,后台中的处理是在节点30具备多个CPU12的情况下使用不执行事项处理的一部分CPU12来执行的处理。另外,作为一个例子,后台中的处理是在CPU12进行时分处理的情况下在CPU12不执行事项处理的一部分时间段执行的处理。由此,转送部35能够不降低针对来自客户端的访问请求的响应速度等地执行长期同步处理。
另外,转送部35也可以将在当前任务表中自节点被分配为备份的分区的数据集合向被目标任务表分配为备份的候补且未被分配为属主也未被分配为备份的其他节点30发送。该情况下,转送部35以未从其他节点30发送同一数据集合为条件来进行处理。
图11是表示节点30被分配的任务的转变的图。节点30转变为对多个分区的每一个分配了“属主”、“备份”或“备份的候补”的状态、或者未被分配任何任务的“无”状态中任意一个。
节点30通过短期同步处理在“无”状态与“属主”状态之间相互转变。另外,节点30通过短期同步处理在“属主”状态与“备份”状态之间相互转变。另外,节点30通过短期同步处理从“备份”状态向“无”状态转变。
另外,节点30通过长期同步处理在“无”状态与“备份的候补”状态之间相互转变。而且,节点30通过短期同步处理从“备份的候补”状态向“备份”状态转变。
图12是表示管理装置20的集群管理部24的处理流程的图。集群管理部24执行以下的步骤S111~步骤S142的处理。
首先,在步骤S111中,集群管理部24检测数据保持表的接收事件、第一定周期事件或者第二定周期事件。数据保持表的接收事件在集群管理部24接收到从多个节点30的每一个发送来的数据保持表的情况下产生。第一定周期事件以及第二定周期事件分别定期产生。但是,第一定周期事件与第二定周期事件的产生间隔相互不同。
集群管理部24在检测出数据保持表的接收事件的情况下,使处理进入步骤S121。集群管理部24在检测出第一定周期事件的情况下,使处理进入步骤S131。集群管理部24在检测出第二定周期事件的情况下,使处理进入步骤S141。
在检测出数据保持表的接收事件的情况下,在步骤S121中,集群管理部24判断是否是起动之后最初的数据保持表的接收事件。
在是起动之后最初的数据保持表的接收事件的情况下(步骤S121的是),集群管理部24使处理进入步骤S122。在步骤S122中,集群管理部24将接收到的数据保持表登记到表存储部21。
接着,在步骤S123中,集群管理部24使第一分配部22计算出下次任务表。其中,关于利用第一分配部22计算下次任务表的计算处理,将参照图13来进行说明。
接着,在步骤S124中,集群管理部24将计算出的下次任务表分发给多个节点30的每一个。而且,如果结束了步骤S124的处理,则集群管理部24使处理返回到步骤S111。
另外,在不是起动之后最初的数据保持表的接收事件的情况下(步骤S121的否),在步骤S125中,集群管理部24对表存储部21的数据保持表进行更新。而且,如果结束了步骤S125的处理,则集群管理部24使处理返回到步骤S111。
另一方面,在检测出第一定周期事件的情况下,在步骤S131中,集群管理部24判断是否在从上次的第一定周期事件到这次的第一定周期事件为止的期间,从多个节点30的全部接收到了数据保持表。在从多个节点30的全部接收到了数据保持表的情况下(步骤S131的是),集群管理部24使处理进入步骤S134。在从任意的节点30无法接收数据保持表的情况下(步骤S131的否),集群管理部24使处理进入步骤S132。
在步骤S132中,集群管理部24进行将无法接收数据保持表的节点30从数据库系统10割离的处理。接着,在步骤S133中,集群管理部24从数据保持表中删除割离了的节点30的内容,对数据保持表进行更新。如果结束了步骤S133的处理,则集群管理部24使处理进入步骤S134。
在步骤S134中,集群管理部24使第一分配部22计算出下次任务表。 其中,关于利用第一分配部22计算下次任务表的计算处理,将参照图13来进行说明。
接着,在步骤S135中,集群管理部24判断下次任务表是否发生了变化。例如,在割离了发生故障的节点30的情况下、追加了新的节点30的情况下,或者长期同步处理结束而被分配为备份的节点30发生变更的情况下,下次任务表发生变化。
在下次任务表未变化的情况下(步骤S135的否),集群管理部24使处理返回到步骤S111。在下次任务表发生了变化的情况下(步骤S135的是),在步骤S136中,集群管理部24将变化后的下次任务表分发给多个节点30的每一个。而且,如果结束了步骤S136的处理,则集群管理部24使处理返回到步骤S111。
另外,另一方面在检测出第二定周期事件的情况下,在步骤S141中,集群管理部24使第二分配部23计算出目标任务表。其中,关于利用第二分配部23计算目标任务表的计算处理,将参照图14来进行说明。
接着,在步骤S142中,集群管理部24将计算出的目标任务表分发给多个节点30的每一个。而且,如果结束了步骤S142的处理,则集群管理部24使处理返回到步骤S111。
图13是表示由管理装置20的第一分配部22进行的下次任务表的计算处理的流程的图。第一分配部22在图12的步骤S123以及步骤S134中被集群管理部24调出,执行以下的步骤S211~步骤S220的处理。
首先,在步骤S211中,第一分配部22对下次任务表进行初始化。此时,第一分配部22使下次任务表的多个节点30的每一个与数据保持表的节点30建立对应。由此,第一分配部22能够将因故障发生而被割离的节点30以及新追加的节点30反映到下次任务表。
接着,在步骤S212与步骤S220之间,第一分配部22按每个分区执行循环处理。例如,在将数据库分割成第一至第三分区的情况下,第一分配部22以第一分区、第二分区以及第三分区的每一个作为对象,执行步骤S212至步骤S220的处理。
在每个分区的循环处理内,首先在步骤S213中,第一分配部22针对对象的分区选择在数据保持表中具有最大的时间戳的节点30的集合。在本 例中,时间戳是每当对象的分区的数据集合被更新便逐个加1的值。因此,在步骤S213中,第一分配部22针对对象的分区能够选择存储了最新的数据集合的节点30的集合。
接着,在步骤S214中,第一分配部22从在步骤S213中选择出的节点30的集合之中,选择在下次任务表中被分配为属主以及备份的分区的数量最少的一个节点30,将选择出的节点30分配为属主。由此,第一分配部22能够将存储有最新的数据集合的节点30的集合中负荷最小的节点30分配为属主。
此外,在被分配为属主以及备份的分区的数量最少的节点30存在多个的情况下,第一分配部22也可以使运算能力高的节点30比运算能力低的节点30优先分配为属主。取而代之,第一分配部22也可以使接受访问请求的次数少的节点30比接受访问请求的次数多的节点30优先分配为属主。
接着,在步骤S215中,第一分配部22针对对象的分区,将被分配为属主的节点30除外,选择具有与最大时间戳之差为一定范围内的时间戳的节点30的集合。由此,第一分配部22能够针对对象的分区,选择存储有最新的数据集合或者与最新的数据集合比较接近的数据集合的节点30的集合。
接着,在步骤S216与步骤S219之间,第一分配部22执行与复制的次数对应的循环处理。这里,复制的次数是指在被分配为属主的节点30之间能够复制处理的最大的节点30的个数。即,复制的次数与能够分配的备份的数量相同。
在与复制的次数对应的循环处理内,首先在步骤S217中,第一分配部22判断在由步骤S215选择出的节点30的集合之中是否存在能够分配为备份的节点30。当存在能够分配为备份的节点30时(步骤S217的是),第一分配部22使处理进入步骤S218。
当没有能够分配为备份的节点30时(步骤S217的否),第一分配部22强制地跳出与复制的次数对应的循环处理,使处理进入步骤S220。即,因此,有时第一分配部22计算出不存在备份、或备份的数量小于复制的次数的下次任务表。
在步骤S218中,第一分配部22从由步骤S215选择出的节点30的集 合之中,将在下次任务表中被分配为属主以及备份的分区的数量最少的节点30分配为备份。由此,第一分配部22能够分配存储有最新的数据集合或者与最新的数据集合接近的数据的节点30的集合中负荷按从小到大的顺序备份的节点30。
此外,在被分配为属主以及备份的分区的数量最少的节点30存在多个的情况下,第一分配部22也可以使运算能力高的节点30比运算能力低的节点30优先分配为备份。取而代之,第一分配部22也可以使接受访问请求的次数少的节点30比接受访问请求的次数多的节点30优先分配为备份。
而且,第一分配部22从选择出的节点30的集合将被分配为备份的节点30除外,使处理进入步骤S219。在步骤S219中,第一分配部22在步骤S216到步骤S219的处理次数比复制的次数少的情况下使处理返回到步骤S216,在与复制的次数一致的情况下使处理进入步骤S220。
接着,在步骤S220中,第一分配部22在对全部的分区没有执行步骤S212到步骤S220的处理的情况下,使处理返回到步骤S216。而且,第一分配部22在对全部的分区执行了步骤S212到步骤S220的处理的情况下,结束下次任务表的计算而跳出本流程。
如上所述,根据第一分配部22,通过对多个分区的全部分配作为属主的节点30,能够至少使数据库发挥功能。并且,根据第一分配部22,通过尽量分配作为备份的节点30,能够担保数据库的冗余度。进而,根据第一分配部22,通过从负荷最小的节点30按顺序分配作为属主以及备份的节点30,能够使多个节点30各自的负荷均衡。
图14是表示利用管理装置20的第二分配部23计算目标任务表的计算处理的流程的图。第二分配部23在图12的步骤S141中被集群管理部24调出,执行以下的步骤S311~步骤S324的处理。
首先,在步骤S311中,第二分配部23对目标任务表进行初始化。此时,第二分配部23使目标任务表的多个节点30的每一个与数据保持表的节点30建立对应付。由此,第二分配部23能够将因故障发生而被割离的节点30以及新追加的节点30反映到目标任务表。
接着,在步骤S312中,第二分配部23将当前任务表的分区以被分配的属主以及备份的合计数按升序排序。由此,第二分配部23能够从被分配 为备份的节点30少的分区开始按顺序分配备份的候补。即,第二分配部23能够在当前任务表中从冗余度少的分区开始按顺序分配作为备份的候补的节点30。
接着,在步骤S313中,第二分配部23对多个节点30的每一个所对应的负荷值进行初始化。负荷值是对应于对节点30分配了备份的候补的任务而增加的值。作为一个例子,第二分配部23将各自的负荷值初始化为“0”。
接着,在步骤S314与步骤S324之间,第二分配部23按每个分区执行循环处理。该情况下,第二分配部23以在步骤S312中重新排列的当前任务表的分区的顺序来选择对象的分区,执行循环处理。
在每个分区的循环处理内,首先在步骤S315中,第二分配部23针对对象的分区选择数据保持表中最大的时间戳的节点30。
接着,在步骤S316中,第二分配部23将当前任务表的节点30以值V按降序排序。这里,值V是针对被分配为属主的节点30“+1”、针对被分配为备份的节点30“+1”、以及针对最大的时间戳的节点30“+1”的值。因此,不是属主、也不是备份且时间戳也不是最大的节点30的值V为“0”。
由此,第二分配部23能够将被分配为属主以及备份的节点30或者存储最新的数据集合的节点30先分配为作为备份的候补的节点30。
其中,在排列有多个值V相同的节点30的情况下,第二分配部23将运算能力高的节点30配置到上位以使其先成为备份的候补。由此,第二分配部23可以按照运算能力高的节点30比运算能力低的节点30优先成为属主或者备份的方式,来分配作为备份的候补的节点30。取而代之,第二分配部23也可以将接受访问请求的次数少的节点30配置到上位以使其先成为备份的候补。由此,第二分配部23能够按照接受访问请求的次数少的节点30比接受访问请求的次数多的节点30优先成为属主或者备份的方式,来分配作为备份的候补的节点30。
接着,在步骤S317中,第二分配部23通过下述式(1)来计算作为常量的上限权重MLOAD。
MLOAD={分区的数×(复制数+1)+(节点数-1)}÷节点数…(1)
这里,(复制数+1)表示针对一个分区能够分配的属主以及备份的最大数。这样的上限权重MLOAD表示针对一个节点30能够分配为备份的候补的数量的上限基准。
接着,在步骤S318与步骤S323之间,第二分配部23按每个节点30执行循环处理。该情况下,第二分配部23以在步骤S316中重新排列的当前任务表的顺序来选择对象的节点30,执行循环处理。
在每个节点30的循环处理内,首先在步骤S319中,第二分配部23判断是否对(复制的数+1)个节点30分配了作为备份的候补的节点30。在对(复制的数+1)个节点30分配了备份的候补的情况下(步骤S319的是),使处理进入步骤S324。该情况下,第二分配部23针对对象的分区分配最大数的作为备份的候补的节点30。
第二分配部23在未对(复制的数+1)个节点30分配备份的候补的情况下(步骤S319的否),使处理进入步骤S320。
在步骤S320中,第二分配部23判断成为对象的节点30的负荷值是否小于上限权重MLOAD。在成为对象的节点30的负荷值小于上限权重MLOAD的情况下(步骤S320的是),第二分配部23使处理进入步骤S321。
在成为对象的节点30的负荷值为上限权重MLOAD以上的情况下(步骤S320的否),第二分配部23使处理进入步骤S323。由此,第二分配部23在对某一个节点30分配了基准值以上的作为备份的候补的任务的情况下,能够避免将该节点30继续分配为备份的候补。结果,第二分配部23可以将作为备份的候补的任务分散分配给多个节点30。
在步骤S321中,第二分配部23针对对象的分区分配对象的节点30作为备份的候补。接着,在步骤S322中,第二分配部23通过对对象的节点30的负荷值加“1”来进行更新。由此,第二分配部23能够每当被分配为候补时便使节点30的负荷值增加1。如果结束了步骤S322的处理,则第二分配部23使处理进入步骤S323。
接着,在步骤S323中,第二分配部23在没有对多个节点30的全部执行步骤S318到步骤S323的处理的情况下,使处理返回到步骤S318。另外,第二分配部23在对多个节点30的全部执行了步骤S318到步骤S223的处理的情况下,使处理进入步骤S324。
接着,在步骤S324中,第二分配部23在没有针对多个分区的全部执行步骤S314到步骤S324的处理的情况下,使处理返回到步骤S314。而且,第二分配部23在针对多个分区的全部执行了步骤S314到步骤S324的处理的情况下,结束目标任务表的计算而跳出本流程。
如上所述,根据第二分配部23,由于从冗余度少的(即,被分配的备份的数量少的)分区开始按顺序分配备份的候补,所以能够高效地确保数据库的冗余度。并且,根据第二分配部23,由于对分配了的备份的候补的数为基准值以上的节点30不进一步分配备份的候补,所以能够对多个节点30分散分配备份的候补。
图15是表示节点30的访问处理部33的处理流程的图。访问处理部33执行以下的步骤S411~步骤S433的处理。
首先,在步骤S411中,访问处理部33检测来自客户端的请求接收事件或者基于复制处理的请求接收事件。在经由网络从客户端接收到针对数据库的访问请求的情况下,产生来自客户端的请求接收事件。在经由网络从成为属主的其他节点30接收到基于复制处理的更新请求或者登记请求的情况下,产生基于复制处理的请求接收事件。
访问处理部33在检测出来自客户端的请求接收事件的情况下,使处理进入步骤S421。访问处理部33在检测出基于复制处理的请求接收事件的情况下,使处理进入步骤S431。
在检测出来自客户端的请求接收事件的情况下,在步骤S421中,访问处理部33例如进行计算来取得来自客户端的访问请求所表示的请求目的地的分区的编号。接着,在步骤S422中,访问处理部33参照当前任务表来判断针对请求目的地的分区自节点是否被分配为属主。
在针对请求目的地的分区自节点未被分配为属主的情况下(步骤S422的否),在步骤S423中,访问处理部33向客户端通知被分配为属主的节点30的编号,然后使处理返回到步骤S411。
在针对请求目的地的分区自节点被分配为属主的情况下(步骤S422的是),在步骤S424中,访问处理部33判断访问请求的类型是参照还是更新或登记。
在访问请求的类型是参照的情况下(步骤S424的参照),在步骤S425 中,访问处理部33从数据贮存部31读出有参照请求的数据并发送至客户端,使处理返回到步骤S411。
在访问请求的类型是更新或者登记的情况下(步骤S424的更新/登记),在步骤S426中,针对请求目的地的分区,与被分配为备份的其他节点30之间执行复制处理。即,访问处理部33将与从客户端接收到的更新或者登记的请求相同的访问请求向被分配为备份的节点30发送。
如果复制处理结束,则接着在步骤S427中,访问处理部33按照从客户端发送来的更新或者登记请求,进行数据贮存部31中存储的数据的更新或者对数据贮存部31进行新的数据的登记。接着,在步骤S428中,访问处理部33通过加1处理来对数据保持表的时间戳进行更新,然后使处理返回到步骤S411。
另一方面,访问处理部33在检测出基于复制处理的请求接收事件的情况下,在步骤S431中,根据从成为属主的节点30发送来的更新或者登记请求,进行数据贮存部31中存储的数据的更新或者对数据贮存部31进行新的数据的登记。接着,在步骤S432中,访问处理部33通过加1处理对数据保持表的时间戳进行更新。接着,在步骤S433中,访问处理部33向属主通知登记或者更新结束,然后使处理返回到步骤S411。
此外,访问处理部33也可以在步骤S425以及步骤S428中,从客户端接收包括一系列访问请求的事项,来执行与来自客户端的访问请求对应的事项处理。另外,访问处理部33也可以在步骤S426中,当通过复制处理发送更新或者登记的请求时,向被分配为备份的节点30发送包括一系列访问请求的事项。另外,访问处理部33也可以在步骤S431中,从成为属主的节点30接收包括一系列访问请求的事项,来执行与来自成为属主的节点30的访问请求对应的事项处理。
图16是表示节点30的节点管理部34的处理流程的图。节点管理部34执行以下的步骤S511~步骤S541的处理。
首先,在步骤S511中,节点管理部34对第三定周期事件、下次任务表的接收事件或者目标任务表的接收事件进行检测。第三定周期事件定期产生。下次任务表的接收事件在节点管理部34接收到下次任务表的情况下产生。目标任务表的接收事件在节点管理部34接收到目标任务表的情况下 产生。
节点管理部34在检测出第三定周期事件的情况下,使处理进入步骤S521。节点管理部34在检测出下次任务表的接收事件的情况下,使处理进入步骤S531。节点管理部34在检测出目标任务表的接收事件的情况下,使处理进入步骤S541。
在检测出第三定周期事件的情况下,在步骤S521中,节点管理部34将表存储部32中存储的数据保持表发送给管理装置20的集群管理部24。然后,节点管理部34使处理返回到步骤S511。
在检测出下次任务表的接收事件的情况下,在步骤S531中,如果访问处理部33正执行事项,则节点管理部34使处理中断。接着,在步骤S532中,节点管理部34根据接收到的下次任务表,执行短期同步处理。
具体而言,在成为属主的节点30与成为备份的节点30之间存储的数据集合存在不同的情况下,节点管理部34针对多个分区的每一个,使访问处理部33执行与复制处理同样的处理。由此,节点管理部34针对多个分区的每一个,能够取得被分配为属主的节点30与被分配为备份的节点30之间的同步。而且,节点管理部34针对多个分区的每一个,使访问处理部33执行与被下次任务表分配的新的任务(属主以及备份)对应的处理。
如果短期同步处理结束,则接着在步骤S533中,节点管理部34将当前任务表改写成下次任务表的内容。由此,访问处理部33能够接受来自客户端的访问请求。
接着,在步骤S534中,节点管理部34进行中断而重新开始事项。然后,节点管理部34使处理返回到步骤S511。
在检测出目标任务表的接收事件的情况下,在步骤S541中,节点管理部34对表存储部32中存储的目标任务表进行更新。然后,节点管理部34使处理返回到步骤S511。
图17是表示节点30的转送部35的处理流程的图。转送部35执行以下的步骤S611~步骤S618的处理以及步骤S621~步骤S622的处理。
首先,在步骤S611中,转送部35判断CPU12的负荷是否大于预先决定的基准值。在负荷大于基准值的情况下(步骤S611的是),在步骤S612中,转送部35待机(sleep)一定时间后,使处理返回到步骤S611。
在负荷为基准值以下的情况下(步骤S611的否),在步骤S613中,转送部35检测当前任务表与目标任务表之间的差。接着,在步骤S614中,转送部35判断当前任务表与目标任务表之间是否存在差。
当在当前任务表与目标任务表之间不存在差时(步骤S614的否),在步骤S615中,如果当前任务表、下次任务表以及目标任务表的任意一个中存在未对自节点分配任务的分区,则转送部35将该数据集合消除。而且,转送部35在步骤S615的处理之后,使处理返回到步骤S611。
当在当前任务表与目标任务表之间存在差时(步骤S614的是),在步骤S616中,转送部35针对在当前任务表中自节点为属主的分区,检测在目标任务表为备份的候补且在当前任务表中不是属主也不是备份的其他节点30。
接着,在步骤S617中,转送部35判断是否存在在目标任务表中是备份的候补、在当前任务表中不是属主也不是备份的其他节点30。在不存在的情况下(步骤S617的否),转送部35使处理返回到步骤S611。
在存在的情况下(步骤S617的是),在步骤S618中,转送部35不将针对来自客户端的访问请求的处理中断地开始长期同步处理。具体而言,关于在当前任务表中自节点被分配为属主的分区,转送部35针对被目标任务表分配为备份的候补且未被当前任务表分配为属主也未被分配为备份的其他节点30发送该分区的数据集合。该情况下,转送部35通过不阻碍访问处理部33对事项的执行的后台发送数据集合。由此,转送部35能够不降低针对来自客户端的访问请求的响应速度等地执行长期同步处理。
而且,如果结束了步骤S618的处理,则转送部35使处理返回到步骤S611。
另一方面,具备被目标任务表分配为备份的候补且未被当前任务表分配为属主也未被分配为备份的分区的其他节点30的转送部35执行以下的步骤S621以及步骤S622的处理。
在步骤S621中,转送部35不中断针对来自客户端的访问请求的处理地执行长期同步处理。具体而言,转送部35针对被目标任务表分配为备份的候补且未被当前任务表分配为属主也未被分配为备份的分区,从被分配为属主的节点30接收数据集合。该情况下,转送部35通过不阻碍访问处 理部33对事项的执行的后台来接收数据集合。
接着,在步骤S622中,转送部35对数据保持表进行更新。如果长期同步处理结束,则由于成为属主的节点30中存储的数据集合的副本被存储,所以转送部35通过对数据保持表进行更新,能够使该分区的时间戳与属主的数据保持表的时间戳一致。然后,如果转送部35结束了步骤S622的处理,则转送部35结束本流程。
如以上那样,根据转送部35,由于在被分配为备份的候补的节点30中生成被分配为属主的节点30的数据集合的副本,所以能够新产生可成为属主或者备份的节点30。
参照图18~图24,对数据库系统10的动作例进行说明。图18是表示针对3个分区#1~#3的每一个分配了作为属主以及备份的节点30的情况下的、节点30-A至节点30-C各自的状态的图。
在本例中,如图18的当前任务表所示,针对分区#1,节点30-A被分配为属主,节点30-B被分配为备份。另外,针对分区#2,节点30-B被分配为属主,节点30-C被分配为备份。另外,针对分区#3,节点30-C被分配为属主,节点30-A被分配为备份。
节点30-A以及节点30-B根据事项来执行针对分区#1的复制处理。结果,如图18的数据保持表所示,分区#1的时间戳在节点30-A以及节点30-B中成为相同值。
另外,节点30-B以及节点30-C基于事项来执行针对分区#2的复制处理。结果,如图18的数据保持表所示,分区#2的时间戳在节点30-B以及节点30-C中成为相同值。
另外,节点30-C以及节点30-A基于事项来执行针对分区#3的复制处理。结果,如图18的数据保持表所示,分区#3的时间戳在节点30-C以及节点30-A中成为相同值。
图19是表示对应于从图18的状态开始节点30-C发生了故障而执行了短期同步处理之后的、节点30-A至节点30-C各自的状态的图。设管理装置20的集群管理部24从图18的状态开始无法从节点30-C检测出数据保持表,检测为节点30-C发生了故障。
当多个节点30中的任意节点30发生了故障时,管理装置20的集群管 理部24将发生了故障的节点30割离,并且使第一分配部22计算出下次任务表。
对应于来自集群管理部24的调出,第一分配部22将发生了故障的节点30除外来再次分配作为属主以及备份的节点30,生成下次任务表。该情况下,第一分配部22为了至少使数据库发挥功能而按照至少存在属主的方式对多个分区的每一个分配节点30。例如,第一分配部22在作为属主的节点30发生了故障的情况下,将作为备份的节点30分配为属主。并且,第一分配部22为了进一步提高数据库的冗余度而按照尽量存在备份的方式对多个分区的每一个分配节点30。
在本例中,再分配的结果如图19的下次任务表所示,针对分区#1,节点30-A被分配为属主,节点30-B被分配为备份。另外,针对分区#2,节点30-B被分配为属主。另外,针对分区#3,节点30-A被分配为属主。
而且,集群管理部24将下次任务表分发给节点30-A以及节点30-B。节点30-A以及节点30-B各自的节点管理部34若接收到下次任务表则执行短期同步处理,并且,将当前任务表的内容改写为下次任务表的内容。由此,节点30-A以及节点30-B的每一个能够执行与新被分配的任务对应的处理。
图20是表示从图19的状态开始执行的长期同步处理的一个例子的图。另外,管理装置20的集群管理部24在将发生了故障的节点30-C割离的情况下,使第二分配部23计算出目标任务表。
对应于来自集群管理部24的调出,第二分配部23将发生了故障的节点30除外来再次分配作为备份的候补的节点30,生成目标任务表。该情况下,第二分配部23为了提高数据库的冗余度而按照至少存在属主以及备份的方式对多个分区的每一个分配作为候补的节点30。
在图19的状态下,不存在针对分区#2以及分区#3的备份的节点30。因此,第二分配部23将节点30-A分配为针对分区#2的备份的候补,将节点30-B分配为针对分区#3的备份的候补。
此外,在本例中,第二分配部23将已经被当前任务表分配为属主以及备份的节点30也分配为备份的候补。因此,如图20的目标任务表所示, 针对分区#1~#3的每一个分配节点30-A以及节点30-B双方作为备份的候补。
而且,集群管理部24将目标任务表分发给节点30-A以及节点30-B。节点30-A以及节点30-B各自的转送部35针对当前任务表与目标任务表之差的部分执行长期同步处理。即,节点30-B的转送部35通过后台将分区#2的数据集合发送给节点30-A。另外,节点30-A的转送部35通过后台将分区#3的数据集合发送给节点30-B。
需要说明的是,此时转送部35不中断针对来自客户端的访问请求的处理地执行长期同步处理。
如果长期同步处理结束,则节点30-A能够存储分区#2的数据集合的副本。并且,如图20的数据保持表所示,此时的分区#2的时间戳在节点30-A以及节点30-B成为相同值。
另外,节点30-B能够存储分区#3的数据集合的副本。并且,如图20的数据保持表所示,分区#3的时间戳在节点30-A以及节点30-B中成为相同值。
图21是表示对应于图20的长期同步处理结束而执行了短期同步处理之后的、节点30-A至节点30-C各自的状态的图。管理装置20的集群管理部24定期调出第一分配部22来使其计算出下次任务表。
在长期同步处理结束之后被从集群管理部24调出的情况下,第一分配部22利用通过长期同步处理生成的副本进一步提高冗余度的方式,针对多个分区的每一个再次分配作为属主以及备份的节点30。
在本例中,如图21的下次任务表所示,针对分区#1,节点30-A被分配为属主,节点30-B被分配为备份。另外,针对分区#2,节点30-B被分配为属主,节点30-A被分配为备份。另外,针对分区#3,节点30-A被分配为属主,节点30-B被分配为备份。
而且,集群管理部24将下次任务表分发给节点30-A以及节点30-B。节点30-A以及节点30-B各自的节点管理部34如果接收到下次任务表则执行短期同步处理,并且,将当前任务表的内容改写成下次任务表的内容。由此,节点30-A以及节点30-B的每一个能够执行与新被分配的任务对应的处理。
图22是表示从图21的状态开始追加了节点30-D的情况下的、节点30-A至节点30-D各自的状态的图。管理装置20的集群管理部24例如检测出从图21的状态开始新追加了节点30-D。
集群管理部24如图22的数据保持表所示,生成追加了节点30-D的数据保持表。第一分配部22对应于向数据保持表追加了节点30-D而生成被追加了节点30-D的下次任务表。
原本,节点30-D不存储数据集合。因此,第一分配部22在追加了节点30-D之后不变更属主以及备份的分配。
图23是表示从图22的状态开始执行的长期同步处理的一个例子的图。在追加了新的节点30的情况下,第二分配部23针对多个分区的每一个再次分配包括新的节点30在内的作为备份的候补的节点30。该情况下,第二分配部23按照被分配的属主以及备份的数量之差为在节点30间预先决定的值的范围内的方式,针对多个分区的每一个分配作为备份的候补的节点30。
在本例中,再分配的结果如图23的目标任务表所示,针对分区#1,节点30-A以及节点30-B被分配为备份的候补。另外,针对分区#2,节点30-B以及节点30-D被分配为备份的候补。另外,针对分区#3,节点30-A以及节点30-D被分配为备份的候补。
而且,集群管理部24将目标任务表分发给节点30-A、节点30-B以及节点30-D。节点30-A、节点30-B以及节点30-D各自的转送部35针对当前任务表与目标任务表之差的部分执行长期同步处理。
即,节点30-B的转送部35通过后台将分区#2的数据集合发送给节点30-D。另外,节点30-A的转送部35通过后台将分区#3的数据集合发送给节点30-D。其中,此时,转送部35不中断针对来自客户端的访问请求的处理地执行长期同步处理。
结果,节点30-D能够存储分区#2的数据集合的副本。并且,如图23的数据保持表所示,分区#2的时间戳在节点30-B以及节点30-D中成为相同值。
另外,节点30-D能够存储分区#3的数据集合的副本。并且,如图23的数据保持表所示,分区#3的时间戳在节点30-A以及节点30-D中 成为相同值。
图24是表示对应于图23的长期同步处理结束而执行了短期同步处理后的、节点30-A至节点30-D各自的状态的图。在长期同步处理结束后被从集群管理部24调出的情况下,第一分配部22针对多个分区的每一个,按照利用由长期同步处理生成的副本使节点30间的负荷更均衡的方式,再次分配作为属主以及备份的节点30。
在本例中,再分配的结果如图24的下次任务表所示,针对分区#1,节点30-A被分配为属主,节点30-B被分配为备份。另外,针对分区#2,节点30-B被分配为属主,节点30-D被分配为备份。另外,针对分区#3,节点30-A被分配为属主,节点30-D被分配为备份。
而且,集群管理部24将下次任务表分发给节点30-A、节点30-B以及节点30-D。节点30-A、节点30-B以及节点30-D各自的节点管理部34在接收到下次任务表后执行短期同步处理,并且,将当前任务表的内容改写为下次任务表的内容。由此,节点30-A、节点30-B以及节点30-D的每一个能够执行与新被分配的任务对应的处理。
综上所述,根据本实施方式涉及的数据库系统10,由于对作为备份的候补的节点30进行分配而从作为属主的节点30向作为候补的节点30进行数据集合的转送,所以能够使数据库具有冗余度且使节点30的处理的负荷均衡。并且,根据数据库系统10,由于能够不中断针对来自客户端的访问请求的处理地执行这样的处理,所以即使在割离节点30或新追加节点30的情况下,也能不使系统停止地进行数据的重新配置。
另外,本实施方式的管理装置20以及节点30中执行的程序被以能够安装的形式或者能够执行的形式的文件记录到CD-ROM、软盘(FD)、CD-R、DVD(Digital VersatileDisk)等计算机可读取的记录介质中来进行提供。
另外,也可以构成为将本实施方式的管理装置20以及节点30中执行的程序储存到与因特网等网络连接的计算机上,通过经由网络下载来进行提供。另外,还可以构成为将本实施方式的管理装置20以及节点30中执行的程序经由因特网等网络提供或者分发。
另外,也可以构成为将本实施方式的管理装置20以及节点30中执行 的程序预先编写到ROM等中来进行提供。
本实施方式的管理装置20所执行的程序成为包括上述各部(表存储部21、第一分配部22,第二分配部23以及集群管理部24)的模块构成,作为实际的硬件,通过CPU(处理器)从上述存储介质读出程序并执行来将上述各部加载到主存储装置上,表存储部21、第一分配部22、第二分配部23以及集群管理部24在主存储装置上生成。
另外,本实施方式的节点30所执行的程序成为包括上述各部(数据贮存部31、表存储部32、访问处理部33、节点管理部34以及转送部35)的模块构成,作为实际的硬件,通过CPU(处理器)从上述存储介质读出程序并执行来将上述各部加载到主存储装置上,数据贮存部31,表存储部32、访问处理部33、节点管理部34以及转送部35在主存储装置上生成。
对本发明的几个实施方式进行了说明,但这些实施方式只是例示,并不意图限定发明的范围。这些新的实施方式能够通过其他各种方式来实施,在不脱离发明主旨的范围可进行各种省略、置换、变更。这些实施方式及其变形包含在发明的范围、主旨中,并且,属于技术方案所记载的发明和其等同的范围。
符号说明
10-数据库系统;12-CPU;13-存储器;14-通信I/F;15-贮存器I/F;16-外部存储装置;20-管理装置;21-表存储部;22-第一分配部;23-第二分配部;24-集群管理部;30-节点;31-数据贮存部;32-表存储部;33-访问处理部;34-节点管理部;35-转送部。

Claims (11)

1.一种数据库系统,具备对分割数据库而成的多个分区进行存储的多个节点和管理所述多个节点的管理装置,
所述管理装置具有:
第一分配部,针对所述多个分区的每个分区,对第一节点分配所述多个节点中的一个节点、以及对第二节点分配所述多个节点中的除所述第一节点以外的至少一个节点,对所述多个节点的每个节点指示与分配对应的动作;和
第二分配部,针对所述多个分区的每个分区,能够对第三节点分配所述多个节点中的除所述第一节点以及所述第二节点以外的至少一个节点,对所述多个节点的每个节点指示与分配对应的动作,
针对所述多个分区的每个分区,
所述第一节点根据与对应的分区的数据集合有关的访问请求来执行响应处理,
在通过所述响应处理而所述第一节点存储着的所述对应的分区的所述数据集合被更新的情况下,与所述响应处理同步地所述第二节点使存储着的对应的分区的数据集合更新,
所述第一节点或者所述第二节点将各自存储着的所述对应的分区的所述数据集合通过不妨碍与所述访问请求对应的处理的后台向所述第三节点发送。
2.根据权利要求1所述的数据库系统,
所述第一分配部生成第一表,通过将所述第一表分发给所述多个节点的每个节点来指示与分配对应的动作,所述第一表表示针对多个分区的每个分区,所述多个节点的每个节点是所述第一节点或者所述第二节点,
所述第二分配部生成第二表,通过将所述第二表分发给所述多个节点的每个节点来指示与分配对应的动作,所述第二表表示针对多个分区的每个分区,所述多个节点的每个节点是否是所述第三节点。
3.根据权利要求1所述的数据库系统,
在数据集合向所述第三节点的发送已结束的情况下,所述第一分配部针对所述多个分区的每个分区再次分配所述第一节点以及所述第二节点。
4.根据权利要求3所述的数据库系统,
在所述多个节点中任意的节点发生了故障的情况下,
所述第一分配部将所述发生了故障的节点除外,再次分配所述第一节点以及所述第二节点,
所述第二分配部将所述发生了故障的节点除外,再次分配所述第三节点。
5.根据权利要求3所述的数据库系统,
在追加了新的节点的情况下,所述第二分配部针对所述多个分区的每个分区将所述新的节点包括在内再次分配所述第三节点。
6.根据权利要求3所述的数据库系统,
所述第二分配部按照运算能力高的节点比运算能力低的节点优先成为所述第一节点或者所述第二节点的方式来分配所述第三节点。
7.根据权利要求3所述的数据库系统,
所述第二分配部按照受理所述访问请求的数量少的节点比受理所述访问请求的数量多的节点优先成为所述第一节点或者所述第二节点的方式来分配所述第三节点。
8.根据权利要求1所述的数据库系统,
所述第一节点受理包括针对所述对应的分区的数据集合的一系列访问请求在内的事项来执行与来自客户端的访问请求对应的处理,向所述第二节点发送所述事项并使其执行所述事项。
9.一种管理装置,是对多个节点进行管理的管理装置,该多个节点对分割数据库而成的多个分区进行存储,
所述管理装置具有:
第一分配部,针对所述多个分区的每个分区,对第一节点分配所述多个节点中的一个节点、以及对第二节点分配所述多个节点中的除所述第一节点以外的至少一个节点,对所述多个节点的每个节点指示与分配对应的动作;和
第二分配部,针对所述多个分区的每个分区,能够对第三节点分配所述多个节点中的除所述第一节点以及所述第二节点以外的至少一个节点,对所述多个节点的每个节点指示与分配对应的动作,
针对所述多个分区的每个分区,
所述第一节点根据与对应的分区的数据集合有关的访问请求来执行响应处理,
在通过所述响应处理而所述第一节点存储着的所述对应的分区的所述数据集合被更新的情况下,与所述响应处理同步地所述第二节点使存储着的对应的分区的数据集合更新,
所述第一节点或者所述第二节点将各自存储着的所述对应的分区的所述数据集合通过不妨碍与所述访问请求对应的处理的后台向所述第三节点发送。
10.一种节点,是权利要求1所述的数据库系统中具备的节点。
11.一种数据处理方法,是具备对分割数据库而成的多个分区进行存储的多个节点和管理所述多个节点的管理装置的数据库系统中的数据处理方法,
所述管理装置执行:
第一分配步骤,针对所述多个分区的每个分区,对第一节点分配所述多个节点中的一个节点、以及对第二节点分配所述多个节点中的除所述第一节点以外的至少一个节点,对所述多个节点的每个节点指示与分配对应的动作;和
第二分配步骤,针对所述多个分区的每个分区,能够对第三节点分配所述多个节点中的除所述第一节点以及所述第二节点以外的至少一个节点,对所述多个节点的每个节点指示与分配对应的动作,
针对所述多个分区的每个分区,
所述第一节点根据与对应的分区的数据集合有关的访问请求来执行响应处理,
在通过所述响应处理而所述第一节点存储着的所述对应的分区的所述数据集合被更新的情况下,与所述响应处理同步地所述第二节点使存储着的对应的分区的数据集合更新,
所述第一节点或者所述第二节点将各自存储着的所述对应的分区的所述数据集合通过不妨碍与所述访问请求对应的处理的后台向所述第三节点发送。
CN201380003048.1A 2013-03-12 2013-03-12 数据库系统、管理装置、节点以及数据处理方法 Active CN104185841B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/056868 WO2014141393A1 (ja) 2013-03-12 2013-03-12 データベースシステム、プログラムおよびデータ処理方法

Publications (2)

Publication Number Publication Date
CN104185841A CN104185841A (zh) 2014-12-03
CN104185841B true CN104185841B (zh) 2018-08-17

Family

ID=51532972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380003048.1A Active CN104185841B (zh) 2013-03-12 2013-03-12 数据库系统、管理装置、节点以及数据处理方法

Country Status (6)

Country Link
US (2) US20140279902A1 (zh)
EP (2) EP4191431A1 (zh)
JP (1) JP5698865B2 (zh)
CN (1) CN104185841B (zh)
AU (1) AU2013381504B2 (zh)
WO (1) WO2014141393A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6382819B2 (ja) 2013-08-21 2018-08-29 株式会社東芝 データベースシステム、ノード、管理装置、プログラムおよびデータ処理方法
JP6122126B2 (ja) 2013-08-27 2017-04-26 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
EP3035595A1 (en) * 2014-12-17 2016-06-22 Alcatel Lucent Routable distributed database for managing a plurality of entities of a telecommunication network
US10977276B2 (en) * 2015-07-31 2021-04-13 International Business Machines Corporation Balanced partition placement in distributed databases
US10452490B2 (en) * 2016-03-09 2019-10-22 Commvault Systems, Inc. Data management and backup of distributed storage environment
CN107800551A (zh) * 2016-08-31 2018-03-13 北京优朋普乐科技有限公司 Redis集群系统及其提高可靠性的方法、客户端
CN110300188B (zh) * 2019-07-25 2022-03-22 中国工商银行股份有限公司 数据传输系统、方法和设备
CN111309805B (zh) 2019-12-13 2023-10-20 华为技术有限公司 数据库的数据读写方法及装置

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884326A (en) * 1996-11-18 1999-03-16 Weinger; Ralph Method and apparatus for data access
JPH0392942A (ja) * 1989-09-06 1991-04-18 Hitachi Ltd ファイルの格納方法およびアクセス方法
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
CA2159269C (en) * 1995-09-27 2000-11-21 Chaitanya K. Baru Method and apparatus for achieving uniform data distribution in a parallel database system
JPH09146812A (ja) * 1995-11-27 1997-06-06 Sanyo Electric Co Ltd データベース装置
EP0854423A1 (en) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
JPH10247181A (ja) * 1997-03-05 1998-09-14 Mitsubishi Electric Corp 拠点バックアップ計算機システム
DE19836347C2 (de) * 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
US7013316B1 (en) * 2000-07-13 2006-03-14 Microsoft Corporation System and method for synchronizing multiple database files
JP2003345640A (ja) * 2002-05-28 2003-12-05 Mitsubishi Electric Corp データベースバックアップシステム
US7809384B2 (en) * 2002-11-05 2010-10-05 Microsoft Corporation User-input scheduling of synchronization operation on a mobile device based on user activity
CN1317658C (zh) * 2002-12-31 2007-05-23 联想(北京)有限公司 利用机群节点相互备份的容错方法
JP4374953B2 (ja) * 2003-09-09 2009-12-02 株式会社日立製作所 データ処理システム
US20050144316A1 (en) * 2003-12-06 2005-06-30 William Loo Method and system for service node redundancy
JP2005196602A (ja) 2004-01-09 2005-07-21 Hitachi Ltd 無共有型データベース管理システムにおけるシステム構成変更方法
US7120769B2 (en) * 2004-03-08 2006-10-10 Hitachi, Ltd. Point in time remote copy for multiple sites
US8266406B2 (en) * 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
US7490205B2 (en) * 2005-03-14 2009-02-10 International Business Machines Corporation Method for providing a triad copy of storage data
JP4107676B2 (ja) * 2006-07-21 2008-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクション引継ぎシステム
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US8849746B2 (en) * 2006-12-19 2014-09-30 Teradata Us, Inc. High-throughput extract-transform-load (ETL) of program events for subsequent analysis
US20080288630A1 (en) * 2007-05-18 2008-11-20 Motorola, Inc. Device management
JP4386932B2 (ja) * 2007-08-17 2009-12-16 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
JP5192226B2 (ja) 2007-12-27 2013-05-08 株式会社日立製作所 待機系計算機の追加方法、計算機及び計算機システム
JP5222617B2 (ja) * 2008-04-28 2013-06-26 株式会社日立製作所 情報システム及びi/o処理方法
JP4612715B2 (ja) * 2008-09-05 2011-01-12 株式会社日立製作所 情報処理システム、データ更新方法およびデータ更新プログラム
JP5359201B2 (ja) * 2008-11-06 2013-12-04 富士通株式会社 コンテンツの削除更新プログラム
JP5381336B2 (ja) * 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法
US8724449B2 (en) * 2009-06-10 2014-05-13 Cisco Technology, Inc. Failure protection for access ring topology
US9325802B2 (en) * 2009-07-16 2016-04-26 Microsoft Technology Licensing, Llc Hierarchical scale unit values for storing instances of data among nodes of a distributed store
US8495044B2 (en) * 2009-09-02 2013-07-23 Microsoft Corporation File system node updates
US20110283277A1 (en) * 2010-05-11 2011-11-17 International Business Machines Corporation Virtualization and dynamic resource allocation aware storage level reordering
US8595184B2 (en) * 2010-05-19 2013-11-26 Microsoft Corporation Scaleable fault-tolerant metadata service
US8515915B2 (en) * 2010-09-24 2013-08-20 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
US8627024B2 (en) * 2010-11-30 2014-01-07 International Business Machines Corporation Snapshot based replication
US8572031B2 (en) * 2010-12-23 2013-10-29 Mongodb, Inc. Method and apparatus for maintaining replica sets
US8554730B2 (en) * 2011-07-29 2013-10-08 International Business Machines Corporation Adding a key column to a table to be replicated
US20130149678A1 (en) * 2011-12-12 2013-06-13 Yukie J. Tokuda System and methods for virtual cooking with multi-course planning
US8880565B2 (en) * 2011-12-23 2014-11-04 Sap Se Table creation for partitioned tables

Also Published As

Publication number Publication date
JPWO2014141393A1 (ja) 2017-02-16
AU2013381504B2 (en) 2016-06-23
WO2014141393A1 (ja) 2014-09-18
US20140279902A1 (en) 2014-09-18
CN104185841A (zh) 2014-12-03
AU2013381504A1 (en) 2015-02-12
EP2975523A4 (en) 2017-02-08
JP5698865B2 (ja) 2015-04-08
EP2975523A1 (en) 2016-01-20
EP4191431A1 (en) 2023-06-07
US20230244694A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
CN104185841B (zh) 数据库系统、管理装置、节点以及数据处理方法
Nawab et al. Dpaxos: Managing data closer to users for low-latency and mobile applications
EP3764244B1 (en) System and method for massively parallel processing database
US10162875B2 (en) Database system including a plurality of nodes
US10102086B2 (en) Replicated database distribution for workload balancing after cluster reconfiguration
US9367600B2 (en) Policy-based storage structure distribution
JP6382819B2 (ja) データベースシステム、ノード、管理装置、プログラムおよびデータ処理方法
CN104081354A (zh) 在可缩放环境中管理分区
CN104081353A (zh) 可缩放环境中的动态负载平衡
CN109669929A (zh) 基于分布式并行数据库的实时数据存储方法和系统
CN109845192B (zh) 动态地适配网络的计算机系统和方法及计算机可读介质
CN106209411B (zh) 分布式网络系统容错方法、装置及容错式分布式网络系统
CN107085539A (zh) 一种云数据库系统以及云数据库资源动态调整方法
CN108183971A (zh) 一种分布式系统中的节点选举方法
CN106991070A (zh) 实时计算方法及装置
Lin et al. ReHRS: A hybrid redundant system for improving MapReduce reliability and availability
Shen et al. DrTM+ B: Replication-driven live reconfiguration for fast and general distributed transaction processing
CN117120993A (zh) 地理上分散的混合云集群
JPWO2015072025A1 (ja) 計算機システム、計算機システム管理方法及びプログラム
Maiyya et al. Samya: A geo-distributed data system for high contention aggregate data
Tharunya et al. A multi-agent based query processing system using RETSINA with intelligent agents in cloud environment
CN117909136A (zh) 分布式日志存储备份方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant