CN106657170B - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN106657170B CN106657170B CN201510713256.1A CN201510713256A CN106657170B CN 106657170 B CN106657170 B CN 106657170B CN 201510713256 A CN201510713256 A CN 201510713256A CN 106657170 B CN106657170 B CN 106657170B
- Authority
- CN
- China
- Prior art keywords
- event
- node
- file
- file tree
- tree
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例涉及通信技术领域,尤其涉及一种数据同步方法及装置,用以提高客户端设备执行数据同步的效率。本申请实施例中,根据文件树的更新信息确定出了包括节点增加和/或节点删除操作的更新操作,进一步根据该更新操作对所述文件树进行更新,并根据对所述文件树的更新操作生成事件序列,为事件序列中的每个事件记录标记序号,从而可实现将事件序列中的事件记录分别发送给目标客户端设备的目的,进而实现了为目标客户端设备反馈增量更新数据,而非全量更新数据的数据同步方式,降低网络传输数据的负荷,提高客户端设备执行数据同步的效率。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据同步方法及装置。
背景技术
网络存储或者称云存储技术近年来发展迅速。网络存储技术一方面为客户端设备的本地文件提供网络存储功能,另一方面可以实现多客户端设备、多存储设备或者多平台储存数据的自动同步功能。
用户的文件以树状形式存储在服务器端,其它客户端设备与服务端通信,获取或者提交文件树的变化,实现各客户端设备与服务器之间的文件同步,省去了用户在各个客户端设备之间对比和拷贝文件的过程,为移动时代用户的文件存储需求提供了方便。
典型的同步流程为:客户端设备A的本地文件树发生变化后,提交变化信息到服务器,实现到客户端设备A与服务端数据一致;客户端设备B感知并获取到服务器端的变化信息,将客户端设备B的本地文件树同步为与服务器端一致。同步完成后,客户端设备A与客户端设备B的文件树结构达到一致。
如上所述,为了实现多客户端设备的数据同步,其中一个重要环节就是对比客户端设备与服务器端的文件树差异,并精确实现差异同步更新处理。
目前常见的同步方法是,客户端设备定时到服务器端请求更新,服务器端每次都返回当前服务器端最新的完整文件树结构,然后客户端设备与本地数据进行逐一对比并处理差异。
上述过程中,由于服务器每次均返回给客户端设备全量数据,一方面网络传输数据量大,另一方面客户端设备处理开销大,进而导致客户端设备执行数据同步的效率较低。
申请内容
本申请实施例提供一种数据同步方法及装置,用以根据文件树更新操作维护事件序列,进而为实现文件树的差量更新提供前提条件。
本申请实施例提供的数据同步方法,包括以下步骤:
接收客户端设备发送的数据同步命令,所述数据同步命令中携带文件树索引信息以及文件树的更新信息;
根据所述数据同步命令中携带的文件树索引信息,获取网络侧存储的文件树;
根据所述数据同步命令中携带的文件树的更新信息,确定对所述文件树的更新操作,所述更新操作包括节点增加和/或节点删除操作;
根据确定出的对所述文件树的更新操作,对所述文件树进行更新,并根据对所述文件树的更新操作生成事件序列;其中,所述事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。
优选地,若所述文件树的更新信息指示将与第一文件对应的节点从源位置移动至目标位置,则:
确定出的对所述文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;
所述第一事件记录的内容表示:在所述文件树上的所述目标位置增加与所述第一文件对应的节点;
所述第二事件记录的内容表示:将所述文件树上所述源位置上与所述第一文件对应的节点标记为删除。
优选地,若所述文件树的更新信息指示对第二文件进行重命名,则:
确定出的对所述文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录:
所述第一事件记录的内容表示:在所述文件树上与重命后前的所述第二文件对应的第一节点的父节点下增加一个与所述重命名后的第二文件对应的第二节点;
所述第二事件记录的内容表示:将所述文件树上与重命名前的所述第二文件对应的第一节点删除。
优选地,若所述文件树的更新信息指示更新第三文件,则:
确定出的对所述文件树的更新操作包括一个删除节点的操作和一个增加节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;
所述第一事件记录指示:将所述文件树上与更新前的第三文件对应的第三节点删除;
所述第二事件记录指示:在所述文件树上与更新前的第三文件对应的第三节点的父节点下增加一个与更新后的第三文件对应的第四节点。
优选地,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,所述第二事件记录的序号大于所述第一事件记录的序号。
优选地,若所述文件树的更新信息指示将第一子树从源位置移动至目标位置,所述第一子树包括一个根节点和N个子节点,所述第一子树的根节点对应第一文件夹,所述N个子节点分别对应所述第一文件夹下的文件夹或文件,N为大于或等于1的整数,则:
确定出的对所述文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一子序列和第二子序列,所述第一子序列包括N+1个增加节点操作的事件记录,所述第二子序列包括N+1个删除节点操作的事件记录;
所述第一子序列的内容表示:在所述文件树上所述目标位置增加第二子树,所述第二子树包括一个根节点和N个子节点,所述第二子树的根节点对应第一文件夹,所述第二子树的N个子节点分别对应所述第一文件夹下的文件夹或文件;
所述第二子序列的内容表示:将所述文件树上所述源位置处的第三子树删除,所述第三子树包括一个根节点和N个子节点,所述第三子树的根节点对应所述第一文件夹,所述第三子树的N个子节点分别对应所述第一文件夹下的文件夹或文件。
其中,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述第一子序列中的事件记录的序号小于所述第二子序列中的事件记录的序号;
所述第一子序列的N+1个事件记录中,增加所述第二子树的根节点的事件记录的序号最小;
所述第二子序列的N+1个事件记录中,删除所述第三子树的根节点的事件记录的序号最大。
优选地,若所述文件树的更新信息指示将第二文件夹进行重命名,所述第二文件夹对应第四子树,所述第四子树包括一个根节点和N个子节点,所述第四子树的根节点对应第二文件夹,所述N个子节点分别对应所述第二文件夹下的文件夹或文件,N为大于或等于1的整数,则:
确定出的对所述文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一子序列和第二子序列,所述第一子序列包括N+1个增加节点操作的事件记录,所述第二子序列包括N+1个删除节点操作的事件记录;
所述第一子序列的内容表示:在所述文件树上与所述第二文件夹对应的节点的父节点下增加第五子树,所述第五子树包括一个根节点和N个子节点,所述第五子树的根节点对应重命名前的所述第二文件夹,所述第五子树的N个子节点分别对应所述第二文件夹下的文件夹或文件;
所述第二子序列的内容表示:将所述文件树上的第六子树删除,所述第六子树包括一个根节点和N个子节点,所述第六子树的根节点对应重命名后的所述第二文件夹,所述第六子树的N个子节点分别对应所述第二文件夹下的文件夹或文件。
其中,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述第一子序列中的事件记录的序号小于所述第二子序列中的事件记录的序号;
所述第一子序列的N+1个事件记录中,增加所述第五子树的根节点的事件记录的序号最小;
所述第二子序列的N+1个事件记录中,删除所述第六子树的根节点的事件记录的序号最大。
优选地,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;所述根据对所述文件树的更新操作生成事件序列之后,还包括:向所述客户端设备返回数据同步响应,所述数据同步响应中携带有所述事件序列中的事件记录的最大序号。
优选地,每条事件记录包括:序号、节点标识、节点位置信息、事件类型,所述事件类型包括增加节点和删除节点。
本申请实施例提供的数据同步装置,包括:
接收单元,用于接收客户端设备发送的数据同步命令,所述数据同步命令中携带文件树索引信息以及文件树的更新信息;
第一获取单元,用于根据所述数据同步命令中携带的文件树索引信息,获取网络侧存储的文件树;
确定单元,用于根据所述数据同步命令中携带的文件树的更新信息,确定对所述文件树的更新操作,所述更新操作包括节点增加和/或节点删除操作;
处理单元,用于根据确定出的对所述文件树的更新操作,对所述文件树进行更新,并根据对所述文件树的更新操作生成事件序列;其中,所述事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。
本申请实施例中,服务器接收到客户端设备发送的数据同步命令后,根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,更新操作包括节点增加和/或节点删除操作,根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列,其中,事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。文件树的更新操作包括节点增加和/或节点删除操作,因此根据对文件树的更新操作生成的事件序列所包含的事件记录描述了上述对文件树的更新操作,并通过事件记录的序号表明了更新操作的先后顺序,为文件树的差量更新提供了可实现的前提条件,例如,可以通过对比待进行数据同步的客户端设备与服务器上的事件记录的序号确定差量更新的内容以进行差量更新,进而降低了网络传输数据的负荷,提高了客户端设备执行数据同步的效率。
本申请实施例还提供了一种数据同步方法及装置,用以提高客户端设备数据同步效率,降低数据同步过程中的网络资源开销。
本申请实施例提供的数据同步方法,包括以下步骤:
获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;
向所述文件树对应的目标客户端设备发送数据同步命令,所述数据同步命令中携带有获取到的事件记录,所述数据同步命令用于指示所述目标客户端设备根据所述数据同步命令中携带的事件记录对所述目标客户端设备的文件树进行更新。
优选地,所述获取文件树更新操作所对应的事件序列中的事件记录,包括:
接收客户端设备发送的数据同步请求,所述数据同步请求中携带有文件树索引信息,以及事件记录的序号;
根据所述数据同步请求中携带的文件树索引信息,获取对应的文件树;
根据所述数据同步请求中携带的事件记录序号,获取所述对应的文件树的事件序列中序号大于所述数据同步请求中携带的事件记录序号的事件记录。
优选地,所述向所述客户端设备发送数据同步命令,具体包括:周期性向所述客户端设备发送数据同步命令。
优选地,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增。
本申请实施例提供的数据同步装置,包括:
第二获取单元,用于获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;
发送单元,用于向所述文件树对应的目标客户端设备发送数据同步命令,所述数据同步命令中携带有获取到的事件记录,所述数据同步命令用于指示所述目标客户端设备根据所述数据同步命令中携带的事件记录对所述目标客户端设备的文件树进行更新。
本申请实施例中,服务器获取文件树更新操作所对应的事件序列中的事件记录后,向文件树对应的目标客户端设备发送数据同步命令,所述数据同步命令中携带有获取到的事件记录,所述数据同步命令用于指示所述目标客户端设备根据所述数据同步命令中携带的事件记录对所述目标客户端设备的文件树进行更新。由于服务器能够获取文件树更新操作所对应的事件序列中的事件记录,又由于这些事件记录的序号表明了更新操作的先后顺序,因此只需要将这些事件记录发送给待进行数据同步的客户端设备,而非将文件树的全量信息发送给待进行同步的客户端设备,就能够使该客户端设备根据接收到的事件记录执行文件树更新操作,降低了网络传输数据的负荷,并提高了客户端设备执行数据同步的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例适用的数据同步***架构示意图;
图2为本申请实施例提供的数据同步流程示意图之一;
图3a、图3b分别为本申请实施例提供的文件树结构示意图;
图4为本申请实施例提供的数据同步流程示意图之二;
图5为本申请实施例提供的数据同步装置的结构示意图;
图6为本申请另一实施例提供的数据同步装置的结构示意图;
图7为本申请另一实施例提供的数据同步装置的结构示意图;
图8为本申请另一实施例提供的数据同步装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1示例性地示出了本申请实施例适用的网络***架构。
如图1所示,该架构中包括服务器101,服务器101通过网络102与多个客户端设备通信。所述网络可以是无线通信网络,也可以是有线通信网络。
所述客户端设备可包括无线通信设备,比如手机、平板电脑、穿戴设备等,所述客户端设备也可以是个人计算机、笔记本电脑等。比如,图中示出的客户端设备包括:为手机的客户端设备103和客户端设备104、为平板电脑的客户端设备105、为笔记本电脑的客户端设备106、为计算机的客户端设备107。
所述服务器101可以是采用云计算技术的服务器或服务器集群。服务器101能够提供网络存储功能。
在实际应用中,该服务器101可为网盘服务器,提供文件通过功能,客户端设备可与服务器101进行文件同步。比如,客户端设备104的本地文件发生变化后,提交变化信息到服务器101,实现到客户端设备104与服务端数据一致;客户端设备105感知并获取到服务器端的变化信息,将客户端设备105的本地文件同步为与服务器端一致。同步完成后,客户端设备104与客户端设备105的文件树结构达到一致。
用户在使用文件同步功能时,一般需要使用用户账户登录服务器。一个用户可以使用不同的登录服务器使用文件同步功能,这样一个用户在这些客户端设备上的文件与服务器上存储的该用户的文件保持同步。所有使用文件同步服务功能的用户均分配有唯一用户ID,客户端设备上存储的用户文件,以及服务器上存储的用户文件,可以使用用户ID进行索引或标识。一个用户ID仅对于一个文件树。
本申请实施例中,客户端设备和服务器均以文件树形式存储文件。文件树是指以树形结构存储文件。文件树包括一个根节点以及根节点下的各级节点,除根节点以外的任何一个节点标识一个文件或文件夹,如果一个节点标识一个文件夹且该文件夹下还有子文件夹和/或文件,则文件夹对应的节点下包含一个或多个子节点。如果一个节点对应一个文件,则该节点的属性信息中可包含该文件的名称、存储位置信息等,如果一个节点对应一个文件夹,则该节点的属性信息可包含该文件夹的名称、的存储位置信息等。
服务器与客户端设备均存储的数据可以用数据表的形式储存,该数据也可用文件树的形式存储。优选地,本申请实施例中以客户端设备和服务器均以文件树的形式存储数据,客户端设备在客户端设备侧存储的文件树与服务器在网络侧存储的文件树需要保持同步,文件树中的每个节点均对应一个文件或文件夹。
本实施例中,“文件/文件夹”的表达方式表示“文件和/或文件夹,以下描述中的“文件/文件夹”可按照此处的说明进行解释。
基于图1所示的***架构,图2示出了本申请实施例提供的一种在网络侧实现的数据同步流程,该可由数据同步装置,比如服务器等来执行。在一些场景中,可通过该流程实现文件树同步,举例来说,这些场景可以是:用户修改客户端设备A上的文件,客户端设备A向服务器发送数据同步命令,服务器根据该数据同步命令更新网络侧存储的与该用户的ID对应的文件树,以使客户端设备A上该用户ID对应的文件树与网络侧该用户ID对应的文件树保持同步。
如图2所示,该方法包括以下步骤:
步骤201:接收客户端设备发送的数据同步命令,数据同步命令中携带文件树索引信息以及文件树的更新信息。
其中,客户端设备侧存储的文件树发生变更后向服务器发送数据同步命令。数据同步命令中携带的文件树索引信息具体可为文件树的标识号,或者文件树的索引号等信息,或者是用户ID。数据同步命令中携带的文件树的更新信息可包括发生更新的文件的相关信息,比如可包括文件名、在文件树中的位置等信息;还可以包括文件操作类型信息,比如,可以是增加文件/文件夹、删除文件/文件夹、移动文件/文件夹、更改文件内容等操作信息;根据操作类型的不同,还可进一步一些其他信息,比如,如果是增加文件的操作,还需要包括新增加的文件。
步骤202:根据数据同步命令中携带的文件树索引信息,获取网络侧存储的文件树。
由于服务器中可针对不同的用户ID存储每个用户ID的文件树,因此文件树需要先根据数据同步命令中携带的文件树索引信息,获取对应的文件树。
步骤203:根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,更新操作包括节点增加和/或节点删除操作。
如前所述,数据同步命令中携带的文件树的更新信息可包括对文件/文件夹的多种类型的操作信息,无论对文件/文件夹进行的是何种类型的操作,服务器均可根据该文件树的更新信息,将其转化为对文件树的节点增加和/或节点删除操作。
比如,如果是在某个文件夹下新增加文件/文件夹的操作,则服务器可将该操作转化为在相应节点下新增加节点的操作;如果是删除某个文件/文件夹的操作,则服务器可将其转化为删除对应节点的操作,实际应用中,可将相应节点标识为已删除;如果是修改某个文件/文件夹名称的操作,则服务器可将其转化为在该文件/文件夹对应的父节点下增加一个节点且该新增加的节点与改名后的文件/文件夹对应,并删除改名前的文件/文件夹对应的节点的操作。
步骤204:根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列;其中,事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。
事件记录的序号可依据对应事件的发生时间先后单调递增或者单调递减,或者依据该事件的发生时间所生成的序号也可定义为其它规则,只要保证能够确定出事件生成的先后顺序即可。优选地一种实现方式为,事件记录的序号依据对应事件的发生时间先后单调递增,且每次增加1。举例来说,可将初始事件记录的事件序号设置为0,之后的事件的序号依次递增,每次增加1。本申请实施例中,优选地,以事件记录的序号依据对应事件的发生时间先后单调递增为例进行介绍。
在实施中,事件序列包括至少一条事件记录,每条事件记录可包括:序号、节点标识、节点位置信息、事件类型等信息,事件类型包括增加节点和删除节点。具体来说,序号可表明事件记录对应的操作与其他事件记录对应的操作发生的前后顺序,节点标识为文件树中的一个节点的唯一标识,节点位置信息可通过指示出该节点的父节点的方式来定义。
可选地,在步骤204之后,还可以包括以下步骤,向客户端设备返回数据同步响应。在事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增的情况下,该数据同步响应中携带有事件序列中的事件记录的最大序号。
下面详细介绍几种根据数据同步命令中的文件树的更新信息确定出对网络侧存储的文件树的更新操作,之后根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列。
具体来说,服务器根据文件树的更新信息所确定出的增加节点和删除节点的操作并无绝对的先后顺序,本申请实施例中给出一种优选的方式。之后根据对文件树的更新操作生成事件序列中,事件序列中的事件记录与更新操作是一一对应的,举例来说,先执行了增加的更新操作,此时则先生成该增加的更新操作对应的事件记录,之后执行了删除的更新操作,则接着生成该删除的更新操作对应的事件记录。
(一)移动文件操作
步骤203中,若文件树的更新信息指示将与第一文件对应的节点从源位置移动至目标位置,则确定出的对文件树的更新操作包括一个增加节点的操作和一个删除节点的操作。
相应地,在步骤204中,在网络侧存储的文件树上的目标位置增加与第一文件对应的节点,将网络侧存储的文件树上源位置处与第一文件对应的节点删除。本申请实施例对上述两种操作的先后顺序不做限制。
相应地,根据上述文件树的更新操作,服务器生成的事件序列包括第一事件记录和第二事件记录。事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,第二事件记录的序号大于第一事件记录的序号。第一事件记录的内容表示:在文件树上的目标位置增加与第一文件对应的节点;第二事件记录的内容表示:将文件树上源位置上与第一文件对应的节点标记为删除。
(二)移动文件夹
步骤203中,若文件树的更新信息指示将文件树的第一子树从源位置移动至目标位置,第一子树包括一个根节点和N个子节点,第一子树的根节点对应第一文件夹,第一子树的N个子节点分别对应第一文件夹下的文件夹或文件,N为大于或等于1的整数,则确定出的对文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作。
相应地,步骤204中,服务器可先在网络侧存储的文件树上的目标位置增加第二子树,之后将网络侧存储的文件树上源位置处的第三子树删除。
相应地,根据上述文件树的更新操作,服务器生成的事件序列包括第一子序列和第二子序列,第一子序列包括N+1个增加节点操作的事件记录,第二子序列包括N+1个删除节点操作的事件记录。第一子序列的内容表示:在文件树上目标位置增加第二子树,第二子树包括一个根节点和N个子节点,第二子树的根节点对应第一文件夹,第二子树的N个子节点分别对应第一文件夹下的文件夹或文件;第二子序列的内容表示:将文件树上源位置处的第三子树删除,第三子树包括一个根节点和N个子节点,第三子树的根节点对应第一文件夹,第三子树的N个子节点分别对应第一文件夹下的文件夹或文件。
事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,并且第一子序列中的事件记录的序号小于第二子序列中的事件记录的序号,第一子序列的N+1个事件记录中,增加第二子树的根节点的事件记录的序号最小,第二子序列的N+1个事件记录中,删除第三子树的根节点的事件记录的序号最大。
举例来说,增加第二子树的根节点的事件记录的序号为3,则增加第二子树的N个子节点的事件记录的序号依次为4、5、6…(3+N),从第三子树的最后一个子节点开始,依次删除第三子树的N个子节点的事件记录的序号依次为(4+N)、(5+N)、(6+N)…(N+N)。
(三)文件重命名
步骤203中,若文件树的更新信息指示对第二文件进行重命名,则服务器确定出的对文件树的更新操作包括一个增加节点的操作和一个删除节点的操作。
相应地,步骤204中,服务器可先在网络侧存储的文件树上与第二文件对应的第一节点的父节点下增加一个与第二文件对应的第二节点,之后将网络侧存储的文件树上与第二文件对应的第一节点删除。
相应地,根据上述文件树的更新操作,服务器生成的事件序列包括第一事件记录和第二事件记录,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,第二事件记录的序号大于第一事件记录的序号。其中,第一事件记录的内容表示:在文件树上与重命后前的第二文件对应的第一节点的父节点下增加一个与重命名后的第二文件对应的第二节点;第二事件记录的内容表示:将文件树上与重命名前的第二文件对应的第一节点删除。
(四)文件夹重命名
步骤203中,若文件树的更新信息指示将第二文件夹进行重命名,第二文件夹对应第四子树,第四子树包括一个根节点和N个子节点,第四子树的根节点对应第二文件夹,第四子树的N个子节点分别对应第二文件夹下的文件夹或文件,N为大于或等于1的整数,则确定出的对文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作。
相应地,步骤204中,服务器可先在网络侧存储的文件树上与第二文件夹对应的节点的父节点下增加第五子树,之后将网络侧存储的文件树上的第六子树删除。
相应地,根据上述对文件树的更新操作,服务器生成的事件序列包括第一子序列和第二子序列,第一子序列包括N+1个增加节点操作的事件记录,第二子序列包括N+1个删除节点操作的事件记录。其中,第一子序列的内容表示:在文件树上与第二文件夹对应的节点的父节点下增加第五子树,第五子树包括一个根节点和N个子节点,第五子树的根节点对应重命名前的第二文件夹,第五子树的N个子节点分别对应第二文件夹下的文件夹或文件;第二子序列的内容表示:将文件树上的第六子树删除,第六子树包括一个根节点和N个子节点,第六子树的根节点对应重命名后的第二文件夹,第六子树的N个子节点分别对应第二文件夹下的文件夹或文件。
事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,第一子序列中的事件记录的序号小于第二子序列中的事件记录的序号;第一子序列的N+1个事件记录中,增加第五子树的根节点的事件记录的序号最小;第二子序列的N+1个事件记录中,删除第六子树的根节点的事件记录的序号最大。
(五)文件内容改变
步骤203中,若文件树的更新信息指示更新第三文件,则确定出的对文件树的更新操作包括一个删除节点的操作和一个增加节点的操作。
相应地,步骤204中,服务器可先将网络侧存储的文件树上与第三文件对应的第三节点删除,之后在网络侧存储的文件树上与第三文件对应的第三节点的父节点下增加一个与第三文件对应的第四节点。
相应地,根据上述对文件树的更新操作,服务器生成的事件序列包括第一事件记录和第二事件记录,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,第二事件记录的序号大于第一事件记录的序号。其中,第一事件记录指示:将文件树上与更新前的第三文件对应的第三节点删除;第二事件记录指示:在文件树上与更新前的第三文件对应的第三节点的父节点下增加一个与更新后的第三文件对应的第四节点。
(六)增加文件或文件夹
步骤203中,若文件树的更新信息指示在第一父节点下增加一个文件或文件夹对应的节点,其中,第一父节点对应第四文件夹,则确定出的对文件树的更新操作包括一个增加节点操作的事件记录。
相应地,在步骤204中,服务器可在网络侧存储的文件树的第二父节点下增加节点,其中,第二父节点对应第四文件夹。
相应地,根据上述对文件树的更新操作,服务器生成的事件序列包括第一事件记录,第一事件记录指示:在网络侧存储的文件树的第二父节点下增加节点。
(七)删除文件
步骤203中,若文件树的更新信息指示删除文件树的第五节点,第五节点对应第五文件,则确定出的对文件树的更新操作包括一个删除节点操作的事件记录。
相应地,步骤204中,服务器可删除网络侧存储的文件树的第六节点,第六节点对应第五文件。
相应地,根据上述对文件树的更新操作,服务器生成的事件序列包括第一事件记录,第一事件记录指示:删除网络侧存储的文件树的第六节点。
(八)删除文件夹
步骤2-3中,若文件树的更新信息指示删除客户端设备侧存储的文件树的第七子树,第七子树包括一个根节点和K个子节点,K为大于或等于1的整数,第七子树的根节点对应第七文件夹,第七子树的K个子节点分别对应第七文件夹下的文件夹或文件。
相应地,服务器可删除网络侧存储的文件树的第八子树的K个子节点,之后删除网络侧存储的文件树的第八子树的根节点,第八子树的根节点对应第七文件夹。
相应地,根据上述对文件树的更新操作,服务器生成的事件序列包括第一事件记录,第一事件记录指示:删除网络侧存储的文件树的第八子树的第五事件序列;第八子树包括一个根节点和K个子节点,第八子树的根节点对应第七文件夹,第八子树的K个子节点分别对应第七文件夹下的文件夹或文件;第五事件序列包括K+1条事件记录,该K+1条事件记录中的每条事件记录用于描述从第八子树上删除一个节点的事件。
从上述几种情况可看出,若数据同步命令中更新信息的操作对象为文件夹对应的节点,则根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作则需要遍历该文件夹节点的所有子节点。若数据同步命令中更新信息的操作对象为文件对应的节点,则根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作则仅需要针对该文件节点进行相应操作即可。
下面举一具体实例对上述方法进行介绍。
客户端设备对文件树执行相应操作之后,数据同步命令中携带的文件树的更新信息如表1所示:
表1更新信息内容
根据数据同步命令中携带的文件树的第一条更新信息至第四条更新信息,服务器对文件树执行更新操作之后,文件树的具体结构如图3a所示。在根节点ROOT 2101下创建文件夹节点DIR01 2102、文件夹节点DIR02 2103,在文件夹节点DIR01 2102下创建文件节点FILE01 2106、文件节点FILE02 2107,在根节点ROOT 2101下创建文件夹节点DIR03 2104、文件夹节点DIR04 2105,在文件夹节点DIR03 2104下创建文件节点FILE03 2108、文件节点FILE04 2109。
在根据第五条更新信息和第六条更新信息执行相应更新操作之后,文件树的具体结构如2b所示。将文件夹节点DIR03 2204移动到文件夹节点DIR02 2103下,移动之后,在图3b中可看出,DIR03 2204以及DIR03 2204下的子节点FILE03 2205和FILE04 2206整体均移动至文件夹节点DIR02 2103下,之后将文件夹节点DIR01改名为DIR01NEW 2201,此时FILE01 2202和FILE02 2203均在父节点DIR01NEW 2201下。
根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,并根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列如表2所示。
表2根据表1中更新信息内容生成事件序列
上述表2中可看出,节点标识仅作示例用,节点标识唯一标识一个节点。节点名称可以相同,也可以不同,节点名称也可与该节点对应的文件或文件夹的名称相同。
经过上述方法,服务器针对数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列。之后即可向客户端设备发送事件序列中的部分事件记录,此时,客户端设备依据接收到的事件记录对自身存储的文件树进行数据同步操作,该过程中,由于服务器可向客户端设备发送部分事件记录,而非每次均向客户端设备发送整个文件树的信息,因此减轻了网络数据传输负荷。
从上述内容可看出,本申请实施例中,接收客户端设备发送的数据同步命令,数据同步命令中携带文件树索引信息以及文件树的更新信息,根据数据同步命令中携带的文件树索引信息,获取网络侧存储的文件树,根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,更新操作包括节点增加和/或节点删除操作,根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列,其中,事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。由于根据文件树的更新信息确定出了包括节点增加和/或节点删除操作的更新操作,进一步根据该更新操作对文件树进行更新,并根据对文件树的更新操作生成事件序列,为事件序列中的每个事件记录标记序号,从而可实现将事件序列中的事件记录分别发送给目标客户端设备的目的,进而实现了为目标客户端设备反馈增量更新数据,而非全量更新数据的数据同步方式,降低网络传输数据的负荷,提高客户端设备执行数据同步的效率。
图4示例性示出了本申请实施例提供的另一种数据同步方法。
该方法可由本申请实施例提供的数据同步装置,比如服务器等来执行。如图4所示,该方法包括以下步骤:
步骤401,获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;优选地,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增。
步骤402,向文件树对应的目标客户端设备发送数据同步命令,数据同步命令中携带有获取到的事件记录,数据同步命令用于指示目标客户端设备根据数据同步命令中携带的事件记录对目标客户端设备的文件树进行更新。具体来说,该目标客户端设备可为任一需与服务器中存储的文件树进行同步的客户端设备。
具体来说,上述步骤401可有多种触发方式,本申请实施例提供以下几种优选的实施方式:
方式a1,服务器上的文件树更新后,即自动触发上述步骤401。举例来说,客户端设备A和客户端设备B均存储有与同一用户ID对应的文件树,客户端设备A修改该客户端设备存储的该用户ID对应的文件树,之后同步到服务器侧后,服务器确定出的对该用户ID对应的文件树的更新操作,对该文件树进行更新,并根据对该文件树的更新操作生成事件序列。
此种方式下,服务器侧储存有客户端设备B已经同步的事件序列中的最新的事件记录的序号,在事件记录的序号依据对应事件的发生时间先后顺序单向递增时,服务器侧储存有客户端设备B已经同步的事件序列中事件记录的序号的最大值,服务器获取对应的文件树的事件序列中序号大于客户端设备B已经同步的事件记录序号最大值的事件记录,并向文件树对应的目标客户端设备发送数据同步命令。
方式a2,服务器周期性向客户端设备发送数据同步命令。也就是说,服务器以第一时长为周期,定期向客户端设备发送数据同步命令。此种方式下,服务器侧储存有客户端设备B已经同步的事件序列中的最新的事件记录的序号,在事件记录的序号依据对应事件的发生时间先后顺序单向递增时,服务器侧储存有客户端设备B已经同步的事件序列中事件记录的序号的最大值,服务器获取对应的文件树的事件序列中序号大于客户端设备B已经同步的事件记录序号最大值的事件记录,并向文件树对应的目标客户端设备发送数据同步命令。
方式a3,服务器接收客户端设备发送的数据同步请求,数据同步请求中携带有文件树索引信息,以及事件记录的序号。具体来说,数据同步请求中携带的事件记录的序号,即为该客户端设备已经同步的该文件树对应的事件序列中的事件记录的序号的最大值。
服务器根据数据同步请求中携带的文件树索引信息,获取对应的文件树;根据数据同步请求中携带的事件记录序号,获取对应的文件树的事件序列中序号大于数据同步请求中携带的事件记录序号的事件记录。
进一步,为了减小单次数据传输的负荷,优选地,服务器将对应的文件树的事件序列中序号大于数据同步请求中携带的事件记录序号的事件记录通过多次发送(即多个消息)的方式发送给目标客户端设备。
当目标客户端设备接收到事件序列之后,可逐条执行,以便达到目标客户端设备中存储的文件树与服务器中存储的文件树一致的目的。
举例来说,当目标客户端设备向服务器发送数据同步请求,数据同步请求中携带事件记录序号为0,则服务器向目标客户端设备发送事件序列中事件记录序号大于0的所有事件记录,比如,待发送的事件记录序号为1至20。优选的,服务器可每次向目标客户端设备发送五条事件,共分四次将二十条事件全部发送给目标客户端设备。目标客户端设备接收到服务器发送的事件之后,逐条执行,以使目标客户端设备所存储的文件树与服务器侧存储的文件树同步。
从上述内容可以看出:本申请实施例中,获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;向文件树对应的目标客户端设备发送数据同步命令,数据同步命令中携带有获取到的事件记录,数据同步命令用于指示目标客户端设备根据数据同步命令中携带的事件记录对目标客户端设备的文件树进行更新。由于根据该更新操作对文件树进行更新,并根据对文件树的更新操作生成事件序列,从而可实现将事件序列中的事件记录分别发送给目标客户端设备的目的,进而实现了为目标客户端设备反馈增量更新数据,而非全量更新数据的数据同步方式,降低网络传输数据的负荷,提高客户端设备执行数据同步的效率。
基于相同构思,本申请实施例提供的一种数据同步装置,图4示例性示出了本申请实施例提供的一种数据同步装置的结构示意图,该装置可实现前述实施例提供的数据同步流程,比如可实现如图2所示的流程。
如图5所示,包括接收单元501、第一获取单元502、确定单元503、处理单元504:
接收单元501,用于接收客户端设备发送的数据同步命令,数据同步命令中携带文件树索引信息以及文件树的更新信息;
第一获取单元502,用于根据数据同步命令中携带的文件树索引信息,获取网络侧存储的文件树;
确定单元503,用于根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,更新操作包括节点增加和/或节点删除操作;
处理单元504,用于根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列;其中,事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。
优选地,若文件树的更新信息指示将与第一文件对应的节点从源位置移动至目标位置,则处理单元504确定出的对文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;处理单元504根据对文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;其中,第一事件记录的内容表示:在文件树上的目标位置增加与第一文件对应的节点,第二事件记录的内容表示:将文件树上源位置上与第一文件对应的节点标记为删除。
优选地,若文件树的更新信息指示对第二文件进行重命名,则处理单元504确定出的对文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;处理单元504根据对文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录。其中,第一事件记录的内容表示:在文件树上与重命后前的第二文件对应的第一节点的父节点下增加一个与重命名后的第二文件对应的第二节点;第二事件记录的内容表示:将文件树上与重命名前的第二文件对应的第一节点删除。
优选地,若文件树的更新信息指示更新第三文件,则处理单元504确定出的对文件树的更新操作包括一个删除节点的操作和一个增加节点的操作;处理单元504根据对文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录。其中,第一事件记录指示:将文件树上与更新前的第三文件对应的第三节点删除;第二事件记录指示:在文件树上与更新前的第三文件对应的第三节点的父节点下增加一个与更新后的第三文件对应的第四节点。
优选地,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,第二事件记录的序号大于第一事件记录的序号。
优选地,若文件树的更新信息指示将第一子树从源位置移动至目标位置,第一子树包括一个根节点和N个子节点,第一子树的根节点对应第一文件夹,N个子节点分别对应第一文件夹下的文件夹或文件,N为大于或等于1的整数,则处理单元504确定出的对文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;处理单元504根据对文件树的更新操作生成的事件序列包括第一子序列和第二子序列,第一子序列包括N+1个增加节点操作的事件记录,第二子序列包括N+1个删除节点操作的事件记录,其中:
第一子序列的内容表示:在文件树上目标位置增加第二子树,第二子树包括一个根节点和N个子节点,第二子树的根节点对应第一文件夹,第二子树的N个子节点分别对应第一文件夹下的文件夹或文件;
第二子序列的内容表示:将文件树上源位置处的第三子树删除,第三子树包括一个根节点和N个子节点,第三子树的根节点对应第一文件夹,第三子树的N个子节点分别对应第一文件夹下的文件夹或文件。
优选地,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;第一子序列中的事件记录的序号小于第二子序列中的事件记录的序号;
第一子序列的N+1个事件记录中,增加第二子树的根节点的事件记录的序号最小;第二子序列的N+1个事件记录中,删除第三子树的根节点的事件记录的序号最大。
优选地,若文件树的更新信息指示将第二文件夹进行重命名,第二文件夹对应第四子树,第四子树包括一个根节点和N个子节点,第四子树的根节点对应第二文件夹,N个子节点分别对应第二文件夹下的文件夹或文件,N为大于或等于1的整数,则处理单元504确定出的对文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;处理单元504根据对文件树的更新操作生成的事件序列包括第一子序列和第二子序列,第一子序列包括N+1个增加节点操作的事件记录,第二子序列包括N+1个删除节点操作的事件记录,其中:
第一子序列的内容表示:在文件树上与第二文件夹对应的节点的父节点下增加第五子树,第五子树包括一个根节点和N个子节点,第五子树的根节点对应重命名前的第二文件夹,第五子树的N个子节点分别对应第二文件夹下的文件夹或文件;
第二子序列的内容表示:将文件树上的第六子树删除,第六子树包括一个根节点和N个子节点,第六子树的根节点对应重命名后的第二文件夹,第六子树的N个子节点分别对应第二文件夹下的文件夹或文件。
优选地,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;第一子序列中的事件记录的序号小于第二子序列中的事件记录的序号;
第一子序列的N+1个事件记录中,增加第五子树的根节点的事件记录的序号最小;第二子序列的N+1个事件记录中,删除第六子树的根节点的事件记录的序号最大。
优选地,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;相应地,处理单元504,还可用于:向客户端设备返回数据同步响应,数据同步响应中携带有事件序列中的事件记录的最大序号。
优选地,每条事件记录包括:序号、节点标识、节点位置信息、事件类型,事件类型包括增加节点和删除节点。
从上述内容可看出:本申请实施例中,接收客户端设备发送的数据同步命令,数据同步命令中携带文件树索引信息以及文件树的更新信息,根据数据同步命令中携带的文件树索引信息,获取网络侧存储的文件树,根据数据同步命令中携带的文件树的更新信息,确定对文件树的更新操作,更新操作包括节点增加和/或节点删除操作,根据确定出的对文件树的更新操作,对文件树进行更新,并根据对文件树的更新操作生成事件序列,其中,事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化。由于根据文件树的更新信息确定出了包括节点增加和/或节点删除操作的更新操作,进一步根据该更新操作对文件树进行更新,并根据对文件树的更新操作生成事件序列,为事件序列中的每个事件记录标记序号,从而可实现将事件序列中的事件记录分别发送给目标客户端设备的目的,进而实现了为目标客户端设备反馈增量更新数据,而非全量更新数据的数据同步方式,降低网络传输数据的负荷,提高客户端设备执行数据同步的效率。
基于相同构思,本申请实施例提供的另一种数据同步装置,该装置可实现前述实施例提供的数据同步流程,比如可实现如图4所示的流程。
如图6所示,包括第二获取单元601、发送单元602:
第二获取单元601,用于获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;
发送单元602,用于向文件树对应的目标客户端设备发送数据同步命令,数据同步命令中携带有获取到的事件记录,数据同步命令用于指示目标客户端设备根据数据同步命令中携带的事件记录对目标客户端设备的文件树进行更新。
优选地,第二获取单元601可具体用于:
接收客户端设备发送的数据同步请求,数据同步请求中携带有文件树索引信息,以及事件记录的序号;
根据数据同步请求中携带的文件树索引信息,获取对应的文件树;
根据数据同步请求中携带的事件记录序号,获取对应的文件树的事件序列中序号大于数据同步请求中携带的事件记录序号的事件记录。
优选地,发送单元602可具体用于:周期性向客户端设备发送数据同步命令。
优选地,事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增。
从上述内容可看出:本申请实施例中,获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;向文件树对应的目标客户端设备发送数据同步命令,数据同步命令中携带有获取到的事件记录,数据同步命令用于指示目标客户端设备根据数据同步命令中携带的事件记录对目标客户端设备的文件树进行更新。由于根据该更新操作对文件树进行更新,并根据对文件树的更新操作生成事件序列,从而可实现将事件序列中的事件记录分别发送给目标客户端设备的目的,进而实现了为目标客户端设备反馈增量更新数据,而非全量更新数据的数据同步方式,降低网络传输数据的负荷,提高客户端设备执行数据同步的效率。
基于相同的技术构思,本申请实施例还提供了一种服务器,该服务器可执行前述实施例提供的数据同步流程,比如可执行图2所示的数据同步流程。
参见图7,为本申请实施例提供的服务器的结构示意图,如图所示,该服务器可包括:接口701、处理单元702和存储器703。处理单元702用于控制该装置的操作;存储器703可以包括只读存储器和随机存取存储器,用于向处理单元702提供指令和数据。存储器703的一部分还可以包括非易失行随机存取存储器(NVRAM)。该装置的各个组件通过总线***耦合在一起,其中总线***709除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线***709。
本发明实施例揭示的数据同步流程可以应用于处理单元702中,或者由处理单元702实现。在实现过程中,该装置实现的数据同步流程的各步骤可以通过处理单元702中的硬件的集成逻辑电路或者软件形式的指令完成。处理单元702可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器703,处理单元702读取存储器703中的信息,结合其硬件完成数据同步流程的步骤。
具体地,处理单元702可被配置以执行前述实施例所述的数据同步流程。该流程的具体实现过程可参见前述图2所示的流程,在此不再重复。
基于相同的技术构思,本发明实施例还提供了一种服务器。可实现前述实施例提供的数据同步流程,比如图图4所示的流程。
参见图8,为本申请实施例提供的服务器的结构示意图,如图所示,该服务器可包括:接口801、处理单元802和存储器803。处理单元802用于控制该装置的操作;存储器803可以包括只读存储器和随机存取存储器,用于向处理单元802提供指令和数据。存储器803的一部分还可以包括非易失行随机存取存储器(NVRAM)。该装置的各个组件通过总线***耦合在一起,其中总线***809除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线***809。
本发明实施例揭示的数据同步流程可以应用于处理单元802中,或者由处理单元802实现。在实现过程中,该装置实现的数据同步流程的各步骤可以通过处理单元802中的硬件的集成逻辑电路或者软件形式的指令完成。处理单元802可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器803,处理单元802读取存储器803中的信息,结合其硬件完成数据同步流程的步骤。
具体地,处理单元802可被配置以执行前述实施例所述的数据更新流程。该流程的具体实现过程可参见前述图4所示的流程,在此不再重复。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (29)
1.一种数据同步方法,其特征在于,应用于服务器端,包括以下步骤:
接收客户端设备发送的数据同步命令,所述数据同步命令中携带文件树索引信息以及文件树的更新信息;
根据所述数据同步命令中携带的文件树索引信息,获取网络侧存储的对应的文件树;所述网络侧存储了多个文件树;
根据所述数据同步命令中携带的文件树的更新信息,确定对所述文件树的更新操作,所述更新操作包括节点增加和/或节点删除操作;
根据确定出的对所述文件树的更新操作,对所述文件树进行更新,并根据对所述文件树的更新操作生成事件序列;其中,所述事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;
所述方法还包括:接收客户端设备发送的数据同步请求,所述数据同步请求中携带有文件树索引信息,以及事件记录的序号;根据所述数据同步请求中携带的文件树索引信息,获取对应的文件树;根据所述数据同步请求中携带的事件记录序号,获取所述对应的文件树的事件序列中序号大于所述数据同步请求中携带的事件记录序号的事件记录;向所述文件树对应的目标客户端设备发送数据同步命令,所述数据同步命令中携带有获取到的事件记录,所述数据同步命令用于指示所述目标客户端设备根据所述数据同步命令中携带的事件记录对所述目标客户端设备的文件树进行更新。
2.如权利要求1所述的方法,其特征在于,若所述文件树的更新信息指示将与第一文件对应的节点从源位置移动至目标位置,则:
确定出的对所述文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;
所述第一事件记录的内容表示:在所述文件树上的所述目标位置增加与所述第一文件对应的节点;
所述第二事件记录的内容表示:将所述文件树上所述源位置上与所述第一文件对应的节点标记为删除。
3.如权利要求1所述的方法,其特征在于,若所述文件树的更新信息指示对第二文件进行重命名,则:
确定出的所述文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录:
所述第一事件记录的内容表示:在所述文件树上与重命名前的所述第二文件对应的第一节点的父节点下增加一个与所述重命名后的第二文件对应的第二节点;
所述第二事件记录的内容表示:将所述文件树上与重命名前的所述第二文件对应的第一节点删除。
4.如权利要求1所述的方法,其特征在于,若所述文件树的更新信息指示更新第三文件,则:
确定出的对所述文件树的更新操作包括一个删除节点的操作和一个增加节点的操作;
根据对所文件树的更新操作生成的事件序列包括第一事件序列和第二事件序列;
所述第一事件记录指示:将所述文件树上与更新前的第三文件对应的第三节点删除;
所述第二事件记录指示:在所述文件树上与更新前的第三文件对应的第三节点的父节点下增加一个与更新后的第三文件对应的第四节点。
5.如权利要求2至4中任一项所述的方法,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,所述第二事件记录的序号大于所述第一事件记录的序号。
6.如权利要求1所述的方法,其特征在于,若所述文件树的更新信息指示将第一子树从源位置移动至目标位置,所述第一子树包括一个根节点和N个子节点,所述第一子树的根节点对应第一文件夹,所述N个子节点分别对应所述第一文件夹下的文件夹或文件,N为大于或等于1的整数,则:
确定出的对所述文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一子序列和第二子序列,所述第一子序列包括N+1个增加节点操作的事件记录,所述第二子序列包括N+1个删除节点操作的事件记录;
所述第一子序列的内容表示:在所述文件树上所述目标位置增加第二子树,所述第二子树包括一个根节点和N个子节点,所述第二子树的根节点对应第一文件夹,所述第二子树的N个子节点分别对应所述第一文件夹下的文件夹或文件;
所述第二子序列的内容表示:将所述文件树上所述源位置处的第三子树删除,所述第三子树包括一个根节点和N个子节点,所述第三子树的根节点对应所述第一文件夹,所述第三子树的N个子节点分别对应所述第一文件夹下的文件夹或文件。
7.如权利要求6所述的方法,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述第一子序列中的事件记录的序号小于所述第二子序列中的事件记录的序号;
所述第一子序列的N+1个事件记录中,增加所述第二子树的根节点的事件记录的序号最小;
所述第二子序列的N+1个事件记录中,删除所述第三子树的根节点的事件记录的序号最大。
8.如权利要求1所述的方法,其特征在于,若所述文件树的更新信息指示将第二文件夹进行重命名,所述第二文件夹对应第四子树,所述第四子树包括一个根节点和N个子节点,所述第四子树的根节点对应第二文件夹,所述N个子节点分别对应所述第二文件夹下的文件夹或文件,N为大于或等于1的整数,则:
确定出的对所述文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;
根据对所述文件树的更新操作生成的时间序列包括第一子序列和第二子序列,所述第一子序列包括N+1个增加节点操作的事件记录,所述第二子序列包括和N+1个删除节点操作的事件记录;
所述第一子序列的内容表示:在所述文件树上与所述第二文件夹对应的节点的父节点下增加第五子树,所述第五子树包括一个根节点和N个子节点,所述第五子树的根节点对应重命名前的所述第二文件夹,所述第五子树的N个子节点分别对应所述第二文件夹下的文件夹或文件;
所述第二子序列的内容表示:将所述文件树上的第六子树删除,所述第六子树包括一个根节点和N个子节点,所述第六子树的根节点对应重命名后的所述第二文件夹,所述第六子树的N个子节点分别对应所述第二文件夹下的文件夹或文件。
9.如权利要求8所述的方法,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述第一子序列中的事件记录的序号小于所述第二子序列中的事件记录的序号;
所述第一子序列的N+1个事件记录中,增加所述第五子树的根节点的事件记录的序号最小;
所述第二子序列的N+1个事件记录中,删除所述第六子树的根节点的事件记录的序号最大。
10.如权利要求1所述的方法,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述根据对所述文件树的更新操作生成事件序列之后,还包括:
向所述客户端设备返回数据同步响应,所述数据同步响应中携带有所述事件序列中的事件记录的最大序号。
11.如权利要求1至4、6至10中任一权利要求所述的方法,其特征在于,每条事件记录包括:序号、节点标识、节点位置信息、事件类型,所述事件类型包括增加节点和删除节点。
12.如权利要求5所述的方法,其特征在于,每条事件记录包括:序号、节点标识、节点位置信息、事件类型,所述事件类型包括增加节点和删除节点。
13.一种数据同步方法,其特征在于,包括以下步骤:
获取文件树更新操作所对应的事件序列中的事件记录;包括:接收客户端设备发送的数据同步请求,所述数据同步请求中携带有文件树索引信息,以及事件记录的序号;根据所述数据同步请求中携带的文件树索引信息,获取对应的文件树;根据所述数据同步请求中携带的事件记录序号,获取所述对应的文件树的事件序列中序号大于所述数据同步请求中携带的事件记录序号的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;
向所述文件树对应的目标客户端设备发送数据同步命令,所述数据同步命令中携带有获取到的事件记录,所述数据同步命令用于指示所述目标客户端设备根据所述数据同步命令中携带的事件记录对所述目标客户端设备的文件树进行更新。
14.如权利要求13所述的方法,其特征在于,所述向所述客户端设备发送数据同步命令,具体包括:
周期性向所述客户端设备发送数据同步命令。
15.如权利要求13至14任一权利要求所述的方法,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增。
16.一种数据同步装置,其特征在于,包括:
接收单元,用于接收客户端设备发送的数据同步命令,所述数据同步命令中携带文件树索引信息以及文件树的更新信息;
第一获取单元,用于根据所述数据同步命令中携带的文件树索引信息,获取网络侧存储的对应的文件树;所述网络侧存储了多个文件树
确定单元,用于根据所述数据同步命令中携带的文件树的更新信息,确定对所述文件树的更新操作,所述更新操作包括节点增加和/或节点删除操作;
处理单元,用于根据确定出的对所述文件树的更新操作,对所述文件树进行更新,并根据对所述文件树的更新操作生成事件序列;其中,所述事件序列中的每个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;
第二获取单元,用于接收客户端设备发送的数据同步请求,数据同步请求中携带有文件树索引信息,以及事件记录的序号;根据数据同步请求中携带的文件树索引信息,获取对应的文件树;根据数据同步请求中携带的事件记录序号,获取对应的文件树的事件序列中序号大于数据同步请求中携带的事件记录序号的事件记录;其中,一个事件记录用于指示节点增加或删除操作;
发送单元,用于向文件树对应的目标客户端设备发送数据同步命令,数据同步命令中携带有获取到的事件记录,数据同步命令用于指示目标客户端设备根据数据同步命令中携带的事件记录对目标客户端设备的文件树进行更新。
17.如权利要求16所述的装置,其特征在于,若所述文件树的更新信息指示将与第一文件对应的节点从源位置移动至目标位置,则所述处理单元:
确定出的对所述文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;
所述第一事件记录的内容表示:在所述文件树上的所述目标位置增加与所述第一文件对应的节点;
所述第二事件记录的内容表示:将所述文件树上所述源位置上与所述第一文件对应的节点标记为删除。
18.如权利要求16所述的装置,其特征在于,若所述文件树的更新信息指示对第二文件进行重命名,则所述处理单元:
确定出的对所述文件树的更新操作包括一个增加节点的操作和一个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;
所述第一事件记录的内容表示:在所述文件树上与重命后前的所述第二文件对应的第一节点的父节点下增加一个与所述重命名后的第二文件对应的第二节点;
所述第二事件记录的内容表示:将所述文件树上与重命名前的所述第二文件对应的第一节点删除。
19.如权利要求16所述的装置,其特征在于,若所述文件树的更新信息指示更新第三文件,则所述处理单元:
确定出的对所述文件树的更新操作包括一个删除节点的操作和一个增加节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一事件记录和第二事件记录;
所述第一事件记录指示:将所述文件树上更新前的第三文件对应的第三节点删除;
所述第二事件记录指示:在所述文件树上与更新前的第三文件对应的第三节点的父节点下增加一个与更新后的第三文件对应的第四节点。
20.如权利要求17至19中任一项权利要求所述的装置,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增,所述第二事件记录的序号大于所述第一事件记录的序号。
21.如权利要求16所述的装置,其特征在于,若所述文件树的更新信息指示将第一子树从源位置移动至目标位置,所述第一子树包括一个根节点和N个子节点,所述第一子树的根节点对应第一文件夹,所述N个子节点分别对应所述第一文件夹下的文件夹或文件,N为大于或等于1的整数,则所述处理单元:
确定出的对所述文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一子序列和第二子序列,所述第一子序列包括N+1个增加节点操作的事件记录,所述第二子序列包括N+1个删除节点操作的事件记录;
所述第一子序列的内容表示:在所述文件树上所述目标位置增加第二子树,所述第二子树包括一个根节点和N个子节点,所述第二子树的根节点对应第一文件夹,所述第二子树的N个子节点分别对应所述第一文件夹下的文件夹或文件;
所述第二子序列的内容表示:在所述文件树上所述源位置处的第三子树删除,所述第三子树包括一个根节点和N个子节点,所述第三子树的根节点对应所述第一文件夹,所述第三子树的N个子节点分别对应所述第一文件夹下的文件夹或文件。
22.如权利要求21所述的装置,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述第一子序列中的事件记录的序号小于所述第二子序列中的事件记录的序号;
所述第一子序列的N+1个事件记录中,增加所述第二子树的根节点的事件记录的序号最小;
所述第二子序列的N+1个事件记录中,删除所述第三子树的根节点的事件记录的序号最大。
23.如权利要求16所述的装置,其特征在于,若所述文件树的更新信息指示将第二文件夹进行重命名,所述第二文件夹对应第四子树,所述第四子树包括一个根节点和N个子节点,所述第四子树的根节点对应第二文件夹,所述N个子节点分别对应所述第二文件夹下的文件夹或文件,N为大于或等于1的整数,则所述处理单元:
确定出的对所述文件树的更新操作包括N+1个增加节点的操作和N+1个删除节点的操作;
根据对所述文件树的更新操作生成的事件序列包括第一子序列和第二子序列,所述第一子序列包括N+1个增加节点操作的事件记录,所述第二子序列包括N+1个删除节点操作的事件记录;
所述第一子序列的内容表示:在所述文件树上与所述第二文件夹对应的节点的父节点下增加第五子树,所述第五子树包括一个根节点和N个子节点,所述第五子树的根节点对应重命名前的所述第二文件夹,所述第五子树的N个子节点分别对应所述第二文件夹下的文件夹或文件;
所述第二子序列的内容表示:将所述文件树上的第六子树删除,所述第六子树包括一个根节点和N个子节点,所述第六子树的根节点对应重命名后的所述第二文件夹,所述第六子树的N个子节点分别对应所述第二文件夹下的文件夹或文件。
24.如权利要求23所述的装置,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述第一子序列中的事件记录的序号小于所述第二子序列中的事件记录的序号;
所述第一子序列的N+1个事件记录中,增加所述第五子树的根节点的事件记录的序号最小;
所述第二子序列的N+1个事件记录中,删除所述第六子树的根节点的事件记录的序号最大。
25.如权利要求16所述的装置,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增;
所述处理单元,还用于:
向所述客户端设备返回数据同步响应,所述数据同步响应中携带有所述事件序列中的事件记录的最大序号。
26.如权利要求16所述的装置,其特征在于,每条事件记录包括:序号、节点标识、节点位置信息、事件类型,所述事件类型包括增加节点和删除节点。
27.一种数据同步装置,其特征在于,包括:
第二获取单元,用于获取文件树更新操作所对应的事件序列中的事件记录;其中,一个事件记录用于指示节点增加或删除操作,一个事件记录具有唯一序号,事件记录的序号依据对应事件的发生时间先后顺序单向变化;所述第二获取单元,具体用于:接收客户端设备发送的数据同步请求,所述数据同步请求中携带有文件树索引信息,以及事件记录的序号;根据所述数据同步请求中携带的文件树索引信息,获取对应的文件树;根据所述数据同步请求中携带的事件记录序号,获取所述对应的文件树的事件序列中序号大于所述数据同步中携带的事件记录序号的事件记录;
发送单元,用于向所述文件树对应的目标客户端设备发送数据同步命令,所述数据同步命令中携带有获取到的事件记录,所述数据同步命令用于指示所述目标客户端设备根据所述数据同步命令中携带的事件记录对所述目标客户端设备的文件树进行更新。
28.如权利要求27所述的装置,其特征在于,所述发送单元,具体用于:
周期性向所述客户端设备发送数据同步命令。
29.如权利要求27至28任一权利要求所述的装置,其特征在于,所述事件序列中的事件记录的序号按照对应事件的发生时间先后顺序递增。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510713256.1A CN106657170B (zh) | 2015-10-28 | 2015-10-28 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510713256.1A CN106657170B (zh) | 2015-10-28 | 2015-10-28 | 一种数据同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106657170A CN106657170A (zh) | 2017-05-10 |
CN106657170B true CN106657170B (zh) | 2021-03-30 |
Family
ID=58816232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510713256.1A Active CN106657170B (zh) | 2015-10-28 | 2015-10-28 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106657170B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577718A (zh) * | 2017-08-10 | 2018-01-12 | 上海斐讯数据通信技术有限公司 | 一种网盘服务器和终端的文件同步的方法和*** |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
CN108509612A (zh) * | 2018-03-30 | 2018-09-07 | 北京润科通用技术有限公司 | 一种数据处理方法及装置 |
CN108874884B (zh) * | 2018-05-04 | 2021-05-04 | 广州多益网络股份有限公司 | 数据同步更新方法、装置和***、服务器设备 |
CN109194711B (zh) * | 2018-07-27 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种组织架构的同步方法、客户端、服务端及介质 |
CN109828977A (zh) * | 2018-12-27 | 2019-05-31 | 东软集团股份有限公司 | 同步表单数据的方法、装置和存储介质及客户端、服务端 |
CN110071964B (zh) * | 2019-03-26 | 2022-03-15 | 罗克佳华科技集团股份有限公司 | 文件同步方法、装置、文件共享网络、文件共***及存储介质 |
CN110263028B (zh) * | 2019-04-26 | 2021-06-15 | 石化盈科信息技术有限责任公司 | 一种应用于搜索服务的全量同步方法 |
CN111026755B (zh) * | 2019-12-06 | 2023-05-02 | 中国银行股份有限公司 | 基于全量序号发生器的交易序号获取方法及装置 |
CN111159138B (zh) * | 2019-12-30 | 2022-06-10 | 浪潮电子信息产业股份有限公司 | 一种异步数据存储方法、装置、设备及可读存储介质 |
CN113220236B (zh) * | 2021-05-17 | 2024-01-30 | 北京青云科技股份有限公司 | 一种数据管理方法、***及设备 |
CN113254451B (zh) * | 2021-06-01 | 2022-04-19 | 北京城市网邻信息技术有限公司 | 一种数据索引构建方法、装置、电子设备及存储介质 |
CN113934742B (zh) * | 2021-10-26 | 2023-07-04 | 冷杉云(北京)科技股份有限公司 | 数据更新方法、节点信息存储方法、电子设备及介质 |
CN114996224B (zh) * | 2022-07-01 | 2022-10-25 | 浙江大华技术股份有限公司 | 一种文件信息统计的方法、装置及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064630A (zh) * | 2006-04-24 | 2007-10-31 | 华为技术有限公司 | 一种数据同步方法及*** |
US7953819B2 (en) * | 2003-08-22 | 2011-05-31 | Emc Corporation | Multi-protocol sharable virtual storage objects |
CN102946411A (zh) * | 2012-10-15 | 2013-02-27 | 北京奇虎科技有限公司 | 网络同步*** |
CN103152398A (zh) * | 2013-02-07 | 2013-06-12 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及*** |
CN103685385A (zh) * | 2012-09-12 | 2014-03-26 | ***通信集团公司 | 一种文件同步的方法、***和装置 |
CN103825918A (zh) * | 2012-11-16 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 数据同步方法、终端设备、服务器和*** |
CN103841180A (zh) * | 2014-01-17 | 2014-06-04 | 北京京东尚科信息技术有限公司 | 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器 |
CN103902688A (zh) * | 2014-03-26 | 2014-07-02 | 小米科技有限责任公司 | 一种文件操作的同步方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693302B (zh) * | 2012-05-21 | 2015-04-22 | 浙江省公众信息产业有限公司 | 快速文件比对方法、***及客户端 |
CN102790760B (zh) * | 2012-05-31 | 2015-04-29 | 清华大学 | 安全网盘***中一种基于目录树的数据同步方法 |
-
2015
- 2015-10-28 CN CN201510713256.1A patent/CN106657170B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953819B2 (en) * | 2003-08-22 | 2011-05-31 | Emc Corporation | Multi-protocol sharable virtual storage objects |
CN101064630A (zh) * | 2006-04-24 | 2007-10-31 | 华为技术有限公司 | 一种数据同步方法及*** |
CN103685385A (zh) * | 2012-09-12 | 2014-03-26 | ***通信集团公司 | 一种文件同步的方法、***和装置 |
CN102946411A (zh) * | 2012-10-15 | 2013-02-27 | 北京奇虎科技有限公司 | 网络同步*** |
CN103825918A (zh) * | 2012-11-16 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 数据同步方法、终端设备、服务器和*** |
CN103152398A (zh) * | 2013-02-07 | 2013-06-12 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及*** |
CN103841180A (zh) * | 2014-01-17 | 2014-06-04 | 北京京东尚科信息技术有限公司 | 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器 |
CN103902688A (zh) * | 2014-03-26 | 2014-07-02 | 小米科技有限责任公司 | 一种文件操作的同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106657170A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657170B (zh) | 一种数据同步方法及装置 | |
CN106657174B (zh) | 一种数据同步方法、更新方法及装置 | |
US10482067B2 (en) | Synchronization of shared folders and files | |
JP6521402B2 (ja) | KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置 | |
US10007585B2 (en) | Fault-tolerant methods, systems and architectures for data storage, retrieval and distribution | |
CN102857578B (zh) | 一种网络硬盘的文件上传方法、***及网盘客户端 | |
US20160342588A1 (en) | Topology aware distributed storage system | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
US11265182B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN103841180B (zh) | 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器 | |
CN110046062B (zh) | 分布式数据处理方法及*** | |
US11212342B2 (en) | Merge trees for collaboration | |
CN103198100B (zh) | 一种多设备间文件同步的重命名处理方法及*** | |
US20190278757A1 (en) | Distributed Database Management System with Dynamically Split B-Tree Indexes | |
CN104348793A (zh) | 存储服务器***及数据信息的存储方法 | |
CN111064776A (zh) | 区块链中区块的生成方法、设备及存储介质 | |
CN106101710A (zh) | 一种分布式视频转码方法及装置 | |
WO2021257263A1 (en) | Techniques for generating a consistent view of an eventually consistent database | |
CN115630122A (zh) | 一种数据同步方法、装置、存储介质和计算机设备 | |
CN109962942B (zh) | 副本更新方法和装置以及计算机可读存储介质 | |
CN113901076A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN111177162A (zh) | 一种数据同步方法及装置 | |
CN113127549B (zh) | 增量数据的同步方法、装置、计算机设备和存储介质 | |
CN117609257A (zh) | 一种数据库数据同步更新方法、装置、设备和存储介质 | |
CN115098595A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201120 Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China Applicant after: Zebra smart travel network (Hong Kong) Limited Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox Applicant before: Alibaba Group Holding Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |