一种数据写入方法、系统及电子设备和存储介质与流程

文档序号:18081782发布日期:2019-07-06 10:08阅读:118来源:国知局
一种数据写入方法、系统及电子设备和存储介质与流程

本申请涉及分布式存储技术领域,更具体地说,涉及一种数据写入方法、系统及一种电子设备和一种计算机可读存储介质。



背景技术:

随着云计算技术的快速发展,业界对于分布式存储的性能和可靠性要求越来越高。当前系统中底层每个对象记录一个版本号,对象有更新时版本号进行更新。当有节点成员退出时,pg(placementgroup,归置组)处于降级状态,此时在数据修改时只有pg的在线节点成员上的对象版本号进行了更新,暂时下线的节点成员的对象版本号不会更新,此时产生了降级对象。

当下线节点成员重新上线后,若降级对象此时需要修改,发现部分成员的版本号低于其他成员的版本号,此时需要先将降级成员的整个对象的数据和版本号都同步为最新的。然而,若降级过程中,若对象中仅仅修改了少量数据,同步过程也需要同步整个对象,极大的浪费了系统io资源以及带宽资源,并且增加了前段io延时。

因此,如何解决上述问题是本领域技术人员需要重点关注的。



技术实现要素:

本申请的目的在于提供一种数据写入方法、系统及一种电子设备和一种计算机可读存储介质,有效减少了数据同步导致的系统io资源及带宽资源的浪费。

为实现上述目的,本申请提供了一种数据写入方法,包括:

当接收到数据修改请求后,确定所述数据修改请求对应的目标修改条带和目标修改对象,并判断所述目标对象的状态;

若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;

对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;

根据所述数据修改请求将对应的数据写入所述目标修改条带。

其中,所述确定所述数据修改请求对应的目标修改条带,包括:

利用offset函数和length函数确定所述目标修改条带。

其中,所述判断所述目标对象的状态之后,还包括:

若所述目标对象为正常状态,则直接启动根据所述数据修改请求将对应的数据写入所述目标修改条带的步骤。

其中,所述确定所述目标修改条带中需要进行同步的目标更新条带,包括:

向所述目标对象对应的存储设备发送读取条带版本号请求,以获取所述存储设备返回的当前条带版本号;

确定主存储设备中所述目标对象对应的对象的目标条带版本号,并通过对比所述目标条带版本号和所述当前条带版本号,确定所述目标更新条带。

其中,所述根据所述数据修改请求将对应的数据写入所述目标修改条带之后,还包括:

将写入成功的提示信息返回至客户端。

为实现上述目的,本申请提供了一种数据写入系统,包括:

状态判断模块,用于当接收到数据修改请求后,确定所述数据修改请求对应的目标修改条带和目标修改对象,并判断所述目标对象的状态;

条带确定模块,用于若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;

数据同步模块,用于对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;

数据写入模块,用于根据所述数据修改请求将对应的数据写入所述目标修改条带。

其中,还包括:

写入启动模块,用于判断所述目标对象的状态之后,若所述目标对象为正常状态,则直接启动根据所述数据修改请求将对应的数据写入所述目标修改条带的步骤。

其中,所述条带确定模块,包括:

版本获取单元,用于向所述目标对象对应的存储设备发送读取条带版本号请求,以获取所述存储设备返回的当前条带版本号;

版本对比单元,用于确定主存储设备中所述目标对象对应的对象的目标条带版本号,并通过对比所述目标条带版本号和所述当前条带版本号,确定所述目标更新条带。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一种数据写入方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种数据写入方法的步骤。

通过以上方案可知,本申请提供的一种数据写入方法,包括:当接收到数据修改请求后,确定所述数据修改请求对应的目标修改条带和目标修改对象,并判断所述目标对象的状态;若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;根据所述数据修改请求将对应的数据写入所述目标修改条带。本申请利用条带的版本号获取需要同步的部分条带的数据,减少了数据同步的数据量,从而有效避免了数据同步导致的系统io资源和网络带宽资源的占用,提高了数据写入效率。本申请还公开了一种数据写入系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种数据写入方法的流程图;

图2为本申请实施例公开的另一种数据写入方法的流程图;

图3为本申请实施例公开的一种数据写入方法中确定目标修改条带过程的流程图;

图4为本申请实施例公开的一种数据写入系统的结构图;

图5为本申请实施例公开的一种电子设备的结构图;

图6为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,当pg的下线成员重新上线后,若降级对象此时需要修改,发现部分成员的版本号低于其他成员的版本号,此时需要先将降级成员的整个对象的数据和版本号都同步为最新的。然而,若降级过程中,若对象中仅仅修改了少量数据,同步过程也需要同步整个对象,极大的浪费了系统io资源以及带宽资源,并且增加了前段io延时。

因此,本申请实施例公开了一种数据写入方法,有效减少了数据同步导致的系统io资源及带宽资源的浪费。

参见图1,本申请实施例公开的一种数据写入方法的流程图,如图1所示,包括:

s101:当接收到数据修改请求后,确定所述数据修改请求对应的目标修改条带和目标修改对象,并判断所述目标对象的状态;

本实施例中,当pg的主存储设备接收到客户端发送的数据修改请求后,根据数据修改请求确定对应的目标修改条带以及目标修改对象。进一步判断目标修改对象的状态。

s102:若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;

需要说明的是,系统为每个对象记录一个版本号,当对象有更新时将对应的版本号也进行更新。在pg更新时,仅仅对在线成员进行更新,下线成员不会得到更新,则产生了降级对象。

本实施例中,若目标对象为降级状态,则表明当前目标对象中的数据版本未更新,进一步从目标修改条带中确定需要进行同步的目标更新条带。

s103:对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;

本步骤中,获取pg的主存储设备中需要同步的数据和版本号,对目标更新条带进行数据和版本号的同步更新。

s104:根据所述数据修改请求将对应的数据写入所述目标修改条带。

进一步地,在完成目标更新条带的数据同步之后,本实施例根据数据修改请求将数据写入目标修改条带中,完成数据的写入。

通过以上方案可知,本申请提供的一种数据写入方法,包括:当接收到数据修改请求后,确定所述数据修改请求对应的目标修改条带和目标修改对象,并判断所述目标对象的状态;若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;根据所述数据修改请求将对应的数据写入所述目标修改条带。本申请利用条带的版本号获取需要同步的部分条带的数据,减少了数据同步的数据量,从而有效避免了数据同步导致的系统io资源和网络带宽资源的占用,提高了数据写入效率。

本申请实施例公开了一种数据写入方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

参见图2,本申请实施例提供的另一种数据写入方法的流程图,如图2所示,包括:

s201:当接收到数据修改请求后,利用offset函数和length函数确定所述数据修改请求对应的目标修改条带,以及确定对应目标修改对象,并判断所述目标对象的状态;

本实施例中,利用利用offset函数和length函数确定所述数据修改请求对应的目标修改条带。

s202:若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;

s203:若所述目标对象为正常状态,则直接进入步骤s205;

具体地,若数据修改请求对应的目标对象为正常状态,则无需对目标对象进行数据同步,可以直接将数据写入目标修改条带。

s204:对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;

s205:根据所述数据修改请求将对应的数据写入所述目标修改条带。

进一步地,在上述实施例的基础上,本实施例针对确定目标更新条带的过程进行进一步阐述,如图3所示,该过程包括:

s301:向所述目标对象对应的存储设备发送读取条带版本号请求,以获取所述存储设备返回的当前条带版本号;

本实施例中,由pg的主存储设备向目标对象对应的存储设备发送读取条带版本号请求,当目标对象对应的存储设备接收到读取条带版本号请求之后,向主存储设备返回目标对象的条带版本号。

s302:确定主存储设备中所述目标对象对应的对象的目标条带版本号,并通过对比所述目标条带版本号和所述当前条带版本号,确定所述目标更新条带。

进一步地,通过对比pg的主存储设备中目标对象相应的对象的目标条带版本号和目标对象对应的存储设备中的当前条带版本号,确定需要进行同步的数据和版本号,从而确定对应的目标更新条带。

另外,本实施例在根据所述数据修改请求将对应的数据写入所述目标修改条带之后,还进一步包括:将写入成功的提示信息返回至客户端。

可以理解的是,当数据根据数据修改请求写入对应条带位置后,向客户端返回提示信息,以提示当前用户写入成功。

下面对本申请实施例提供的一种数据写入系统进行介绍,下文描述的一种数据写入系统与上文描述的一种数据写入方法可以相互参照。

参见图4,本申请实施例提供的一种数据写入系统的结构图,如图4所示,包括:

状态判断模块100,用于当接收到数据修改请求后,确定所述数据修改请求对应的目标修改条带和目标修改对象,并判断所述目标对象的状态;

条带确定模块200,用于若所述目标对象为降级状态,则确定所述目标修改条带中需要进行同步的目标更新条带;

数据同步模块300,用于对所述目标更新条带进行数据同步,并更新所述目标更新条带的版本号;

数据写入模块400,用于根据所述数据修改请求将对应的数据写入所述目标修改条带。

进一步地,本实施例的数据写入系统还可以包括:

写入启动模块,用于判断所述目标对象的状态之后,若所述目标对象为正常状态,则直接启动根据所述数据修改请求将对应的数据写入所述目标修改条带的步骤。

具体地,本实施例提供的数据写入系统中的条带确定模块,包括:

版本获取单元,用于向所述目标对象对应的存储设备发送读取条带版本号请求,以获取所述存储设备返回的当前条带版本号;

版本对比单元,用于确定主存储设备中所述目标对象对应的对象的目标条带版本号,并通过对比所述目标条带版本号和所述当前条带版本号,确定所述目标更新条带。

本申请还提供了一种电子设备,参见图5,本申请实施例提供的一种电子设备的结构图,如图5所示,包括:

存储器11,用于存储计算机程序;

处理器12,用于执行所述计算机程序时可以实现如上述任一种数据写入方法的步骤。

具体的,存储器11包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力。

在上述实施例的基础上,作为优选实施方式,参见图6,所述电子设备还包括:

输入接口13,与处理器12相连,用于获取外部导入的计算机程序、参数和指令,经处理器12控制保存至存储器11中。该输入接口13可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元14,与处理器12相连,用于显示处理器12处理的数据以及用于显示可视化的用户界面。该显示单元14可以为led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。

网络端口15,与处理器12相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

图6仅示出了具有组件11-15的电子设备,本领域技术人员可以理解的是,图6示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种数据写入方法的步骤。

本申请利用条带的版本号获取需要同步的部分条带的数据,减少了数据同步的数据量,从而有效避免了数据同步导致的系统io资源和网络带宽资源的占用,提高了数据写入效率。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1