CN102033889B - 分布式数据库并行处理系统 - Google Patents

分布式数据库并行处理系统 Download PDF

Info

Publication number
CN102033889B
CN102033889B CN200910196843.2A CN200910196843A CN102033889B CN 102033889 B CN102033889 B CN 102033889B CN 200910196843 A CN200910196843 A CN 200910196843A CN 102033889 B CN102033889 B CN 102033889B
Authority
CN
China
Prior art keywords
data
server
module
distributed
server node
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
Application number
CN200910196843.2A
Other languages
English (en)
Other versions
CN102033889A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN200910196843.2A priority Critical patent/CN102033889B/zh
Publication of CN102033889A publication Critical patent/CN102033889A/zh
Application granted granted Critical
Publication of CN102033889B publication Critical patent/CN102033889B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了分布式数据库并行处理系统,其技术方案为:采用分布式并行数据库可控冗余架构,使用不同类型的数据库服务器节点(满型数据库服务器、非满型数据库服务器和虚空型数据库服务器)。数据库集群主要由非满型数据库服务器组成,其上存储数据库集群中的部分数据来分担工作负载,多个非满型服务器通过虚空型数据库服务器组成多份完整的数据集合,虚空型数据库服务器从功能上保证了数据集合的完整。满型数据库服务器也可单独提供数据集合的完整。虚空型数据库服务器选择数据库集群中的服务器节点组成一个覆盖全部数据的星型网络,用于检索数据库集群中的全部数据,将存储于多个数据库服务器节点上的数据分区动态链接起来。

Description

分布式数据库并行处理系统
技术领域
本发明涉及一种数据库系统,尤其涉及一种同时提高数据库数据处理性能和提高数据库可靠度的带有可控数据冗余度的分布式数据库并行处理系统。
背景技术
数据库数据高速处理性能和数据库高可靠度这两个指标都是商用数据库系统的重要指标,为了向客户提供迅速及时且稳定可靠的服务,商用数据库系统对这两个指标都有非常高的要求。在现有软件和硬件条件的限制下,传统的方法只能以牺牲一个性能指标来提升另外一个性能指标。
为了提高数据库系统的处理性能,现有的数据库系统通常选用尽可能快速和大容量的硬件设备(例如处理器、内存、系统总线和存储设备等等),并为一个大型服务器提供大型硬盘阵列来提高数据读写和处理速度。带有这样高端设备和大型硬盘阵列的数据库系统往往造价昂贵,但其昂贵的硬盘阵列设备只能保证个别硬盘出现故障时整个数据库系统能够维持正常工作,而当系统其他设备或软件出现故障时(例如中央处理器、主板、内存、操作系统、数据库软件等),整个系统就无法继续正常工作,也就是说现有的数据库系统仍然无法避免单点故障源造成的整个数据库系统的瘫痪。
为了防止单点故障源瘫痪整个数据库系统,数据库软件商采用多台(shared-nothing)分布式计算机的数据库系统来解决系统可靠度的问题。例如最普通的数据库集群的架构请参见图1,这个架构包括一个应用程序服务器和多个(图中示为1~4号服务器)服务器节点构成,每个数据库服务器节点只负责存储一部分数据,各服务器节点存储的数据无交集。其中应用程序服务器接收用户端(即,客户1~客户n)的查询和写操作请求,并将服务器节点返回的结果回送给用户端。应用程序服务器在接收到用户端的查询和写操作请求后,根据所掌握的分布式数据库架构信息向服务器节点分配查询和写操作请求。服务器节点会将操作结果反馈至应用程序服务器。在这种架构的分布式数据库集群中,整个数据库集群的规模(服务器节点数目)及各服务器上的数据分布方式都要在数据库设计阶段固定下来。在为客户提供服务时,往往需要多个节点参与以提供完整的数据信息,这就要求各服务器之间进行大量的数据交换和通讯。这样的设计造成各节点之间彼此严重依赖并容易引发因大量数据传递而造成的网络堵塞,只要当系统中的一个服务器节点出现故障时,整个系统将无法正常为用户提供服务。可以说,这种不带有数据冗余优化配置的分布式数据库系统不能用来解决系统可靠度的问题,其只能以牺牲系统可靠度来突破使用单机型服务器的数据处理极限。
当前,使用分布式计算机构造数据库集群系统的主要有以下三种构架:(1)将数据分布在多台服务器节点上,利用各个节点下的本机专属中央处理器(CPU)和硬盘同步处理数据,以期获得高速处理性能。(2)使用并行处理技术和Two PhaseCommit协议来把所有的数据都实时同步备份到多个服务器上,每个服务器都保留一份完整的数据。(3)利用异步复制技术来提高处理性能和可靠度。基本原理是建立一个主服务器和多个辅助服务器,主服务器上存放着全部实时数据,每个辅助服务器定时从主服务器获取最新的数据。所有对数据的更新和增加(亦即写操作)都要经过主服务器处理,然后复制到各个辅助服务器上。各个辅助服务器可以分担一部分数据查询(亦即只读操作)的负载。
上述的三种方法都有各自的缺点,无法同时提高数据处理速度和提高数据库可靠度。对于第(1)种方法,将数据分布在多个服务器节点后,当任一节点出现故障时,任何对该节点的数据访问和更新都无法继续进行,随着服务器节点数据的增加,整个数据库系统的可靠性持续下降。这种方法是以牺牲数据库的可靠性来提高数据库系统的处理性能。此外,因为每个节点和其上存贮的数据相对固定,增减服务器节点会影响原有数据分布,这些计划内的系统维护任务也会造成数据库的服务间断。
对于第(2)种方法,在多个服务器上都存储一份完整的数据,这要求每次数据更新都必须在每个服务器上同步完成。这使得整个数据库的处理速度永远不超过该数据库集群中最慢的一台服务器,整个系统的处理性能非但无法按照服务器节点数目线性增加,反而会永远按照最慢的一台服务器节点速度来统一步调,造成资源浪费。这是靠牺牲数据库处理性能来提高数据库可靠度的方法。
对于第(3)种方法,由于主服务器和辅助服务器之间的异步复制技术存在时间上的延迟,当主服务器出现故障时,在主服务器上尚未被复制到辅助服务器的数据将有可能丢失,在修复主服务器之前整个系统无法恢复正常工作,系统的可靠度不会高于单台主服务器的可靠度,整个系统的可靠度并未提高。另外,所有的写操作必须先由主服务器完成,这决定了整个系统的处理速度在主服务器达到负载饱和后将无法提高。从主服务器向辅助服务器传递最新数据还会消耗主服务器上宝贵的系统资源从而降低主服务器处理数据的能力,这种复制方式决定了数据复制速度将由数据复制队列两端(主服务器和辅助服务器)中速度较慢的一端来决定,这种瓶颈效应和写操作必须由主服务器处理的结构性要求限制了数据库系统的规模扩展。这种方法实际上比使用单台主服务器的可靠性更低,数据处理性能更差。
综上所述,现有技术中不存在一种技术可以同时解决数据库高处理性能和数据库高可靠度这两个看似矛盾的需求。
发明内容
本发明的目的在于解决上述问题,提供了一种带有可控数据冗余度的分布式数据库并行处理系统,第一方面提供了一个可以动态调节易于使用和管理的分布式并行数据库架构以消除性能瓶颈,解决了数据库集群的大规模扩展和提高处理性能的问题;第二方面利用可控数据冗余构架可以提高数据库可靠度;第三方面解决了集群规模最优化的问题。第四方面解决了数据库节点之间相互依赖的问题。
本发明的技术方案为:本发明揭示了一种分布式数据库并行处理系统,通过动态可控冗余架构将数据库内的数据分布到由多个服务器节点组成的数据库集群中,该系统包括以下组成部分:
数据库应用程序服务器,掌握带有动态可控冗余度的分布式数据库集群的架构信息和数据分布情况,接收用户递交的对数据库的操作指令并按照操作的特征动态选定能够完成该操作的服务器节点来执行该操作指令;
多个服务器节点,该数据库应用程序服务器连接多个服务器节点,该些服务器节点用于存储实体数据并执行用户递交的对数据库的操作指令,该些服务器节点分为两类:
第一类服务器节点:非满型数据库服务器节点,每个非满型数据库服务器节点只存储指定的一部分分布式数据,各非满型数据库服务器节点彼此独立工作,不直接与其他非满型数据库服务器节点交换数据,该非满型数据库服务器节点内包含以下信息模块:
存储数据库集群中分布式数据架构信息的模块,该些分布式数据架构信息由该数据库应用程序服务器负责维护;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,分布式数据的实体数据存储于该些数据分区模块中,存有分布式数据的分区模块为有效数据分区模块,未存有分布式数据的分区为空分区模块,非满型数据库服务器节点所属的数据分区模块中至少有一个是空分区模块,所有对有效数据分区模块内数据的操作指令都由其上的虚拟表来接收并转发至各个存有实体数据的有效数据分区模块上执行;
第二类服务器节点:虚空型数据库服务器节点,虚空型服务器节点本身只保存非分布式数据,不存储任何实体的分布式数据,依赖其他存有分布式数据的服务器节点为其提供实体数据,每个虚空型数据库服务器节点将各个存有分布式数据的服务器节点动态链接起来为用户提供一份覆盖全部分布式数据的完整数据集合,该虚空型数据库服务器节点内包含以下信息模块:
存储数据库集群中分布式数据架构信息的模块;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,该虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,虚空型服务器节点上所有的数据分区模块均为空模块,不存储实体数据,其下每个数据分区模块与集群中其他存有有效数据的服务器节点的分区模块保持动态链接,当虚空型数据库服务器节点上的虚拟表接收到数据操作请求时,虚拟表通过该些动态链接从其他服务器节点获取数据并返回查询结果。
根据本发明的分布式数据库并行处理系统的一实施例,该服务器节点还包括:
第三类服务器节点:满型数据库服务器节点,其上存储有全部非分布式数据和一份完整的分布式数据的数据集,单独提供用户所需的全部数据,满型数据库服务器节点内包括以下模块:
存储数据库集群中分布式数据架构信息的模块;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,该虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,各满型数据库服务器节点下的数据分区模块均为有效数据分区模块,每个满型服务器节点上的全部有效数据分区模块组成一套完整的分布式数据以保证该满型数据库服务器节点独立为用户提供完整的数据。
根据本发明的分布式数据库并行处理系统的一实施例,该数据库应用程序服务器监控和管理每个服务器节点,把整个数据库集群的最新状态和最近变更记录作为分布式数据库集群架构的信息保存在每个服务器节点上,在收到用户操作时根据用户操作的特征将其发往对应的服务器节点:如果该用户操作是针对某一数据分区模块的只读操作,则选择任意一个包含对应有效数据分区模块的服务器节点来执行该只读操作;如果该用户操作是针对某一数据分区模块的写操作,则将该写操作发往所有存储对应有效数据分区模块的服务器节点来执行该写操作;如果该用户操作是针对非分布式数据的只读操作,则可选择任意一个服务器节点来执行该只读操作;如果该用户操作是针对非分布式数据的写操作,则将该写操作发往所有服务器节点来执行该写操作。
根据本发明的分布式数据库并行处理系统的一实施例,集群内的虚空型数据库服务器节点动态链接数据库集群内的非满型数据库服务器节点和满型数据库服务器节点以组成一个覆盖全部分布式数据的星型网络结构,该星型网络结构将涉及大量数据操作的用户指令分割成多个并行执行的指令,分配到多个独立的服务器节点上同步运行。
根据本发明的分布式数据库并行处理系统的一实施例,满型数据库服务器节点在数据库管理员需要缩减数据库集群规模或者将数据库集群合并至单台服务器时为用户提供安全的合并方案,或者为在数据库应用程序开发人员在单个服务器节点上开发针对整个数据库集群的应用程序时提供便利的调试环境。
本发明还揭示了一种分布式数据库并行处理系统,通过动态可控冗余架构将数据库内的数据分布到由多个服务器节点组成的数据库集群中,该系统包括以下组成部分:
数据库应用程序服务器,掌握带有动态可控冗余度的分布式数据库集群的架构信息和数据分布情况,接收用户递交的对数据库的操作指令并按照操作的特征动态选定能够完成该操作的服务器节点来执行该操作指令;
多个服务器节点,该数据库应用程序服务器连接多个服务器节点,该些服务器节点用于存储实体数据并执行用户递交的对数据库的操作指令,该些服务器节点分为两类:
第一类服务器节点:非满型数据库服务器节点,每个非满型数据库服务器节点只存储指定的一部分分布式数据,各非满型数据库服务器节点彼此独立工作,不直接与其他非满型数据库服务器节点交换数据,该非满型数据库服务器节点内包含以下信息模块:
存储数据库集群中分布式数据架构信息的模块,该些分布式数据架构信息由该数据库应用程序服务器负责维护;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,分布式数据的实体数据存储于该些数据分区模块中,存有分布式数据的分区模块为有效数据分区模块,未存有分布式数据的分区为空分区模块,非满型数据库服务器节点所属的数据分区模块中至少有一个是空分区模块,所有对有效数据分区模块内数据的操作指令都由其上的虚拟表来接收并转发至各个存有实体数据的有效数据分区模块上执行;
第二类服务器节点:满型数据库服务器节点,其上存储有全部非分布式数据和一份完整的分布式数据的数据集,单独提供用户所需的全部数据,满型数据库服务器节点内包括以下模块:
存储数据库集群中分布式数据架构信息的模块;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,该虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,各满型数据库服务器节点下的数据分区模块均为有效数据分区模块,每个满型服务器节点上的全部有效数据分区模块组成一套完整的分布式数据以保证该满型数据库服务器节点独立为用户提供完整的数据。
根据本发明的分布式数据库并行处理系统的一实施例,该数据库应用程序服务器监控和管理每个服务器节点,把整个数据库集群的最新状态和最近变更记录作为分布式数据库集群架构的信息保存在每个服务器节点上,在收到用户操作时根据用户操作的特征将其发往对应的服务器节点:如果该用户操作是针对某一数据分区模块的只读操作,则选择任意一个包含对应有效数据分区模块的服务器节点来执行该只读操作;如果该用户操作是针对某一数据分区模块的写操作,则将该写操作发往所有存储对应有效数据分区模块的服务器节点来执行该写操作;如果该用户操作是针对非分布式数据的只读操作,则可选择任意一个服务器节点来执行该只读操作;如果该用户操作是针对非分布式数据的写操作,则将该写操作发往所有服务器节点来执行该写操作。
根据本发明的分布式数据库并行处理系统的一实施例,满型数据库服务器节点在数据库管理员需要缩减数据库集群规模或者将数据库集群合并至单台服务器时为用户提供安全的合并方案,或者为在数据库应用程序开发人员在单个服务器节点上开发针对整个数据库集群的应用程序时提供便利的调试环境。
本发明对比现有技术有如下的有益效果:本发明的技术方案是采用分布式并行数据库可控冗余架构,在数据库系统中使用不同类型的数据库服务器节点(满型数据库服务器、非满型数据库服务器和虚空型数据库服务器)。数据库集群主要由非满型数据库服务器组成,每个非满型服务器上存储着数据库集群中的部分数据来分担工作负载,多个非满型服务器可以通过虚空型数据库服务器组成多份完整的数据集合,虚空型数据库服务器从功能上保证了数据集合的完整。满型数据库服务器也可以单独提供数据集合的完整。这样的构架既可以提供高速同步的数据处理性能,又可提高数据库可靠度。虚空型数据库服务器选择数据库集群中的服务器节点组成一个覆盖全部数据的星型网络,用于检索数据库集群中的全部数据,这样可以将存储于多个数据库服务器节点上的数据分区动态链接起来,提高数据库处理性能尤其是数据读取操作的性能。
附图说明
图1是传统的普通数据库集群的示意图。
图2是本发明的带有可控冗余构架的分布式数据库并行处理系统的第一实施例的架构全局视图。
图3是本发明的带有可控冗余构架的分布式数据库并行处理系统的第二实施例的架构全局视图。
图4是本发明的带有可控冗余构架的分布式数据库并行处理系统的三类服务器节点的真实数据分布示意图。
图5是本发明的带有可控冗余构架的分布式数据库并行处理系统中用户及数据库程序员可见的数据视图。
图6是本发明的带有可控冗余构架的分布式数据库并行处理系统的构造方法的流程图。
图7是本发明的系统构造方法中的满型数据库服务器的构造示意图。
图8是本发明的系统构造方法中的从工作节点向新服务器节点复制同步数据的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
分布式数据库并行处理系统的第一实施例
图2示出了本发明的带有可控冗余构架的分布式数据库并行处理系统的第一实施例。请参见图2,本实施例的分布式数据库并行处理系统包括:数据库应用程序服务器10以及数据库应用程序服务器10连接的多个服务器节点。本实施例的分布式数据库并行处理系统通过一个独特的动态可控冗余架构将数据库内的数据分布到由多个服务器节点组成的数据库集群当中。数据库中的数据可以根据工作负载的特征划分为两类:分布式数据和非分布式数据。分布式数据的特点是此类数据往往只在个别数据操作中被访问或更改,例如某个银行储户的某笔存款记录。非分布式数据的特点是此类数据往往被大量的操作所查询和使用,例如银行系统中某类账户的存款利息。在动态可控冗余架构下,非分布式数据存储于普通数据表内并被同步复制到每个服务器节点上,以便于各个数据库节点可以从本地存储系统内查询到此类数据而无需依赖其它节点提供此类信息;分布式数据存储于按照数据库管理员指定的模式分割至多个数据分区内,在这些数据分区之上建立虚拟表来代表和管理其所属的数据分区和分区内的数据。这种虚拟表和数据分区的架构被复制到每个服务器节点上,而这些分区内的数据可以按照数据库管理员的规划在多个服务器节点内进行分配和同步复制:每个服务器节点只负责存储和管理其指定的数据分区。在这种独特的动态可控冗余架构管理下,数据库集群中的服务器节点可以提供多个完整的数据备份以增强数据库的可靠度,整个系统的工作负载可以被分配到各个服务器节点上以提高数据库系统的工作吞吐量。本实施例中的服务器节点用于存储数据并执行数据指令操作,本实施例中的服务器节点按照其上存储的分布式数据的情况分为两种:满型数据库服务器12和非满型数据库服务器14。值得注意的是,全部服务器节点上都存有同样的数据分区模块构架,但不是每个数据分区模块内部都存有具体的实体数据。因为此实施例中没有包含虚空型数据库服务器,所以满型数据库服务器12在本实施例中的首要用途是提供数据的完整。
在本实施例中,用户端(即图2中的客户1~客户n)和网页服务器建立数据连接,网页服务器和数据库应用程序服务器10建立数据连接。用户端和网页服务器之间,以及网页服务器和数据库应用程序服务器10之间传输用户端的查询和写操作请求和服务器反馈信息。
数据库应用程序服务器10负责维护整个数据库集群上的动态可控冗余度的架构信息和数据分布信息,系统管理员可以为该应用程序服务器配置一个后备应用程序服务器,在数据库应用程序服务器10出现故障时将后备应用程序服务器投入使用(其中各服务器节点存储的数据库集群中分布式数据架构信息的模块可以用来帮助后备应用程序服务器准确了解集群内的最新数据分布情况和各节点的工作状态)。数据库应用程序服务器10的功能是:监控下面的每一个数据库服务器节点的状态,把整个数据库集群的最新状态和最近变更记录作为分布式数据架构的信息保存在每一个服务器节点上,并在收到用户端操作指令(例如查询和写操作请求)时根据用户端操作的特征向下面的服务器节点分配这一操作,以及接收服务器节点返回的处理结果。至于如何将用户端的查询和写操作请求分配到对应的服务器节点,将在描述完满型数据库服务器12和非满型数据库服务器14的结构之后再作详细说明。
满型数据库服务器12上保存了整个数据库集群中的全部非分布式数据和一份完整的分布式数据的数据集,可以单独提供用户所需的全部数据服务功能。满型数据库服务器节点12进一步包括存储数据库集群中分布式数据架构信息的模块120、存储数据库集群中非分布式数据的普通数据表的模块121、存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块122、及其下属的三个数据分区模块123~125(在图2的满型数据库服务器节点12中示为1号数据分区模块123、2号数据分区模块124、3号数据分区模块125,当然本实施例仅为示例,实际上数据分区模块的数量可以有更多个)。其中这三个数据分区模块123~125与代表分布式数据的虚拟表模块122建立从属关系,每个数据分区都仅从属于一个预先为其指定的虚拟表,用户只对虚拟表提交操作指令,该虚拟表根据预先定义的数据分区算法得出正确执行用户操作指令所需访问的数据分区并将这些操作指令传递到这些数据分区。虚拟表本身不存储数据,这三个数据分区模块123~125是由虚拟表管理的。存储数据库集群中的分布式数据架构信息的模块120和存储非分布式数据的普通数据表的模块121在每个服务器节点中都实体存在且都是相同的,这些技术均是现有技术,在此不再赘述。之所以要区分非分布式数据和分布式数据,是因为在进行数据分区设计时,内容更新频繁的数据表都可以通过被分割并分布到多个节点上以降低写操作在单个服务器节点上可能引起的负载瓶颈。而其余的数据表因为数据更新频率低,不占用过多的写操作资源,可以完整地复制到每个节点上,以分担对这些数据表的只读操作负载。本实施例的特点在于代表分布式区数据的虚拟表的模块122和其所管辖的三个数据分区模块123~125。虚拟表本身不存储实体数据,而是专门负责管理其下属的数据分区模块123~125,通过添加trigger或利用现有数据库分区功能可使得所有对其下属数据块分区的访问都通过这个虚拟表来进行,具体的读写操作在该虚拟表所管理的底层的数据块分区上进行。
所谓满型数据块服务器12,就是这个服务器节点上存储有一套完整的分布式数据全集,体现在数据分区中就是这三个数据分区模块123~125都存有有效数据(亦即,每个数据分区模块都是有效数据分区模块,都存有分配到该数据分区的实体数据),它们组合在一起覆盖了数据库集群向用户提供的全部数据。这样的满型数据库服务器12可以像普通单机数据库服务器一样独立运行。
正如前面所述,满型数据库服务器12除了可应用于系统实际使用过程中,也可以由初始单机版数据库服务器(或者异步复制技术中的主服务器)向本实施例的运用“分布式并行数据库可控冗余架构”的数据库集群转变过程中出现。构造满型数据库服务器12的具体过程将在后面系统构造方法的实施例中说明,这里仅作简单说明。当数据库管理员在主服务器(或单机版数据库服务器)上选定需要分布到多个服务器上的数据表后,首先在主服务器内部建立数据分区构架,将目标数据放入这些数据分区并在这些数据分区上建立虚拟表以隐藏底层数据分区后,主服务器即成为一个满型数据库服务器节点。满型数据库服务器12主要用于导入新的非满型数据库服务器时的数据同步复制过程。当一个集群中的非满型数据库服务器节点上保存的数据已经能够组合出一套完整的数据之后,满型数据库服务器就不再是必需的,可以清空其上一部分数据分区以使其变为一个非满型数据库服务器,这样可以防止当工作负载过大时该满型节点因为要处理过多的写操作而变成整个集群的瓶颈。至于满型数据库服务器所能提供的数据完整性功能,可以由对系统硬件要求较低的虚空型数据库服务器来替代实现(这种实现方案可以参见下面的第二实施例)。
除了出现在从上述的初始单机版数据库服务器(或者现有的异步复制技术中的主服务器)向本实施例中使用“分布式并行数据库可控冗余架构”的数据库集群转变过程中,满型数据库服务器的另外一个用途是应用于数据库应用程序的开发过程。程序员可以在一台满型数据库服务器上开发调试程序,在满型数据库服务器上开发完毕的应用程序可以不加任何修改直接应用于具有多个服务器节点的大规模的数据库集群。此外,满型数据库服务器还可以在数据库管理员需要缩减数据库集群规模或者将数据库集群合并至单台服务器时为用户提供安全的合并方案。同样,由非满型数据库服务器节点构造满型数据库服务器节点的过程也很简单,只需利用集群中的多个节点上存储的有效数据分区将一个选定的非满型数据库服务器节点上的空数据分区全部替换为有效数据分区即可。
非满型数据库服务器是构成本实施例的并行处理系统的主体,每个非满型数据库服务器只存储数据库集群中由管理员指定的部分分布式数据,各非满型数据库服务器节点彼此独立工作,不直接与其他的非满型数据库服务器节点交换数据。这种工作模式避免了非满型数据库服务器节点之间的相互依赖,也减少了大量数据在网络上传递造成的堵塞和延迟。在本实施例中为说明方便只图示了2个,下面的说明以其中的非满型数据库服务器14为例。从结构上看,非满型数据库服务器14和满型数据库服务器12相似,不同之处在于满型数据库服务器12存储了数据库集群中的全部数据,而非满型数据库服务器14只存储集群中的部分数据,其节点内至少有一个数据分区模块是空分区模块(即,不存储任何有效数据的空数据分区),在本实施例的非满型数据库服务器14中,其1号数据分区模块143为空分区模块,而2号数据分区模块144和3号数据分区模块145均为有效数据分区模块(即,存储有实体数据)。各非满型数据库服务器上存储的有效数据分区可以由数据库管理员决定,但是当系统中不存在满型数据库服务器节点时,所有的非满型数据库服务器14组合在一起必须要保证能够提供覆盖了数据库集群所需的全部分布式数据。在本实施例中,非满型数据库服务器14包含有:存储数据库集群中的分布式数据架构信息的模块140、存储数据库集群中非分布式数据的普通数据表的模块141、存储数据库集群中代表分布式数据及其下属数据分区构架的虚拟表模块142、及其下属的三个数据分区模块143~145(在图2的非满型数据库服务器14中示为1号数据分区模块143、2号数据分区模块144、3号数据分区模块145,本实施例仅为示例,实际上数据分区模块的数量可以有更多个)。其中这三个数据分区模块143~145从属于代表分布式数据的虚拟表的模块142,虚拟表向其下属的数据分区传递用户提交的操作指令并接收数据分区返回的处理结果。虚拟表本身不存储数据,这三个数据分区模块143~145是由虚拟表管理的。存储数据库集群中的分布式数据架构信息的模块140和存储数据库集群中非分布式数据的普通数据表的模块141(包括未分区的普通表及其表内的数据)在每个服务器节点中都实体存在且都是相同的,这些技术均是现有技术,在此不再赘述。本实施例的特点在于代表分布式数据的虚拟表及其下属数据分区构架的模块142和这三个数据分区模块143~145。代表分布式数据的虚拟表及其下属数据分区构架的模块142建立在数据分区模块143~145之上,通过trigger或利用现有数据库分区功能可使得所有对数据的访问都通过这个虚拟表来进行,具体的读写操作在该虚拟表所管理的数据分区上进行。每个非满型数据库服务器只需处理与其所存储的数据分区相关的操作,不依赖于其他任何服务器节点。当新的非满型数据库服务器加入数据库服务器集群时,其上所存储的数据分区模块可以由一个满型数据库服务器或者其他已经获得有效数据的非满型数据库服务器以数据同步的方式获得。在第一个节点(通常是一个满型数据库服务器节点)投入运行后,数据库管理人员可以继续添加新的服务器节点并从之前产生的满型数据库服务器节点向新的服务器节点复制数据,直至新节点上指定的数据分区模块与集群中已实现同步的工作节点完成数据同步,此后新节点即可投入使用,而无需继续从其他节点复制数据。这种数据同步方式把严重消耗系统资源的数据同步限制在节点投入使用前的短暂的数据同步过程内,而不是像传统的“主服务器到辅助服务器”的异步复制模式那样在集群正常工作期间必须持续进行,为整个集群节省了宝贵的系统资源来处理更多的客户操作指令。
再回到数据库应用程序服务器10来观察如何将用户端的查询和写操作请求分配到对应的服务器节点,这个过程是根据操作的特征和相关服务器节点中数据分区的特征来决定的。具体而言,如果该用户操作是针对某一数据分区模块的只读操作,则选择任意一个包含对应有效数据分区模块的服务器节点来执行该只读操作;如果该用户操作是针对某一数据分区模块的写操作(例如插入记录、删除记录或更新记录),则将该写操作发往所有存储对应有效数据分区模块的服务器节点来执行该写操作;如果该用户操作是针对非分布式数据的只读操作,则可选择任意一个服务器节点来执行该只读操作;如果该用户操作是针对非分布式数据的写操作,则将该写操作发往所有服务器节点来执行该写操作。
基于图2所示的分布式数据库并行处理系统所带来的处理性能提升和可靠度提升,可以通过下面一个具体示例来说明。假设本实施例的系统集群中包括了100台非满型数据库服务器,同时假设所有的用户指令都只访问至多一个数据分区(此种情况下不需要满型数据库服务器),这100台非满型数据库服务器组成了一个数据库集群,集群中的全部数据被划分为100份。服务器1负责维护数据块1和数据块2,服务器2负责维护数据块2和数据块3,……,服务器99负责维护数据块99和数据块100,服务器100负责维护数据块100和数据块1。一方面,在这样的分布式并行数据库可控冗余架构下,任何一台服务器出现故障都不会影响整个数据库集群的正常工作。在最好的情况下,即使集群中一半的服务器停止工作(例如将所有的偶数号服务器停机进行硬件升级或系统维护),剩余的服务器仍然可以不间断地提供全部实时有效的数据和完整的服务。另一方面,在这样的分布式并行数据库可控冗余架构下,每台服务器只需要处理原来单台服务器的2%的写操作负荷,以及原来单台服务器的1%的只读操作负荷(因为所有数据均为实时数据,对数据的查询操作只需要由任一存储该有效数据分区的服务器处理即可)。与使用传统的Two Phase Commit协议的普通同步复制技术相比,分布式并行数据库可控冗余架构不需要在每台服务器上保留整套完整的数据,使得对数据库进行的写操作(插入、删除和修改指令)不必在全部节点上都同步执行,这些写操作只需要在保存有相应数据块实体数据的非满型数据库服务器上执行,整个系统的性能不再由某个主服务器限定,消除了数据库集群的数据处理速度瓶颈。
分布式数据库并行处理系统的第二实施例
图3示出了本发明带有可控冗余构架的分布式数据库并行处理系统的第二实施例的结构。本实施例的分布式数据库并行处理系统包括:数据库应用程序服务器20以及多个服务器节点。本实施例的分布式数据库并行处理系统通过一个独特的动态可控冗余架构将数据库内的数据分布到由多个服务器节点组成的数据库集群当中。数据库中的数据可以根据工作负载的特征划分为两类:分布式数据和非分布式数据。分布式数据的特点是此类数据往往只在个别数据操作中被访问或更改,例如某个银行储户的某笔存款记录。非分布式数据的特点是此类数据往往被大量的操作所查询和使用,例如银行系统中某类账户的存款利息。在动态可控冗余架构下,非分布式数据存储于普通数据表内并被同步复制到每个服务器节点上,以便于各个数据库节点可以从本地存储系统内查询到此类数据而无需依赖其它节点提供此类信息;分布式数据存储于按照数据库管理员指定的模式分割至多个数据分区内,在这些数据分区之上建立虚拟表来代表和管理其所属的数据分区和分区内的数据。这种虚拟表和数据分区的架构被复制到每个服务器节点上,而这些分区内的数据可以按照数据库管理员的规划在多个服务器节点内进行分配和同步复制:每个服务器节点只负责存储和管理其指定的数据分区。在这种独特的动态可控冗余架构管理下,数据库集群中的服务器节点可以提供多个完整的数据备份以增强数据库的可靠度,整个系统的工作负载可以被分配到各个服务器节点上以提高数据库系统的工作吞吐量。本实施例中的服务器节点按照其上存储的分布式数据的情况分为两种:非满型数据库服务器24和虚空型数据库服务器26。值得注意的是,全部服务器节点上都存有同样的数据分区构架(包括代表分布式数据的虚拟表和其下属的数据分区),但不是每个数据分区模块内部都存有具体的实体数据。由于虚空型数据库服务器26的存在,满型数据库服务器在本实施例中不必存在,以免成为整个集群的性能瓶颈。满型数据库服务器通常只应在建立本实施例的数据库集群的初始阶段使用或者是为数据库应用程序开发人员在单个服务器节点上开发程序而使用的,或者是在数据库管理员需要缩减数据库集群规模或者将数据库集群合并至单台服务器时为用户提供安全的合并方案。包含了满型数据库服务器的集群模式适用于系统刚刚开始由单机模式向包含有多个服务器节点的小规模数据库集群过渡期,此时数据规模和系统工作负载开始接近单一服务器的性能极限,引入满型数据库服务器节点和非满型数据库服务器节点可以将工作负载分配到多个节点上,此时还不必添加虚空型服务器,以便控制数据库集群规模和管理的复杂度。但在数据库集群增长到一定规模后应尽量避免使用满型数据库服务器节点以免其成为整个数据库服务器集群的性能瓶颈,此时通常是采用虚空型服务器和非满型数据库服务器结合的数据库集群模式。
在本实施例中,用户端(即图3中的客户1~客户n)和网页服务器建立数据连接,网页服务器和数据库应用程序服务器20建立数据连接。用户端和网页服务器之间,以及网页服务器和数据库应用程序服务器20之间传输用户端的查询和写操作请求以及服务器反馈信息。数据库应用程序服务器20与多个数据库服务器节点建立数据连接,这些数据库服务器节点用于存储数据并执行数据指令操作。
数据库应用程序服务器20掌握整个数据库集群上动态可控冗余度的分布式数据库架构的信息和数据分布信息,系统管理员可以为其配置一个后备应用程序服务器,在数据库应用程序服务器20出现故障时作为备用的应用程序服务器投入使用(其中各服务器节点存储的数据库集群中分布式数据架构信息的模块可以用来帮助后备应用程序服务器准确了解集群内的最新数据分布情况和各节点的工作状态)。数据库应用程序服务器20的功能是:监控下面的每一个服务器节点的状态,把整个数据库集群的最新状态和最近变更记录作为分布式数据架构的信息保存在每一个服务器节点上,并在收到用户操作指令(例如查询和写操作请求)后根据用户操作指令的特征向下面对应的服务器节点分配这一操作,以及接收数据库服务器节点返回的处理结果。
非满型数据库服务器是构成本实施例的并行数据库服务器集群系统的主体,在本实施例中为说明方便只图示了2个,实际应用中非满型数据库服务器的数量可以有更多个,下面的说明以图3中的非满型数据库服务器24为例。非满型数据库服务器只存储数据库集群中由管理员指定的部分数据,各个非满型数据库服务器彼此独立工作,不直接与其他的非满型数据库服务器交换数据。从结构上看,非满型数据库服务器24和满型数据库服务器相似,不同之处在于满型数据库服务器存储的数据可以覆盖整个数据库集群向用户提供的全部数据,而非满型数据库服务器24只存储集群中的部分数据,非满型数据库服务器24中的数据分区模块并不全部存有数据,根据定义其中至少有一个数据分区模块是空数据分区模块(即,不存储任何数据),在本实施例中是非满型数据库服务器24中的3号数据分区模块245为空,1号数据分区模块243和2号数据分区模块244是有效数据分区模块(即,存储实体数据),而另一个非满型数据库服务器的1号和2号数据分区模块为空。这样设计的目的是为了减小各数据库服务器节点上的工作负载。但是从整个数据库集群来看,系统中所有的非满型数据库服务器组合在一起一定要能够覆盖集群所需的全部数据。非满型数据库服务器24包括:存储数据库集群中的分布式数据架构信息的模块240、存储数据库集群中非分布式数据的普通数据表的模块241、代表分布式数据的虚拟表及其下属数据分区构架的模块242、三个数据分区模块243~245(在图2中示为1号数据分区模块243、2号数据分区模块244、3号数据分区模块245,当然本实施例仅为示例,实际上数据分区模块的数量可以有更多个)。这三个数据分区模块243~245从属于代表分布式数据的虚拟表的模块242,虚拟表242向其所属的数据分区243~245传递用户提交的操作指令并接收数据分区返回的处理结果。也就是说,这三个数据分区模块243~245是由虚拟表管理的,所有对有效数据分区模块内数据的操作指令都由其上的虚拟表来接收并转发至各个存有实体数据的有效数据分区模块上执行。存储数据库集群中的分布式数据架构信息的模块240和存储数据库集群中非分布式数据的普通数据表的模块241(包括未分区的普通表及其表内的数据)在每个服务器节点中都实体存在且都是相同的,这些技术均是现有技术,在此不再赘述。
本实施例相对前一实施例的最大不同在于本实施例的系统没有使用满型数据库服务器而是采用了虚空型数据库服务器,在图3中示为虚空型数据库服务器26。当使用本可控冗余构架技术实现的数据库集群内没有包含满型数据库服务器时,需要至少包含一个虚空型服务器来提供数据完整性的保证。为了描述方便在本实施例中虚空型数据库服务器示为1个。虚空型数据库服务器26包括存储数据库集群中的分布式数据架构信息的模块260、存储数据库集群中非分布式数据的普通数据表的模块261、存储数据库集群中代表分布式数据及其下属数据分区构架的虚拟表模块262及其下属的各个数据分区模块263~265(为了描述方便,在本实施例中将数据分区模块限定为3个,实际应用中可以有更多个,本实施例中为1号数据分区模块265、2号数据分区模块264以及3号数据分区模块263)。虚空型数据库服务器26和满型数据库服务器或者非满型数据库服务器24的最大不同在于虚空型数据库服务器26内部所有数据分区模块都是不存储数据的(即,都是空分区模块),这也是虚空型数据库服务器模块得名的由来。这些空的数据分区模块263~265是用来和其他非满型数据库服务器(或者满型数据库服务器)上的有效数据分区模块建立动态链接以便能够查询这些数据。
之所以要设计本实施例中的虚空型数据库服务器,其目的是为了解决非满型数据库服务器不能单独处理那些要求扫描全体分布式数据的查询指令,为了减少数据库服务器节点之间的依赖,每个非满型数据库服务器节点不知道其他节点的存在,也就不需要直接与其他节点进行数据交换。而在虚空型数据库服务器26上不保存任何真正的分布式数据,仅保留虚拟表和其下的空分区模块,在这些空分区模块上保存有指向存储有效数据分区的非满型数据库服务器节点的链接。而且这个链接是动态的,可进行动态调整来保证能够覆盖全部的数据分区。虚空型数据库服务器可以通过这种方式把多个非满型数据库服务器上存储的有效数据分区动态组合起来,构成一份完整的数据供用户查询。
下面举例说明一下虚空型数据库服务器的作用。当数据库集群规模包含上百甚至上千个服务器节点时,任何单一的服务器都没有足够快的处理器和充足的软硬件资源来及时处理全部工作负载和维护全部的数据。有一些查询请求需要对全部数据进行扫描检索,这样的查询请求无法由任何一个非满型数据库服务器完成,如果为满足这些查询请求而使用满型数据库服务器节点,这些满型节点可能会成为整个集群的速度瓶颈。而虚空型数据库服务器26可以根据集群内节点的情况动态地选择服务器节点,组成一个覆盖集群全部有效数据分区的星型网络。对需要检索全体数据的特殊查询请求可以经由这种虚空型数据库服务器来间接访问多个存有实际数据的非满型数据库服务器,最大限度地利用了已有的集群节点资源。因为这种虚空型数据库服务器不负责维护真正的数据块,却可以借助数据库集群中的多个节点来提供快速的并行查询处理能力,相比普通数据库复制技术需要购买昂贵的软硬件设备在某些节点上维持整套数据,使用非满型数据库服务器与虚空型数据库服务器相结合的分布式并行数据库可控冗余架构可以使用市场上性价比最优的工作站或个人电脑组成高处理性能和高可靠度的大规模数据集群。在这种星型网络中,涉及大量数据操作的用户指令分割成多个并行执行的指令,分配到多个独立的服务器节点上同步运行,以降低在单个服务器节点上的工作负载。
基于图3所示的带有可控冗余构架的分布式数据库并行处理系统可以提供高数据处理性能和高系统可靠度,下面举一具体示例来说明。假设本实施例的系统包括了100台非满型数据库服务器和2台虚空型数据库服务器(不存在满型数据库服务器),这100台非满型数据库服务器和2台虚空型数据库服务器组成了一个数据库集群,集群中的全部数据被分作100份。服务器1负责维护数据块1和数据块2,服务器2负责维护数据块2和数据块3,……,服务器99负责维护数据块99和数据块100,服务器100负责维护数据块100和数据块1,服务器101和102是虚空型数据库服务器,只负责处理对整体数据的查询(实际上是将工作负载动态分配到100台非满型数据库服务器)。一方面,在这样的分布式并行数据库可控冗余架构下,任何一台服务器出现故障都不会影响整个数据库集群的正常工作。在最好的情况下,即使集群中一半的服务器停止工作(例如将所有的偶数号服务器停机进行硬件升级或系统维护),剩余的服务器仍然可以不间断地提供完整的数据和服务。另一方面,在这样的分布式并行数据库可控冗余架构下,每台服务器只需要处理原来单台服务器的2%的写操作负荷,以及原来单台服务器的1%的只读操作负荷(因为所有数据均为实时有效数据,对数据的查询操作只需要由任一存储该数据块的服务器处理即可)。与使用传统的Two Phase Commit协议的普通同步复制技术相比,分布式并行数据库可控冗余架构不需要在每台服务器上保留整套完整的数据,使得以后对数据库进行写操作的插入、删除和更新指令都不必在全部节点上都同步执行,这些写操作只需要在保存有相应有效数据分区的非满型数据库服务器上执行,整个系统的性能不再由某个主服务器限定,消除了数据库集群的数据处理速度瓶颈。
图4示出了可应用于本实施例的三种服务器节点(满型数据库服务器、非满型数据库服务器、虚空型数据库服务器)的特征以及有效数据的分布示意。从结构上看,满型数据库服务器、非满型数据库服务器以及虚空型数据库服务器都包括存储数据库集群中的分布式数据构架信息的模块、存储数据库集群中非分布式数据的普通数据表的模块、代表数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块以及多个数据分区模块。这些服务器节点的不同之处在于:对于满型数据库服务器,所有的数据分区模块都存有有效数据,每个此类节点内部的数据分区模块所存储的数据组合在一起就能够提供集群正常工作所需的一套完整数据。对于非满型数据库服务器,部分的数据分区模块存有有效数据,其余的数据分区模块为空,这些节点内部的数据分区模块所存储的数据合在一起只覆盖了提供全部服务所需的部分数据(从一个满型数据库服务器删除其中的一个或多个数据分区模块中的数据就可将其变为非满型数据库服务器)。对于虚空型数据库服务器,所有的数据分区模块都不存储数据,这些空的数据分区模块与其他服务器节点上存储有效数据分区保持动态链接。
图5示出了用户及数据库程序员所见的数据视图。虽然系统的整个结构如图3所示,但就用户以及数据库程序员的视角,他们所看到的系统包括数据库应用程序服务器以及数据库服务器,数据库服务器中包含存储分布式数据架构的信息的模块、存储非分布式数据的普通数据表的模块、代表分布式数据的虚拟表及其下属数据分区构架的模块。对于那些分布式数据,用户及数据库程序员只需按照操作普通表的方式对代表分布式数据的虚拟表提交操作指令,而不需对其下属的数据分区进行直接的操作,也不需要了解集群内的实际数据分布情况。
分布式数据库并行处理系统的构造方法
图6示出了本发明所述的带有可控冗余度的分布式数据库并行处理系统的构造方法。通过本实施例的这种构造方法,可以将一个普通的数据库系统(例如无数据分区的单机式数据库服务器)改造成使用本发明的具有可控冗余度的分布式数据库并行处理系统,下面对这种分布式数据库并行处理系统的构造方法进行详细的描述。
步骤S10:建立满型数据库服务器。
这个步骤具体由下面的步骤S100和步骤S102组成,请同时参见示出了由普通数据库服务器构造出满型数据库服务器的图7。
步骤S100:根据数据库的实际工作负载和数据内容,选定被频繁读写的数据表,将其分割成多个数据块,在这些数据块之上建立一个虚拟表。
步骤S102:通过添加trigger或利用现有数据库分区方式使得所有对数据块(即数据分区)的访问都通过这个虚拟表来进行,具体的读写操作经由虚拟表传递到底层的数据块上进行。
当一个数据库服务器上的完整数据按照上述的虚拟表和底层数据块模式分配完毕后,这个数据库服务器就变成一个满型数据库服务器。
步骤S12:在新服务器节点创建数据分区构架。
将步骤S10中建立的数据构架,包括非分布式数据表,代表分布式数据的虚拟表及其下属数据分区构架复制到新的数据库服务器节点上。此时所有的数据分区为空数据分区。
步骤S14:建立非满型数据库服务器。
这一步骤是由数据库管理员在数据库应用程序服务器上完成。数据库管理员需要估计系统设计要求或工作负载情况决定新的服务器节点在整个集群中所要担任的角色和负责分担的工作负载范围,由此而决定其需要存储和维护哪些有效数据分区。在这一过程完成后,即可开始向新的服务器节点进行数据同步复制。
步骤S15:向新的满型服务器节点或非满型服务器节点同步复制数据。
请具体参见图8所示的从工作节点向新服务器节点复制同步数据。其底层的数据分区可以由满型数据库服务器或者其他已经获得有效数据的非满型数据库服务器以快速数据备份方法实现同步。如果一个数据库服务器节点获得了全部的实时数据,就变成了一个满型数据库服务器。如果一个数据库服务器节点只获得了部分的实时数据,就变成了一个非满型数据库服务器,这种非满型数据库服务器只处理与其存贮的数据块相关的读写操作。
在图8中,满型数据库服务器正在向第一个非满型数据库服务器的1号数据分区模块进行数据同步,而第二个非满型数据库服务器的2号数据分区模块和3号数据分区模块已经完成了数据同步。
步骤S16:建立虚空型数据库服务器。
当数据库集群规模达到上百甚至上千台时,任何单一的服务器都没有足够快的处理器和足够多的软硬件资源来及时处理和维护一套完整的数据。在新服务器节点上建立数据分区构架后,数据库管理员可以选定一些新节点设为虚空型服务器节点。这种情况下,该节点上所有的分布式数据的分区都必须是空数据分区。在完成必要的数据同步和与其他服务器节点上的有效数据分区建立链接后(见步骤18),该虚空型数据库服务器节点即可投入使用。
步骤S18:为新的虚空型服务器节点同步复制数据并建立数据链接。
在新服务器节点上建立数据分区构架后,虚空型数据库服务器节点仍然需要从其他服务器节点复制除分布式数据以外的所有数据,并在每个数据分区模块上根据数据库集群中的分布式数据的分布情况建立链接,指向那些存有有效数据分区的数据库节点。
经过上述两个系统实施例的说明,本发明的分布式数据库并行处理系统的优点如下:
一、本发明解决了数据库集群的大规模扩展和提高集群处理性能的问题。
以往的数据库集群技术中,使用普通的分布式数据库会造成数据库集群可靠度随着服务器节点数目的增加而降低;普通的“主服务器→辅助服务器”异步复制技术会随着工作负载增加造成在主服务器上为更新辅助服务器节点而浪费更多的资源进而降低数据处理速度;使用并行处理技术和Two Phase Commit协议的同步复制技术又因为需要在每台服务器保持全部数据同步更新造成每个节点都会面临随着数据库规模增长而带来的写操作处理瓶颈。关于写操作瓶颈的讨论请见以下公式。公式1中普通数据库集群的性能加速比(Sp)由
Figure G2009101968432D00211
N:数据库集群节点数目
Lread:客户端递交的只读负载,这部分负载可以在N个节点间平均分配
Lwrite:客户端递交的写指令负载,这部分负载必须在N个节点上都同步执行以保证各节点上数据的一致。
当数据库集群的节点趋向无穷时,整个集群的理论最大加速比极限值为
lim N → ∞ Sp = L write + L read L write - - - Eq . 2
通常的商用数据库系统中,写操作在总工作负载中所占的比率Lwrite一般不低于10%,根据公式2可以看到,使用普通同步复制技术的数据库集群的最大加速比不会超过10,而且在数据库节点数目超过10之后,添加新的节点对整个集群性能的提高越来越微不足道。可见,不使用本发明的带有可控冗余构架的分布式并行数据库技术使得数据库集群都只能局限在个位数到数十个节点的小集群,无法扩展到成百上千台服务器。
本发明通过利用带有可控冗余度的分布式并行数据库构架,利用非满型数据库服务器和虚空型数据库服务器将分布在多个服务器节点上。增加新的节点会进一步提高整个数据库集群的可靠度以及数据处理能力,使得数据库集群向大规模扩展成为可能。这种新的“分布式并行数据库可控冗余构架”可达到的加速比由公式3给出。
Sp ( N , R , L read , L wnp ) = L wnp + L wp + L read L wnp ( L wp × R + L read ) / N - - - Eq . 3
Sp:性能加速比(speedup)
Lwnp:在集群内每个节点都必须执行的写操作负载
Lwp:只需在某个数据分区上执行的写操作负载
Lread:只读查询负载
R:数据分区的冗余度
N:数据库服务器节点数
当数据库集群的节点趋向无穷时,整个集群的理论最大加速比极限值为
lim N → ∞ Sp = L wnp + L wp + L read L wnp - - - Eq . 4
通过选择合理的数据分区,可以将Lwnp占整个负载的比例保持在很低的水平。举例说明:在一个拥有上百万储户的商业银行使用的数据库服务器上,可以按照账户号码来分区,不同的账户所对应的信息可以作为分布式数据而被分布在不同的数据分区乃至不同的服务器节点上,而对诸如存款利率、国际货币汇率、账户管理规则等很少变更且被频繁查询的数据表可以作为非分布式数据而在每个服务器节点上保持一套完整数据。对这些变更很少却频繁读取的数据表的零星写操作,即可归为Lwnp类别。可以想象,与每天以百万计的普通客户的交易信息写操作(属于Lwp类别),变更利率这样Lwnp类别的操作仅占全部负载的万分之一甚至更低,这就保证了使用“分布式并行数据库可控冗余构架”可以将数据库集群扩展至成千上万台的超大规模。
二、本发明解决了高数据库处理性能和高可靠度无法同时提高的矛盾
高可靠度:多个非满型数据库服务器可分担原来单台服务器的负载,并提供同步实时可靠度冗余备份,使得在某一节点出现故障时,只要所需有效数据分区还存在于其他节点上,整个数据库系统即可无间断地继续运行。在常用的“主服务器→辅助服务器”异步复制中,所有的辅助服务器仅能处理只读操作,其上返回的数据也并非主服务器上的最新数据,而且主服务器是系统的单点故障源,整个系统的可靠度不会超过主服务器的可靠度。分布式并行数据库可控冗余构架解决了这个可靠度的难题。因为非满型数据库服务器只负责对其所存储的数据提供相应的服务,在合理设计数据块分配方案后,每个非满型数据库服务器上的负载都只有原来单机服务器的一小部分。例如,由100台“非满型服务器”组成一个数据库集群,数据被分为100份。服务器1负责维护数据块1和数据块2,服务器2负责维护数据块2和数据块3,……,服务器99负责维护数据块99和数据块100,服务器100负责维护数据块100和数据块1。在这样的分布式并行数据库可控冗余构架下,任何一台服务器出现故障都不会影响整个数据库集群的正常工作。在最好的情况下,即使集群中一半的服务器停止工作(例如将所有的偶数号服务器停机进行硬件升级或系统维护),剩余的服务器仍然可以不间断地提供服务。
高数据处理性能:与普通的“主服务器→辅助服务器”异步复制不同的是:使用可控冗余构架的分布式并行数据库没有一个主服务器来集中处理写操作,所有的读操作和写操作都可以动态分配到多个服务器上处理,消除了“主服务器→辅助服务器”异步复制技术中的写操作瓶颈。例如,由100台非满型数据库服务器组成一个数据库集群,数据被分为100份。服务器1负责维护数据块1和数据块2,服务器2负责维护数据块2和数据块3,……,服务器99负责维护数据块99和数据块100,服务器100负责维护数据块100和数据块1。在这样的分布式并行数据库可控冗余构架下,每台服务器只需要处理原来单台服务器的2%的写操作负荷,以及原来单台服务器的1%的只读操作负荷(因为所有数据均为实时数据,对数据的查询操作只需要由任一存储该有效数据分区的服务器处理即可)。与使用Two PhaseCommit协议的普通同步复制技术相比,使用可控冗余构架的分布式并行数据库集群不需要在每台服务器上保留整套完整的数据,使得任何对数据库进行写操作的插入、删除和更新指令都不必在全部节点上都同步执行。这些写操作只需要在保存有相应有效数据分区的非满型数据库服务器上执行。整个系统的性能不再由某个主服务器限定,消除了数据库集群的数据处理速度瓶颈。
三、本发明解决了集群规模最优化的问题
随着数据库节点的增加,每个节点对整体数据库集群性能提升所带来的边际效应呈递减趋势。考虑到每个节点所需要的软硬件投资和日常维护成本,需要确定整个数据库集群的最优规模。考虑到不同负载的权重,这个问题可以通过公式5来获得。
Sp = Throughput Cluster Throughput Single _ server = W 1 × L wnp + W 2 × L wp + W 3 × L read W 1 × L wnp + [ W 2 × Σ i = 1 → n ( L i _ wp × R i ) + W 3 × L read ] / N - - - Eq . 5
Sp:性能加速比(speedup)
Lwnp:在集群内每个节点都必须执行的写操作负载
W1:在集群内每个节点都必须执行的写操作的平均负载权重
Lwp:只需在某个数据分区上执行的写操作负载
W2:只需在某个数据分区执行的写操作的平均负载权重
Lread:只读查询负载
W3:只读查询的平均负载权重
Li_wp:只需在数据分区i上执行的写操作负载
Ri:数据分区i的冗余度
N:数据库服务器节点数
n:数据分区数目
以上公式中,各数据分区数目(n)、各分区冗余度(Ri)、各种操作及负载权重(Lwnp,Lwp,Li_wp,Lread,W1,W2,W3)都可由用户决定或通过实验确定。只有性能扩展值Sp(speedup)和服务器节点数目(N)两个变量需要确定。这两个参数可以通过以上公式相互确定。即由选定的服务器节点数目(N)可推算性能扩展值Sp,也可以由系统设计中按需求选定的性能扩展值Sp推算所需要的服务器节点数目(N)。
四、本发明解决了数据库节点之间的相互依赖问题
以往的分布式数据库集群,整个数据库集群的节点及数据分布都要在数据库设计阶段固定下来(见图1)。在为客户提供服务时,往往需要多个节点参与提供数据信息,这就要求各服务器之间进行数据交换和通讯。这样的设计造成各节点间彼此严重依赖。当其中一个节点出现故障时,整个系统将无法正常为用户提供服务。
此外,在使用图1所示的数据库分布技术开发数据库应用程序时,数据库应用程序开发人员必须按照事先约定的数据块分布和其宿主节点的信息开发程序。例如,1号数据块分区存贮在服务器1,2号数据块分区存贮在服务器2,对这些数据块分区的查询和读写指令需要被定向到指定的服务器上进行。这使得数据库的编程和管理都非常复杂,当添加新的服务器节点或者将部分数据从一个节点转移到其他节点时,相应的数据库应用程序都必须随之改变。由于数据库应用程序的开发人员和数据库管理人员往往是不同的技术人员甚至是来自不同的专业程序供应商,使得更改数据库集群配置及迁移有效数据实体变得异常复杂和困难。即使能够承担更改程序以及更新数据块分布引发的昂贵的时间和经济成本,在添加节点和迁移数据的过程中整个数据库集群也必须中断正常服务,直至该过程结束。在当前以秒来计算数据访问密度的电子商务时代,几个小时的服务中断就意味着天文数字的业务损失和大量的客户的流失。
本发明使用的动态可控冗余构架,使得具体的数据块分布和其宿主节点间的关系被隐藏在动态可控冗余构架里,简化了数据库应用程序的开发,实现了数据分布的封装和信息隐藏。该构架可以根据用户指令或用户帐户中包含的信息,自动确定用户操作所对应的数据块及其宿主节点,实现了数据分布的封装和信息隐藏。数据库应用程序的开发人员可以按照单机服务器模式开发应用程序。在添加新服务器节点时,数据库集群可以无间断地提供服务,“分布式并行数据库可控冗余构架”可以在后台将新节点所需的数据复制过去。因为实现了数据分布的封装和信息隐藏,已有的数据库应用程序不必做任何改动就可以在添加了新节点的数据库集群上继续使用。在进行数据迁移时也同样不需要中止服务。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

Claims (8)

1.一种分布式数据库并行处理系统,通过动态可控冗余架构将数据库内的数据分布到由多个服务器节点组成的数据库集群中,该系统包括以下组成部分:
数据库应用程序服务器,掌握带有动态可控冗余度的分布式数据库集群的架构信息和数据分布情况,接收用户递交的对数据库的操作指令并按照操作的特征动态选定能够完成该操作的服务器节点来执行该操作指令;
多个服务器节点,该数据库应用程序服务器连接多个服务器节点,该些服务器节点用于存储实体数据并执行用户递交的对数据库的操作指令,该些服务器节点分为两类:
第一类服务器节点:非满型数据库服务器节点,每个非满型数据库服务器节点只存储指定的一部分分布式数据,各非满型数据库服务器节点彼此独立工作,不直接与其他非满型数据库服务器节点交换数据,该非满型数据库服务器节点内包含以下信息模块:
存储数据库集群中分布式数据架构信息的模块,该些分布式数据架构信息由该数据库应用程序服务器负责维护;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,分布式数据的实体数据存储于该些数据分区模块中,存有分布式数据的分区模块为有效数据分区模块,未存有分布式数据的分区为空分区模块,非满型数据库服务器节点所属的数据分区模块中至少有一个是空分区模块,所有对有效数据分区模块内数据的操作指令都由其上的虚拟表来接收并转发至各个存有实体数据的有效数据分区模块上执行;
第二类服务器节点:虚空型数据库服务器节点,虚空型服务器节点本身只保存非分布式数据,不存储任何实体的分布式数据,依赖其他存有分布式数据的服务器节点为其提供实体数据,每个虚空型数据库服务器节点将各个存有分布式数据的服务器节点动态链接起来为用户提供一份覆盖全部分布式数据的完整数据集合,该虚空型数据库服务器节点内包含以下信息模块:
存储数据库集群中分布式数据架构信息的模块;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,该虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,虚空型服务器节点上所有的数据分区模块均为空模块,不存储实体数据,其下每个数据分区模块与集群中其他存有有效数据的服务器节点的分区模块保持动态链接,当虚空型数据库服务器节点上的虚拟表接收到数据操作请求时,虚拟表通过该些动态链接从其他服务器节点获取数据并返回查询结果。
2.根据权利要求1所述的分布式数据库并行处理系统,其特征在于,该多个服务器节点还包括:
第三类服务器节点:满型数据库服务器节点,其上存储有全部非分布式数据和一份完整的分布式数据的数据集,单独提供用户所需的全部数据,满型数据库服务器节点内包括以下模块:
存储数据库集群中分布式数据架构信息的模块;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,该虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,各满型数据库服务器节点下的数据分区模块均为有效数据分区模块,每个满型服务器节点上的全部有效数据分区模块组成一套完整的分布式数据以保证该满型数据库服务器节点独立为用户提供完整的数据。
3.根据权利要求1所述的分布式数据库并行处理系统,其特征在于,该数据库应用程序服务器监控和管理每个服务器节点,把整个数据库集群的最新状态和最近变更记录作为分布式数据库集群架构的信息保存在每个服务器节点上,在收到用户操作时根据用户操作的特征将其发往对应的服务器节点的过程包括如下步骤:如果该用户操作是针对某一数据分区模块的只读操作,则选择任意一个包含对应有效数据分区模块的服务器节点来执行该只读操作;如果该用户操作是针对某一数据分区模块的写操作,则将该写操作发往所有存储对应有效数据分区模块的服务器节点来执行该写操作;如果该用户操作是针对非分布式数据的只读操作,则可选择任意一个服务器节点来执行该只读操作;如果该用户操作是针对非分布式数据的写操作,则将该写操作发往所有服务器节点来执行该写操作。
4.根据权利要求2所述的分布式数据库并行处理系统,其特征在于,集群内的虚空型数据库服务器节点动态链接数据库集群内的非满型数据库服务器节点和满型数据库服务器节点以组成一个覆盖全部分布式数据的星型网络结构,该星型网络结构将涉及大量数据操作的用户指令分割成多个并行执行的指令,分配到多个独立的服务器节点上同步运行。
5.根据权利要求2所述的分布式数据库并行处理系统,其特征在于,满型数据库服务器节点在数据库管理员需要缩减数据库集群规模或者将数据库集群合并至单台服务器时为用户提供安全的合并方案,或者为在数据库应用程序开发人员在单个服务器节点上开发针对整个数据库集群的应用程序时提供便利的调试环境。
6.一种分布式数据库并行处理系统,通过动态可控冗余架构将数据库内的数据分布到由多个服务器节点组成的数据库集群中,该系统包括以下组成部分:
数据库应用程序服务器,掌握带有动态可控冗余度的分布式数据库集群的架构信息和数据分布情况,接收用户递交的对数据库的操作指令并按照操作的特征动态选定能够完成该操作的服务器节点来执行该操作指令;
多个服务器节点,该数据库应用程序服务器连接多个服务器节点,该些服务器节点用于存储实体数据并执行用户递交的对数据库的操作指令,该些服务器节点分为两类:
第一类服务器节点:非满型数据库服务器节点,每个非满型数据库服务器节点只存储指定的一部分分布式数据,各非满型数据库服务器节点彼此独立工作,不直接与其他非满型数据库服务器节点交换数据,该非满型数据库服务器节点内包含以下信息模块:
存储数据库集群中分布式数据架构信息的模块,该些分布式数据架构信息由该数据库应用程序服务器负责维护;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,分布式数据的实体数据存储于该些数据分区模块中,存有分布式数据的分区模块为有效数据分区模块,未存有分布式数据的分区为空分区模块,非满型数据库服务器节点所属的数据分区模块中至少有一个是空分区模块,所有对有效数据分区模块内数据的操作指令都由其上的虚拟表来接收并转发至各个存有实体数据的有效数据分区模块上执行;
第二类服务器节点:满型数据库服务器节点,其上存储有全部非分布式数据和一份完整的分布式数据的数据集,单独提供用户所需的全部数据,满型数据库服务器节点内包括以下模块:
存储数据库集群中分布式数据架构信息的模块;
存储数据库集群中非分布式数据的普通数据表的模块;
存储数据库集群中代表分布式数据的虚拟表及其下属数据分区构架的模块,该虚拟表本身不存储数据,每个虚拟表下管理多个数据分区模块,各满型数据库服务器节点下的数据分区模块均为有效数据分区模块,每个满型服务器节点上的全部有效数据分区模块组成一套完整的分布式数据以保证该满型数据库服务器节点独立为用户提供完整的数据。
7.根据权利要求6所述的分布式数据库并行处理系统,其特征在于,该数据库应用程序服务器监控和管理每个服务器节点,把整个数据库集群的最新状态和最近变更记录作为分布式数据库集群架构的信息保存在每个服务器节点上,在收到用户操作时根据用户操作的特征将其发往对应的服务器节点的过程包括如下步骤:如果该用户操作是针对某一数据分区模块的只读操作,则选择任意一个包含对应有效数据分区模块的服务器节点来执行该只读操作;如果该用户操作是针对某一数据分区模块的写操作,则将该写操作发往所有存储对应有效数据分区模块的服务器节点来执行该写操作;如果该用户操作是针对非分布式数据的只读操作,则可选择任意一个服务器节点来执行该只读操作;如果该用户操作是针对非分布式数据的写操作,则将该写操作发往所有服务器节点来执行该写操作。
8.根据权利要求6所述的分布式数据库并行处理系统,其特征在于,满型数据库服务器节点在数据库管理员需要缩减数据库集群规模或者将数据库集群合并至单台服务器时为用户提供安全的合并方案,或者为在数据库应用程序开发人员在单个服务器节点上开发针对整个数据库集群的应用程序时提供便利的调试环境。
CN200910196843.2A 2009-09-29 2009-09-29 分布式数据库并行处理系统 Expired - Fee Related CN102033889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910196843.2A CN102033889B (zh) 2009-09-29 2009-09-29 分布式数据库并行处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910196843.2A CN102033889B (zh) 2009-09-29 2009-09-29 分布式数据库并行处理系统

Publications (2)

Publication Number Publication Date
CN102033889A CN102033889A (zh) 2011-04-27
CN102033889B true CN102033889B (zh) 2012-08-22

Family

ID=43886796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910196843.2A Expired - Fee Related CN102033889B (zh) 2009-09-29 2009-09-29 分布式数据库并行处理系统

Country Status (1)

Country Link
CN (1) CN102033889B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567805A (zh) * 2011-12-08 2012-07-11 江南大学 基于Windows移动平台的旅游服务系统及方法
WO2014015492A1 (zh) * 2012-07-26 2014-01-30 华为技术有限公司 数据分布的方法、装置及系统
CN103714073B (zh) * 2012-09-29 2017-04-12 国际商业机器公司 数据查询的方法和装置
CN102917068A (zh) * 2012-10-26 2013-02-06 浪潮(北京)电子信息产业有限公司 一种自适应大规模集群通信系统及其通信方法
US9449039B2 (en) 2012-11-26 2016-09-20 Amazon Technologies, Inc. Automatic repair of corrupted blocks in a database
CN102968503B (zh) * 2012-12-10 2015-10-07 曙光信息产业(北京)有限公司 数据库系统的数据处理方法以及数据库系统
CN103051686B (zh) * 2012-12-10 2018-03-27 北京普泽创智数据技术有限公司 一种分布式系统动态应用隔离的方法和系统
CN103873517B (zh) * 2012-12-14 2017-07-14 中兴通讯股份有限公司 一种数据同步的方法、装置和系统
US9753980B1 (en) 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
CN103198097B (zh) * 2013-03-11 2016-02-10 中国科学院计算机网络信息中心 一种基于分布式文件系统的海量地学数据并行处理方法
CN104283915A (zh) * 2013-07-05 2015-01-14 上海众恒信息产业股份有限公司 人员信息库的虚拟存储系统和方法
EP2833265A1 (en) * 2013-07-29 2015-02-04 Alcatel Lucent Data processing
CN103500120A (zh) * 2013-09-17 2014-01-08 北京思特奇信息技术股份有限公司 基于多线程异步双写的分布式缓存高可用处理方法及系统
CN104751257A (zh) * 2013-12-25 2015-07-01 携程计算机技术(上海)有限公司 酒店数据的管理系统
US10691723B2 (en) * 2016-05-04 2020-06-23 Huawei Technologies Co., Ltd. Distributed database systems and methods of distributing and accessing data
CN106357444A (zh) * 2016-09-18 2017-01-25 安徽爱她有果电子商务有限公司 一种计算机网络管理系统
CN106599061B (zh) * 2016-11-16 2020-06-30 成都九洲电子信息系统股份有限公司 基于SQLite的嵌入式数据库同步方法
CN108153614B (zh) * 2016-12-02 2021-08-20 中科星图股份有限公司 一种数据库的备份及恢复方法
CN107451201B (zh) * 2017-07-06 2020-12-04 联动优势科技有限公司 一种数据访问方法及设备
CN107783731B (zh) * 2017-08-07 2020-12-01 荣科科技股份有限公司 一种大数据实时处理方法及处理系统
CN107908476B (zh) * 2017-11-11 2020-06-23 许继集团有限公司 基于分布式集群的数据处理方法与装置
CN108363786A (zh) * 2018-02-12 2018-08-03 苏州朗动网络科技有限公司 加载数据的方法、装置、计算机设备和存储介质
CN109064345B (zh) * 2018-08-14 2023-09-05 中国平安人寿保险股份有限公司 消息处理方法、系统以及计算机可读存储介质
CN112215553B (zh) * 2020-10-22 2023-01-31 上海烟草集团有限责任公司 一种物流数据库分布式控制方法及系统
CN113901141B (zh) * 2021-10-11 2022-08-05 京信数据科技有限公司 一种分布式数据同步方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455347A (zh) * 2002-04-30 2003-11-12 电子科技大学 一种分布式并行调度宽带网络服务器系统
CN1992953A (zh) * 2005-12-30 2007-07-04 中兴通讯股份有限公司 一种分布式hlr内存数据库的实现方法
US7519785B1 (en) * 2004-07-26 2009-04-14 Symantec Operating Corporation Storage layout and data replication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1455347A (zh) * 2002-04-30 2003-11-12 电子科技大学 一种分布式并行调度宽带网络服务器系统
US7519785B1 (en) * 2004-07-26 2009-04-14 Symantec Operating Corporation Storage layout and data replication
CN1992953A (zh) * 2005-12-30 2007-07-04 中兴通讯股份有限公司 一种分布式hlr内存数据库的实现方法

Also Published As

Publication number Publication date
CN102033889A (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
CN102033889B (zh) 分布式数据库并行处理系统
USRE47106E1 (en) High-performance log-based processing
CN101350009B (zh) 一种协同文档编写系统
CN102880531B (zh) 数据库备份系统及其备份方法和从数据库服务器
US8224860B2 (en) Database management system
CN106953901A (zh) 一种提高消息传递性能的集群通信系统及其方法
CN101170416B (zh) 网络数据存储系统及其数据访问方法
CN103455557B (zh) 一种基于日志的结构化数据同步方法
CN113535656B (zh) 数据访问方法、装置、设备及存储介质
US20110196873A1 (en) System and Method for Replicating Objects In A Distributed Storage System
CN102227121A (zh) 基于机器学习的分布式缓存策略自适应切换方法及系统
CN106021016A (zh) 在快照之间的虚拟时间点访问
CN104735110B (zh) 元数据管理方法和系统
CN102265277A (zh) 数据存储系统的操作方法和装置
CN105426427A (zh) 基于raid 0 存储的mpp 数据库集群副本实现方法
CN102855239A (zh) 一种分布式地理文件系统
CN101577735A (zh) 一种接管故障元数据服务器的方法、装置及系统
CN103150304A (zh) 云数据库系统
CN113987064A (zh) 数据处理方法、系统及设备
EP2380090B1 (en) Data integrity in a database environment through background synchronization
CN110196856A (zh) 一种分布式数据读取方法及装置
CN102207937A (zh) 一种数据库访问方法和系统
CN106934048A (zh) 数据在线迁移方法、代理节点
CN102664914A (zh) 一种IS/DFS-Image分布式文件存储查询系统
CN110083306A (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
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: 20120822

Termination date: 20150929

EXPY Termination of patent right or utility model