CN111078798B - 分布式数据处理系统、方法、服务器及计算机可读存储介质 - Google Patents
分布式数据处理系统、方法、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111078798B CN111078798B CN201911375321.9A CN201911375321A CN111078798B CN 111078798 B CN111078798 B CN 111078798B CN 201911375321 A CN201911375321 A CN 201911375321A CN 111078798 B CN111078798 B CN 111078798B
- Authority
- CN
- China
- Prior art keywords
- data
- version number
- node
- current
- cached
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 title abstract description 16
- 238000003672 processing method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 7
- 238000013524 data verification Methods 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式数据处理系统、方法、服务器及计算机可读存储介质,分布式数据处理系统,包括第一节点及第二节点,第一节点生成第一数据时,赋予第一数据第一版本号;当第二节点需要使用数据时,自第一节点拉取第一数据并缓存;当第一节点生成第二数据时,赋予第二数据第二版本号,并发送至第二节点;当第二节点接收第二版本号时,将第二版本号与第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;当第二节点再次需要使用数据时,拉取第二数据以使用,并缓存具有第二版本号的第二数据。采用上述技术方案后,可减少数据验证时的耗时,并解决数据大小、变化频率的缓存数据在同步时的性能瓶颈。
Description
技术领域
本发明涉及计算机服务器领域,尤其涉及一种分布式数据处理系统、方法、服务器及计算机可读存储介质。
背景技术
随着计算机技术和数据库技术的飞速发展,业务需求逐渐多样化,互联网产品的很多新增功能或组件都是只对部分用户开放,以达到测试和改善的目的,那么开发者需要利用缓存技术,在数据库内各节点之间进行大量数据的更新和交互。缓存是数据交互的缓冲区,节点间通过缓存可进行快速地数据更新和交互。
因此,将各节点划分为不同类型的集群,从而采用分布式集群协同工作,根据不同类型的集群维护各自的数据。当其中一类集群的数据被另一类集群频繁使用的时候,会发生大量远端数据请求。这种情况就需要在各集群间建立数据缓存。减少不必要的rpc和网络数据拷贝。解决当数据较大,变化频率较高的时候,数据同步带来的性能问题。
现有的节点在作数据缓存时采取单一的定时同步、定时拉取、变化时同步的方法。当数据量较大,或数据变化不敏感的场景造成资源浪费,效率低下。
因此需要一种新型的分布式数据处理系统和方法,在保证缓存数据的有效性下,减少RPC调用,减少资源浪费。
发明内容
为了克服上述技术缺陷,本发明的目的在于提供一种分布式数据处理系统、方法、服务器及计算机可读存储介质,可减少数据验证时的耗时,并解决数据大小、变化频率的缓存数据在同步时的性能瓶颈。
本发明公开了一种分布式数据处理系统,包括生成数据的第一节点及自第一节点接收数据的第二节点,
第一节点生成第一数据时,赋予第一数据一第一版本号;
当第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;
当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;
当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
优选地,第一节点基于第一周期向第二节点发送存储于第一节点内的当前数据的当前版本号;
第二节点将当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据。
优选地,当第一节点生成基于第二数据所迭代的第三数据时,赋予第三数据一与第一版本号、第二版本号不同的第三版本号,并将第三版本号发送至第二节点;
第二节点清除具有第一版本号的第一数据或具有第二版本号的第二数据。
优选地,第二节点基于第二周期向第一节点发送获取请求,以获取存储于第一节点内的当前数据的当前版本号;
第二节点将当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据。
优选地,当第二节点再次需要使用数据时,检测是否缓存有本地数据;
当第二节点缓存有本地数据时,第二节点使用本地数据内存储的第一数据或第二数据;
当第二节点缓存为空数据时,第二节点自第一节点拉取具有当前版本号的当前数据以使用,并缓存具有当前版本号的当前数据。
优选地,当第二节点接收第一数据或第二数据时,第二节点判断是否可解析第一数据或第二数据,以检测第一数据或第二数据的完整性。
优选地,第一版本号、第二版本号及第一节点每次迭代后生成的版本号连续地升序计数;
第一节点基于第一周期向第二节点发送存储于第一节点内的当前数据的当前版本号,或第二节点基于第二周期向第一节点发送获取请求,以获取存储于第一节点内的当前数据的当前版本号时,第一周期或第二周期在1s-60s间。
本发明还公开了一种分布式数据处理方法,包括以下步骤:
一生成数据的第一节点生成第一数据时,赋予第一数据一第一版本号;
一第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;
当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;
当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
本发明又公开了一种服务器,包括数据库,数据库包括生成数据的第一节点及自第一节点接收数据的第二节点,
第一节点生成第一数据时,赋予第一数据一第一版本号;
当第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;
当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;
当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
一生成数据的第一节点生成第一数据时,赋予第一数据一第一版本号;
一第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;
当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;
当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
采用了上述技术方案后,与现有技术相比,具有以下有益效果:
1.利用版本号和逻辑正确自检,取代原采用md5计算判断数据的一致性的方式后,节省cpu开销;
2.数据仅在使用时才拉取,减少不必要的数据同步;
3.定时拉取,定时推送解决单纯变化时推送可能出现的推送遗漏和失败的情况。
附图说明
图1为符合本发明一优选实施例中分布式数据处理系统的系统结构示意图;
图2为符合本发明一优选实施例中分布式数据处理方法的流程示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
参阅图1,本发明公开了一种分布式数据处理系统,基于分布式集群协同工作,包括有两个节点,分别为第一节点及第二节点,两节点作为不同集群,分别对数据作各自需求的处理,其中第一节点为生成数据的节点,第二节点则从第一节点处获取数据,并对所获取的数据进行处理。该实施例中,第一节点在生成第一数据时,对第一数据赋予第一版本号,例如第一版本号为1、1.0、A等使用数字、字母、符号等表示的标识号,第一版本号在赋予至第一数据时,可嵌入第一数据的数据包内,或与第一数据的数据包关联,使得对第一数据读取时,将获取到该第一版本号。在第二节点侧,当其需要使用第一节点内的数据时,将从第一节点拉取第一节点内生成的第一数据,且对第一数据拉取时,一并将第一版本号从第一节点获取。获取后,第二节点便可使用该第一数据,使用时,第二节点也将缓存该第一数据,以及与第一数据所关联的第一版本号。例如,这第一数据记录了两个相互比赛的队伍的出赛人员,第二节点获取到第一数据后,便可知晓这两支队伍的出赛人员信息,以及第一版本号的数据,其所包括各出赛人员信息(如队伍1:A、B、C、D、E,队伍2:V、W、X、Y、Z)。
由于第一节点为对某类型数据的更新及生成节点,因此,一定时间后,基于该第一数据,迭代有第二数据,例如,两队伍的出赛人员出现变化(如队伍1:A、B、C、D、F,队伍2:V、W、X、Y、Z),则第一节点将赋予该第二数据一第二版本号,且该第二版本号与第一版本号不同,呈相异状态,例如2、3、2.0、B等使用数字、字母、符号等表示的标识号,优选地,第二版本号所采用的标识号类型与第一版本号相同。且在第一数据迭代至第二数据后,第一节点将仅发送第二版本号至第二节点(但不将第二数据的数据本身发送至第二节点)。第二节点在接收到第二版本号时,将该第二版本号与自身缓存的第一版本号比较,由于第二版本号与第一版本号所不同,因此,本实施例中,第二节点将清除所缓存的第一数据及第一版本号,即第二节点呈空数据的状态。考虑到第二节点接收到第二版本号且,第二版本号与本地缓存的第一版本号不同,则表示原缓存的第一数据在第一节点处已出现变化,老数据将不能使用,因此,将清除老数据。且进一步地,即便在接收到第二版本号时,第二节点获知第一节点的数据已发生迭代,在本实施例中,第二节点将不会获取迭代后的数据,第一节点也不会主动地将迭代后的数据发送至第二节点,一方面节省第一节点和第二节点间的数据交互负载,另一方面,与以往方式所不同的,允许第二节点不缓存数据。当第二节点再次需要使用数据时,才向第一节点发送数据拉取请求,并从第一节点拉取具有第二版本号的第二数据并加以使用,同时如第一数据般,将缓存具有第二版本号的第二数据。
通过上述结构设置,第二节点缓存老数据时,根据第一节点的数据更新而清除,允许空数据的情况,且第一节点与第二节点间的数据交互,仅出现在第一节点的数据迭代或第二节点的数据需要时,其他时刻将不具有数据交互,从而减少不必要的数据同步。
可以理解的是,第一数据、第二数据、第一版本号、第二版本号中的“第一”、“第二”并不代表首个、第二个数据,而是所有数据中的任意两个。
一优选实施例中,一方面为尽量减少第二节点的缓存压力,另一方面解决可能出现数据接收失败或数据遗漏的情况,第一节点将定期地向第二节点发送数据。具体地,第一节点基于第一周期向第二节点发送存储于第一节点内的当前数据的当前版本号,例如,数据迭代后的数据版本号为5.0(如第五数据),第二节点接收到最新的当前数据,及与当前数据关联的当前版本号后,将与自身缓存的第一版本号或第二版本号(或缓存有的任意版本号)比较,当当前版本号相同于第一版本号或第二版本号时,表示第一节点内的最新数据,与第二节点内缓存的数据相同,第二节点该缓存的数据无需清除或更新,将保留缓存的第一数据或第二数据;而当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据,使得第二节点呈空数据的状态,也就是说,通过第一节点的定期广播最新的当前数据和当前版本号,可清除第二节点内的老数据,或告知第二节点保留最新数据,进一步地节省第二节点的数据缓存压力,以及对老数据的摒弃。
另一优选实施例中,同样一方面为尽量减少第二节点的缓存压力,另一方面解决可能出现数据接收失败或数据遗漏的情况,第一节点再次出现数据迭代时,也将向第二节点发送数据。具体地,第一节点在第二数据的基础上,再次迭代形成第三数据时,将赋予该第三数据一第三版本号,且第三版本号与第一版本号及第二版本号均不同,例如,3、3.0、C、III等使用数字、字母、符号等表示的标识号,同样优选地,第三版本号所采用的标识号类型与第一版本号、第二版本号相同。且第一节点仅将迭代后的第三版本号发送至第二节点(不发送第三数据),第二节点也根据第三版本号的更新,清除缓存的具有有第一版本号的第一数据或具有第二版本号的第二数据。
再一优选实施例中,在第二节点侧,其将基于第二周期主动地向第一节点发送获取请求,以获取存储于第一节点内的当前数据的当前版本号,也就是说,第二节点主动地检测第一节点内的数据是否更新,若第一节点内的当前版本号与自身缓存的第一版本号或第二版本号不同时,将立即清除缓存数据,若相同时,仍将保留所缓存的第一数据或第二数据。
通过上述不同检测第一节点是否更新数据的方式,也即第一节点的数据更新时、第一节点定期地、第二节点定期地检测,可解决在数据单纯变化时推送可能出现的推送遗漏和失败的情况。
且可以理解的是,若在上述检测过程中,第二节点内的数据已被清除,即呈空数据状态时,由于所接收到的当前版本号不具有比较对象,其第二节点将丢弃当前版本号,继续维持自身的空数据状态。
进一步地,在第二节点需要使用数据时,首先将检测是否缓存有本地数据,若第二节点缓存有本地数据时,第二节点便直接使用本地数据内存储的第一数据或第二数据。可以理解的是,如上文所述的,随第一节点的数据更新时、第一节点定期地、第二节点定期地检测第二节点内的版本号是否与第一节点的最新的当前版本号一致时,若不一致,将对自身的缓存数据清除,反之,若第二节点的自身缓存数据未被清除,则表示第二节点内缓存的数据实际与第一节点内最新的当前数据一致,便可正常使用。另一情况下,当第二节点本地未缓存有数据时,表示第二节点在前序过程中,已由于第一节点的数据更新而被清除。在此情况下,第二节点缓存为空数据,其将从第一节点拉取最新的数据以使用,同时拉取该当前数据具有的当前版本号以缓存。也就是说,在第二节点需要使用数据时,才会从第一节点处拉取,不需要使用数据时,将不会从第一节点处拉取,从而保证所拉取的数据时刻为最新版本。且缓存期间内,第一节点内的数据无论怎样变化,第二节点都不会去主动拉取,直至实际需要时。
第一版本号、第二版本号除用于帮助第二节点确定缓存的数据是否为最新外,还可用于验证所接收的数据是否与第一节点内的数据一致,或检测数据的正确性与完整性。除版本号外,第二节点接收第一数据或第二数据时,也将对第一数据或第二数据解析,通过对第一数据或第二数据的是否可解析性,以检测第一数据或第二数据的完整性。具体地,第二节点拉取数据之后,需要自行监测数据的逻辑性,保证数据的完整性,以确定该数据是否可使用。本实施例中数据一致性是指第一节点生成的数据与第二节点使用的数据为完全一致。考虑到在第二节点拉取的过程中,网络传输各种波动易导致完整性缺失(比如某个字节错误、遗漏、重复等),因此,需要对数据完整性作验证,而本实施例中,第一节点与第二节点间的数据交互是基于TCP协议在内网环境实施,一般不会出现无逻辑性的数据,因此,只需验证该数据不是纯粹的无意义字节流即可,对此,对数据可解析,便表示数据已被完整地从第一节点传输至第二节点。例如,第一节点传输至第二节点的数据包括字节码01010101111,第二节点可完整解析字节码01010101111,便可认为数据是完整的,再配合版本号一致,表示数据即为正确。若无法解析,便可视为数据无逻辑性,数据就不完整。相较于现有技术中使用md5严格校验数据一致性的方式,可节省大量的验证时间。如原使用md5验证的,验证时间为10ms级别,而采用本实施例中的验证方法,验证时间可降至微秒级。且考虑到实际场景中,数据的修改周期可达到1秒修改几十次,若每次均采用md5验证,将耗费大量的计算能力,因此本实施例中的校验方法,可在数据集中变化时段中极大地释放计算能力。
又一可选或优选地,第一版本号、第二版本号及第一节点每次迭代后生成的版本号连续地升序计数,例如,首次产生的数据的第一版本号计为1、1.0、A、I(或不从首数字、首字母、首符号开始),后第二版本号计为2、2.0、B、II,以此类推,方便版本号的生成。且上文所述的第一节点定期广播当前数据,与第二节点定期拉取数据中的第一周期、第二周期,可以是1s-60s间,优选地为10s。第一周期和第二周期的具体设置时间,可根据使用情景而定。例如,第一节点内的数据修改较为频繁时,第一周期和第二周期可设置较小,第一节点内的数据修改较为稀少时,第一周期和第二周期可设置较大。
实施例一
第一节点和第二节点为一数据库内的节点,该数据库应用于游戏类应用程序,第一节点所生成的数据为游戏类应用程序的竞技场中,用户自身与对战用户的出场对象,第二节点则计算各出场对象的战斗力叠加后用户自身与对战用户的队伍总战力。当用户修改出厂对象后,第一节点内便迭代出第一数据或在第一数据的基础上迭代出第二数据,一旦数据更新后,第一节点向第二节点发送当前数据的当前版本号,第二节点清除缓存数据或缓存数据。或当数据库需要计算队伍总战力时,即第二节点需要第一节点的数据时,将主动拉取第一节点内的数据(表示出场对象的情况),在第二节点不需要第一节点的数据时,将不会拉取,直至需要时。
实施例二
数据库内具有用于生成数据的第一节点,及与第一节点连接,对第一节点生成的数据作使用的第二节点、第三节点、第四节点,该数据库应用于游戏类应用程序,则同样地,该实施例中第一节点所生成的数据为游戏类应用程序的竞技场中,用户自身与对战用户的出场对象,第二节点则计算各出场对象的战斗力叠加后用户自身与对战用户的队伍总战力,第三节点则计算各出场对象的随机性参数,例如暴击率、闪避率、格挡率等,第四节点则计算各出场对象的属性参数,例如金木水火土属性中一种,各属性的相生相克其他属性参数等。当用户修改出厂对象后,第一节点内便迭代出第一数据或在第一数据的基础上迭代出第二数据,一旦数据更新后,第一节点向第二节点、第三节点、第四节点发送当前数据的当前版本号,第二节点、第三节点、第四节点清除缓存数据或缓存数据。或当数据库需要计算队伍总战力时,即第二节点需要第一节点的数据时,将主动拉取第一节点内的数据(表示出场对象的情况),在第二节点不需要第一节点的数据时,将不会拉取,直至需要时;当游戏类应用程序在双方对战时,根据随机性计算,第三节点将获取先从第一节点获取所有出场对象,并根据各出场对象的随机性参数,并在对战时根据概率选择是否触发;第四节点则在对战开始前,或开始时,自第一节点获取所有的出场对象,并根据双方出场对象的属性相克关系,重新计算可对对方产生的伤害。以上第三节点和第四节点也仅在需要时向第一节点拉取。
参阅图2,示出了符合本发明一优选实施例中分布式数据处理方法,包括以下步骤:
S100:一生成数据的第一节点生成第一数据时,赋予第一数据一第一版本号;
S200:一第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
S300:当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;
S400:当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;
S500:当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
又一实施例中,还公开了一种服务器,包括数据库,数据库包括生成数据的第一节点及自第一节点接收数据的第二节点,第一节点生成第一数据时,赋予第一数据一第一版本号;当第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
另一方面,本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:一生成数据的第一节点生成第一数据时,赋予第一数据一第一版本号;一第二节点需要使用数据时,自第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;当第一节点生成基于第一数据所迭代的第二数据时,赋予第二数据一与第一版本号不同的第二版本号,并将第二版本号发送至第二节点;当第二节点接收第二版本号时,将第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,第二节点清除第一数据及第一版本号;当第二节点再次需要使用数据时,自第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据。
应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。
Claims (8)
1.一种分布式数据处理系统,包括生成数据的第一节点及自所述第一节点接收数据的第二节点,其特征在于,
所述第一节点生成第一数据时,赋予所述第一数据一第一版本号;
当所述第二节点需要使用数据时,自所述第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当所述第一节点生成基于所述第一数据所迭代的第二数据时,赋予所述第二数据一与所述第一版本号不同的第二版本号,并将所述第二版本号发送至所述第二节点;
当所述第二节点接收所述第二版本号时,将所述第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,所述第二节点清除第一数据及第一版本号,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,自所述第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据;
所述第二节点基于第二周期向所述第一节点发送获取请求,以获取存储于所述第一节点内的当前数据的当前版本号;
所述第二节点将所述当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,检测是否缓存有本地数据;
当所述第二节点缓存有本地数据时,所述第二节点使用本地数据内存储的第一数据或第二数据;
当所述第二节点缓存为空数据时,所述第二节点自所述第一节点拉取具有当前版本号的当前数据以使用,并缓存具有当前版本号的当前数据。
2.如权利要求1所述的分布式数据处理系统,其特征在于,
所述第一节点基于第一周期向所述第二节点发送存储于第一节点内的当前数据的当前版本号;
所述第二节点将所述当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据。
3.如权利要求1所述的分布式数据处理系统,其特征在于,
当所述第一节点生成基于所述第二数据所迭代的第三数据时,赋予所述第三数据一与所述第一版本号、第二版本号不同的第三版本号,并将所述第三版本号发送至所述第二节点;
所述第二节点清除具有第一版本号的第一数据或具有第二版本号的第二数据。
4.如权利要求1所述的分布式数据处理系统,其特征在于,
当所述第二节点接收所述第一数据或第二数据时,所述第二节点判断是否可解析所述第一数据或第二数据,以检测所述第一数据或第二数据的完整性。
5.如权利要求1所述的分布式数据处理系统,其特征在于,
所述第一版本号、第二版本号及第一节点每次迭代后生成的版本号连续地升序计数;
所述第一节点基于第一周期向所述第二节点发送存储于第一节点内的当前数据的当前版本号,或所述第二节点基于第二周期向所述第一节点发送获取请求,以获取存储于所述第一节点内的当前数据的当前版本号时,所述第一周期或第二周期在1s-60s间。
6.一种分布式数据处理方法,其特征在于,包括以下步骤:
一生成数据的第一节点生成第一数据时,赋予所述第一数据一第一版本号;
一第二节点需要使用数据时,自所述第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当所述第一节点生成基于所述第一数据所迭代的第二数据时,赋予所述第二数据一与所述第一版本号不同的第二版本号,并将所述第二版本号发送至所述第二节点;
当所述第二节点接收所述第二版本号时,将所述第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,所述第二节点清除第一数据及第一版本号,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,自所述第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据;
所述第二节点基于第二周期向所述第一节点发送获取请求,以获取存储于所述第一节点内的当前数据的当前版本号;
所述第二节点将所述当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,检测是否缓存有本地数据;
当所述第二节点缓存有本地数据时,所述第二节点使用本地数据内存储的第一数据或第二数据;
当所述第二节点缓存为空数据时,所述第二节点自所述第一节点拉取具有当前版本号的当前数据以使用,并缓存具有当前版本号的当前数据。
7.一种服务器,包括数据库,所述数据库包括生成数据的第一节点及自所述第一节点接收数据的第二节点,其特征在于,
所述第一节点生成第一数据时,赋予所述第一数据一第一版本号;
当所述第二节点需要使用数据时,自所述第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当所述第一节点生成基于所述第一数据所迭代的第二数据时,赋予所述第二数据一与所述第一版本号不同的第二版本号,并将所述第二版本号发送至所述第二节点;
当所述第二节点接收所述第二版本号时,将所述第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,所述第二节点清除第一数据及第一版本号,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,自所述第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据;
所述第二节点基于第二周期向所述第一节点发送获取请求,以获取存储于所述第一节点内的当前数据的当前版本号;
所述第二节点将所述当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,检测是否缓存有本地数据;
当所述第二节点缓存有本地数据时,所述第二节点使用本地数据内存储的第一数据或第二数据;
当所述第二节点缓存为空数据时,所述第二节点自所述第一节点拉取具有当前版本号的当前数据以使用,并缓存具有当前版本号的当前数据。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
一生成数据的第一节点生成第一数据时,赋予所述第一数据一第一版本号;
一第二节点需要使用数据时,自所述第一节点拉取具有第一版本号的第一数据以使用,并缓存具有第一版本号的第一数据;
当所述第一节点生成基于所述第一数据所迭代的第二数据时,赋予所述第二数据一与所述第一版本号不同的第二版本号,并将所述第二版本号发送至所述第二节点;
当所述第二节点接收所述第二版本号时,将所述第二版本号与缓存的第一版本号比较,在第二版本号与第一版本号相异下,所述第二节点清除第一数据及第一版本号,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,自所述第一节点拉取具有第二版本号的第二数据以使用,并缓存具有第二版本号的第二数据;
所述第二节点基于第二周期向所述第一节点发送获取请求,以获取存储于所述第一节点内的当前数据的当前版本号;
所述第二节点将所述当前版本号与缓存的第一版本号或第二版本号比较,当当前版本号相同于第一版本号或第二版本号时,保留缓存的第一数据或第二数据;当当前版本号相异于第一版本号或第二版本号时,清除具有第一版本号的第一数据或具有第二版本号的第二数据,使得第二节点呈空数据的状态;
当所述第二节点再次需要使用数据时,检测是否缓存有本地数据;
当所述第二节点缓存有本地数据时,所述第二节点使用本地数据内存储的第一数据或第二数据;
当所述第二节点缓存为空数据时,所述第二节点自所述第一节点拉取具有当前版本号的当前数据以使用,并缓存具有当前版本号的当前数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911375321.9A CN111078798B (zh) | 2019-12-27 | 2019-12-27 | 分布式数据处理系统、方法、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911375321.9A CN111078798B (zh) | 2019-12-27 | 2019-12-27 | 分布式数据处理系统、方法、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078798A CN111078798A (zh) | 2020-04-28 |
CN111078798B true CN111078798B (zh) | 2024-01-30 |
Family
ID=70318491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911375321.9A Active CN111078798B (zh) | 2019-12-27 | 2019-12-27 | 分布式数据处理系统、方法、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078798B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1271491A (zh) * | 1997-04-15 | 2000-10-25 | Mci全球通讯公司 | 一种用于交换电话通讯的系统、方法和制造产品 |
CN103561095A (zh) * | 2013-11-04 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种数据同步方法、节点及存储服务集群 |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
-
2019
- 2019-12-27 CN CN201911375321.9A patent/CN111078798B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1271491A (zh) * | 1997-04-15 | 2000-10-25 | Mci全球通讯公司 | 一种用于交换电话通讯的系统、方法和制造产品 |
CN103561095A (zh) * | 2013-11-04 | 2014-02-05 | 金蝶软件(中国)有限公司 | 一种数据同步方法、节点及存储服务集群 |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111078798A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fujimoto | Parallel and distributed simulation | |
Shi et al. | Modeling object characteristics of dynamic web content | |
CN103297529B (zh) | 基于时间戳的树型结构数据同步方法 | |
US8051207B2 (en) | Inferring server state in s stateless communication protocol | |
US9313015B2 (en) | HTTP-based synchronization method and apparatus | |
CN103002024B (zh) | 应用程序升级系统和应用程序升级方法 | |
WO2017097011A1 (zh) | 基于集群节点间即时拷贝的会话同步方法 | |
CN101909084A (zh) | 终端软件升级的方法、系统和业务平台系统 | |
CN110752943B (zh) | 一种输电线路分布式故障诊断系统及方法 | |
CN107038017B (zh) | 渲染数据获取的方法和装置 | |
CN102594809B (zh) | 一种文件快速扫描方法和系统 | |
CN108259618B (zh) | 一种同步的数据交互处理方法及装置 | |
CN103841111A (zh) | 一种防止数据重复提交的方法和服务器 | |
CN108234171A (zh) | 一种数据处理方法、系统以及装置 | |
CN112235269B (zh) | 一种分布式模式的拟态括号实现装置及方法 | |
CN106452973A (zh) | 维持通信链路长连接的方法、装置及终端 | |
KR20190099816A (ko) | 웹 페이지 위변조 탐지 방법 및 시스템 | |
CN115189908B (zh) | 一种基于网络数字孪生体的随机攻击生存性评估方法 | |
CN111078798B (zh) | 分布式数据处理系统、方法、服务器及计算机可读存储介质 | |
CN109587210A (zh) | 一种多浏览器兼容的信息推送的实现方法 | |
US8055782B2 (en) | System and method for generating exception delay messages when messages are delayed | |
CN115052003B (zh) | 数据同步方法、相关装置和介质 | |
Srinivasan | Efficient data consistency in HLA/DIS++ | |
CN109617960A (zh) | 一种基于属性化分离的web AR数据呈现方法 | |
CN113987477A (zh) | 一种分布式ai系统的防投毒方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |