掌桥专利:专业的专利平台
掌桥专利
首页

数据存储系统、方法、计算设备及计算机存储介质

文献发布时间:2023-06-19 10:19:37


数据存储系统、方法、计算设备及计算机存储介质

技术领域

本发明涉及计算机技术领域,具体涉及一种数据存储系统、方法、计算设备及计算机存储介质。

背景技术

互联网时代用户对网络、应用的依赖越来越大,用户将自己的数据存储到访问的服务器上,比如,用户标识、用户名称、个人权限;服务器自身也会保存维持自身运行所必须的数据,例如,启动端口、路由规则、流控数据、第三方地址等,这些都对服务器存储的及时性、可靠性、一致性提出了更高的要求。

现有技术中,对于服务器数据存储,主要有服务器内存存储、服务器本地文件存储、第三方数据库存储。

但是,发明人在实现本发明的过程中发现现有技术至少存在以下不足:服务器内存存储方案中主要是将数据存储在了服务器内存中,如果服务器一旦停机或重启,缓存的数据会丢失,这会造成非常严重的问题,如用户数据无法再次找回的,同时内存相对于物理存储是有极限的,很容易发生内存溢出问题。服务器本地文件存储主要是将请求数据存储到本地文件中,该方案是一个高性能的系统架构,都会使用负载均衡,例如F5、Nginx,一个请求会被分发到不同服务器上执行,假如用户第一次请求A服务器执行了某操作保存了数据,而第二次请求B服务器获取数据,这会导致该数据无法获取,会出现服务器的不一致问题。第三方数据库存储,第三方数据库一般也都是单点部署,集群部署方案都非常的复杂,增加了整个系统的复杂度,并且第三方数据库与服务器间需要进行远程的网络通信,这对于性能要求高的服务来讲并不适用。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储系统、方法、计算设备及计算机存储介质。

根据本发明的一个方面,提供了一种数据存储系统,其中,系统包含至少两个业务服务器,至少两个业务服务器包含数据存储模块,数据存储模块包含:主节点数据存储模块以及从节点数据存储模块;

主节点数据存储模块,适于向从节点数据存储模块传输数据日志;

从节点数据存储模块,适于根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理;

主节点数据存储模块进一步适于:当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。

可选地,主节点数据存储模块进一步适于:在数据同步处理的过程中对接收到的数据操作请求进行响应;

其中,数据操作请求包括:来自于主节点数据存储模块对应的业务服务器和/或来自于从节点数据存储模块对应的业务服务器的数据操作请求。

可选地,主节点数据存储模块进一步适于:若未达到预设延迟时长,对来自于从节点数据存储模块对应的业务服务器的数据操作请求进行响应;

从节点数据存储模块进一步适于:当达到预设延迟时长,对来自于其对应的业务服务器的数据操作请求进行响应。

可选地,数据存储模块内存储有以下各项信息:

数据日志、任期信息、历史投票机器标识、已应用日志的索引信息、已复制日志的索引信息。

可选地,数据存储模块进一步适于:作为候选节点数据存储模块向其他数据存储模块发起投票选举请求,当获得的投票数量超过其他数据存储模块的总数的一半,转换成为主节点数据存储模块;其中,除主节点数据存储模块之外的其他数据存储模块转换成为从节点数据存储模块;

或者,适于接收投票选举请求,判断自身的任期信息是否小于发起投票选举请求的数据存储模块的任期信息,以及,判断自身已应用日志的索引信息是否小于数据日志的索引信息;若是,则向发起投票选举请求的数据存储模块进行投票。

可选地,主节点数据存储模块包括:一致性接口、日志模块以及应用存储模块;

一致性接口,适于将日志模块存储的数据日志传输给从节点数据存储模块,以供从节点数据存储模块根据接收到的数据日志进行数据同步处理;

以及,当超过一半的从节点数据存储模块完成数据同步处理后,将日志模块存储的数据日志应用至应用存储模块,并向完成同步的从节点数据存储模块发送请求,以供完成同步的从节点数据存储模块将已同步的数据日志进行应用;

应用存储模块,适于面向用户端提供数据。

可选地,数据存储模块通过嵌入jar的方式设置在业务服务器中。

根据本发明的另一方面,提供了一种数据存储方法该方法应用于主节点数据存储模块,主节点数据存储模块设置于第一业务服务器中,方法包括:

向从节点数据存储模块传输数据日志,以供从节点数据存储模块根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理。

当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。

可选地,方法进一步包括:在数据同步处理的过程中对接收到的数据操作请求进行响应;其中,数据操作请求包括:来自于主节点数据存储模块对应的业务服务器和/或来自于从节点数据存储模块对应的业务服务器的数据操作请求。

可选地,方法进一步包括:若未达到预设延迟时长,对来自于从节点数据存储模块对应的业务服务器的数据操作请求进行响应;其中,当达到预设延迟时长,从节点数据存储模块对来自于其对应的业务服务器的数据操作请求进行响应。

可选地,主节点数据存储模块内存储有以下各项信息:

数据日志、任期信息、历史投票机器标识、已应用日志的索引信息、已复制日志的索引信息。

可选地,主节点数据存储模块通过以下方式而得到:任一数据存储模块作为候选节点数据存储模块向其他数据存储模块发起投票选举请求,当获得的投票数量超过其他数据存储模块的总数的一半,该数据存储模块转换成为主节点数据存储模块;其中,除主节点数据存储模块之外的其他数据存储模块转换成为从节点数据存储模块;

其中,其他数据存储模块判断自身的任期信息是否小于发起投票选举请求的数据存储模块的任期信息,以及,判断自身已应用日志的索引信息是否小于数据日志的索引信息;若是,则向该数据存储模块进行投票。

可选地,向从节点数据存储模块传输数据日志进一步包括:

通过一致性接口将日志模块存储的数据日志传输给从节点数据存储模块,以供从节点数据存储模块根据接收到的数据日志进行数据同步处理;

方法进一步包括:

当超过一半的从节点数据存储模块完成数据同步处理后,将日志模块存储的数据日志应用至应用存储模块,并向完成同步的从节点数据存储模块发送请求,以供完成同步的从节点数据存储模块将已同步的数据日志进行应用;其中,应用存储模块用于面向用户端提供数据。

一种可选的方式中,主节点数据存储模块通过嵌入jar的方式设置在第一业务服务器中,从节点数据存储模块通过嵌入jar的方式设置在第二业务服务器中。

根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据存储方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述数据存储方法对应的操作。

根据本发明的数据存储系统、方法、计算设备及计算机存储介质,系统包含至少两个业务服务器,至少两个业务服务器包含数据存储模块,数据存储模块包含:主节点数据存储模块以及从节点数据存储模块;主节点数据存储模块,适于向从节点数据存储模块传输数据日志;从节点数据存储模块,适于根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理;主节点数据存储模块进一步适于:当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。该方式通过在各个业务服务器内嵌入数据存储模块,各个数据存储模块之间通过远程服务调用互相连接起来,主节点数据存储模块向从节点数据存储模块同步数据,当超过一半的从节点数据存储模块成功同步之后,就认为数据同步完成,能够实现对数据存储的一致性保障,有效的保证数据的可靠性、不丢失和高性能,同时也不需要依赖第三方数据库,简易高效,可操作性强。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的数据存储系统的结构示意图;

图2示出了本发明另一实施例提供的数据存储系统的结构示意图;

图3示出了本发明另一实施例提供的数据存储方法的流程图;

图4示出了本发明实施例提供的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1示出了本发明实施例提供的数据存储系统的结构示意图,本实施例中以数据存储系统包含4个业务服务器为例来说明本发明的具体方案,但本领域技术人员可以根据实际需要设置两个及以上的业务服务器,本发明对此不做限定。

如图1所示,该系统包含4个业务服务器,业务服务器11、业务服务器12、业务服务器13、业务服务器14,业务服务器11包含数据存储模块111,业务服务12包含数据存储模块121,业务服务器13包含数据存储模块131,业务服务器14包含数据存储模块141,各个业务服务器内的数据存储模块通过远程服务的调用建立连接,形成互相关联的图状网络拓扑。

本实施例中,数据存储模块111为主节点数据存储模块,数据存储模块121、131以及141均为从节点数据存储模块,具体实施时,可以通过投票选举的方式确定主节点数据存储模块,也可以通过指定的方式确定主节点数据存储模块。

其中,主节点数据存储模块,适于向从节点数据存储模块传输数据日志。

从节点数据存储模块,适于根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理。

主节点数据存储模块还适用于:当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。

主节点数据存储模块111,适于向从节点数据存储模块121、131以及141传输数据日志。当一个数据被存储到业务服务器11时,其内部的数据存储模块即主节点数据存储模块111会以广播的形式向从节点数据存储模块121、131以及141进行数据日志的传输,数据日志中携带有主节点数据存储模块111的身份信息,用以表明自己的主节点身份,数据日志就是待同步的数据日志。

从节点数据存储模块121、131以及141执行的操作一致,这里仅以从节点数据存储模块121为例进行说明。从节点数据存储模块121,接收到主节点数据存储模块111传输的数据日志后,首先从中提取出主节点数据存储模块的身份信息,例如身份标识信息、任期信息以及日志索引信息,然后,对提取的身份信息进行校验,如果校验通过,则根据数据日志进行同步处理。

在从节点数据存储模块121、131以及141中的至少两个从节点数据存储模块完成了本次数据同步处理之后,主节点数据存储模块111向业务服务器11返回同步成功响应,表示数据已成功存储在绝大多数节点中,而其他的暂未完成同步的从节点数据存储模块后期也会通过日志逐渐同步,从而保证各个业务服务器内的数据的一致性。

根据本实施例提供的数据存储系统,系统包含至少两个业务服务器,至少两个业务服务器包含数据存储模块,数据存储模块包含:主节点数据存储模块以及从节点数据存储模块;主节点数据存储模块,适于向从节点数据存储模块传输数据日志;从节点数据存储模块,适于根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理;主节点数据存储模块进一步适于:当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。该方式通过在各个业务服务器内嵌入数据存储模块,各个数据存储模块之间通过远程服务调用互相连接起来,主节点数据存储模块向从节点数据存储模块同步数据,当超过一半的从节点数据存储模块成功同步之后,就认为数据同步完成,能够实现对数据存储的一致性保障,有效的保证数据的可靠性、不丢失和高性能,同时也不需要依赖第三方数据库,简易高效,可操作性强。

图2示出了本发明另一实施例提供的数据存储系统的结构示意图,如图2所示,如图2所示,该系统包含3个业务服务器,业务服务器21、业务服务器22、业务服务器23,业务服务器21包含数据存储模块211,业务服务器22包含数据存储模块221,业务服务器23包含数据存储模块231。

其中,数据存储模块通过嵌入jar的方式设置在业务服务器中,数据存储模块内都存储有以下各项关键信息:数据日志(指的是业务服务器的本地日志),任期信息(即当前的任期),历史投票机器标识(即历史所投票的数据存储模块的标识),已应用日志的索引信息(即已经应用生效的日志的索引),已复制日志的索引信息(即其他数据存储模块已经复制给它的日志的索引)。

本实施例中,采用投票选举的方式确定主节点数据存储模块和从节点数据存储模块,具体地:

数据存储模块适于:作为候选节点数据存储模块向其他数据存储模块发起投票选举请求,当获得的投票数量超过其他数据库的总数的一半,转换成为主节点数据存储模块;其中,除主节点数据存储模块之外的其他数据存储模块转换成为从节点数据存储模块。如果一个数据存储模块是投票选举请求的发起方,则该数据存储模块成为候选节点数据存储模块,向其他数据存储模块发送投票选举请求,其他数据存储模块需要决定是否向该候选节点数据存储模块。

或者,数据存储模块适于:接收投票选举请求,判断自身的任期信息是否小于发起投票选举请求的数据存储模块的任期信息,以及,判断自身已应用日志的索引信息是否小于数据日志的索引信息;若是,则向发起投票选举请求的数据存储模块投票。如果一个数据存储模块是投票选举请求的接收方,则该数据存储模块需要确定是否向投票选举请求的发起方投票。

实际应用中,具体可通过以下方式选举主节点数据存储模块:任一数据存储模块作为候选节点数据存储模块向其他数据存储模块发起投票选举请求;其他数据存储模块根据候选节点数据存储模块的候选身份信息,投票选举出主节点数据存储模块,除主节点数据存储模块之外的数据存储模块为从节点数据存储模块。具体地,数据存储模块接收到投票选举请求之后,判断自身的任期以及已应用生效的日志的索引是否均小于候选节点数据存储模块,如果是,则投票给该候选节点数据存储模块,反之,则不投票给该候选节点数据存储模块。当有超过一半的数据存储模块投票给候选节点存储模块,则候选节点存储模块成为主节点数据存储模块,其余的则成为从节点数据存储模块。

具体地,执行以下步骤以选举出主节点数据存储模块:

步骤S1,当达到一个固定时间时,数据存储模块211成为候选节点数据存储模块,则将其任期加一,候选机器标识确定为数据存储模块211的标识;

步骤S2,数据存储模块211向数据存储模块221以及231发布投票选举请求,投票选举请求中携带有候选节点数据存储模块的标识(即候选机器标识)、候选节点数据存储模块的任期以及待同步的数据日志的索引信息;

步骤S3,数据存储模块221以及231接收到投票选举请求后,分别判断自身的任期是否小于候选节点数据存储模块的任期、自身已应用的日志的索引是否小于待同步的日志数据的索引,如果是,则根据候选机器标识向候选节点数据存储模块投票;

步骤S4,判断向候选节点数据存储模块投票的数据存储模块是否超过一半,如果是,则候选节点数据存储模块成为主节点数据存储模块,而其他数据存储模块成为从节点数据存储模块。如果向候选节点数据存储模块投票的数据存储模块的数量未过半,则重复上述投票选举过程,直至选举出主节点数据存储模块。

由上可见,每一个数据存储模块都具备有三种角色,具体为:

(1)主节点,当数据存储模块获得的投票数量超过选举节点的数量的一半则成为主节点,主节点一定拥有最高的任期和最新的日志。

(2)从节点,当投票后未当选主节点,则转变为从节点,会通过主从之间的数据日志同步日志。

(3)候选节点,当接收到选举指令(并非上述投票选举请求,选举指令用于将从节点转变为候选节点)时,如果之前为从节点,则转变候选节点,直到选举完成。

在选举得到主节点数据存储模块之后,进行主从节点之间的数据同步处理。具体地,主节点数据存储模块通过发送心跳的方式向从节点数据存储模块传输数据日志。即主节点数据存储模块211通过发送心跳的方式分别向从节点数据存储模块221以及231传输数据日志。

本实施例中,数据存储模块211为主节点数据存储模块,数据存储模块221以及231均为从节点数据存储模块,如图2所示,主节点数据存储模块211还包括一致性接口2111、日志模块2112以及应用存储模块2113,数据存储模块221也包括一致性接口2211、日志模块2212以及应用存储模块2213,数据存储模块231也包括一致性接口2311、日志模块2312以及应用存储模块2313。其中,业务服务器能够调用其内部的一致性接口,以对存储的数据进行操作。

下面对主节点数据存储模块211内部的各个子模块执行的操作进行解释,一致性接口2111适于:将日志模块2112存储的数据日志传输给从节点数据存储模块221以及231,以供从节点数据存储模块221以及231根据接收到的数据日志进行数据同步处理;以及,当超过一半的从节点数据存储模块完成数据同步处理后,将日志模块2112存储的数据日志应用至应用存储模块2113,并向完成同步的从节点数据存储模块发送请求,以供完成同步的从节点数据存储模块将已同步的数据日志进行应用;其中,应用存储模块2113,适于面向用户端提供数据,应用存储模块是为用户端提供数据的,应用存储模块可以是key-value形式的存储,应用存储模块中所存储的数据日志就是已应用生效的数据日志,是直接提供给用户端的数据。

当超过一半的从节点数据存储模块根据数据日志完成了同步处理之后,需要将数据日志在主节点数据存储模块以及从节点数据存储模块中进行应用,本实施例中,从节点数据存储模块221和231均完成了同步处理。对于主节点数据存储模块211来说,一致性接口2111将数据日志应用到应用存储模块2113。于此同时,主节点数据存储模块211通过一致性接口2111分别向一致性接口2211和一致性接口2311发送请求,使一致性接口2211将已同步的数据日志应用到应用存储模块2213中,使一致性接口2311将已同步的数据日志应用到对应的应用存储模块2313中。

为了保证数据的高度一致性,可选地,主节点数据存储模块进一步适于:在数据同步处理的过程中对接收到的数据操作请求进行响应;数据操作请求包括:来自于主节点数据存储模块对应的业务服务器和/或来自于从节点数据存储模块对应的业务服务器的数据操作请求。该方式中,在数据同步的过程中,由主节点数据存储模块211对来自所有业务服务器的数据操作请求进行响应,从而达到保证数据一致性的效果。

进一步可选地,主节点数据存储模块进一步适于:若未达到预设延迟时长,对来自于从节点数据存储模块对应的业务服务器的数据操作请求进行响应;节点数据存储模块进一步适于:当达到预设延迟时长,对来自于其对应的业务服务器的数据操作请求进行响应。数据同步处理开始之后,首先由主节点数据存储模块211对各个业务服务器的数据操作请求进行响应,间隔预设的延迟时长后,各个数据存储模块自行响应其对应的业务服务器的数据操作请求,其中,预设延迟时长可以为多个心跳间隔时长。该方式中,主节点数据存储模块和从节点数据存储模块的数据之间存在可容忍的一致性误差,能够降低主节点数据存储模块的压力。

根据本实施例所提供的数据存储系统,该系统通过选主机制、主从日志同步、应用日志存储等机制能够完成对数据存储的一致性保障,有效的保证数据的可靠性、不丢失、高性能,而且使用jar的方式可以方便的集成到业务服务器中,不需要依赖第三方数据库,简单高效,操作性强,实现了一种通过选主算法、日志同步、快速集成、分布式的数据存储方案。

图3示出了本发明另一实施例提供的数据存储方法的流程图,该方法应用于主节点数据存储模块,主节点数据存储模块设置于第一业务服务器中,如图3所示,该方法包括:

步骤S310,向从节点数据存储模块传输数据日志,以供从节点数据存储模块根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理。

步骤S 320,当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。

一种可选的方式中,方法进一步包括:在数据同步处理的过程中对接收到的数据操作请求进行响应;其中,数据操作请求包括:来自于主节点数据存储模块对应的业务服务器和/或来自于从节点数据存储模块对应的业务服务器的数据操作请求。

一种可选的方式中,方法进一步包括:若未达到预设延迟时长,对来自于从节点数据存储模块对应的业务服务器的数据操作请求进行响应;其中,当达到预设延迟时长,从节点数据存储模块对来自于其对应的业务服务器的数据操作请求进行响应。

一种可选的方式中,主节点数据存储模块内存储有以下各项信息:

数据日志、任期信息、历史投票机器标识、已应用日志的索引信息、已复制日志的索引信息。

一种可选的方式中,主节点数据存储模块通过以下方式而得到:任一数据存储模块作为候选节点数据存储模块向其他数据存储模块发起投票选举请求,当获得的投票数量超过其他数据存储模块的总数的一半,该数据存储模块转换成为主节点数据存储模块;其中,除主节点数据存储模块之外的其他数据存储模块转换成为从节点数据存储模块;

其中,其他数据存储模块判断自身的任期信息是否小于发起投票选举请求的数据存储模块的任期信息,以及,判断自身已应用日志的索引信息是否小于数据日志的索引信息;若是,则向该数据存储模块进行投票。

一种可选的方式中,向从节点数据存储模块传输数据日志进一步包括:

通过一致性接口将日志模块存储的数据日志传输给从节点数据存储模块,以供从节点数据存储模块根据接收到的数据日志进行数据同步处理;

当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应进一步包括:

当超过一半的从节点数据存储模块完成数据同步处理后,将日志模块存储的数据日志应用至应用存储模块,并向完成同步的从节点数据存储模块发送请求,以供完成同步的从节点数据存储模块将已同步的数据日志进行应用;其中,应用存储模块用于面向用户端提供数据。

一种可选的方式中,主节点数据存储模块通过嵌入jar的方式设置在第一业务服务器中,从节点数据存储模块通过嵌入jar的方式设置在第二业务服务器中。

上述各个步骤的具体实施方式可参见上述数据存储系统实施例中的描述,在此不进行赘述。

由此可见,上述方式通过选主机制、主从日志同步、应用日志存储等机制能够完成对数据存储的一致性保障,有效的保证数据的可靠性、不丢失、高性能、而且使用jar的方式可以方便的集成到业务服务器中,不需要依赖第三方数据库,简单高效,操作性强,实现了一种通过选主算法、日志同步、快速集成、分布式的数据存储方案。

本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据存储方法。

可执行指令具体可以用于使得处理器执行以下操作:

向从节点数据存储模块传输数据日志,以供从节点数据存储模块根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理。

当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。

在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:

在数据同步处理的过程中对接收到的数据操作请求进行响应;其中,数据操作请求包括:来自于主节点数据存储模块对应的业务服务器和/或来自于从节点数据存储模块对应的业务服务器的数据操作请求。

在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:

若未达到预设延迟时长,对来自于从节点数据存储模块对应的业务服务器的数据操作请求进行响应;其中,当达到预设延迟时长,从节点数据存储模块对来自于其对应的业务服务器的数据操作请求进行响应。

一种可选的方式中,所述可执行指令使所述处理器执行以下操作:

通过一致性接口将日志模块存储的数据日志传输给从节点数据存储模块,以供从节点数据存储模块根据接收到的数据日志进行数据同步处理;

当超过一半的从节点数据存储模块完成数据同步处理后,将日志模块存储的数据日志应用至应用存储模块,并向完成同步的从节点数据存储模块发送请求,以供完成同步的从节点数据存储模块将已同步的数据日志进行应用;其中,应用存储模块用于面向用户端提供数据。

由此可见,上述方式通过选主机制、主从日志同步、应用日志存储等机制能够完成对数据存储的一致性保障,有效的保证数据的可靠性、不丢失、高性能、而且使用jar的方式可以方便的集成到业务服务器中,不需要依赖第三方数据库,简单高效,操作性强,实现了一种通过选主算法、日志同步、快速集成、分布式的数据存储方案。

图4示出了本发明计算设备实施例的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。

其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于计算设备的数据存储方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行以下操作:

向从节点数据存储模块传输数据日志,以供从节点数据存储模块根据数据日志所携带的主节点数据存储模块的身份信息进行合法性验证,合法性验证通过之后根据数据日志进行数据同步处理。

当超过一半的从节点数据存储模块完成数据同步处理时,向其对应的业务服务器返回同步成功响应。

在一种可选的方式中,程序410具体可以用于使得处理器402执行以下操作:

在数据同步处理的过程中对接收到的数据操作请求进行响应;其中,数据操作请求包括:来自于主节点数据存储模块对应的业务服务器和/或来自于从节点数据存储模块对应的业务服务器的数据操作请求。

在一种可选的方式中,程序410具体可以用于使得处理器402执行以下操作:

若未达到预设延迟时长,对来自于从节点数据存储模块对应的业务服务器的数据操作请求进行响应;其中,当达到预设延迟时长,从节点数据存储模块对来自于其对应的业务服务器的数据操作请求进行响应。

一种可选的方式中,程序410具体可以用于使得处理器402执行以下操作:

通过一致性接口将日志模块存储的数据日志传输给从节点数据存储模块,以供从节点数据存储模块根据接收到的数据日志进行数据同步处理;

当超过一半的从节点数据存储模块完成数据同步处理后,将日志模块存储的数据日志应用至应用存储模块,并向完成同步的从节点数据存储模块发送请求,以供完成同步的从节点数据存储模块将已同步的数据日志进行应用;其中,应用存储模块用于面向用户端提供数据。

由此可见,上述方式通过选主机制、主从日志同步、应用日志存储等机制能够完成对数据存储的一致性保障,有效的保证数据的可靠性、不丢失、高性能、而且使用jar的方式可以方便的集成到业务服务器中,不需要依赖第三方数据库,简单高效,操作性强,实现了一种通过选主算法、日志同步、快速集成、分布式的数据存储方案。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 数据存储系统、方法、计算设备及计算机存储介质
  • 一种数据存储系统、方法、装置及计算机可读存储介质
技术分类

06120112502431