一种数据更新方法和设备与流程

文档序号:11960224阅读:172来源:国知局
一种数据更新方法和设备与流程
本申请涉及通信
技术领域
,尤其涉及一种应用于分布式存储系统的数据更新方法和设备。
背景技术
:在分布式存储系统中,会将数据块存储多个副本,每次数据块的更新需要在多个副本之间达成一致。目前,在对多副本数据块进行数据更新时,数据更新过程由一个协调者控制。在主从副本系统中,数据更新的协调者为主副本服务器;在多个副本处于对等的系统中,协调者为数据更新客户端。更新过程为:协调者对每个数据块的更新进行定序并分配新版本,然后生成更新请求发向各副本服务器。更新请求消息包含两个部分:更新数据及控制信息。其中,控制信息部分由新版本与数据块的当前元数据构成,如数据块标识,数据块原版本,数据块新版本及其它副本服务器所需的元数据信息。各副本服务器对接收到的更新请求消息进行处理,然后回复协调者,协调者根据收到的副本服务器正常响应的个数,发出更新请求的个数及采用的数据一致性协议判定是否数据更新成功,若成功则将数据块的版本修改为新版本。由于在数据更新过程中,基于数据块的当前版本生成新版本,版本单调递增,而且发向副本服务器的更新请求只有一个最新的版本,否则副本服务器对收到多个新版本的更新请求的处理,会大大增加多副本数据更新一致性处理的复杂度,所以,在数据更新过程中,如果协调者收到多个对同一个数据块的更新请求消息,则需要放到等待队列中,只有等到数据块当前的更新完成后,才会发送下一个更新请求消息。为了实现数据块多副本更新的一致性,将对同一个数据块的数据更新进行定序,即为数据更新为串行执行。而数据更新的过程包含:网络传输,请求的逻辑处理,写磁盘IO几个部分;目前,磁盘部分通常可以采用固态盘,聚合写入的性能比较高,而在一次更新请求中携带多次数据更新的批处理方式,能够使一次请求处理多次数据更新,降低请求的逻辑处理延迟,所以数据更新的主要瓶颈在于网络传输开销,批处理聚合了多次数据更新,传输的数据量变大,传输等待延迟仍然较大。技术实现要素:本申请实施例提供了一种数据更新方法及设备,用以实现分布式存储系统中的数据更新。为此,本申请采用以下技术手段:本申请实施例提供了一种数据更新的方法,应用于包含有发送端和接收端的分布式存储系统中,包括:发送端获得更新请求消息,并获得所述更新请求消息中的数据和控制信息;发送端将所述数据通过数据更新请求消息发送给接收端,由所述接收端在更新数据关系表中建立所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;所述发送端将所述控制信息通过控制信息更新请求消息发送给所述接收端,由所述接收端根据所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识查找到所述更新数据列表,并由所述接收端根据所述控制信息更新请求消息以及查找到的更新数据进行数据更新。其中,所述发送端将所述控制信息通过控制信息更新请求消息发送给所述接收端之前,所述方法还包括:所述发送端将所述数据更新请求消息携带的更新数据列表标识保存到已发送列表,从所述已发送列表中获取所述数据更新请求消息携带的更新数据列表标识。其中,所述发送端将所述数据通过数据更新请求消息发送给接收端,进一步包括;所述数据包括多个子数据,所述发送端将所述多个子数据通过多个数据请求消息发送给接收端;所述更新数据列表标识是所述多个数据更新请求消息携带的所有更新数据列表标识。其中,所述发送端获得更新请求消息,并获得所述更新请求消息中的数据和控制信息,具体包括:所述更新请求消息中包含数据块标识,当发送端判断数据块标识所对应的更新请求消息数量达到设定的阈值时,获得所述更新请求消息中的数据和控制信息。本申请实施例提供了一种数据更新的方法,应用于包含有发送端和接收端的分布式存储系统中,包括:接收端接收来自发送端的数据更新请求消息;所述接收端在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;所述接收端接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息,从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据;所述接收端根据所述控制信息更新请求以及查找到的更新数据进行数据更新。其中,所述接收端根据所述控制信息更新请求消息以及查找到的更新数据进行数据更新,具体包括:所述接收端将所述控制信息更新请求以及查找到的更新数据还原为更新请求消息,根据所述更新请求消息进行数据更新。其中,所述接收端在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系之后,所述方法还包括:所述接收端为所述对应关系设置老化定时器,当所述老化表超时时,从所述更新数据关系表中删除所述对应关系;和/或所述接收端为所述对应关系设置老化定时器,当接收端在所述更新数据关系表占用的内存超过预设的内存占用阈值时,删除所述更新数据关系表中占用内存最大的对应关系,或者删除建立时间最久的对应关系。本申请实施例提供了一种发送端,应用于包含有发送端和接收端的分布式存储系统中,包括:获得模块,用于获得更新请求消息,并获得更新请求消息中的数据和控制信息;发送模块,用于将所述数据通过数据更新请求消息发送给接收端,由所述接收端在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;所述发送模块,还用于将所述控制信息通过控制信息更新请求消息发送给所述接收端,由所述接收端根据所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识查找到所述更新数据列表,并由所述接收端根据所述控制信息更新请求消息以及查找到的更新数据进行数据更新。其中,所述发送端进一步包括:保存模块,用于将所述数据更新请求消息携带的更新数据列表标识保存到已发送列表,并从所述已发送列表中获取所述数据更新请求消息携带的更新数据列表标识。其中,所述数据包括多个子数据;所述发送模块,还用于将所述多个子数据通过多个数据请求消息发送给接收端;所述更新数据列表标识是所述多个数据更新请求消息携带的所有更新数据列表标识。其中,所述更新请求消息中包含数据块标识,所述获得模块,具体用于:当发送端判断数据块标识所对应的更新请求消息数量达到设定的阈值时,获得所述更新请求消息中的数据和控制信息。本申请实施例提供了一种接收端,应用于包含有发送端和接收端的分布式存储系统中,包括:接收模块,用于接收来自发送端的数据更新请求消息;设置模块,用于在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;所述接收模块,还用于接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息;查找模块,用于从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据;更新模块,用于根据所述控制信息更新请求以及查找到的更新数据进行数据更新。其中,所述更新模块,具体用于:将所述控制信息更新请求以及查找到的更新数据还原为更新请求,根据所述更新请求进行数据更新。其中,所述设置模块,还用于:为所述对应关系设置老化定时器,当所述老化表超时时,从所述更新数据关系表中删除所述对应关系;和/或所述设置模块,还用于:为所述对应关系设置老化定时器,在所述更新数据关系表占用的内存超过预设的内存占用阈值时,删除所述更新数据关系表中占用内存最大的对应关系,或者删除建立时间最久的对应关系。与现有技术相比,本申请的上述实施例具有以下有益技术效果:本申请实施例中,发送端获得更新请求消息中的数据和控制信息后,通过数据更新请求消息和控制信息更新请求消息将数据和控制信息分别发送给接 收端,接收端接收来自发送端的数据更新请求消息,在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;接收端接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息,从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据;进而利用接收端进行数据更新的时间传输更新请求消息中的数据,大幅降低数据更新过程中数据传输的等待时间,从而降低数据更新延迟,提高系统性能。附图说明图1为本申请实施例提供的数据更新方法流程示意图;图2为本申请实施例提供另一种数据更新方法流程示意图;图3为本申请实施例提供的一种发送端的结构示意图;图4为本申请实施例提供的另一种发送端的结构示意图。具体实施方式下面结合附图对本申请的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。参见图1所示,为本申请实施例的数据更新方法流程图,包括以下步骤:步骤S101、发送端获得更新请求消息,并获得所述更新请求消息中的数据和控制信息;更新请求消息中包含数据块标识,当发送端判断数据块标识所对应的更新请求消息数量达到设定的阈值时,获得所述更新请求消息中的数据和控制信息。具体地,需要注意的是,数据和控制信息都来自相同的更新请求消息,即对应相同的数据块标识。更新请求中包含数据块标识,即要进行数据更新的数 据块的标识,发送端获得的所有更新请求消息都存储在等待队列中,当发送端判断数据块标识所对应的更新请求消息数量达到设定的阈值时,即数据块标识对应的数据块正在进行数据更新,而且,等待队列中对该数据块进行更新的更新请求数量已经达到阈值,则获得所述更新请求消息中的数据和控制信息。步骤S102、发送端将所述数据通过数据更新请求消息发送给接收端。所述数据包括:数据块标识、更新数据列表标识以及更新数据,其中,更新数据列表标识是发送端设置的用于唯一标识本次数据更新请求消息。发送端将数据更新请求消息携带的更新数据列表标识保存到已发送列表,从所述已发送列表中获取所述数据更新请求消息携带的更新数据列表标识。发送端在发送完数据更新请求消息后,将设置的更新数据列表标识保存到已发送列表,用于后续的发送控制信息请求消息时从已发送列表获得更新数据列表标识。数据可以包括多个子数据,所述发送端将所述多个子数据通过多个数据请求消息发送给接收端,所述更新数据列表标识是所述多个数据更新请求消息携带的所有更新数据列表标识;其中,发送端获得的数据可以包括多个子数据,每个子数据均包含相同的数据块标识和各自的更新数据,当多个子数据通过多个数据更新请求发送时,每个数据更新请求携带的更新数据列表标识和更新数据都不同,发送端在发送完数据更新请求消息后,将所有的更新数据列表标识都保存到已发送列表。例如:发送端发送的所述多个数据更新请求消息中携带数据块标识、更新数据列表标识和更新数据可以如下表所示(数据更新请求消息的编号只是为了陈述方便):表1数据更新请求消息数据块标识更新数据列表标识更新数据数据更新请求消息1数据块11.0更新数据1数据更新请求消息2数据块11.1更新数据2数据更新请求消息3数据块11.2更新数据3数据更新请求消息4数据块11.3更新数据4其中,由上表可知,发送端发送的第一条数据更新请求消息携带了数据块标识1、更新数据列表标识1.0、和更新数据1,第二条数据更新请求消息携带了数据块标识1、更新数据列表标识1.1、和更新数据2,第三条数据更新请求消息携带了数据块标识1、更新数据列表标识1.2、和更新数据3,第二条数据更新请求消息携带了数据块标识1、更新数据列表标识1.3、和更新数据4,其中,每条数据更新请求消息中携带的数据块标识都相同,而更新数据列列表标识和更新数据都不同,而所有数据更新请求消息中携带的更新数据列表标识都保存在已发送列表,即已发送列表中保存了更新数据列表标识1.0、1.1、1.2、1.3。步骤S103、所述发送端将所述控制信息通过控制信息更新请求消息发送给所述接收端。所述控制信息包括:数据块标识、更新数据列表标识以及新版本等信息。其中,更新数据列表标识从已发送列表中获得,如果已发送列表中是多个更新数据列表标识,就获得所述多个更新数据列表标识。例如,上面例子,已发送列表中保存的是更新数据列表标识1.0、1.1、1.2、1.3,发送端在控制信息请求消息中携带的更新数据列表标识就为更新数据列表标识1.0、1.1、1.2、1.3。例如,发送端发送的控制信息更新请求消息中携带数据块标识、更新数据列表标识如下表所示:表2控制信息更新请求消息数据块标识更新数据列表标识控制信息更新请求消息11.0、1.1、1.2、1.3需要提醒注意的是,发送端接收到数据块标识所对应的数据块完成数据更新的响应消息时,如果数据更新请求消息没有发送完,那么,可以继续将未发送完的数据更新请求消息发送给接收端,按照本申请的技术方案继续处理;也 可以按照现有技术的方案,将剩下的数据更新请求消息和控制信息更新请求消息合并还原为更新请求消息,发送给接收端。与现有技术相比,本申请的上述实施例具有以下有益技术效果:本申请实施例中,发送端获得更新请求消息,并获得所述更新请求消息中的数据和控制信息;发送端将所述数据通过数据更新请求消息发送给接收端,所述发送端将所述控制信息通过控制信息更新请求消息发送给所述接收端,通过数据更新请求消息和控制信息更新请求消息将数据和控制信息分别发送给接收端,利用接收端进行数据更新的时间传输更新请求消息中的数据,大幅降低数据更新过程中数据传输的等待时间,从而降低数据更新延迟,提高系统性能。参见图2所示,为本申请实施例的另一种数据更新方法流程图,包括以下步骤:S201、接收端接收来自发送端的数据更新请求消息。S202、所述接收端在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;具体地,数据更新请求消息中携带数据块标识、更新数据列表标识和更新数据,其中,更新数据列表标识为发送端在发送数据更新请求消息时设置的,用于唯一标识本次数据更新请求消息;如下面的更新数据关系表,记录了数据块标识、更新数据列表标识和更新数据的对应关系:表3数据块标识更新数据列表标识更新数据11.0更新数据111.1更新数据211.2更新数据311.3更新数据4由上表可知,接收端在更新数据关系表中设置了第一条数据更新请求消息携带了数据块标识1、更新数据列表标识1.0、和更新数据1的对应关系,设置了第二条数据更新请求消息携带了数据块标识1、更新数据列表标识1.1、和更新数据2的对应关系,设置了第三条数据更新请求消息携带了数据块标识1、更新数据列表标识1.2、和更新数据3的对应关系,设置了第二条数据更新请求消息携带了数据块标识1、更新数据列表标识1.3、和更新数据4的对应关系。优选地,接收端还可以在更新数据关系表中对设置的对应关系进行删除处理,以及时清理无效的更新数据。接收端在更新数据关系表中对设置的对应关系进行删除包括以下三种方式:方式一、接收端在设置数据块标识、更新数据列表标识和更新数据的对应关系时,为该对应关系设置老化定时器,当所述老化表超时时,从所述更新数据关系表中删除所述对应关系。方式二、接收端在设置数据块标识、更新数据列表标识和更新数据的对应关系时,为该对应关系设置老化定时器,当接收端在所述更新数据关系表占用的内存超过预设的内存占用阈值时,删除所述更新数据关系表中占用内存最大的对应关系,或者删除建立时间最久的对应关系。方式三、接收端在设置数据块标识、更新数据列表标识和更新数据的对应关系时,为该对应关系设置老化定时器,当所述老化表超时时,从所述更新数据关系表中删除所述对应关系,和当接收端在所述更新数据关系表占用的内存超过预设的内存占用阈值时,删除所述更新数据关系表中占用内存最大的对应关系,或者删除建立时间最久的对应关系。S203、接收端接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息,从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据。控制信息通过控制信息更新请求消息发送给接收端,数据更新请求消息对应的控制信息更新请求消息即与数据更新请求消息中的数据来自同一个更新请求消息的控制信息对应的控制信息更新请求消息,其中控制信息更新请求消息中携带的数据块标识即为数据更新请求消息中携带的数据块标识,更新数据列表标识为数据更新请求消息中携带的更新数据列表标识,发送端在发送数据更新请求消息后,将设置的数据更新列表标识保存到已发送列表,在发送控制信息更新请求消息时,从已发送列表获得数据更新列表标识。例如,控制信息更新请求携带的更新数据列表标识1.0、1.1、1.2、1.3,数据块标识1,则接收端根据更新数据列表标识和数据块标识查找到的更新数据为更新数据1、更新数据2、更新数据3、更新数据4。需要注意的是,一条控制信息更新请求消息可能会对应多个数据更新请求消息,一个控制信息更新请求消息中可以包含多个更新数据列表标识,因此,根据一个控制信息更新请求消息中的数据块标识和更新数据列表标识,会查找到多个更新数据。S104、所述接收端根据所述控制信息更新请求以及查找到的更新数据进行数据更新。所述接收端将所述控制信息更新请求以及查找到的更新数据还原为更新请求消息,根据所述更新请求消息进行数据更新。优选地,接收端进行完数据更新后,对发送端进行响应。与现有技术相比,本申请的上述实施例具有以下有益技术效果:本申请实施例中,接收端接收来自发送端的数据更新请求消息;所述接收端在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;所述接收端接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息,从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据;所述接收端根据所述控制信息更新请求以及查找到的更新数据进 行数据更新,利用接收端进行数据更新的时间传输更新请求消息中的数据,大幅降低数据更新过程中数据传输的等待时间,从而降低数据更新延迟,提高系统性能。本申请实施例还提供一种发送端,参见图3所示,为本申请实施例提供的发送端的结构示意图,该发送端应用于分布式存储系统,包括:获得模块31,用于获得更新请求消息,并获得更新请求消息中的数据和控制信息。所述更新请求消息中包含数据块标识,所述获得模块,具体用于:当发送端判断数据块标识所对应的更新请求消息数量达到设定的阈值时,获得所述更新请求消息中的数据和控制信息。发送模块32,用于将所述数据通过数据更新请求消息发送给接收端。发送模块32,还用于将所述控制信息通过控制信息更新请求消息发送给所述接收端。保存模块33,用于将所述数据更新请求消息携带的更新数据列表标识保存到已发送列表,并从所述已发送列表中获取所述数据更新请求消息携带的更新数据列表标识。本申请实施例中,发送端获得更新请求消息,并获得所述更新请求消息中的数据和控制信息;发送端将所述数据通过数据更新请求消息发送给接收端,所述发送端将所述控制信息通过控制信息更新请求消息发送给所述接收端,通过数据更新请求消息和控制信息更新请求消息将数据和控制信息分别发送给接收端,利用接收端进行数据更新的时间传输更新请求消息中的数据,大幅降低数据更新过程中数据传输的等待时间,从而降低数据更新延迟,提高系统性能。本申请实施例还提供一种接收端,参见图4所示,为本申请实施例提供的接收端的结构示意图,该发送端应用于分布式存储系统,包括:接收模块41,用于接收来自发送端的数据更新请求消息。设置模块42,用于在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系。所述设置模块42还可以在更新数据关系表中对设置的对应关系进行删除处理,以及时清理无效的更新数据。所述设置模块在更新数据关系表中对设置的对应关系进行删除包括以下三种方式:方式一:所述设置模块42在设置数据块标识、更新数据列表标识和更新数据的对应关系时,为所述对应关系设置老化定时器,当所述老化表超时时,从所述更新数据关系表中删除所述对应关系。方式二:所述设置模块42在设置数据块标识、更新数据列表标识和更新数据的对应关系时,为所述对应关系设置老化定时器,在所述更新数据关系表占用的内存超过预设的内存占用阈值时,删除所述更新数据关系表中占用内存最大的对应关系,或者删除建立时间最久的对应关系。方式三:所述设置模块42在设置数据块标识、更新数据列表标识和更新数据的对应关系时,为该对应关系设置老化定时器,当所述老化表超时时,从所述更新数据关系表中删除所述对应关系,和当接收端在所述更新数据关系表占用的内存超过预设的内存占用阈值时,删除所述更新数据关系表中占用内存最大的对应关系,或者删除建立时间最久的对应关系。所述接收模块41,还用于接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息。查找模块43,用于从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据。更新模块44,用于根据所述控制信息更新请求以及查找到的更新数据进行数据更新。所述更新模块44,具体用于:将所述控制信息更新请求以及查找到的更新数据还原为更新请求,根据所述更新请求进行数据更新。与现有技术相比,本申请的上述实施例具有以下有益技术效果:本申请实施例中,接收端接收来自发送端的数据更新请求消息;所述接收端在更新数据关系表中设置所述数据更新请求消息携带的数据块标识、更新数据列表标识和更新数据的对应关系;所述接收端接收来自所述发送端的所述数据更新请求消息对应的控制信息更新请求消息,从所述更新数据关系表中查找到所述控制信息更新请求消息中携带的数据块标识和更新数据列表标识对应的更新数据;所述接收端根据所述控制信息更新请求以及查找到的更新数据进行数据更新,利用接收端进行数据更新的时间传输更新请求消息中的数据,大幅降低数据更新过程中数据传输的等待时间,从而降低数据更新延迟,提高系统性能。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解,实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。以上所述仅是本申请的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视本申请的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1