CN107741994B - 一种数据更新方法及装置 - Google Patents
一种数据更新方法及装置 Download PDFInfo
- Publication number
- CN107741994B CN107741994B CN201711096589.XA CN201711096589A CN107741994B CN 107741994 B CN107741994 B CN 107741994B CN 201711096589 A CN201711096589 A CN 201711096589A CN 107741994 B CN107741994 B CN 107741994B
- Authority
- CN
- China
- Prior art keywords
- user data
- update
- updating
- timestamp
- server
- 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
Images
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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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
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)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种数据更新方法及装置,应用于服务端,通过接收用户通过客户端发送的数据更新请求;确定服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;获取更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方式,在实现数据更新的基础上,减少了***负载过大的情况的发生。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种数据更新方法及装置。
背景技术
随着互联网的普及,信息实时共享与同步越来越重要,但由于各客户端的不对称性,使得它不可能工作于P2P模式,只能以客户端/服务端模式工作。
目前客户端/服务端模式,主要是针对每个用户在服务端设置与其对应的服务端用户数据表,在客户端设置与其对应的客户端用户数据表,当存在更新需求时,直接更新服务端用户数据表,并将客户端用户数据表与更新后的服务端用户数据表进行数据同步的方式,实现数据更新。然而,随着数据量的增大,虽然目前客户端/服务端模式可实现数据更新,但是往往会导致***负载过大的问题。
有鉴于此,提供一种数据更新方法及装置,以减少目前客户端/服务端模式在实现数据更新时,***负载过大的情况的发生。
发明内容
有鉴于此,本发明的目的在于提供一种数据更新方法及装置,以减少目前客户端/服务端模式在实现数据更新时,***负载过程的情况的发生,具体实施方案如下:
一种数据更新方法,应用于服务端,该方法包括:
接收用户通过客户端发送的数据更新请求;
确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表;
确定所述服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
获取所述更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;
针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;
基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表。
优选的,所述针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,包括:
针对每条所述更新数据项,确定所述更新数据项是否指示有所述用户;
若所述更新数据项指示有所述用户,确定所述更新数据项指示的操作类型;
基于所述操作类型更新所述服务端用户数据表。
优选的,所述基于所述操作类型更新所述服务端用户数据表,包括:
确定所述操作类型是否指示有数据信息标识;
若是,从服务端数据记录表中获取与所述数据信息标识对应数据信息;
基于所述操作类型和数据信息更新所述服务端用户数据表。
优选的,所述基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表,包括:
确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
生成分别与所确定的每条用户数据项对应的更新信息;
向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被该更新信息更新的用户数据项的最后一次更新的时间戳。
优选的,所述数据更新请求还携带更新数量;在所述确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项之后,该方法还包括:
从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述更新数量相同的用户数据项;
所述生成分别与所确定的每条用户数据项对应的更新信息,包括:生成分别与所选择的每条用户数据项对应的更新信息。
一种数据更新装置,应用于服务端,该装置包括:
数据更新请求接收单元,用于接收用户通过客户端发送的数据更新请求;
数据表确定单元,用于确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表;
第一时间戳确定单元,用于确定所述服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
更新数据项获取单元,用于获取所述更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;
第一更新单元,用于针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;
第二更新单元,用于基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表。
优选的,所述第一更新单元,包括:
第一确定单元,用于针对每条所述更新数据项,确定所述更新数据项是否指示有所述用户;
第二确定单元,用于若所述更新数据项指示有所述用户,确定所述更新数据项指示的操作类型;
第一更新子单元,用于基于所述操作类型更新所述服务端用户数据表。
优选的,所述第一更新子单元,包括:
数据信息标识确定单元,用于确定所述操作类型是否指示有数据信息标识;
数据信息获取单元,用于若是,从服务端数据记录表中获取与所述数据信息标识对应数据信息;
服务端用户数据表更新单元,用于基于所述操作类型和数据信息更新所述服务端用户数据表。
优选的,所述第二更新单元,包括:
第二时间戳确定单元,用于确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
用户数据项确定单元,用于确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
更新信息生成单元,用于生成分别与所确定的每条用户数据项对应的更新信息;
客户端用户数据表更新单元,用于向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被该更新信息更新的用户数据项的最后一次更新的时间戳。
优选的,所述数据更新请求还携带更新数量,所述第二更新单元还包括:
选择单元,用于从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述更新数量相同的用户数据项;
所述更新信息生成单元,具体用于:生成分别与所选择的每条用户数据项对应的更新信息。
本申请实施例提供一种数据更新方法及装置,应用于服务端,通过接收用户通过客户端发送的数据更新请求;确定服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;获取更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方式,在实现数据更新的基础上,减少了***负载过大的情况的发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据更新方法流程图;
图2为本申请实施例提供的一种针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表的方法流程图;
图3为本申请实施例提供的一种基于所述操作类型更新所述服务端用户数据表的方法流程图;
图4为本申请实施例提供的一种基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方法流程图;
图5为本申请实施例提供的另一种基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方法流程图;
图6为本申请实施例提供的一种数据更新装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种数据更新方法流程图。
具体的,如图1所示的数据更新方法应用于服务端,如图1所示,该方法包括:
S101、接收用户通过客户端发送的数据更新请求;
可选的,用户通过其持有的终端可安装客户端,用户应用终端上的客户端,通过在客户端上输入用于登录所述客户端的合法账号,以登录客户端,进而用户可通过所述客户端向与所述客户端相对应服务端发送数据更新请求。
在本申请实施例中,优选的,所述服务端为客户端提供服务支持,用户可通过不同终端上的客户端向所述服务端发送数据更新请求。
可选的,所述客户端为应用程序的前端,所述服务端为为所述应用程序提供服务支持的服务器集群。以上仅仅是本申请实施例提供的客户端/服务端的优选方式,发明人可根据自己的需求任意设置客户端/服务端的具体表现形式,在此不做限定。
S102、确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表;
可选的,服务端在接收到数据更新请求后,会确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表。
在本申请实施例中,优选的,服务端中预先设置有一个更新日志表和分别与每个用户相关的服务端用户数据表,并且,预先设置的更新日志表的初始值为空,分别与每个用户相关的服务端用户数据表的初始值也为空。
例如,在客户端对应的应用程序发布之前便在服务端创建一个初始值为空的更新日志表;所述应用程序发布之后,只要有用户通过所述应用程序对应的客户端注册账号,则在服务端为所述用户创建一个初始值为空的、与所述用户(也可认为是与所述用户的账号)相关的服务端用户数据表。
可选的,不论是用户通过客户端对其账号中的内容进行操作,还是服务端对应用所述应用程序的至少一个用户的账号中的内容进行操作(即,针对每一个对用户的账号中的内容进行的操作),均针对所述操作生成更新数据项,并将所生成的更新数据项存储在所述更新日志表中。即,在本申请实施例中,优选的,针对每一次操作生成一条更新数据项,并将所生成的更新数据项存储在所述更新日志表中。
在本申请实施例中,优选的,所述更新数据项至少包括:生成时间戳(所述生成时间戳为用于生成所述更新数据项的操作的操作时间,即,当存在对用户的账号中的内容进行的操作时,生成与此次操作对应的更新数据项,此次操作的时间为所生成的更新数据项的生成时间戳)。
以上仅仅是本申请实施例提供的更新数据项的优选方式,发明人可根据自己的需求任意设置更新数据项的具体内容,在此不做限定。
S103、确定所述服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
可选的,确定所述服务端用户数据表的第一时间戳,包括:确定所述服务端用户数据表中是否存在用户数据项;若确定所述服务端用户数据表中不存在用户数据项,则确定所述服务端用户数据表的第一时间戳为空;若确定所述服务端用户数据表中存在用户数据项(此时,第一时间戳不为空),则分别确定所述服务端用户数据表中每条用户数据项最后一次更新的时间戳,并将所确定的所有的最后一次更新的时间戳中的最大时间戳(这里的最大时间戳即为按照时间先后顺序,所确定的所有的最后一次更新的时间戳中表示时间最晚的时间戳)确定为第一时间戳。
S104、获取所述更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;
可选的,所述第一时间戳为空时,将所述更新日志表中的每一条更新数据项确定为获取到的一条所述更新日志表中的生成时间戳晚于所述第一时间戳的更新数据项;所述第一时间戳不为空时,从所述更新日志表中获取所有的生成时间戳晚于所述第一时间戳的更新数据项。
S105、针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的数据项的最后一次更新的时间戳;
可选的,针对步骤S104获取到的每条更新数据项而言,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳。
在本申请实施例中,优选的,所述更新数据项包括生成时间戳、操作类型和操作对象;其中,所述操作类型为添加用户数据项类型、删除用户数据项类型,或者,修改用户数据项类型;所述操作对象指示***作的用户(这里可以为用户的账号)。
进一步的,在本申请实施例中,优选的,在操作类型为添加用户数据项类型或修改用户数据项类型时,所述操作类型还指示有数据信息标识,所述数据信息标识对应有唯一的数据信息。
本申请实施例提供的一种数据更新方法中,还设置有服务端数据记录表。可选的,在客户端对应的应用程序发布之前便在服务端创建一个初始值为空的服务端数据记录表;当存在对用户的账号中的内容进行的操作时,生成与所述操作对应的更新数据项,并且,若所述操作的操作类型为修改用户数据项类型或添加用户数据项类型时,确定所述操作对应的数据信息,并为所述数据信息分配一个唯一的数据信息标识,将对应有唯一的数据信息标识的所述数据信息存储在所述服务端数据记录表中,并在生成的更新数据项中的操作类型指示有为所述数据信息分配的唯一的数据信息标识。
可选的,所述利用该更新数据项更新所述服务端用户数据表的方式包括:确定该更新数据项包括的操作对象是否指示发送所述数据更新请求的用户;若确定该更新数据项包括的操作对象指示发送所述数据更新请求的用户,则利用该更新数据项更新所述服务端用户数据表(此服务端用户数据表为与发送所述数据更新请求的用户相关的服务端用户数据表);否则,不利用该更新数据项更新所述服务端用户数据表。
可选的,若确定该更新数据项包括的操作对象指示发送所述数据更新请求的用户,则确定所述更新数据项包括的操作类型。
在本申请实施例中,优选的,当所述操作类型为删除用户数据项类型时,确定所述操作类型指示的待被删除的与发送所述数据更新请求的用户相关的所述服务端用户数据表中的用户数据项;删除所述服务端用户数据表中的所确定的用户数据项,并将所述更新数据项的生成时间戳确定为所述被删除的用户数据项的最后一次更新的时间戳。
在本申请实施例中,优选的,当所述操作类型为修改用户数据项类型时,确定所述操作类型指示的待被修改的与发送所述数据更新请求的用户相关的所述服务端用户数据表中的用户数据项,以及所述操作类型指示的数据信息标识;从所述服务端数据记录表中获取与所述操作类型指示的数据信息标识对应的数据信息;根据所获取的数据信息更新所述操作类型指示的所述服务端用户数据表中的待被修改的用户数据项。
在本申请实施例中,优选的,当所述操作类型为添加用户数据项类型时,确定所述操作类型指示的待被添加至与发送所述数据更新请求的用户相关的所述服务端用户数据表中的用户数据项中的数据信息的数据信息标识;从所述服务端数据记录表中获取与所确定的数据信息标识对应的数据信息;在与所述用户相关的服务端用户数据表中添加一条用户数据项,所述被添加的用户数据项的数据信息为从所述服务端数据记录表中获取到的与所确定的数据信息标识对应的数据信息。
S106、基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表。
可选的,基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表,指的是:将数据更新请求指示的客户端用户数据表与更新后的服务端用户数据表进行同步更新。
为了便于对本申请实施例提供的一种数据更新方法的理解,现对本申请实施例提供的一种数据更新方法中的“针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表”的方法进行详细介绍。
图2为本申请实施例提供的一种针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表的方法流程图。
如图2所示,该方法包括:
S201、针对每条所述更新数据项,确定所述更新数据项是否指示有所述用户;
S202、若所述更新数据项指示有所述用户,确定所述更新数据项指示的操作类型;
S203、基于所述操作类型更新所述服务端用户数据表。
为了便于对本申请实施例提供的一种数据更新方法的理解,现对本申请实施例提供的一种数据更新方法中的“基于所述操作类型更新所述服务端用户数据表”的方法进行详细介绍。
图3为本申请实施例提供的一种基于所述操作类型更新所述服务端用户数据表的方法流程图。
如图3所示,该方法包括:
S301、确定所述操作类型是否指示有数据信息标识;若是,执行步骤S302;
S302、从服务端数据记录表中获取与所述数据信息标识对应数据信息;
S303、基于所述操作类型和数据信息更新所述服务端用户数据表。
为了便于对本申请实施例提供的一种数据更新方法的理解,现对本申请实施例提供的一种数据更新方法中的“基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表”的方法进行详细介绍。
图4为本申请实施例提供的一种基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方法流程图。
如图4所示,该方法包括:
S401、确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
可选的,所述数据更新请求还携带与所述用户相关的客户端用户数据表的第二时间戳,与所述用户相关的客户端用户数据表存储于所述客户端中。
在本申请实施例中,优选的,在未对与所述用户相关的客户端用户数据表进行任何操作之前,所述客户端用户数据表为空。比如,用户通过客户端在所述客户端对应的应用程序中注册账号后,创建一个初始值为空的与所述用户相关的客户端用户数据表,并将该客户端用户数据表存储于所述客户端中。
可选的,当客户端用户数据表中不包括用户数据项时,确定所述客户端用户数据表中每条用户数据项最后一次更新的时间戳中的最大时间戳为空,即,第二时间戳为空。
S402、确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
可选的,从服务端用户数据表中的所有的用户数据项中,查找出最后一次更新的时间戳早于所述第二时间戳的各个用户数据项。其中,当所述第二时间戳为空时,确定所述服务端用户数据表中每条用户数据项的最后一次更新的时间戳均早于所述第二时间戳。
S403、生成分别与所确定的每条用户数据项对应的更新信息;
可选的,针对步骤S402所确定的每条用户数据项而言,生成与该条用户数据项对应的更新信息,并生成的所述更新信息返回给所述客户端,以便于所述客户端基于接收到的所述更新信息更新所述客户端用户数据表。
S404、向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被该更新信息更新的用户数据项的最后一次更新的时间戳。
可选的,所述更新信息包括操作类型,所述操作类型为用户数据项添加类型、用户数据项修改类型,或者,用户数据项删除类型。
当更新信息包括的操作类型为用户数据项添加类型时,在客户端用户数据表中添加一条用户数据项,该被添加的用户数据项的数据信息为所述更新信息指示的数据信息(其中,更新信息指示的数据信息为该更新信息对应的服务端用户数据表中的用户数据项的数据信息),并且,将该更新信息对应的服务端用户数据表中的用户数据项的最后一次更新的时间戳,确定为该被添加至客户端用户数据表中的用户数据项的最后一次更新的时间戳。
当更新信息包括的操作类型为用户数据项修改类型时,在客户端用户数据表中确定与该更新信息对应的待被修改的用户数据项,将该待被修改的用户数据项中的数据信息修改为该更新信息指示的数据信息(该更新信息指示的数据信息为与该更新信息对应的服务端用户数据表中的用户数据项的数据信息),并且,将该更新信息对应的服务端用户数据表中的用户数据项的最后一次更新的时间戳,确定为客户端用户数据表中的该被修改的用户数据项的最后一次更新的时间戳。
当更新信息包括的操作类型为用户数据项删除类型时,在客户端用户数据表中确定与该更新信息对应的待被删除的用户数据项,将该待被删除的用户数据项从客户端用户数据表中删除,并将该更新信息对应的服务端用户数据表中的用户数据项的最后一次更新的时间戳,确定为该客户端用户数据表中的该被删除的用户数据项的最后一次更新的时间戳。
为了便于对本申请实施例提供的一种数据更新方法的理解,现对本申请实施例提供的另一种基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方法进行详细介绍。
如图5所示,该方法包括:
S501、确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
S502、确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
S503、从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述更新数量相同的用户数据项;
S504、生成分别与所选择的每条用户数据项对应的更新信息;
S505、向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被该更新信息更新的用户数据项的最后一次更新的时间戳。
进一步的,本申请实施例提供的一种数据更新方法还包括:接收与所述数据更新请求相关的数据翻页更新请求,所述数据翻页更新请求指示每页中的数据条数;确定客户端用户数据表中的每条用户数据项的最后一次更新的时间戳中的最大时间戳;确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述最大时间戳的用户数据项;从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述数据条数相同的用户数据项;生成分别与所选择的每条用户数据项对应的更新信息;向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被该更新信息更新的用户数据项的最后一次更新的时间戳。
本申请实施例提供一种数据更新方法,应用于服务端,通过接收用户通过客户端发送的数据更新请求;确定服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;获取更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方式,在实现数据更新的基础上,减少了***负载过大的情况的发生。
图6为本申请实施例提供的一种数据更新装置的结构示意图。
如图6所示的数据更新装置应用于服务端,该装置包括:
数据更新请求接收单元61,用于接收用户通过客户端发送的数据更新请求;
数据表确定单元62,用于确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表;
第一时间戳确定单元63,用于确定所述服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
更新数据项获取单元64,用于获取所述更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;
第一更新单元65,用于针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;
第二更新单元66,用于基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表。
可选的,所述第一更新单元,包括:第一确定单元,用于针对每条所述更新数据项,确定所述更新数据项是否指示有所述用户;第二确定单元,用于若所述更新数据项指示有所述用户,确定所述更新数据项指示的操作类型;第一更新子单元,用于基于所述操作类型更新所述服务端用户数据表。
可选的,所述第一更新子单元,包括:数据信息标识确定单元,用于确定所述操作类型是否指示有数据信息标识;数据信息获取单元,用于若是,从服务端数据记录表中获取与所述数据信息标识对应数据信息;服务端用户数据表更新单元,用于基于所述操作类型和数据信息更新所述服务端用户数据表。
可选的,所述第二更新单元,包括:
第二时间戳确定单元,用于确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
用户数据项确定单元,用于确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
更新信息生成单元,用于生成分别与所确定的每条用户数据项对应的更新信息;
客户端用户数据表更新单元,用于向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被该更新信息更新的用户数据项的最后一次更新的时间戳。
进一步的,所述数据更新请求还携带更新数量,本申请实施例提供的一种第二更新单元还包括选择单元,用于从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述更新数量相同的用户数据项。相应的,所述更新信息生成单元,具体用于:生成分别与所选择的每条用户数据项对应的更新信息。
本申请实施例提供一种数据更新装置,应用于服务端,通过接收用户通过客户端发送的数据更新请求;确定服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;获取更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表的方式,在实现数据更新的基础上,减少了***负载过大的情况的发生。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种数据更新方法,其特征在于,应用于服务端,该方法包括:
接收用户通过客户端发送的数据更新请求;
确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表;
确定所述服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
获取所述更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;
针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;
基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表,包括:
确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
生成分别与所确定的每条用户数据项对应的更新信息;
向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被所述更新信息更新的用户数据项的最后一次更新的时间戳。
2.根据权利要求1所述的方法,其特征在于,所述针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,包括:
针对每条所述更新数据项,确定所述更新数据项是否指示有所述用户;
若所述更新数据项指示有所述用户,确定所述更新数据项指示的操作类型;
基于所述操作类型更新所述服务端用户数据表。
3.根据权利要求2所述的方法,其特征在于,所述基于所述操作类型更新所述服务端用户数据表,包括:
确定所述操作类型是否指示有数据信息标识;
若是,从服务端数据记录表中获取与所述数据信息标识对应数据信息;
基于所述操作类型和数据信息更新所述服务端用户数据表。
4.根据权利要求1所述的方法,其特征在于,所述数据更新请求还携带更新数量;在所述确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项之后,该方法还包括:
从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述更新数量相同的用户数据项;
所述生成分别与所确定的每条用户数据项对应的更新信息,包括:生成分别与所选择的每条用户数据项对应的更新信息。
5.一种数据更新装置,其特征在于,应用于服务端,该装置包括:
数据更新请求接收单元,用于接收用户通过客户端发送的数据更新请求;
数据表确定单元,用于确定服务端存储的更新日志表和与所述用户相关的服务端用户数据表;
第一时间戳确定单元,用于确定所述服务端用户数据表的第一时间戳,所述第一时间戳为所述服务端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
更新数据项获取单元,用于获取所述更新日志表中的所有的生成时间戳晚于所述第一时间戳的更新数据项;
第一更新单元,用于针对每条所述更新数据项,利用该更新数据项更新所述服务端用户数据表,并将该更新数据项的生成时间戳确定为所述服务端用户数据表中被该更新数据项更新的用户数据项的最后一次更新的时间戳;
第二更新单元,用于基于更新后的服务端用户数据表更新所述数据更新请求指示的客户端用户数据表;
第二时间戳确定单元,用于确定所述数据更新请求携带的与所述用户相关的客户端用户数据表的第二时间戳,所述第二时间戳为所述客户端用户数据表中的每条用户数据项最后一次更新的时间戳中的最大时间戳;
用户数据项确定单元,用于确定更新后的服务端用户数据表中的、最后一次更新的时间戳早于所述第二时间戳的用户数据项;
更新信息生成单元,用于生成分别与所确定的每条用户数据项对应的更新信息;
客户端用户数据表更新单元,用于向所述客户端返回所生成的更新信息,以便于所述客户端利用所述更新信息更新所述客户端用户数据表,并将所述更新信息对应的用户数据项的最后一次更新的时间戳确定为所述客户端用户数据表中被所述更新信息更新的用户数据项的最后一次更新的时间戳。
6.根据权利要求5所述的装置,其特征在于,所述第一更新单元,包括:
第一确定单元,用于针对每条所述更新数据项,确定所述更新数据项是否指示有所述用户;
第二确定单元,用于若所述更新数据项指示有所述用户,确定所述更新数据项指示的操作类型;
第一更新子单元,用于基于所述操作类型更新所述服务端用户数据表。
7.根据权利要求6所述的装置,其特征在于,所述第一更新子单元,包括:
数据信息标识确定单元,用于确定所述操作类型是否指示有数据信息标识;
数据信息获取单元,用于若是,从服务端数据记录表中获取与所述数据信息标识对应数据信息;
服务端用户数据表更新单元,用于基于所述操作类型和数据信息更新所述服务端用户数据表。
8.根据权利要求5所述的装置,其特征在于,所述数据更新请求还携带更新数量,所述第二更新单元还包括:
选择单元,用于从所确定的用户数据项中,按照所述用户数据项的最后一次更新的时间戳的先后顺序,选择与所述更新数量相同的用户数据项;
所述更新信息生成单元,具体用于:生成分别与所选择的每条用户数据项对应的更新信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711096589.XA CN107741994B (zh) | 2017-11-09 | 2017-11-09 | 一种数据更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711096589.XA CN107741994B (zh) | 2017-11-09 | 2017-11-09 | 一种数据更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107741994A CN107741994A (zh) | 2018-02-27 |
CN107741994B true CN107741994B (zh) | 2021-09-07 |
Family
ID=61234356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711096589.XA Active CN107741994B (zh) | 2017-11-09 | 2017-11-09 | 一种数据更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107741994B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067913A (zh) * | 2018-09-19 | 2018-12-21 | 量子云未来(北京)信息科技有限公司 | 一种维持数据同步的方法及装置 |
CN111835855A (zh) * | 2020-07-17 | 2020-10-27 | 浪潮软件股份有限公司 | 一种数据同步方法及*** |
CN112765275A (zh) * | 2021-01-26 | 2021-05-07 | 成都佳发安泰教育科技股份有限公司 | 基于单一时间坐标系的数据同步交换方法、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904887A (zh) * | 2012-09-26 | 2013-01-30 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和*** |
CN103442042A (zh) * | 2013-08-14 | 2013-12-11 | 福建天晴数码有限公司 | 增量数据同步方法及*** |
CN103440317A (zh) * | 2013-08-28 | 2013-12-11 | 电子科技大学 | 基于数据库时间标签的增量数据查询方法 |
CN106648917A (zh) * | 2016-09-19 | 2017-05-10 | 福建天泉教育科技有限公司 | 一种差异更新缓存数据的方法及*** |
CN106844689A (zh) * | 2017-01-23 | 2017-06-13 | 北京皮尔布莱尼软件有限公司 | 一种分页数据同步方法、装置及*** |
CN107229649A (zh) * | 2016-03-25 | 2017-10-03 | 腾讯科技(深圳)有限公司 | 数据更新***及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101990119B (zh) * | 2009-08-03 | 2014-11-12 | 鸿富锦精密工业(深圳)有限公司 | 音乐视频服务器及其音乐视频个性化设置方法 |
CN103841004B (zh) * | 2012-11-26 | 2017-12-22 | 腾讯科技(深圳)有限公司 | 信息显示方法及信息服务器 |
CN103916474B (zh) * | 2014-04-04 | 2018-05-22 | 北京搜狗科技发展有限公司 | 缓存时间的确定方法、装置及*** |
CN105243067B (zh) * | 2014-07-07 | 2019-06-28 | 北京明略软件***有限公司 | 一种实现实时增量同步数据的方法及装置 |
EP3356961B1 (en) * | 2015-10-02 | 2020-05-27 | Google LLC | Peer-to-peer syncable storage system |
CN106649415B (zh) * | 2015-11-03 | 2019-12-20 | 广州市动景计算机科技有限公司 | 客户端数据检查更新方法及装置 |
-
2017
- 2017-11-09 CN CN201711096589.XA patent/CN107741994B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904887A (zh) * | 2012-09-26 | 2013-01-30 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和*** |
CN103442042A (zh) * | 2013-08-14 | 2013-12-11 | 福建天晴数码有限公司 | 增量数据同步方法及*** |
CN103440317A (zh) * | 2013-08-28 | 2013-12-11 | 电子科技大学 | 基于数据库时间标签的增量数据查询方法 |
CN107229649A (zh) * | 2016-03-25 | 2017-10-03 | 腾讯科技(深圳)有限公司 | 数据更新***及方法 |
CN106648917A (zh) * | 2016-09-19 | 2017-05-10 | 福建天泉教育科技有限公司 | 一种差异更新缓存数据的方法及*** |
CN106844689A (zh) * | 2017-01-23 | 2017-06-13 | 北京皮尔布莱尼软件有限公司 | 一种分页数据同步方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107741994A (zh) | 2018-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101064630B (zh) | 一种数据同步方法及*** | |
CN107741994B (zh) | 一种数据更新方法及装置 | |
CN111176976A (zh) | 测试数据的生成方法和装置、存储介质及电子装置 | |
CN110703980B (zh) | 一种文件传输方法及装置 | |
CN111901222B (zh) | 信息处理方法及信息处理装置 | |
CN106933614B (zh) | 一种单页面应用升级方法及装置 | |
CN110162529B (zh) | 一种数据处理方法、业务服务器及数据处理*** | |
CN108196787B (zh) | 集群存储***的配额管理方法以及集群存储*** | |
CN107066570A (zh) | 数据管理方法及装置 | |
CN108390933B (zh) | 消息分发方法、装置、服务器及存储介质 | |
US20140025723A1 (en) | Cloud storage system and data storage and sharing method based on the system | |
CN109949026B (zh) | 一种红包信息生成方法、装置、终端及服务器 | |
JP2015522879A (ja) | オフラインメッセージを提供するサービス装置、方法及び記憶媒体 | |
US10158642B2 (en) | Coherent distributed logging | |
CN111064776B (zh) | 区块链中区块的生成方法、记账节点及存储介质 | |
CN106911769B (zh) | 云平台路由数据的处理方法和云平台的物理服务器 | |
CN109213955B (zh) | 数据处理方法及相关设备 | |
CN109391658B (zh) | 一种账号数据同步方法及其设备、存储介质、终端 | |
CN109842497B (zh) | Dns服务器的配置更新的方法及装置、终端设备和配置更新*** | |
CN103905512A (zh) | 一种数据处理方法和设备 | |
CN106657195B (zh) | 任务处理方法和中继设备 | |
CN104239486A (zh) | 一种数据处理的方法、***以及相关设备 | |
CN109144991B (zh) | 动态分表的方法、装置、电子设备和计算机可存储介质 | |
JP2007299019A (ja) | データ通信システム、サーバ装置及びそれに用いるデータ通信方法並びにそのプログラム | |
CN109241704A (zh) | 新脚本的灰度发布方法和装置 |
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 |