数据处理方法及装置与流程

文档序号:11693218阅读:172来源:国知局
数据处理方法及装置与流程

本发明涉及数据传输技术领域,特别涉及数据处理方法及装置。



背景技术:

在数据处理领域中,有时会涉及如图1所示的网络架构,即该网络架构包括:服务器11和节点12。

服务器11用于接收来自节点12的数据、并进行同步存储,这一过程即为同步数据。

节点12为客户端,数量为2个以上,每个节点12都具有唯一的身份标识,服务器11通过不同的身份标识来区分不同的节点12。

在节点12上传数据到服务器11时,如遇网络异常、传输异常等情况,需要重新多次上传数据,如何保证服务器11所存储数据的唯一性,成为需要解决的问题。



技术实现要素:

本发明实施例提供了数据处理方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本发明实施例的第一方面,提供了一种数据处理方法,所述方法包括:

确定节点的待同步数据与已同步数据的差集;

存储所述差集中的待同步数据。

在所述方法基础上,作为可选的第一示例性实施例,所述方法还包括:

接收所述节点发送的待同步数据的标识;

或者,接收所述节点发送的待同步数据和待同步数据的标识。

在所述第一示例性实施例的基础上,作为可选的第二示例性实施例,所述确定节点的待同步数据与已同步数据的差集,包括:

比较节点发送的待同步数据的标识与所述已同步数据的标识;

将比较结果为不相同的待同步数据的标识所对应的待同步数据的集合,作为所述差集。

在所述第二示例性实施例的基础上,作为可选的第三示例性实施例,在接收所述节点发送的待同步数据的标识时,所述方法还包括:

向所述节点发送所述差集中的待同步数据的标识;

接收所述节点发送的所述差集中的待同步数据。

在所述第一示例性实施例的基础上,作为可选的第四示例性实施例,所述待同步数据的标识包括:所述节点最后一次同步数据之后最大同步数据量的每条待同步数据的标识。

在所述第四示例性实施例的基础上,作为可选的第五示例性实施例,所述方法还包括:

向所述节点发送所述最后一次同步数据的时间。

在所述方法及所述第一至第五示例性实施例的基础上,作为可选的第六示例性实施例,所述已同步数据包括:

同步存储区、待写入缓存和写入缓存中的数据。

在所述方法及所述第一至第五示例性实施例的基础上,作为可选的第七示例性实施例,所述存储所述差集中的待同步数据,包括:

将所述差集中的待同步数据传递至待写入缓存。

在所述第七示例性实施例的基础上,作为可选的第八示例性实施例,所述方法还包括:

在存储计时到达一个设定计时周期时,检测执行锁;

如果所述执行锁为上锁状态,不执行操作;

如果所述执行锁为未上锁状态,上锁所述执行锁,将所述待写入缓存中的数据插入同步存储区;

解锁所述执行锁。

在所述第八示例性实施例的基础上,作为可选的第九示例性实施例,所述将所述待写入缓存中的数据插入同步存储区,包括:

将所述待写入缓存中的数据传递给写入缓存,并重置所述待写入缓存;

将写入缓存中的数据插入到所述同步存储区,并重置所述写入缓存。

根据本发明实施例的第二方面,提供一种数据处理装置,所述装置包括:处理器和存储器;

所述处理器,用于确定节点的待同步数据与已同步数据的差集;将所述差集中的待同步数据存储至所述存储器;

所述存储器,用于存储所述差集中的待同步数据。

在所述装置的基础上,作为可选的第一示例性实施例,所述装置还包括:

接收器,用于接收所述节点发送的待同步数据的标识;或者,接收所述节点发送的待同步数据和待同步数据的标识。

在所述第一示例性实施例的基础上,作为可选的第二示例性实施例,所述处理器在确定节点的待同步数据与已同步数据的差集时,被配置为:

比较节点发送的待同步数据的标识与所述已同步数据的标识;

将比较结果为不相同的待同步数据的标识所对应的待同步数据的集合,作为所述差集。

在所述第二示例性实施例的基础上,作为可选的第三示例性实施例,在所述接收器接收所述节点发送的待同步数据的标识时,所述装置还包括:

发射器,用于向所述节点发送所述差集中的待同步数据的标识;

所述接收器还用于,接收所述节点发送的所述差集中的待同步数据。

在所述第二示例性实施例的基础上,作为可选的第四示例性实施例,所述待同步数据的标识包括:所述节点最后一次同步数据之后最大同步数据量的每条待同步数据的标识。

在所述第四示例性实施例的基础上,作为可选的第五示例性实施例,所述装置还包括:

发射器,用于向所述节点发送所述最后一次同步数据的时间。

在所述装置及所述第一至第五示例性实施例的基础上,作为可选的第六示例性实施例,所述已同步数据包括:同步存储区、待写入缓存和写入缓存中的数据。

在所述装置及所述第一至第五示例性实施例的基础上,作为可选的第七示例性实施例,所述处理器在将所述差集中的待同步数据存储至所述存储器时,被配置为:

将所述差集中的待同步数据传递至待写入缓存。

在所述第七示例性实施例的基础上,作为可选的第八示例性实施例,所述处理器在所述处理器在将所述差集中的待同步数据存储至所述存储器时,还被配置为:

在存储计时到达一个设定周期时,检测执行锁;

如果所述执行锁为上锁状态,不执行操作;

如果所述执行锁为未上锁状态,上锁所述执行锁,将所述待写入缓存中的数据插入同步存储区;

解锁所述执行锁。

在所述第八示例性实施例的基础上,作为可选的第九示例性实施例,所述处理器在将所述待写入缓存中的数据插入同步存储区时,被配置为:

将所述待写入缓存中的数据传递给写入缓存,并重置所述待写入缓存;

将写入缓存中的数据插入到所述同步存储区,并重置所述写入缓存。

本发明实施例提供的技术方案可以包括以下有益效果:

服务器首先确定节点的待同步数据与已同步数据的差集,然后只存储差集中的待同步数据,从而能够保证存储的待同步数据不重复。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是一种网络架构的框图;

图2是根据一示例性实施例示出的一种数据处理方法的流程示意图;

图3是根据一示例性实施例示出的节点登陆服务器的流程示意图;

图4是根据一示例性实施例示出的数据处理方法的流程示意图;

图5是根据一示例性实施例示出的一种数据处理装置的框图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

图2是根据一示例性实施例示出的一种数据处理方法的流程示意图,该方法可以应用于图1所示的服务器11中,包括如下步骤。

在步骤201中,确定节点的待同步数据与已同步数据的差集;

在步骤202中,存储差集中的待同步数据。

可见,在图2所示的示例性实施例中,服务器首先确定节点的待同步数据与已同步数据的差集,然后只存储差集中的待同步数据,从而能够保证存储的待同步数据不重复。当多个节点和服务器交互时,每个节点在每次需同步数据时,都可以按图2所示流程完成数据同步。

在数据处理方法的一示例性的实施例中,基于图2所示的流程,作为一种可选的实施方式,服务器可以接收节点发送的待同步数据的标识,然后再执行步骤201中的操作。作为另一种可选的实施方式,服务器可以接收节点发送的待同步数据和待同步数据的标识,然后再执行步骤201中的操作。

下面分别针对上述两种可选的实施方式,给出示例性的实施例。

在下面的示例性实施例中,服务器在启动时可以根据配置信息进行初始化。作为一种可选的实施方式,服务器初始化时包括如下几项内容。在其他可选的实施方式中,根据数据处理方法流程的不同,服务器初始化时可以选择如下所列内容中的一项或几项,这里不做限定。

①建立缓存字典,记录每个节点的信息。

②建立缓存区域,包括建立待写入缓存和写入缓存。

③建立标记,包括插入锁和/或执行锁。这些标记的定义和用途将在下

文中的示例性实施例中详细说明。

④建立定时器,该定时器在存储来自节点的待同步数据时使用。

⑤启动服务器端口监听,即启动服务,可以包括监听节点的各种请求,例如登陆验证和数据传输等。

在下面的示例性实施例中,节点要同步数据到服务器时,需先与服务器交互以完成登陆。图3是根据一示例性实施例示出的节点登陆服务器的流程示意图,该方法可以用于图1所示的服务器11中,包括如下步骤。

在步骤301中,接收节点发送的登陆请求。

作为一种可选的实施方式,登陆请求中携带节点的身份标识和授权信息,其中授权信息可以是与身份标识对应的自定义密码或预置信息。

在步骤302中,验证节点的授权信息,如果验证通过,执行步骤303,如果验证失败,向节点发送验证失败的指示。

作为一种可选的实施方式,节点在收到验证失败的指示后,可以重试登陆服务器的操作,即重新发送登陆请求。

在步骤303中,更新节点的信息。

作为一种可选的实施方式,服务器在缓存字典中将节点的信息更改为在线并等待同步数据。

图4是根据一示例性实施例示出的数据处理方法的流程示意图,该方法可以用于图1所示的服务器11中,包括如下步骤。

在步骤401中,接收节点发送的待同步数据的标识。

作为一种可选的实施方式,节点以条目的形式保存待同步数据,节点可以将最后一次同步数据之后最大上传数据量的每条待同步数据的集合,作为当前的待同步数据。节点可以记录每次同步数据的时间,也可以由服务器向节点发送其最后一次同步数据的时间,节点根据最后一次同步数据的时间,可以确定出当前的待同步数据。

每条待同步数据对应一个标识,该标识可以是时间戳,也可以是编号,还可以是名称等。

在步骤402中,比较节点发送的待同步数据的标识与已同步数据的标识,将比较结果为不相同的待同步数据的标识所对应的待同步数据的集合,作为差集。

作为一种可选的实施方式,服务器执行同步数据的操作时,也存储待同步数据的标识与发送这些待同步数据的节点的身份标识的对应关系,因此服务器在确定差集时,可以比较节点发送的待同步数据的标识与已同步数据的标识,将与已同步数据的标识不相同的那些待同步数据的标识对应的待同步数据的集合,作为差集。

在步骤403中,向节点发送差集中的待同步数据的标识。

节点在接收到差集中的待同步数据的标识后,可以确定出当前实际要进行同步的待同步数据。

在步骤404中,接收节点发送的差集中的待同步数据。

由于节点无需在流程一开始就发送所有的待同步数据,而是在服务器确定差集之后发送差集中的待同步数据,因此可以保证在传输过程中就不传输已同步数据,从而节省网络流量。

在步骤405中,将差集中的待同步数据传递至待写入缓存。

作为一种可选的实施方式,服务器的存储器可以分为待写入缓存、写入缓存和同步存储区,其中待写入缓存相当于数据存储的准备区。在接收到节点发送的差集中的待同步数据时,先将差集中的待同步数据传递至待写入缓存,在待写入缓存中以节点的身份标识和对应的待同步数据的组合形式来存储。

在步骤406中,在存储计时达到一个设定计时周期时,检测执行锁;如果执行锁为上锁状态,不执行操作,如果执行锁为未上锁状态,上锁执行锁,将待写入缓存中的数据插入同步存储区,并解锁执行锁。

存储计时通过服务器在初始化时启动的定时器实现。

通过执行锁来确保当前正在执行的数据存储操作完成后,才能再进行新的数据存储操作。因此如果执行锁为上锁状态,则当前数据存储操作还未完成,当前不能执行新的数据存储操作,结束流程。如果执行锁为未上锁状态,则先上锁执行锁,再将待写入缓存中的数据插入同步存储区,完成插入操作后,解除执行锁。执行锁为服务器在初始化时建立的标记,上锁与否的状态可以通过检测该标记来实现。

服务器在每个存储计时周期内,可以将待写入缓存中的所有数据直接插入同步存储区,也可以将待写入缓存中的所有数据先传递至写入缓存,然后将写入缓存中的所有数据插入同步存储区。针对第二种情况,服务器将待写入缓存中的数据插入同步存储区时,可以将待写入缓存中的数据传递给写入缓存,并重置待写入缓存,然后将写入缓存中的数据插入到同步存储区,并重置写入缓存。使用双缓存,能够大幅增加数据的写入速度。

进一步,如果服务器使用双缓存来同步数据,则在前文的步骤402中,需要确定同步存储区中的已存储数据与节点发送的待同步数据的差集,还需确定待写入缓存和写入缓存中的已存储数据与节点发送的待同步数据的差集,这两部分差集合起来作为最终确定出的差集。在确定待写入缓存和写入缓存中的已存储数据与节点发送的待同步数据的差集时,为了避免执行确定操作时,正在将待写入缓存中的数据传递至写入缓存,导致数据不同步的问题,可以使用插入锁。在插入锁为上锁状态时,则当前正在执行将待写入缓存中的数据传递至写入缓存的操作,不执行确定待写入缓存和写入缓存中的已存储数据与节点发送的待同步数据的差集的操作。如果插入锁为未上锁状态,则执行确定待写入缓存和写入缓存中的已存储数据与节点发送的待同步数据的差集的操作。因此,在开始将待写入缓存中的数据传递至写入缓存时,即可以将插入锁上锁,并在结束将待写入缓存中的数据传递至写入缓存时,将插入锁解锁。

在一示例性的实施例中,如果服务器先接收节点发送的待同步数据和待同步数据的标识,再执行图2所示的步骤201,则服务器可以在确定出节点的待同步数据和已同步数据的差集后,直接从节点已发送的待同步数据中选择出差集中的待同步数据并存储,而不必向节点发送差集中的待同步数据的标识、然后再接收节点发送的差集中的待同步数据。关于数据处理流程的其他步骤,可以和图4所示的流程相同。

在数据处理方法的一示例性实施例中,可以通过一种包括指令的非临时性计算机可读存储介质来实现。上述非临时性计算机可读存储介质可以位于服务器一侧,例如包括指令的存储器,上述指令可由处理器执行以完成前文所述的方法的各个示例性实施例。上述非临时性计算机可读存储介质可以是只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁带和光存储设备等。

图5是根据一示例性实施例示出的一种数据处理装置的框图,该装置可以位于图1所示的服务器11一侧,包括:处理器51和存储器52。

处理器51,用于确定节点的待同步数据与已同步数据的差集;将差集中的待同步数据存储至存储器52。

存储器52,用于存储差集中的待同步数据。

在数据处理装置的一示例性实施例中,装置中还可以包括:接收器,用于接收节点发送的待同步数据的标识;或者,接收节点发送的待同步数据和待同步数据的标识。

根据上述接收器的两种不同工作方式,下面会给出示例性的实施例。

在数据处理装置的一示例性实施例中,处理器51在确定节点的待同步数据与已同步数据的差集时,可以被配置为:比较节点发送的待同步数据的标识与已同步数据的标识;将比较结果为不相同的待同步数据的标识所对应的待同步数据的集合,作为差集。

进一步,在接收器接收节点发送的待同步数据的标识时,装置还可以包括:发射器,用于向节点发送差集中的待同步数据的标识。此时,接收器还用于接收节点发送的差集中的待同步数据。

在数据处理装置的一示例性实施例中,待同步数据的标识包括:节点最后一次同步数据之后最大同步数据量的每条待同步数据的标识。

进一步,数据处理装置还可以包括:发射器,用于向节点发送最后一次同步数据的时间。

在以上各个数据处理装置的示例性实施例中,如果服务器使用双缓存,则已存储数据包括同步存储区、待写入缓存和写入缓存中的数据。

在以上各个数据处理装置的示例性实施例中,处理器51在将差集中的待同步数据存储至存储器52时,将差集中的待同步数据传递至待写入缓存。

进一步,处理器51在将差集中的待同步数据存储至存储器52时,还被配置为:在存储计时到达一个设定周期时,检测执行锁;如果执行锁为上锁状态,不执行操作;如果执行锁为未上锁状态,上锁执行锁,将待写入缓存中的数据插入同步存储区;解锁执行锁。

进一步,处理器51在将待写入缓存中的数据插入同步存储区时,被配置为:将待写入缓存中的数据传递给写入缓存,并重置待写入缓存;将写入缓存中的数据插入到同步存储区,并重置写入缓存。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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