一种具有容错性的数据操作方法及分布式的数据存储系统与流程

文档序号:12010101阅读:590来源:国知局
一种具有容错性的数据操作方法及分布式的数据存储系统与流程
一种具有容错性的数据操作方法及分布式的数据存储系统【技术领域】本发明涉及数据处理技术,特别涉及一种具有容错性的数据操作方法及分布式的数据存储系统。

背景技术:
分布式的数据存储系统使得数据存储空间可以无限扩大,在与互联网相关的应用中起着非常重要的作用。请参考图1,图1为现有技术中分布式的数据存储系统的一个示意图。如图1所示,分布式数据存储系统A包括大量的数据存储服务器,分别是X1、X2……Xn,这些数据存储服务器上保存着各种各样的数据,例如X1中存放着数据表Y1,X2中存放着数据表X2等等。此外,系统A还包括一个元信息服务器B,在服务器B中保存着数据元信息,数据元信息中记录了数据在系统中具体的存储位置,例如记录了数据表Y1存放在X1,数据表Y2存放在X2等等。下面以用户发起的数据操作请求为建立数据表Y3为例,对现有技术的数据处理过程进行介绍。元数据服务器B在获取到用户建立数据表Y3的请求后,假设确定X3为存放数据表Y3的数据存储服务器,则元数据服务器B首先在X3上创建Y3,并且对自身存储的数据元信息进行更新,以增加“数据表X3存放在Y3上”的记录。由此可见,元数据服务器对分布式的数据存储系统而言非常重要,其中保存的数据元信息,是响应用户请求,实现对数据进行读取或删改操作的基础。在现有技术中,如果元数据服务器发送故障,则存在数据元信息丢失的风险。

技术实现要素:
本发明所要解决的技术问题是提供一种具有容错性的数据操作方法及分布式的数据存储系统,以提高在分布式的数据存储系统中机器发生故障时系统的稳定性。本发明为解决技术问题而采用的技术方案是提供一种具有容错性的数据操作方法,其特征在于,所述方法应用于分布式的数据存储系统,所述数据存储系统包括至少三台元信息服务器及一台选主服务器,所述方法包括由所述选主服务器在所述至少三台元信息服务器中确定主服务器和从服务器的步骤以及由所述主服务器和所述从服务器共同根据用户的数据操作请求进行数据操作的步骤,其中由所述选主服务器在所述三台元信息服务器中确定主服务器和从服务器的步骤包括:A1.所述至少三台元信息服务器通过心跳协议定期与所述选主服务器进行通讯,且每次通讯中各台元信息服务器向所述选主服务器发送自身标识值;A2.所述选主服务器为自身标识值最大的元信息服务器提供第一设定时长的授权,以使得在所述第一设定时长内自身标识值最大的元信息服务器成为主服务器,其余元信息服务器成为从服务器;A3.在所述第一设定时长到期前,所述主服务器向所述选主服务器请求延期,且当所述选主服务器收到延期请求后,为所述主服务器提供第二设定时长的授权,以使得所述主服务器在所述第二设定时长内继续有效;A4.如果所述选主服务器在所述第一设定时长到期后未收到所述主服务器的延期请求,则返回所述A2;由所述主服务器和所述从服务器共同根据用户的数据操作请求进行数据操作的步骤包括:B1.所述主服务器获取用户的数据操作请求,并将所述请求发送至所述从服务器;B2.所述从服务器在收到所述请求后,将自身标识值增加一个单位,并向所述主服务器发送应答;B3.所述主服务器收到至少一个从服务器的应答后,执行所述请求对应的数据操作,并更新自身保存的与所述数据操作相关的元信息,以及,在将自身标识值增加一个单位后向所述从服务器发送同步元信息的通知;B4.所述从服务器收到所述通知后,将自身保存的元信息同步为所述主服务器更新后的元信息,以及,在将自身标识值增加一个单位后向所述主服务器发送应答;B5.所述主服务器在收到至少一个从服务器的应答后,将自身标识值增加一个单位,并向用户返回操作成功的应答。根据本发明之一优选实施例,所述数据操作包括写入数据、读取数据、删除数据或查找数据。根据本发明之一优选实施例,在所述A3后,如果所述主服务器未收到所述第二设定时长的授权,则将自身切换为从服务器。根据本发明之一优选实施例,当所述主服务器在所述B1至所述B5的执行过程中发生故障时,所述方法进一步包括:由所述选主服务器在未发生故障的元信息服务器中重新确立主服务器和从服务器,且重新确立的主服务器和从服务器再次执行所述B1至所述B5。本发明还提供了一种分布式的数据存储系统,其特征在于,所述数据存储系统包括至少三台元信息服务器及一台选主服务器,所述选主服务器用于在所述至少三台元信息服务器中确定主服务器和从服务器,所述主服务器和所述从服务器用于共同根据用户的数据操作请求进行数据操作,其中所述选主服务器在所述至少三台元信息服务器中确定主服务器和从服务器的方式包括:C1.所述三台元信息服务器通过心跳协议定期与所述选主服务器进行通讯,且每次通讯中各台元信息服务器向所述选主服务器发送自身标识值;C2.所述选主服务器为自身标识值最大的元信息服务器提供第一设定时长的授权,以使得在所述第一设定时长内自身标识值最大的元信息服务器成为主服务器,其余元信息服务器成为从服务器;C3.在所述第一设定时长到期前,所述主服务器向所述选主服务器请求延期,且当所述选主服务器收到延期请求后,为所述主服务器提供第二设定时长的授权,以使得所述主服务器在所述第二设定时长内继续有效;C4.如果所述选主服务器在所述第一设定时长到期后未收到所述主服务器的延期请求,则返回C2;所述主服务器和所述从服务器共同根据用户的数据操作请求进行数据操作的方式包括:D1.所述主服务器获取用户的数据操作请求,并将所述请求发送至所述从服务器;D2.所述从服务器在收到所述请求后,将自身标识值增加一个单位,并向所述主服务器发送应答;D3.所述主服务器收到至少一个从服务器的应答后,执行所述请求对应的数据操作,并更新自身保存的与所述数据操作相关的元信息,以及,在将自身标识值增加一个单位后向所述从服务器发送同步元信息的通知;D4.所述从服务器收到所述通知后,将自身保存的元信息同步为所述主服务器更新后的元信息,以及,在将自身标识值增加一个单位后向所述主服务器发送应答;D5.所述主服务器在收到至少一个从服务器的应答后,将自身标识值增加一个单位,并向用户返回操作成功的应答。根据本发明之一优选实施例,所述数据操作包括写入数据、读取数据、删除数据或查找数据。根据本发明之一优选实施例,在所述C3后,如果所述主服务器未收到所述第二设定时长的授权,则将自身切换为从服务器。根据本发明之一优选实施例,当所述主服务器在所述D1至所述D5的执行过程中发生故障时,所述选主服务器进一步用于在未发生故障的元信息服务器中重新确立主服务器和从服务器,且重新确立的主服务器和从服务器进一步用于再次执行所述D1至所述D5。由以上技术方案可以看出,本发明中通过选主服务器在若干台元信息服务器中确定主服务器和从服务器的机制,可以保证主服务器在发生故障时,系统仍然能够运行,此外,主服务器和从服务器之间的数据交互方式,能够保证至少有两台元数据服务器上的元数据信息的完整性,从而大大提高了分布式数据存储系统的稳定性。【附图说明】图1为现有技术中分布式的数据存储系统的一个示意图;图2为本发明中具有容错性的数据操作方法的流程示意图;图3为本发明中分布式的数据存储系统的结构示意框图。【具体实施方式】为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。请参考图2,图2为本发明中具有容错性的数据操作方法的流程示意图,该方法应用于分布式的数据存储系统。如图1所示,该方法包括两大步骤,分别是由选主服务器在至少三台元信息服务器中确立主服务器和从服务器的步骤,以及由主服务器和从服务器共同根据用户的数据操作请求进行数据操作的步骤。其中由选主服务器在至少三台元信息服务器中确立主服务器和从服务器的步骤具体包括:步骤S1:所述至少三台元信息服务器通过心跳协议定期与选主服务器进行通讯,且每次通讯中各台元信息服务器向选主服务器发送自身标识值。步骤S2:选主服务器为自身标识值最大的元信息服务器提供第一设定时长的授权,以使得在第一设定时长内自身标识值最大的元信息服务器成为主服务器,其余元信息服务器成为从服务器。步骤S3:在第一设定时长到期前,主服务器向选主服务器请求延期,且当选主服务器收到延期请求后,为主服务器提供第二设定时长的授权,以使得主服务器在第二设定时长内继续有效。步骤S4:如果选主服务器在第一设定时长到期后未收到选主服务器的延期请求,则返回步骤S2。其中,心跳协议用于机器节点之间连续交换信息,以确保连接的机器节点可以感知对方的正常运行。步骤S1中,元信息服务器通过心跳协议,可以定期向选主服务器发送数据包,在每次发送的数据包中包含了一个与自身相关的标识值。该标识值的大小表示的是对应元信息服务器中维护的数据元信息的新旧程度,每台元信息服务器相关的标识值,初始值是相同的,例如可以设定为0,标识值如何发生改变,将在后续介绍主服务器和从服务器共同根据用户的数据操作请求进行数据操作的步骤中进行说明。在步骤S2中,选主服务器将在多台元信息服务器中确定一台主服务器,其余的元信息服务器将作为从服务器。在后续介绍主服务器和从服务器共同根据用户的数据操作请求进行数据操作的步骤中还可以看出,主服务器将用于直接与用户请求进行交互,而从服务器与主服务器之间将进行相互交互,以保证分布式数据存储系统的稳定性。在步骤S2中,选主服务器是根据各台元信息服务器发送的自身标识值决定选取哪台元信息服务器作为主服务器的,其中自身标识值最大的元信息服务器将作为主服务器。作为一种实施方式,如果各台元信息服务器自身的标识值相同,例如初始时均为0,则可以从这若干台元信息服务器中任意选取一台作为主服务器。在确立了主服务器之后,其他的元信息服务器就成为了从服务器,也就是说,在本方法适用的分布式数据存储系统中,主服务器是唯一的,而从服务器的数量在两台以上。步骤S2中,选主服务器在确定了主服务器后,还会生成一个在第一设定时长内有效的授权(作为一种实施方式,第一设定时长可以是一个随机的长度),并且将该授权提供给主服务器,这样,在第一设定时长内,这台元信息服务器作为主服务器都是有效的。在步骤S3中,如果主服务器处于正常工作的状态,就会在第一设定时长到期前,向选主服务器发送延期的请求,选主服务器收到延期请求后,与第一次提供授权时类似的,可以随机产生一个长度作为第二设定时长,生成在该时长内有效的授权再次提供给主服务器,使得主服务器能够继续作为主服务器运行。如果主服务器发生了故障,则在第一设定时长到期后,由于不能发送延期申请,则选主服务器就不能收到延期请求,在步骤S4中,选主服务器将返回到步骤S2,也就是再次在所有正常工作的元信息服务器中,根据各台元信息服务器自身的标识符确定其中的一台作为主服务器。在步骤S2执行后,由于主服务器和从服务器已经确定,因此,本发明中由主服务器和从服务器共同根据用户的数据操作请求进行数据操作的步骤就能够执行,也就是说,在本发明的方法初始执行时,当主服务器一旦确定,本发明方法应用的分布式数据存储系统,就具备了响应用户数据操作的能力。具体地,由主服务器和从服务器共同根据用户的数据操作请求进行数据操作的步骤包括:步骤Sa:主服务器获取用户的数据操作请求,并将该请求发送至从服务器。步骤Sb:从服务器在收到上述请求后,将自身标识值增加一个单位,并向主服务器发送应答。步骤Sc:主服务器收到至少一个从服务器的应答后,执行上述请求对应的数据操作,并更新自身保持的与上述数据操作相关的元信息,以及,在将自身标识值增加一个单位后向从服务器发送同步元信息的通知。步骤Sd:从服务器收到上述通知后,将自身保持的元信息同步为主服务器更新后的元信息,以及,在将自身标识值增加一个单位后向主服务器发送应答。步骤Se:主服务器在收到至少一个从服务器的应答后,将自身标识值增加一个单位,并向用户返回操作成功的应答。在上述说明中,用户的数据操作包括多种类型,例如写入数据、读取数据、删除数据或查找数据。下面以写入数据为例对上述步骤进行说明。假设用户发送的请求为建立数据表Y,在步骤Sa中,主服务器在接收到用户的该请求后,首先将该请求发送给从服务器。步骤Sb中,从服务器此时如果在正常运行,则首先将自身标识值增加一个单位,再向主服务器发送应答。步骤Sc中,主服务器需要收到至少一台从服务器的应答,才能进行后续操作,因为如果主服务器没有收到任何一台从服务器的应答,则说明从服务器均发生了故障,作为一种实施方式,这种情况下,主服务器可以向分布式存储系统的管理人员发出警示。如果主服务器收到了至少一台从服务器的应答,则在步骤Sc中,主服务器首先执行用户请求对应的数据操作。例如用户请求建立数据表Y,则主服务器在分布式数据存储系统的一台数据存储服务器X上建立数据表Y。与本次建立数据表Y相关的元信息也会随之被主服务器更新,也就是说,主服务器需要在原来保存的元信息中添加一条“数据表Y存放在数据存储服务器X上”的记录。主服务器在执行完上述动作以后,会将自身标识值也增加一个单位,然后向从服务器发送同步元信息的通知。步骤Sd中,从服务器在收到主服务器发送的通知后,也会将自身保存的元信息同步为与主服务器更新后一致的元信息,例如在自身保存的元信息中添加“数据表Y存放在数据存储服务器X上”的记录。此后,从服务器也会将自身标识值增加一个单位,再向主服务器发送应答。步骤Se中,主服务器在收到至少一个从服务器的应答后,也将自身标识值增加一个单位,并向用户返回操作成功的应答。如果主服务器一个从服务器的应答都没有收到,则说明从服务器均发生了故障,作为一种实施方式,主服务器可以向分布式存储系统的管理人员发出警示。由上述说明可以看出,本发明的方法中,想要正常响应用户的数据操作,需要至少两台元信息服务器正常工作,即一台主服务器和至少一台从服务器。并且只有在主服务器和至少一台从服务器中的元信息一致更新时,才会向用户的请求返回操作成功的应答。这样,本发明的数据操作方法,能够保证数据元信息至少在系统中存在一个正确的备份,如果主服务器发生故障,保存了正确的元信息备份的从服务器可以被选主服务器选为新的主服务器,从而向用户提供服务。从步骤Sa至Se的介绍中也可以看出,元信息服务器维护的自身标识值,可以起到标识自身保存的元信息的新旧程度的作用,自身标识值越大,则说明自身保存的元信息越新。假设有从服务器W1和W2,在步骤Sd中,W1和W2在分别同步自身保存的元信息的过程中,W1同步完成,而W2未同步完成时,主服务器发生了故障,这样,W2的元信息就是不完整的,同时它自身的标识值也会比W1自身的标识值小,这样,选主服务器再次选择主服务器时,就会将W1作为主服务器,这种机制大大增加了系统的稳定性。值得注意的是,在前面的介绍中,将标识值增加一个单位,可以是加1,也可以是加2,也就是说,一个单位的绝对数值并不受限定,但是如果一个单位的绝对值为2,则在每次将标识值增加一个单位时,均必须增加绝对值2。以上,对本发明中应用于分布式的数据存储系统的数据操作方法进行了完整介绍。作为其他实施例,在选主服务器确定主服务器和从服务器时,在步骤S3后,如果主服务器未收到第二设定时长的授权,还可以将自身切换为从服务器。因为选主服务器也存在发生故障的可能,主服务器将自身切换为从服务器,则选主服务器恢复后可以依据前面介绍的方式,在各台元信息服务器中重新选定主服务器。作为其他实施例,如果主服务器在执行步骤Sa至Se的过程中发生了故障,则本发明的方法进一步包括:由选主服务器在未发生故障的元信息服务器中重新确立主服务器和从服务器,且重新确立的主服务器和从服务器再次执行步骤Sa至Se。主服务器在执行步骤Sa至Se的过程中发生了故障,就不能对用户的请求正确返回应答,此时选主服务器会依据前面所说的方式,在未发生故障的元信息服务器,即之前的从服务器中重新确立一个主服务器和其它的从服务器。被重新确立的主服务器和从服务器通过再次执行Sa至Se,就能够为用户返回正确的应答。上述过程对用户屏蔽了系统故障,用户并不知道有服务器发生了故障,不需要再次向系统发送请求就能够得到正确的返回,极大增强了系统的稳定性。请参考图3,图3是本发明中分布式的数据存储系统的结构示意框图。如图3所示,该系统包括至少三台元信息服务器和一台选主服务器。其中选主服务器用于在上述至少三台元信息服务器中确定主服务器和从服务器。而主服务器和从服务器用于共同根据用户的数据操作请求进行数据操作。其中,选主服务器在所述至少三台元信息服务器中确定主服务器和从服务器的方式包括:G1.所述三台元信息服务器通过心跳协议定期与选主服务器进行通讯,且每次通讯中各台元信息服务器向选主服务器发送自身标识值。G2.选主服务器为自身标识值最大的元信息服务器提供第一设定时长的授权,以使得在第一设定时长内自身标识值最大的元信息服务器成为主服务器,其余元信息服务器成为从服务器。G3.在第一设定时长到期前,主服务器向选主服务器请求延期,且当选主服务器收到延期请求后,为主服务器提供第二设定时长的授权,以使得主服务器在第二设定时长内继续有效。G4.如果选主服务器在第一设定时长到期后未收到主服务器的延期请求,则返回G2。其中,主服务器和从服务器共同根据用户的数据操作请求进行数据操作的方式包括:Ga.主服务器获取用户的数据操作请求,并将该请求发送至从服务器。Gb.从服务器在收到所述请求后,将自身标识值增加一个单位,并向主服务器发送应答。Gc.主服务器收到至少一个从服务器的应答后,执行上述请求对应的数据操作,并更新自身保存的与该数据操作相关的元信息,以及,在将自身标识值增加一个单位后向从服务器发送同步元信息的通知。Gd.从服务器收到所述通知后,将自身保存的元信息同步为主服务器更新后的元信息,以及,在将自身标识值增加一个单位后向主服务器发送应答。Ge.主服务器在收到至少一个从服务器的应答后,将自身标识值增加一个单位,并向用户返回操作成功的应答。根据一个实施例,上述介绍中提到的数据操作,包括写入数据、读取数据、删除数据或查找数据。根据一个实施例,选主服务器在所述至少三台元信息服务器中确定主服务器和从服务器的方式中,在G3执行后,如果主服务器未收到所述第二设定时长的授权,则将自身切换为从服务器。根据一个实施例,当主服务器在Ga至Ge的执行过程中发生故障时,选主服务器进一步用于在未发生故障的元信息服务器中重新确立主服务器和从服务器,且重新确立的主服务器和从服务器进一步用于再次执行Ga至所述Ge。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1