一种基于库复制的分布式存储方法技术

技术编号:15520327 阅读:111 留言:0更新日期:2017-06-04 09:55
本发明专利技术涉及一种基于库复制的分布式存储方法,该方法将数据库切分为多个子库,通过计算各个存储服务器的存储代价,将每个子库冗余存储在多个存储服务器上,当一台存储服务器发生故障时,可以通过其他冗余的子库进行数据恢复,解决了数据高效自动修复的问题。

A distributed storage method based on Library replication

The invention relates to a method of distributed memory database replication based on this method, the database is divided into several sub databases, the storage cost calculation of each storage server, each sub database redundancy stored in a plurality of storage server, when a storage server fails, data can be restored by other redundant sub library to solve the data efficiently, automatically fix problems.

【技术实现步骤摘要】
一种基于库复制的分布式存储方法
本专利技术属于计算机和数据库领域,尤其涉及一种基于库复制的分布式存储方法。
技术介绍
现在,计算机在各个领域都得到了深入应用,各行各业都使用计算机来存储和处理各种数据,而数据库是计算机领域中最常见的数据存储设施,常常用来存储重要的数据。但是,众所周知,由于各种原因,数据库可能会出现故障,甚至完全被损毁,从而导致数据丢失;因而现在在设计重要的数据库系统时,通常都会考虑对数据库进行备份,以便在数据库丢失数据后,可以使用备份恢复数据库。现有技术中,一种常见的方法是在异地对原数据库进行完全备份,一旦原数据库损坏,则从完全备份中恢复到原数据库,这个方式的缺点是在恢复时,整个系统需要暂停运行,并且恢复速度很慢。另一种方法是使用多台服务器进行镜像备份,如果一台出现故障,则使用其他服务器进行恢复,但是,一般情况下,一台机器对外提供的数据吞吐量是有限的,如果采用这种机器镜像即几台机器上的数据完全一致的方式,修复大数据量的数据库时耗时也会很长,如果还需要同时考虑到提供正常服务,则修复的时间还会大大增加。对于现有技术的上述缺点,还没有一种完善的解决方案。
技术实现思路
为了解决现有技术中的上述问题,本专利技术提出了一种基于库复制的分布式存储方法。本专利技术采用的技术方案如下:一种基于库复制的分布式存储方法,其特征在于,该方法使用n台存储服务器存储数据库,包括以下步骤:(1)将数据库切分为多个子库;(2)设置冗余服务器的数量t;(3)在n台存储服务器中任取t台,组成一个服务器,共得到个服务器组,记这些服务器组为S1,S2,……,SK,由这些服务器组构成一个集合S={Si,1≤i≤K}。(4)计算每一台存储服务器当前的存储代价;(5)对于集合S中的每个服务器组,计算服务器组的存储代价,所述服务器组的存储代价是该服务器组中所有存储服务器的存储代价之和;(6)对集合S中的服务器组,按照服务器组的存储代价进行排序,将存储代价最小的服务器组作为一个选择组,并从集合S中删除;(7)重复步骤4-6,一直到获取了m个选择组;(8)每个选择组分别存储一个子库,即将选择组中的每一台存储服务器都存储相应子库的一个复制。进一步地,该方法还包括:(9)对于不在任何一个选择组中的存储服务器,使用该存储服务器存储所有的子库。进一步地,所述步骤(4)包括以下步骤:(4.1)设n台存储服务器为A1,A2,……,An;首先计算Ai(1≤i≤n)的数据代价Di,即Di=Ti/Li;其中,Ti是存储服务器Ai到接口服务器的传输延迟时间,Li是存储服务器Ai本身的数据吞吐率;(4.2)计算存储服务器Ai的存储代价Ci=FiDi,其中,Fi是Ai在已经获取的选择组中出现的次数。进一步地,所述子库的数量不少于3个。进一步地,所述存储服务器的数量n、子库的数量m和冗余服务器的数量t,满足n≥mt/2。进一步地,当有一台存储服务器丢失数据时,根据该存储服务器上所存储的子库,选择相应的存储服务器为其恢复数据。本专利技术的有益效果包括:保证了数据库系统的冗余度,提高了数据的安全性,解决了数据高效自动修复的问题。【附图说明】此处所说明的附图是用来提供对本专利技术的进一步理解,构成本申请的一部分,但并不构成对本专利技术的不当限定,在附图中:图1是本专利技术方法所应用的系统结构图。【具体实施方式】下面将结合附图以及具体实施例来详细说明本专利技术,其中的示意性实施例以及说明仅用来解释本专利技术,但并不作为对本专利技术的限定。参见附图1,其示出了本专利技术分布式存储方法所适用的系统结构,该系统包括多台存储服务器,用于分布式存储一个数据库。所有的存储服务器都通过网络互相连接,相互之间可以互相传输数据,同时各存储服务器接受接口服务器的管理和调度,并通过接口服务器向外部提供数据库服务。所述网络可以是一个内部的局域网,使用局域网的优点是相互之间传输数据快;但是,考虑到异地容灾,该网络也可以是广域网、互联网。基于上述结构,下面详细说明本专利技术的基于库复制的分布式存储方法:(1)将整个数据库切分成多个子库。具体的切分方式取决于数据库内所存储的数据,以及数据库的组织形式。例如,可以基于数据表进行切分,即将多个数据表构成一个子库;也可以根据存储的数据量进去切分,使得每个子库所存储的数据量基本相同。考虑到分布式存储,子库的数量可以根据具体情况所确定,但是一般不少于3个。(2)设置冗余服务器的数量t。所述冗余服务器的数量,指的是存储同一个子库的存储服务器的数量,假设共有n台存储服务器,则每一个子库都同时存储于其中的t台存储服务器中,这意味着即使其中有t-1台存储服务器故障,凭借剩余的1台存储服务器,该子库也能够得到恢复。为了保证冗余度,一般要求t≥3。另外,优选的,为了使得分布式存储的优势更好地发挥,数据分布平均,应当满足n≥mt/2,其中m是子库的数量。(3)在n台存储服务器中任取t台,组成一个服务器组,通过排列组合,一共可以得到个服务器组,记这些服务器组为S1,S2,……,SK,那么可以获得由这些服务器组所构成的一个集合S={Si,1≤i≤K}。例如,如果t=3,一共有5台存储服务器,则通过排列组合,服务器组一共有个,即|S|=10。这一步骤实际上给出了同一子库的t个冗余服务器的所有可能的组合。(4)计算每一台存储服务器当前的存储代价,具体的计算方法在后面说明。所述存储代价实际上是存储服务器存储数据子库所要耗费的代价,其反应了该存储服务器存储数据的效率。(5)对于集合S中的每个服务器组,计算服务器组的存储代价,所述服务器组的存储代价是该服务器组中所有存储服务器的存储代价之和。所述存储代价之和反映了一个子库要存储到该服务器所要花费的总的存储代价,通过该存储代价和,可以衡量不同服务器组的优劣。(6)对集合S中的服务器组,按照服务器组的存储代价进行排序,将存储代价最小的服务器组作为一个选择组,并从集合S中删除。(7)重复步骤4-6,一直到获取了m个选择组。通过步骤4-6,选出了一个相对最优解,即将m个子库在冗余度t下存储于n台存储服务器的相对最优解,通过这一相对最优解,整个数据库的分布式存储效率得到了保证。(8)每个选择组分别存储一个子库,即将选择组中的每一台存储服务器都存储相应子库的一个复制。m个选择组与m个子库一一对应,因此上述步骤实质上将m个子库分别存储在m个存储代价最小的服务器组中,并且每个子库都有t个冗余,即使其中的t-1台服务器故障,也能够继续提供服务,并在故障修复后提供恢复数据。一方面达到了分布式存储的目的,另一方面也达到了冗余备份的目的。(9)对于不在任何一个选择组中的存储服务器,使用该存储服务器存储所有的子库。可能由于某些存储服务器存储代价过大,或者由于存储服务器数量很大,导致有一些存储服务器没有在前面的步骤中被选择存储子库,为了不浪费其存储能力,本专利技术使用这些服务器存储所有的子库,作为进一步的分布式存储的备份。前述步骤(4)中,需要针对每一台存储服务器计算当前的存储代价,存储代价可以有多种计算方式,下面是依据本专利技术的一个实施例的计算方式,但是本领域技术人员可以采用任意一种可行的其他计算方式,本专利技术对此不作限制。(4.1)设n台存储服务器为A1,A2,……,An;首先计算Ai(1≤i本文档来自技高网...
一种基于库复制的分布式存储方法

【技术保护点】
一种基于库复制的分布式存储方法,其特征在于,该方法使用n台存储服务器存储数据库,包括以下步骤:(1)将数据库切分为多个子库;(2)设置冗余服务器的数量t;(3)在n台存储服务器中任取t台,组成一个服务器,共得到

【技术特征摘要】
1.一种基于库复制的分布式存储方法,其特征在于,该方法使用n台存储服务器存储数据库,包括以下步骤:(1)将数据库切分为多个子库;(2)设置冗余服务器的数量t;(3)在n台存储服务器中任取t台,组成一个服务器,共得到个服务器组,记这些服务器组为S1,S2,……,SK,由这些服务器组构成一个集合S={Si,1≤i≤K}。(4)计算每一台存储服务器当前的存储代价;(5)对于集合S中的每个服务器组,计算服务器组的存储代价,所述服务器组的存储代价是该服务器组中所有存储服务器的存储代价之和;(6)对集合S中的服务器组,按照服务器组的存储代价进行排序,将存储代价最小的服务器组作为一个选择组,并从集合S中删除;(7)重复步骤4-6,一直到获取了m个选择组;(8)每个选择组分别存储一个子库,即将选择组中的每一台存储服务器都存储相应子库的一个复制。2.根据权利要求1所述的基于库复制的分布式存储方法,其特征在于,该方法还包括:(9)对于不在任何一个选择组中的存储...

【专利技术属性】
技术研发人员:刘斌吴方才楚涌泉
申请(专利权)人:航天星图科技北京有限公司
类型:发明
国别省市:北京,11

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

1