CN106775437B - 数据同步方法及装置 - Google Patents

数据同步方法及装置 Download PDF

Info

Publication number
CN106775437B
CN106775437B CN201510824943.0A CN201510824943A CN106775437B CN 106775437 B CN106775437 B CN 106775437B CN 201510824943 A CN201510824943 A CN 201510824943A CN 106775437 B CN106775437 B CN 106775437B
Authority
CN
China
Prior art keywords
data
identifier
synchronized
preset
sequence
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
Application number
CN201510824943.0A
Other languages
English (en)
Other versions
CN106775437A (zh
Inventor
阳振坤
王鲁俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510824943.0A priority Critical patent/CN106775437B/zh
Publication of CN106775437A publication Critical patent/CN106775437A/zh
Application granted granted Critical
Publication of CN106775437B publication Critical patent/CN106775437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明实施例提供了一种数据同步方法及装置,在本发明中,无需按照预设顺序存储待同步数据,因此,当接收到待同步数据时,无需先判断待同步数据是否与已经同步的数据之间的顺序是否为预设顺序,且无需将待同步数据存储在缓存空间中,而是直接在预设存储空间中的一个存储位置中存储待同步数据;从而节省了缓存空间,也不会因为缓存空间被占满而丢弃接收的数据,进而避免造成同步的数据不完整。

Description

数据同步方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法及装置。
背景技术
当前,人们通常利用存储设备来存储数据,有时候存储设备在工作过程中可能会宕机,这样会使得存储的数据不可用。为了避免因存储设备宕机而造成存储的数据不可用,通常需要将存储设备中存储的数据同步至一个备份设备中,这样,当存储设备宕机之后,备份设备中存储的数据仍旧可用。
在实际场景中,有时候存储设备需要向备份设备同步的数据中可能会存在占用存储空间比较大的大数据。当存储设备向备份设备同步大数据时,存储设备一般会将大数据按顺序拆分多条数据,然后分别向备份设备同步拆分的多条数据。其中,由于拆分的多条数据中的每条数据在大数据中的位置顺序是固定的,当需要将拆分的数据拼接成大数据时,必须按照拆分的每条数据分别在大数据中的位置顺序进行拼接,否则就无法得到原始的大数据。
因此,当存储设备将拆分的多条数据向备份设备发送时,需要将拆分的每条数据按照其在大数据中的位置顺序分别依次向备份设备发送。这样,备份设备在接收拆分的数据时才能够按照每条数据在大数据中的顺序依次接收,并依次按照每条数据在大数据中的顺序将接收的每条数据存储在存储空间中。
然而,有时候可能会由于链路异常导致备份设备接收数据时不是按照每条数据在大数据中的顺序依次接收,而是乱序接收。
对于接收的每条数据,备份设备会判断该数据是否为与已经存储的最后一条数据相邻的数据;当是时,则将该数据存储在已经存储的最后一条数据之后;当不是时,则将该数据先存储在缓存空间中,待该数据为与已经存储的最后一条数据相邻的数据时,再将该数据存储在已经存储的最后一条数据之后。
但是,发明人发现,当接收的乱序的数据较多时,将这些乱序的数据全部存储在缓存空间中会占用较多的缓存空间,尤其是当存储的乱序数据已经占满整个缓存空间后,如果后续还接收到乱序的数据,由于缓存空间已经没有多余的存储空间,因此会将后续接收到的乱序数据丢弃,最终造成同步的数据不完整。
发明内容
为克服相关技术中存在的问题,本发明提供一种数据同步方法及装置。
根据本发明实施例的第一方面,提供一种数据同步方法,所述方法包括:
当接收到待同步数据时,在预设存储空间中的一个存储位置中存储所述待同步数据;
获取已存储的数据标识与存储位置之间的对应关系;所述对应关系中存储的数据标识之间的顺序为预设顺序;
判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序;
当不为预设顺序时,在预设缓存空间中缓存所述待同步数据的数据标识与所述存储位置;直至当所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将存储在所述预设缓存空间中的所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中。
进一步地,所述方法还包括:
当将所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中之后,从所述预设缓存空间中删除所述待同步数据的数据标识与所述存储位置。
其中,所述判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序,包括:
获取预设数据标识列表;所述预设数据标识列表中按照所述预设顺序存储了所述待同步数据的数据标识对应的数据所在的大数据中包括的每条数据的数据标识;
基于所述预设顺序在所述数据标识列表中查找与所述待同步数据的数据标识相邻的且位于所述待同步数据的数据标识之前的数据标识;
基于所述预设顺序在所述对应关系中获取排序在末位的数据标识;
判断所述查找到的数据标识与所述排序在末位的数据标识是否相同;
当查所述查找到的数据标识与所述排序在末位的数据标识相同时,确定所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序。
进一步地,其特征在于,所述方法还包括:
接收数据同步请求,所述数据同步请求携带起始同步数据的起始数据标识;
在所述对应关系中查找与所述起始数据标识对应的存储位置;
基于所述预设顺序在所述对应关系中查找位于所述起始数据标识之后的每个数据标识对应的存储位置;
获取存储在所述获取的每个存储位置中的数据;
向数据同步请求的发送端同步所述获取的数据。
进一步地,其特征在于,所述方法还包括:
接收数据同步请求,所述数据同步请求至少携带起始同步数据的起始数据标识以及结束同步数据的结束数据标识;
在所述对应关系中查找与所述起始数据标识对应的存储位置,以及查找与所述结束数据标识对应的存储位置;
在所述对应关系中查找位于所述起始数据标识与所述结束数据标识之间的所有数据标识对应的存储位置;
获取存储在所述获取的每个存储位置中的数据;
向数据同步请求的发送端同步所述获取的数据。
根据本发明实施例的第二方面,提供一种数据同步装置,所述装置包括:
第一存储模块,用于当接收到待同步数据时,在预设存储空间中的一个存储位置中存储所述待同步数据;
第一获取模块,用于获取已存储的数据标识与存储位置之间的对应关系;所述对应关系中存储的数据标识之间的顺序为预设顺序;
判断模块,用于判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序;
缓存模块,用于当不为预设顺序时,在预设缓存空间中缓存所述待同步数据的数据标识与所述存储位置;第二存储模块,用于直至当所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将存储在所述预设缓存空间中的所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中。
进一步地,所述装置还包括:
删除模块,用于当将所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中之后,从所述预设缓存空间中删除所述待同步数据的数据标识与所述存储位置。
其中,所述判断模块包括:
第一获取单元,用于获取预设数据标识列表;所述预设数据标识列表中按照所述预设顺序存储了所述待同步数据的数据标识对应的数据所在的大数据中包括的每条数据的数据标识;
查找单元,用于基于所述预设顺序在所述数据标识列表中查找与所述待同步数据的数据标识相邻的且位于所述待同步数据的数据标识之前的数据标识;
第二获取单元,用于基于所述预设顺序在所述对应关系中获取排序在末位的数据标识;
判断单元,用于判断所述查找到的数据标识与所述排序在末位的数据标识是否相同;
确定单元,用于当查所述查找到的数据标识与所述排序在末位的数据标识相同时,确定所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序。
进一步地,所述装置还包括:
第一接收模块,用于接收数据同步请求,所述数据同步请求携带起始同步数据的起始数据标识;
第一查找模块,用于在所述对应关系中查找与所述起始数据标识对应的存储位置;
第二查找模块,用于基于所述预设顺序在所述对应关系中查找位于所述起始数据标识之后的每个数据标识对应的存储位置;
第二获取模块,用于获取存储在所述获取的每个存储位置中的数据;
第一同步模块,用于向数据同步请求的发送端同步所述获取的数据。
进一步地,所述装置还包括:
第二接收模块,用于接收数据同步请求,所述数据同步请求至少携带起始同步数据的起始数据标识以及结束同步数据的结束数据标识;
第三查找模块,用于在所述对应关系中查找与所述起始数据标识对应的存储位置,以及查找与所述结束数据标识对应的存储位置;
第四查找模块,用于在所述对应关系中查找位于所述起始数据标识与所述结束数据标识之间的所有数据标识对应的存储位置;
第三获取模块,用于获取存储在所述获取的每个存储位置中的数据;
第二同步模块,用于向数据同步请求的发送端同步所述获取的数据。
本发明的实施例提供的技术方案可以包括以下有益效果:在本发明中,无需按照预设顺序存储待同步数据,因此,当接收到待同步数据时,无需先判断待同步数据是否与已经同步的数据之间的顺序是否为预设顺序,且无需将待同步数据存储在缓存空间中,而是直接在预设存储空间中的一个存储位置中存储待同步数据;从而节省了缓存空间,也不会因为缓存空间被占满而丢弃接收的数据,进而避免造成同步的数据不完整。
以及,为了能够确定出每条同步的数据在大数据中的位置顺序,只需获取已存储的数据标识与存储位置之间的对应关系,上述对应关系中存储的数据标识之间的顺序为预设顺序;然后判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序;当为预设顺序时,将待同步数据的数据标识与该存储位置作为一条记录并按照预设顺序添加在上述对应关系中;当不为预设顺序时,在预设缓存空间中缓存待同步数据的数据标识与该存储位置;执行判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序的步骤,直至述上述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将所述待同步数据的数据标识与所述存储位置作为一条记录并按照预设顺序添加在上述对应关系中。如此保证上述对应关系中存储的数据标识之间的顺序一直为预设顺序,因此通过上述对应关系就可以确定出每条数据在大数据中的位置顺序。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据同步方法的流程图;
图2是根据一示例性实施例示出的一种数据同步方法的流程图;
图3是根据一示例性实施例示出的一种数据同步方法的流程图;
图4是根据一示例性实施例示出的一种数据同步装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据同步方法的流程图,如图1所示,该方法包括以下步骤。
在步骤S101中,当接收到待同步数据时,在预设存储空间中的一个存储位置中存储待同步数据;
当某一个设备需要向本地同步数据时,如果同步的数据为占用存储空间较大的大数据,该一个设备可以将大数据按照预设顺序拆分为多条数据,预设顺序为拆分的每条数据分别在大数据中的位置顺序,然后按照预设顺序将每条数据作为待同步数据向本地同步。
其中,本地设置有一个预设存储空间,例如持久化存储设备硬盘等。当本地接收到一条待同步数据时,可以在预设存储空间获取一个未存储数据的存储位置,例如存储地址,然后将接收的待同步数据存储在获取的存储位置中。
在步骤S102中,获取已存储的数据标识与存储位置之间的对应关系;
上述对应关系中存储的数据标识之间的顺序为预设顺序。
数据标识用于唯一标识数据,任意两个数据的数据标识都不相同,数据标识可以为数据的名称、编号或生成数据的生成时刻等,本发明对此不加以限定。
在步骤S103中,判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序;
在本发明实施例中,当本地接收到该一个设备发送的大数据中的在预设顺序中排序第一的数据时,会将排序第一的数据存储在本地的预设存储空间中,然后创建数据标识与存储位置之间的对应关系,该排序第一的数据的数据标识和存储排序第一的数据的存储位置作为一条记录添加在上述对应关系中。之后,当本地接收到该一个设备发送的大数据中的在预设顺序中排序第二的数据时,会将排序第二的数据存储在本地的预设存储空间中,然后创建数据标识与存储位置之间的对应关系,该排序第二的数据的数据标识和存储排序第二的数据的存储位置作为一条记录并按照预设顺序添加在上述对应关系中,以此类推。
因此,当步骤S101中接收到的待同步数据为大数据中的预设顺序不为排序第一的数据时,则本地就会存储有上述对应关系,需要判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序。
当上述对应关系中的数据标识与待同步数据的数据标识之间的顺序为预设顺序时,在步骤S104中,将待同步数据的数据标识与该存储位置作为一条记录并按照预设顺序添加在上述对应关系中;
当上述对应关系中的数据标识与待同步数据的数据标识之间的顺序不为预设顺序时,在步骤S105中,在预设缓存空间中缓存待同步数据的数据标识与该存储位置;返回步骤S103。
其中,相比于数据所占的空间,数据的数据标识所占空间以及用于记录数据的存储位置所占空间都非常小,因此,相比与现有技术,本发明实施例可以避免占用过多的缓存空间。
进一步地,在预设缓存空间中缓存待同步数据的数据标识与该存储位置之后,一旦在步骤S103中确定出上述对应关系中的数据标识与待同步数据的数据标识之间的顺序为预设顺序,就会将待同步数据的数据标识与该存储位置作为一条记录并按预设顺序添加在对应关系中。之后就不会再利用到在预设缓存空间中缓存的待同步数据的数据标识与该存储位置,因此,为了节省预设缓存空间,可以从预设缓存空间中删除待同步数据的数据标识与该存储位置。
在本发明图1所示的实施例中,无需按照预设顺序存储待同步数据,因此,当接收到待同步数据时,无需先判断待同步数据是否与已经同步的数据之间的顺序是否为预设顺序,且无需将待同步数据存储在缓存空间中,而是直接在预设存储空间中的一个存储位置中存储待同步数据;从而节省了缓存空间,也不会因为缓存空间被占满而丢弃接收的数据,进而避免造成同步的数据不完整。
以及,为了能够确定出每条同步的数据在大数据中的位置顺序,只需获取已存储的数据标识与存储位置之间的对应关系,上述对应关系中存储的数据标识之间的顺序为预设顺序;然后判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序;当为预设顺序时,将待同步数据的数据标识与该存储位置作为一条记录并按照预设顺序添加在上述对应关系中;当不为预设顺序时,在预设缓存空间中缓存待同步数据的数据标识与该存储位置;执行判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序的步骤,直至述上述对应关系中的数据标识与待同步数据的数据标识之间的顺序为预设顺序时,将待同步数据的数据标识与存储位置作为一条记录并按照预设顺序添加在上述对应关系中。如此保证上述对应关系中存储的数据标识之间的顺序一直为预设顺序,因此通过上述对应关系就可以确定出每条数据在大数据中的位置顺序。
其中,在步骤S103中,对于上述对应关系中的存储的数据标识,任意两个相邻的数据标识之间的位置顺序与这两个数据标识分别对应的数据在大数据中的位置顺序相同。
例如,在上述对应关系中,假设基于预设顺序第一数据标识与第二数据标识相邻且第一数据标识位于第二数据标识之前,则第一数据标识对应的数据与第二数据标识对应的数据在大数据中的位置顺序也是相邻的,且第一数据标识对应的数据位于第二数据标识对应的数据之前。或者,在上述对应关系中,假设基于预设顺序第一数据标识与第二数据标识相邻且第一数据标识位于第二数据标识之后,则第一数据标识对应的数据与第二数据标识对应的数据在大数据中的位置顺序也是相邻的,且第一数据标识对应的数据位于第二数据标识对应的数据之后。
因此,在本发明另一实施例中,在步骤S103中,可以通过待同步数据的数据标识与对应关系中基于预设顺序排序在末位的数据标识来判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序,具体地,参见图2,该方法包括:
在步骤S201中,获取预设数据标识列表;
其中,预设数据标识列表中按照预设顺序存储了待同步数据的数据标识对应的数据所在的大数据中包括的每条数据的数据标识。
当前述实施例中的该一个设备将大数据按照预设顺序拆分为多条数据时,会建立一个预设数据标识列表,然后将拆分的多个数据的数据标识按照预设顺序存储在预设数据标识列表中。
当该一个设备向本地同步大数据中的第一条待同步数据时,会将预设数据标识列表同时向本地发送,当本地接收到该一个设备发送的预设数据标识列表后,会将预设数据标识列表存储在本地,当需要使用预设数据标识列表时,直接从本地获取即可。
例如,假设将大数据拆分为5条数据,分别为数据1、数据2、数据3、数据4和数据5,且这5条数据在大数据中的位置顺序为数据1、数据2、数据3、数据4和数据5。数据1的数据标识为001,数据2的数据标识为002,数据3的数据标识为003,数据4的数据标识为004,以及数据5的数据标识为005。预设数据标识列表可以如下表1所示。
表1
001
002
003
004
005
其中,在表1所示的预设数据标识列表中,数据标识由上至下的顺序即为预设顺序。
在步骤S202中,基于预设顺序在预设数据标识列表中查找与待同步数据的数据标识相邻的且位于待同步数据的数据标识之前的数据标识;
具体地,在预设数据标识列表中查找待同步数据的数据标识,获取与待同步数据的数据标识相邻的两个数据标识,然后基于预设顺序从获取的该两个数据标识中选择位于待同步数据的数据标识之前的数据标识。
在表1所示的预设数据标识列表中查找与数据标识003相邻的且位于数据标识003之前的数据标识为数据标识002。
在步骤S203中,基于预设顺序获取上述对应关系中的排序在末位的数据标识;
例如,假设步骤S101接收的待同步数据为大数据中的数据3,则之前会已经接收到数据1和数据2,以及会将数据1的数据标识001与存储数据1的存储位置存储在本地存储的数据标识与存储位置之间的对应关系中,以及会将数据2的数据标识002与存储数据2的存储位置B存储在本地存储的数据标识与存储位置之间的对应关系中,得到如表2所示的数据标识与存储位置之间的对应关系。
表2
数据标识 存储位置
001 A
002 B
其中,在表2所示的对应关系中,数据标识从上至下的顺序即为预设顺序。因此,基于预设顺序获取对应关系中的排序在末位的数据标识数据标识002。
在步骤S204中,判断查找到的数据标识与排序在末位的数据标识是否相同;
当查找到的数据标识与排序在末位的数据标识相同时,在步骤S205中,确定上述对应关系中的数据标识与待同步数据的数据标识之间的顺序为预设顺序;
例如,查找到的数据标识002与排序在末位的数据标识002相同,确定上述对应关系中的数据标识与待同步数据的数据标识之间的顺序为预设顺序。
其中,当查找到的数据标识与排序在末位的数据标识不同时,在步骤S206中,确定对应关系中的数据标识与待同步数据的数据标识之间的顺序不为预设顺序。
例如,假设步骤S101中接收的待同步数据的数据标识为数据标识004,在表1所示的预设数据标识列表中查找与数据标识004相邻的且位于数据标识004之前的数据标识为数据标识003,查找到的数据标识003与排序在末位的数据标识002不同,则确定确定对应关系中的数据标识与待同步数据的数据标识之间的顺序不为预设顺序。
进一步地,当该一个设备向本地同步完大数据时,本地还可以向另一设备同步大数据,其中本地可以主动向另一设备同步大数据;也可以接收另一设备发送的用于同步大数据的数据同步请求,根据该数据同步请求向另一设备同步大数据。
其中,参见图3,根据另一设备发送的数据同步请求来向另一个设备同步数据的方法可以为:
在步骤S301中,接收数据同步请求;数据同步请求至少携带起始同步数据的起始数据标识;
在步骤S302中,在数据标识与存储位置之间的对应关系中查找与起始数据标识对应的存储位置;
在前述实施例的例子中,当该一个设备向本地同步完大数据时,即当同步完数据1、数据2、数据3、数据4和数据5时,本地存储的数据标识与存储位置之间的对应关系如下表3所示。
表3
数据标识 存储位置
001 A
002 B
003 C
004 D
005 E
其中,存储位置A中存储的数据为数据1,存储位置B中存储的数据为数据2,存储位置C中存储的数据为数据3,存储位置D中存储的数据为数据4,以及存储位置E中存储的数据为数据5。
例如,假设在步骤S301接收到的数据同步请求中携带的起始同步数据的起始数据标识为数据标识003,则在本步骤中获取与数据标识003相对应的存储位置C。
在本发明另一实施例中,由于上述对应关系中存储的数据标识之间的顺序满足预设顺序,因此,如果上述对应关系中存储的数据标识较多,则在上述对应关系中查找起始数据标识时,可以采用二分查找的方法进行查找,以提高查找效率。
在步骤S303中,基于预设顺序在上述对应关系中查找位于起始数据标识之后的每个数据标识对应的存储位置;
由于在表3所示的对应关系中,数据标识从上至下的顺序即为预设顺序,因此,基于预设顺序位于起始数据标识003之后的数据标识为数据标识004以及数据标识005。
因此,可以在表2所示的对应关系查找与数据标识004相对应的存储位置D,以及查找与数据标识005相对应的存储位置E。
在步骤S304中,获取存储在查找的每个存储位置中的数据;
例如,获取存储在存储位置C中的数据1,获取存储在存储位置D中的数据2,以及获取存储在存储位置E中的数据3。
在步骤S305中,向数据同步请求的发送端同步获取的数据。
例如,向数据同步请求的发送端同步数据1、数据2和数据3。
在本发明另一实施例中,数据同步请求除了携带起始同步数据的起始数据标识之外,还可以携带结束同步数据的结束数据标识。这样,在上述对应关系中,可以查找与起始数据标识对应的存储位置,查找与结束数据标识对应的存储位置,以及查找位于起始数据标识与结束数据标识之间的所有数据标识对应的存储位置,获取存储在查找的每个存储位置中的数据;然后向数据同步请求的发送端同步获取的数据。
图4是根据一示例性实施例示出的一种数据同步装置的框图。参照图4,该装置包括:
第一存储模块11,用于当接收到待同步数据时,在预设存储空间中的一个存储位置中存储所述待同步数据;
第一获取模块12,用于获取已存储的数据标识与存储位置之间的对应关系;所述对应关系中存储的数据标识之间的顺序为预设顺序;
判断模块13,用于判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序;
缓存模块14,用于当不为预设顺序时,在预设缓存空间中缓存所述待同步数据的数据标识与所述存储位置;第二存储模块15,用于直至当所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将存储在所述预设缓存空间中的所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中。
在本发明图4所示的实施例中,无需按照预设顺序存储待同步数据,因此,当接收到待同步数据时,无需先判断待同步数据是否与已经同步的数据之间的顺序是否为预设顺序,且无需将待同步数据存储在缓存空间中,而是直接在预设存储空间中的一个存储位置中存储待同步数据;从而节省了缓存空间,也不会因为缓存空间被占满而丢弃接收的数据,进而避免造成同步的数据不完整。
以及,为了能够确定出每条同步的数据在大数据中的位置顺序,只需获取已存储的数据标识与存储位置之间的对应关系,上述对应关系中存储的数据标识之间的顺序为预设顺序;然后判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序;当为预设顺序时,将待同步数据的数据标识与该存储位置作为一条记录并按照预设顺序添加在上述对应关系中;当不为预设顺序时,在预设缓存空间中缓存待同步数据的数据标识与该存储位置;执行判断上述对应关系中的数据标识与待同步数据的数据标识之间的顺序是否为预设顺序的步骤,直至述上述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将所述待同步数据的数据标识与所述存储位置作为一条记录并按照预设顺序添加在上述对应关系中。如此保证上述对应关系中存储的数据标识之间的顺序一直为预设顺序,因此通过上述对应关系就可以确定出每条数据在大数据中的位置顺序。
进一步地,所述装置还包括:
删除模块,用于当将所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中之后,从所述预设缓存空间中删除所述待同步数据的数据标识与所述存储位置。
其中,所述判断模块13包括:
第一获取单元,用于获取预设数据标识列表;所述预设数据标识列表中按照所述预设顺序存储了所述待同步数据的数据标识对应的数据所在的大数据中包括的每条数据的数据标识;
查找单元,用于基于所述预设顺序在所述数据标识列表中查找与所述待同步数据的数据标识相邻的且位于所述待同步数据的数据标识之前的数据标识;
第二获取单元,用于基于所述预设顺序在所述对应关系中获取排序在末位的数据标识;
判断单元,用于判断所述查找到的数据标识与所述排序在末位的数据标识是否相同;
确定单元,用于当查所述查找到的数据标识与所述排序在末位的数据标识相同时,确定所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序。
进一步地,所述装置还包括:
第一接收模块,用于接收数据同步请求,所述数据同步请求携带起始同步数据的起始数据标识;
第一查找模块,用于在所述对应关系中查找与所述起始数据标识对应的存储位置;
第二查找模块,用于基于所述预设顺序在所述对应关系中查找位于所述起始数据标识之后的每个数据标识对应的存储位置;
第二获取模块,用于获取存储在所述获取的每个存储位置中的数据;
第一同步模块,用于向数据同步请求的发送端同步所述获取的数据。
进一步地,所述装置还包括:
第二接收模块,用于接收数据同步请求,所述数据同步请求至少携带起始同步数据的起始数据标识以及结束同步数据的结束数据标识;
第三查找模块,用于在所述对应关系中查找与所述起始数据标识对应的存储位置,以及查找与所述结束数据标识对应的存储位置;
第四查找模块,用于在所述对应关系中查找位于所述起始数据标识与所述结束数据标识之间的所有数据标识对应的存储位置;
第三获取模块,用于获取存储在所述获取的每个存储位置中的数据;
第二同步模块,用于向数据同步请求的发送端同步所述获取的数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据同步方法,其特征在于,所述方法包括:
当接收到待同步数据时,在预设存储空间中的一个存储位置中存储所述待同步数据;
获取已存储的数据标识与存储位置之间的对应关系;所述对应关系中存储的数据标识之间的顺序为预设顺序;所述预设顺序为每条待同步数据在存储位置中位置顺序,所述存储位置上保存的待同步数据具有数据标识;
判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序;
当不为预设顺序时,在预设缓存空间中缓存所述待同步数据的数据标识与所述存储位置;直至当所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将存储在所述预设缓存空间中的所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当将所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中之后,从所述预设缓存空间中删除所述待同步数据的数据标识与所述存储位置。
3.根据权利要求1所述的方法,其特征在于,所述判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序,包括:
获取预设数据标识列表;所述预设数据标识列表中按照所述预设顺序存储了所述待同步数据的数据标识对应的数据所在的大数据中包括的每条数据的数据标识;
基于所述预设顺序在所述数据标识列表中查找与所述待同步数据的数据标识相邻的且位于所述待同步数据的数据标识之前的数据标识;
基于所述预设顺序在所述对应关系中获取排序在末位的数据标识;
判断所述查找到的数据标识与所述排序在末位的数据标识是否相同;
当所述查找到的数据标识与所述排序在末位的数据标识相同时,确定所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序。
4.根据权利要求1-3任一项权利要求所述的方法,其特征在于,所述方法还包括:
接收数据同步请求,所述数据同步请求携带起始同步数据的起始数据标识;
在所述对应关系中查找与所述起始数据标识对应的存储位置;
基于所述预设顺序在所述对应关系中查找位于所述起始数据标识之后的每个数据标识对应的存储位置;
获取存储在所述查找到的每个存储位置中的数据;
向数据同步请求的发送端同步所述获取的数据。
5.根据权利要求1-3任一项权利要求所述的方法,其特征在于,所述方法还包括:
接收数据同步请求,所述数据同步请求至少携带起始同步数据的起始数据标识以及结束同步数据的结束数据标识;
在所述对应关系中查找与所述起始数据标识对应的存储位置,以及查找与所述结束数据标识对应的存储位置;
在所述对应关系中查找位于所述起始数据标识与所述结束数据标识之间的所有数据标识对应的存储位置;
获取存储在所述查找到的每个存储位置中的数据;
向数据同步请求的发送端同步所述获取的数据。
6.一种数据同步装置,其特征在于,所述装置包括:
第一存储模块,用于当接收到待同步数据时,在预设存储空间中的一个存储位置中存储所述待同步数据;
第一获取模块,用于获取已存储的数据标识与存储位置之间的对应关系;所述对应关系中存储的数据标识之间的顺序为预设顺序;所述预设顺序为每条待同步数据在存储位置中位置顺序,所述存储位置上保存的待同步数据具有数据标识;
判断模块,用于判断所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序是否为预设顺序;
缓存模块,用于当不为预设顺序时,在预设缓存空间中缓存所述待同步数据的数据标识与所述存储位置;第二存储模块,用于直至当所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序时,将存储在所述预设缓存空间中的所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
删除模块,用于当将所述待同步数据的数据标识与所述存储位置作为一条记录并按照所述预设顺序添加在所述对应关系中之后,从所述预设缓存空间中删除所述待同步数据的数据标识与所述存储位置。
8.根据权利要求6所述的装置,其特征在于,所述判断模块包括:
第一获取单元,用于获取预设数据标识列表;所述预设数据标识列表中按照所述预设顺序存储了所述待同步数据的数据标识对应的数据所在的大数据中包括的每条数据的数据标识;
查找单元,用于基于所述预设顺序在所述数据标识列表中查找与所述待同步数据的数据标识相邻的且位于所述待同步数据的数据标识之前的数据标识;
第二获取单元,用于基于所述预设顺序在所述对应关系中获取排序在末位的数据标识;
判断单元,用于判断所述查找到的数据标识与所述排序在末位的数据标识是否相同;
确定单元,用于当所述查找到的数据标识与所述排序在末位的数据标识相同时,确定所述对应关系中的数据标识与所述待同步数据的数据标识之间的顺序为预设顺序。
9.根据权利要求6-8任一项权利要求所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收数据同步请求,所述数据同步请求携带起始同步数据的起始数据标识;
第一查找模块,用于在所述对应关系中查找与所述起始数据标识对应的存储位置;
第二查找模块,用于基于所述预设顺序在所述对应关系中查找位于所述起始数据标识之后的每个数据标识对应的存储位置;
第二获取模块,用于获取存储在所述查找到的每个存储位置中的数据;
第一同步模块,用于向数据同步请求的发送端同步所述获取的数据。
10.根据权利要求6-8任一项权利要求所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收数据同步请求,所述数据同步请求至少携带起始同步数据的起始数据标识以及结束同步数据的结束数据标识;
第三查找模块,用于在所述对应关系中查找与所述起始数据标识对应的存储位置,以及查找与所述结束数据标识对应的存储位置;
第四查找模块,用于在所述对应关系中查找位于所述起始数据标识与所述结束数据标识之间的所有数据标识对应的存储位置;
第三获取模块,用于获取存储在所述查找到的每个存储位置中的数据;
第二同步模块,用于向数据同步请求的发送端同步所述获取的数据。
CN201510824943.0A 2015-11-24 2015-11-24 数据同步方法及装置 Active CN106775437B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510824943.0A CN106775437B (zh) 2015-11-24 2015-11-24 数据同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510824943.0A CN106775437B (zh) 2015-11-24 2015-11-24 数据同步方法及装置

Publications (2)

Publication Number Publication Date
CN106775437A CN106775437A (zh) 2017-05-31
CN106775437B true CN106775437B (zh) 2020-01-31

Family

ID=58964616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510824943.0A Active CN106775437B (zh) 2015-11-24 2015-11-24 数据同步方法及装置

Country Status (1)

Country Link
CN (1) CN106775437B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661857B (zh) * 2019-09-12 2021-12-07 京东数字科技控股有限公司 一种数据同步方法和装置
CN111400327B (zh) * 2020-03-11 2023-10-13 北京奇艺世纪科技有限公司 一种数据同步方法、装置、电子设备及存储介质
CN111831697A (zh) * 2020-07-14 2020-10-27 北京思特奇信息技术股份有限公司 基于jvm实现校验的方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118776A (zh) * 2007-08-21 2008-02-06 中国科学院计算技术研究所 实现音、视频数据同步的方法、系统及装置
US7363435B1 (en) * 2005-04-27 2008-04-22 Sun Microsystems, Inc. System and method for coherence prediction
CN102025605A (zh) * 2009-09-23 2011-04-20 中兴通讯股份有限公司 一种数据传输方法及系统
CN102355495A (zh) * 2011-09-27 2012-02-15 中国联合网络通信集团有限公司 数据处理方法、装置和系统
CN102722506A (zh) * 2009-12-29 2012-10-10 华为数字技术(成都)有限公司 数据存储方法及设备
CN104461938A (zh) * 2014-12-11 2015-03-25 北京国双科技有限公司 数据读取方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363435B1 (en) * 2005-04-27 2008-04-22 Sun Microsystems, Inc. System and method for coherence prediction
CN101118776A (zh) * 2007-08-21 2008-02-06 中国科学院计算技术研究所 实现音、视频数据同步的方法、系统及装置
CN102025605A (zh) * 2009-09-23 2011-04-20 中兴通讯股份有限公司 一种数据传输方法及系统
CN102722506A (zh) * 2009-12-29 2012-10-10 华为数字技术(成都)有限公司 数据存储方法及设备
CN102355495A (zh) * 2011-09-27 2012-02-15 中国联合网络通信集团有限公司 数据处理方法、装置和系统
CN104461938A (zh) * 2014-12-11 2015-03-25 北京国双科技有限公司 数据读取方法和装置

Also Published As

Publication number Publication date
CN106775437A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
US9792340B2 (en) Identifying data items
CN102890675B (zh) 一种数据存储和查找的方法及装置
CN105224546B (zh) 数据存储和查询方法及设备
CN103634375B (zh) 扩容集群节点的方法、装置及设备
CN106991102B (zh) 倒排索引中键值对的处理方法及处理系统
CN106775437B (zh) 数据同步方法及装置
CN105138571B (zh) 分布式文件系统及其存储海量小文件的方法
EP2472417A1 (en) Method and device for accessing file resources
CN102799628A (zh) 在key-value数据库中进行数据分区的方法和装置
CN110887499B (zh) 一种地图中道路数据和兴趣点数据的处理方法及终端
CN106156070B (zh) 一种查询方法、文件合并方法与相关装置
CN102932415A (zh) 一种镜像文件存储方法及装置
EP2911351A1 (en) Method and device for updating routing search tree
CN110769079A (zh) 一种检索ip对应地理位置的方法及装置
CN106709066B (zh) 数据同步方法及装置
CN104794228A (zh) 一种搜索结果提供方法及装置
CN103942209A (zh) 数据处理方法
CN107038092B (zh) 一种数据复制方法及装置
CN104301990A (zh) 一种数据同步的方法及装置
CN102073733A (zh) 哈希表管理方法及装置
CN106033452A (zh) 一种数据更新方法及装置
CN112000850B (zh) 进行数据处理的方法、装置、系统及设备
CN103186542A (zh) 一种数据查询的方法及装置
CN109271097A (zh) 数据处理方法、数据处理装置和服务器
CN110868340B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200924

Address after: Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Grand Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210220

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

Address before: Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210910

Address after: 100020 unit 02, 901, floor 9, unit 1, building 1, No.1, East Third Ring Middle Road, Chaoyang District, Beijing

Patentee after: Beijing Aoxing Beisi Technology Co.,Ltd.

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Patentee before: Ant financial (Hangzhou) Network Technology Co.,Ltd.