CN103581231B - Ugc主备数据同步方法及其系统 - Google Patents

Ugc主备数据同步方法及其系统 Download PDF

Info

Publication number
CN103581231B
CN103581231B CN201210261533.6A CN201210261533A CN103581231B CN 103581231 B CN103581231 B CN 103581231B CN 201210261533 A CN201210261533 A CN 201210261533A CN 103581231 B CN103581231 B CN 103581231B
Authority
CN
China
Prior art keywords
data
ugc
user
synchronous
full dose
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
CN201210261533.6A
Other languages
English (en)
Other versions
CN103581231A (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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co 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 Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201210261533.6A priority Critical patent/CN103581231B/zh
Priority to PCT/CN2013/080081 priority patent/WO2014015809A1/zh
Priority to US14/415,372 priority patent/US20160026699A1/en
Publication of CN103581231A publication Critical patent/CN103581231A/zh
Application granted granted Critical
Publication of CN103581231B publication Critical patent/CN103581231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种UGC主备数据同步方法及其系统,所述方法包括以下步骤:保存主储存点中每一用户标识对应的UGC数据更新的版本标识;当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;如果是,则从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;否则,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。本发明提供的UGC主备数据同步方法及其系统能够实现UGC主备数据同步一致,并且同步数据不会占用过多通信资源,同步效率受UGC数据膨胀的影响较小。

Description

UGC主备数据同步方法及其系统
技术领域
本发明涉及互联网络的技术领域,特别是涉及一种UGC主备数据同步方法,以及一种UGC主备数据同步系统。
背景技术
UGC(User Generated Content,用户生成内容)是一种使用互联网络的新方式,由原来以用户下载数据为主的应用方式,变成用户下载和上传并重。社区网络、视频分享和微博等都是UGC的主要应用形式。随着全球互联网业务的不断发展,UGC业务正在日渐崛起,引起了业界的广泛关注。
UGC类应用中对用户产生的数据的存储是其核心技术之一,为提升用户体验、保持稳定性和提高抵抗灾难的能力(如IDC掉电,地震等意外),UGC数据存储一般都采用冗余热备的方式,即数据保存多份,如分别储存在多个IDC(Internet Data Center,互联网数据中心)甚至是不同城市的IDC。其中一份为主储存点保存的主点数据,所述主储存点是UGC数据写入的唯一入口;其它的为备份点保存的备份数据,接收所述主点数据的同步,通过同步系统使多份数据之间保持实时的一致性。
由于UGC类应用中数据具有膨胀的特点,即用户产生的数据随时间推移会越来越多,如用户发表微博产生的数据,随着用户发表的微博量增大而增大,主储存点和备份点之间需要同步越来越大的数据量,占用越来越多的通信带宽资源。因此,UGC数据的膨胀性特点,使主点数据和备份数据之间的高实时一致性要求成为一个难题。
通常的UGC主备数据同步方法采用定时全量同步的方式保持一致,其原理如图1所示。当用户的UGC数据有修改时,主储存点Master上对应的用户集unit(由多个用户标识uin组成的集合)的更新标识local seq加1,同步进程syncd定时检查local seq和备份点的更新标识peer seq的差异,如果local seq>peer seq,则根据peer seq从所述主储存点的数据更新日志binlog中取出发生数据更新的uin,并且取出对应的uin的全量UGC数据,发送给备份点Slave。所述备份点Slave接收所述全量UGC数据,保存至对应的uin,并更新本地的用户集unit的更新标识local seq,从而达到保持数据的一致的目的。
当主备点之间同步的数据量基本稳定且不大的情况,上述同步方法可以较好的保证数据一致性。然而,由于UGC类应用中数据膨胀的特性比较突出,用户的UGC数据会随时间越来越大,例如在微博应用,用户发表的微博量可以达到数十万,用户索引数据总量可以达到数十兆,如果采用上述同步方法,则用户每发表一条微博或删除一条微博,都会将该用户的用户标识所对应的全量UGC数据同步到备份点。而随着同步的数据量变大,同步效率及实时性会大幅降低,通常解决的方法大多依赖于建立同步所用的专线带宽,而同步专线的资源有限,特别是建设跨城同步专线更是昂贵。
发明内容
针对上述背景技术中存在的问题,本发明的目的在于提供一种能够实现UGC主备数据同步一致,并且同步数据不会占用过多通信资源的UGC主备数据同步方法,以及一种UGC主备数据同步系统。
一种UGC主备数据同步方法,包括:
保存主储存点中每一用户标识对应的UGC数据更新的版本标识;
当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;
如果是,则从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;
否则,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。
一种UGC主备数据同步系统,包括:
更新版本标识模块,用于保存主储存点中每一用户标识对应的UGC数据更新的版本标识;
判断模块,用于当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;
数据同步模块,用于在所述版本标识满足预定的全量同步条件时,从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;在所述版本标识不满足预定的全量同步条件时,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。
本发明的UGC主备数据同步方法及其系统,通过保存主储存点中每一用户标识对应的UGC数据更新的版本标识以及预先设定全量同步条件,只有在所述版本标识满足所述全量同步条件时,才进行全量同步,保证UGC主备数据的一致性;否则,进行增量同步,使同步数据不会占用过多的通信带宽资源。因此,能够使UGC类应用的膨胀性数据在窄带情况下也能够保持较高的实时一致性。
附图说明
图1是通常的UGC主备数据同步方法的原理示意图;
图2是本发明UGC主备数据同步方法第一实施方式的流程示意图;
图3是本发明UGC主备数据同步方法第二实施方式的流程示意图;
图4时本发明UGC主备数据同步方法在一个实施例中应用的原理示意图;
图5是本发明UGC主备数据同步系统的结构示意图。
具体实施方式
请参阅图2,图2是本发明UGC主备数据同步方法第一实施方式的流程示意图。
所述UGC主备数据同步方法包括以下步骤:
S101,保存主储存点中每一用户标识对应的UGC数据更新的版本标识;
S102,当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;
如果是,则执行步骤S103,从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;
否则,执行步骤S104,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。
其中,对于步骤S101,所述主储存点中每一用户标识对应的UGC数据更新的版本标识包括版本号,或者各个所述用户标识对应的UGC数据发生更新的累计次数等,用于记录同一用户标识对应的UGC数据发生更新的数据版本或者更新的累计次数。在各个所述用户标识对应的UGC数据发生更新时,所述版本标识对应修改,例如UGC数据发生更新一次,所述版本标识的取值加1,以便在步骤S102中根据所述版本标识决定是否进行全量同步。
对于步骤S102,所述UGC主备数据的同步操作可以按照预定的时间间隔执行,也可以按照其他自定义的触发方式执行。优选地,所述主储存点和所述备份点都保存有相同的若干个用户集,对每个所述用户集设定UGC数据更新的用户集版本标识;其中,每一所述用户集包括多个所述用户标识;
在执行步骤S102之前,先按照以下方式判断是否执行主储存点和UGC数据的备份点的数据同步:
按照预定的检测周期,比较所述主储存点的所述用户集版本标识,是否大于所述备份点的所述用户集版本标识;
如果是,则判断执行所述主储存点和UGC数据的备份点的数据同步;
否则,判断不执行所述主储存点和UGC数据的备份点的数据同步。
通过将所述主储存点和所述备份点的多个用户标识划分为若干个用户集,设定所述用户集版本标识,标记每个用户集的UGC数据更新的版本,在所述主储存点的用户集版本标识大于所述备份点的用户集版本标识时,表明对于该用户集,主储存点的UGC数据比备份点的UGC数据更新,因此执行所述主储存点和UGC数据的备份点的数据同步。
当执行UGC主备数据同步时,判断所述版本标识是否满足预定的全量同步条件,所述预定条件包括累计更新次数为预设的全量同步间隔的整数倍,或者距离上一次UGC数据全量同步的时间间隔超过预设值等,本领域的技术人员可以根据实际情况具体设定。
作为一个实施例,所述判断所述版本标识是否满足预定的全量同步条件的步骤可以通过以下方式实现:
根据所述版本标识,判断在上一次全量同步之后,所述用户标识对应的UGC数据发生更新的次数是否大于或等于预设的全量同步间隔;
如果是,则判断满足预定的全量同步条件;
否则,判断不满足预定的全量同步条件;
其中,所述全量同步为将所述用户标识对应的全量UGC数据同步至所述备份点。
在本实施例中,以所述UGC数据发生更新的次数是否大于或等于预设的全量同步间隔作为UGC数据全量同步的条件。例如可以设定全量同步间隔为10,则在一次全量同步之后,同一用户标识对应的UGC数据只有再次经过10次更新(包括增加、删除和修改等)后,才会满足预定的全量同步条件,再次执行全量同步,否则,在不满足全量同步条件时,只执行增量同步,从而减少同步数据对通信带宽资源的占用。
上述实施例中,设置所述版本标识为各个所述用户标识对应的UGC数据发生更新的累计次数,则只有在本次同步时的版本标识减去上一次全量同步时的版本标识的差值大于或等于预设的全量同步间隔次数时,才执行全量同步。
对于步骤S103,所述用户标识所对应的全量UGC数据包括所述用户标识对应的UGC更新数据以及UGC历史数据。
而对于S104,则只同步所述用户标识对应的UGC更新数据。
本发明的UGC主备数据同步方法,通过保存主储存点中每一用户标识对应的UGC数据更新的版本标识以及预先设定全量同步条件,只有在所述版本标识满足所述全量同步条件时,才进行全量同步,保证UGC主备数据的一致性;否则,进行增量同步,使同步数据不会占用过多的通信带宽资源。因此,能够使UGC类应用的膨胀性数据在窄带情况下也能够保持较高的实时一致性。
请进一步参阅图3,图3是本发明UGC主备数据同步方法第二实施方式的流程示意图。
与第一实施方式的所述UGC主备数据同步方法相比较,在本实施方式的所述UGC主备数据同步方法的主要区别在于:
在执行步骤S102后,如果判断所述版本标识不满足预定的全量同步条件,从所述主储存点获取所述用户标识对应的UGC更新数据时,进一步执行以下步骤:
S105,获取所述用户标识对应的用户基本属性数据;
然后在步骤S106中,将所述用户基本属性数据以及所述UGC更新数据同步至所述备份点。
其中,每个所述用户标识对应的UGC数据可分为用户基本属性数据,以及由用户一次操作产生的追加数据。
所述追加数据是由用户的一次应用生成的数据,包括由于用户的上传操作,或者编辑操作引起的各种一次性新增数据,例如微博系统中用户发表的消息的内容、发表消息的id,消息的时间,消息来源等,是UGC数据膨胀的主要来源。
而所述用户基本属性数据亦即是所述追加数据之外的其他UGC数据,通常是UGC的应用系统带有的基本统计数据,或者是所有不是由用户的一次应用而产生的UGC数据。例如用户原创的微博数量、用户转发的微博数量、发表的评论数量或者用户的积分等统计数据,其特点是数据量不大,并且不会随时间的推移而有较大的增长。通常追加数据远大于用户基本属性数据。
在本实施方式中,在判断所述版本标识不满足预定的全量同步条件时,不仅同步所述用户标识对应的UGC更新数据,而且同步所述用户标识对应的用户基本属性数据,因此,能够确保备份点与主储存点的用户基本属性数据保持一致,提高UGC主备数据的一致性。而由于所述由用户操作产生的追加数据才是UGC数据膨胀的主要来源,而所述基本属性数据的数据量不大,并且不会随时间膨胀,因此,同步数据同样不会占用过多的通讯带宽资源,并且更好地解决了UGC主备数据的一致性的问题。
优选地,在本发明的UGC主备数据同步方法中,判断所述版本标识是否满足预定的全量同步条件之前,可进一步执行以下步骤:
读取所述主储存点的UGC更新日志,获取所述UGC更新日志中记载的UGC数据更新对应的用户标识;
获取所述用户标识对应的UGC数据更新的版本标识来进行判断。
则,在需要执行UGC的主备数据同步时,首先根据UGC更新日志筛选出哪一个用户标识所对应的UGC数据发生更新,从而对发生更新的UGC数据,根据对应的用户标识获取UGC数据更新的版本标识,进行是否满足预定的全量同步条件的判断。因为首先根据UGC更新日志筛选出发生过UGC数据更新的用户标识,提高了同步效率。
进一步地,在每次将所述全量UGC数据或者UGC更新数据同步至所述备份点时,进一步将所述用户标识对应的UGC数据更新的版本标识保存为历史版本标识;
则从所述主储存点获取所述用户标识对应的UGC更新数据的步骤包括:
根据所述用户标识对应的UGC数据更新的当前版本标识,以及对应的历史版本标识,从所述主储存点的UGC更新日志中获取所述用户标识对应的UGC更新数据。
通过比较所述UGC数据的当前版本标识,以及对应的历史版本标识,可以准确地确定在上一次同步之后,UGC数据发生了那些更新,从而可以从所述UGC更新日志中获取对应的UGC更新数据,非常方便。
请参阅图4,图4时本发明UGC主备数据同步方法在一个实施例中应用的原理示意图。
以微博系统的UGC主备数据同步为例,将微博系统的UGC数据划分成用户基本属性数据base_data以及由用户一次操作产生的追加数据gen_data两部分;保存主储存点Master中每一用户标识uin对应的UGC数据更新的版本标识,在本实施例中为UGC数据更新的序列号uin seq,在UGC数据发生更新时,无论是base_data还是gen_data的部分发生变化都会进行uin seq加1的操作。
将所述主储存点和所述备份点的用户标识Uin划分为若干个用户集unit,其中,每一个用户集unit包括多个用户标识Uin的集合,如10万个连续的Uin为一个Unit。对所述主储存点的每个所述用户集设定UGC数据更新的用户集版本标识local seq,在所述主储存点记录对所述备份点的每个所述用户集设定的UGC数据更新的用户集版本标识peer seq。
同步进程syncd定时检查每一个用户集unit的local seq和peer seq,当localseq>peer seq的时候发起同步动作。
数据同步分成增量同步和全量同步两种模式,设定全量同步条件为Uin_Seq%N=0,其中%为模运算符号,N为预设的全量同步频率因子,取值范围是[1,+∞]的正整数。则Uin_Seq%N取值范围是[0,N-1],如果Uin_Seq%N=0,则同步对应的uin的全量UGC数据,即base_data加gen_data;如果Uin_Seq%N>0,则同步对应的uin的用户基本属性数据base_data,以及UGC更新数据binlog。例如设定N的取值为10,则每十次更新数据中进行九次增量数据同步,一次全量数据同步。在保持UGC主备数据一致的同时,降低同步数据对通信带宽资源的占用。
本实施例的UGC主备数据同步方法具有以下优点:对于不断膨胀的UGC数据的同步,在保证实时一致性的前提下,能够保证同步效率基本相同;解决不断膨胀的UGC数据对带宽的高消耗,使得数据同步窄带化,节约成本;同步设置灵活,通过配置全量同步频率因子N,可以方便配置全量同步和增量同步的比例,系统运营灵活。
请参阅图5,图5是本发明UGC主备数据同步系统的结构示意图。
所述UGC主备数据同步系统包括:更新版本标识模块11、判断模块12和数据同步模块13。所述更新版本标识模块11用于保存主储存点中每一用户标识对应的UGC数据更新的版本标识;所述判断模块12用于当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;所述数据同步模块13用于在所述版本标识满足预定的全量同步条件时,从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;在所述版本标识不满足预定的全量同步条件时,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。
其中,所述主储存点中每一用户标识对应的UGC数据更新的版本标识包括版本号,或者各个所述用户标识对应的UGC数据发生更新的累计次数等,用于记录同一用户标识对应的UGC数据发生更新的数据版本或者更新的累计次数。在各个所述用户标识对应的UGC数据发生更新时,所述版本标识对应修改,例如UGC数据发生更新一次,所述版本标识的取值加1,所述判断模块12根据所述版本标识决定是否进行全量同步。
所述UGC主备数据的同步操作可以按照预定的时间间隔执行,也可以按照其他自定义的触发方式执行。
优选地,所述UGC主备数据同步系统进一步包括:用户集设置模块和更新判断模块(图未示),所述用户集设置模块用于在所述主储存点和所述备份点保存相同的若干个用户集,对每个所述用户集设定UGC数据更新的用户集版本标识;其中,每一所述用户集包括多个所述用户标识;
所述更新判断模块用于在所述判断模块12判断所述版本标识是否满足预定的全量同步条件之前,先按以下方式判断是否执行所述主储存点和所述备份点的数据同步:
按照预定的检测周期,比较所述主储存点的用户集版本标识,是否大于所述备份点的用户集版本标识;如果是,则判断执行所述主储存点和UGC数据的备份点的数据同步;否则,判断不执行所述主储存点和UGC数据的备份点的数据同步。
通过将所述主储存点和所述备份点的多个用户标识划分为若干个用户集,设定所述用户集版本标识,标记每个用户集的UGC数据更新的版本,提高UGC数据主备同步的效率。在所述主储存点的用户集版本标识大于所述备份点的用户集版本标识时,表明对于该用户集,主储存点的UGC数据比备份点的UGC数据更新,因此执行所述主储存点和UGC数据的备份点的数据同步。
当执行UGC主备数据同步时,所述判断模块12判断所述版本标识是否满足预定的全量同步条件,所述预定条件包括累计更新次数为预设的全量同步间隔的整数倍,或者距离上一次UGC数据全量同步的时间间隔超过预设值等,本领域的技术人员可以根据实际情况具体设定。
作为一个实施例,所述判断模块12判断所述版本标识是否满足预定的全量同步条件的步骤可以通过以下方式实现:
根据所述版本标识,判断在上一次全量同步之后,所述用户标识对应的UGC数据发生更新的次数是否大于或等于预设的全量同步间隔;
如果是,则判断满足预定的全量同步条件;
否则,判断不满足预定的全量同步条件;
其中,所述全量同步为将所述用户标识对应的全量UGC数据同步至所述备份点。
在本实施例中,所述判断模块12以所述UGC数据发生更新的次数是否大于或等于预设的全量同步间隔作为UGC数据全量同步的条件。例如可以设定全量同步间隔为10,则在一次全量同步之后,同一用户标识对应的UGC数据只有再次经过10次更新(包括增加、删除和修改等)后,才会满足预定的全量同步条件,再次进行全量同步,否则,在不满足全量同步条件时,只进行增量同步,从而减少同步数据对通信带宽资源的占用。
上述实施例中,所述版本标识设置为各个所述用户标识对应的UGC数据发生更新的累计次数,则所述判断模块12判断只有在本次同步时的版本标识减去上一次全量同步时的版本标识的差值大于或等于预设的全量同步间隔次数时,才执行全量同步。
所述用户标识所对应的全量UGC数据包括所述用户标识对应的UGC更新数据以及UGC历史数据。所述数据同步模块13根据所述判断模块12的判断,分别进行全量同步和增量同步。进行全量同步时,将所述用户标识所对应的全量UGC数据(包括UGC更新数据以及UGC历史数据)同步至所述备份点;在进行增量同步时,将所述用户标识对应的UGC更新数据同步至所述备份点。
本发明的UGC主备数据同步系统通过保存主储存点中每一用户标识对应的UGC数据更新的版本标识以及预先设定全量同步条件,只有在所述版本标识满足所述全量同步条件时,才进行全量同步,保证UGC主备数据的一致性;否则,进行增量同步,使同步数据不会占用过多的通信带宽资源。因此,能够使UGC类应用的膨胀性数据在窄带情况下也能够保持较高的实时一致性。
在本发明所述UGC主备数据同步系统的一种优选实施方式中,所述数据同步模块13在所述版本标识不满足预定的全量同步条件时,进一步获取所述用户标识对应的用户基本属性数据;将所述用户基本属性数据以及所述UGC更新数据同步至所述备份点。
其中,每个所述用户标识对应的UGC数据可分为用户基本属性数据,以及由用户一次操作产生的追加数据。
所述追加数据是由用户的一次应用生成的数据,包括由于用户的上传操作,或者编辑操作引起的各种一次性新增数据,例如微博系统中用户发表的消息的内容、发表消息的id,消息的时间,消息来源等,是UGC数据膨胀的主要来源。
而所述用户基本属性数据亦即是所述追加数据之外的其他UGC数据,通常是UGC的应用系统带有的基本统计数据,或者是所有不是由用户的一次应用而产生的UGC数据。例如用户原创的微博数量、用户转发的微博数量、发表的评论数量或者用户的积分等统计数据,其特点是数据量不大,并且不会随时间的推移而有较大的增长。通常追加数据远大于用户基本属性数据。
在本实施方式中,所述数据同步模块13在所述判断模块12判断所述版本标识不满足预定的全量同步条件时,不仅同步所述用户标识对应的UGC更新数据,而且同步所述用户标识对应的用户基本属性数据,因此,能够确保备份点与主储存点的用户基本属性数据保持一致,提高UGC主备数据的一致性。而由于所述由用户操作产生的追加数据才是UGC数据膨胀的主要来源,所述基本属性数据的数据量不大,并且不会随时间膨胀,因此,同步数据同样不会占用过多的通讯带宽资源,并且更好地解决了UGC主备数据的一致性的问题。
优选地,所述判断模块12进一步用于读取所述主储存点的UGC更新日志,获取所述UGC更新日志中记载的UGC数据更新对应的用户标识;获取所述用户标识对应的UGC数据更新的版本标识来进行判断。
则,在需要执行UGC的主备数据同步时,所述判断模块12首先根据UGC更新日志筛选出哪一个用户标识所对应的UGC数据发生更新,从而对发生更新的UGC数据,根据对应的用户标识获取UGC数据更新的版本标识,进行是否满足预定的全量同步条件的判断。因为首先根据UGC更新日志筛选出发生过UGC数据更新的用户标识,提高了同步效率。
进一步地,所述数据同步模块13在每次将所述全量UGC数据或者UGC更新数据同步至所述备份点时,进一步将所述用户标识对应的UGC数据更新的版本标识保存为历史版本标识;并且根据所述用户标识对应的UGC数据更新的当前版本标识,以及对应的历史版本标识,从所述主储存点的UGC更新日志中获取所述用户标识对应的UGC更新数据。
通过比较所述UGC数据的当前版本标识,以及对应的历史版本标识,可以准确地确定在上一次同步之后,UGC数据发生了那些更新,从而可以从所述UGC更新日志中获取对应的UGC更新数据,非常方便。
本领域普通技术人员可以理解实现上述实施方式中的全部或部分流程以及对应的系统,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施方式的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种UGC主备数据同步方法,其特征在于,包括以下步骤:
保存主储存点中每一用户标识对应的UGC数据更新的版本标识,每个所述用户标识对应的UGC数据分为用户基本属性数据,以及由用户一次操作产生的追加数据,所述用户基本属性数据是所述追加数据之外的其他UGC数据,所述用户基本属性数据包括:UGC应用系统带有的基本统计数据,或者所有不是由用户的一次应用而产生的UGC数据;
当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;
如果是,则从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;
否则,从所述主储存点获取所述用户标识对应的UGC更新数据,并获取所述用户标识对应的用户基本属性数据,并将所述用户标识对应的用户基本属性数据以及所述UGC更新数据同步至所述备份点。
2.如权利要求1所述的UGC主备数据同步方法,其特征在于,在判断所述版本标识是否满足预定的全量同步条件之前进一步包括以下步骤:
读取所述主储存点的UGC更新日志,获取所述UGC更新日志中记载的UGC数据更新对应的用户标识;
获取所述用户标识对应的UGC数据更新的版本标识来进行判断。
3.如权利要求2所述的UGC主备数据同步方法,其特征在于,在每次将所述全量UGC数据或者UGC更新数据同步至所述备份点时,进一步将所述用户标识对应的UGC数据更新的版本标识保存为历史版本标识;
则从所述主储存点获取所述用户标识对应的UGC更新数据的步骤包括:
根据所述用户标识对应的UGC数据更新的当前版本标识,以及对应的历史版本标识,从所述主储存点的UGC更新日志中获取所述用户标识对应的UGC更新数据。
4.如权利要求1所述的UGC主备数据同步方法,其特征在于,判断所述版本标识是否满足预定的全量同步条件的步骤包括:
根据所述版本标识,判断在上一次全量同步之后,所述用户标识对应的UGC 数据发生更新的次数是否大于或等于预设的全量同步间隔;
如果是,则判断满足预定的全量同步条件;
否则,判断不满足预定的全量同步条件;
其中,所述全量同步为将所述用户标识对应的全量UGC数据同步至所述备份点。
5.如权利要求4所述的UGC主备数据同步方法,其特征在于,所述版本标识为各个所述用户标识对应的UGC数据发生更新的累计次数。
6.如权利要求1所述的UGC主备数据同步方法,其特征在于,所述主储存点和所述备份点都保存有相同的若干个用户集,对每个所述用户集设定UGC数据更新的用户集版本标识;其中,每一所述用户集包括多个所述用户标识;
在执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件的步骤之前,先按照以下方式判断是否执行所述主储存点和所述备份点的数据同步:
按照预定的检测周期,比较所述主储存点的所述用户集版本标识,是否大于所述备份点的所述用户集版本标识;
如果是,则判断执行所述主储存点和UGC数据的备份点的数据同步;
否则,判断不执行所述主储存点和UGC数据的备份点的数据同步。
7.一种UGC主备数据同步系统,其特征在于,包括:
更新版本标识模块,用于保存主储存点中每一用户标识对应的UGC数据更新的版本标识,每个所述用户标识对应的UGC数据分为用户基本属性数据,以及由用户一次操作产生的追加数据,所述用户基本属性数据是所述追加数据之外的其他UGC数据,所述用户基本属性数据包括:UGC应用系统带有的基本统计数据,或者所有不是由用户的一次应用而产生的UGC数据;
判断模块,用于当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;所述预定的全量同步条件包括:累计更新次数为预设的全量同步间隔的整数倍,或者,距离上一次UGC数据全量同步的时间间隔超过预设值;
数据同步模块,用于所述主储存 点的同步进程在所述版本标识满足预定的全量同步条件时,从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;在所述版本标识不满足预定的全量同步条件时,从所述主储存点获取所述用户标识对应的UGC更新数据,并获取所述用户标识对应的用户基本属性数据,并将所述用户标识对应的用户基本属性数据以及所述UGC更新数据同步至所述备份点。
8.如权利要求7所述的UGC主备数据同步系统,其特征在于,所述判断模块进一步用于读取所述主储存点的UGC更新日志,获取所述UGC更新日志中记载的UGC数据更新对应的用户标识;获取所述用户标识对应的UGC数据更新的版本标识来进行判断。
9.如权利要求8所述的UGC主备数据同步系统,其特征在于,所述数据同步模块在每次将所述全量UGC数据或者UGC更新数据同步至所述备份点时,进一步将所述用户标识对应的UGC数据更新的版本标识保存为历史版本标识;并根据所述用户标识对应的UGC数据更新的当前版本标识,以及对应的历史版本标识,从所述主储存点的UGC更新日志中获取所述用户标识对应的UGC更新数据。
10.如权利要求7所述的UGC主备数据同步系统,其特征在于,所述判断模块用于根据所述版本标识,判断在上一次全量同步之后,所述用户标识对应的UGC数据发生更新的次数是否大于或等于预设的全量同步间隔;如果是,则判断满足预定的全量同步条件;否则,判断不满足预定的全量同步条件;其中,所述全量同步为将所述用户标识对应的全量UGC数据同步至所述备份点。
11.如权利要求10所述的UGC主备数据同步系统,其特征在于,所述版本标识为各个所述用户标识对应的UGC数据发生更新的累计次数。
12.如权利要求7所述的UGC主备数据同步系统,其特征在于,进一步包括:
用户集设置模块,用于在所述主储存点和所述备份点保存相同的若干个用户集,对每个所述用户集设定UGC数据更新的用户集版本标识;其中,每一所述用户集包括多个所述用户标识;
更新判断模块,用于在所述判断模块判断所述版本标识是否满足预定的全量同步条件之前,先按以下方式判断是否执行所述主储存点和所述备份点的数据同步:
按照预定的检测周期,比较所述主储存点的所述用户集版本标识,是否大于所述备份点的所述用户集版本标识;如果是,则判断执行所述主储存点和UGC数据的备份点的数据同步;否则,判断不执行所述主储存点和UGC数据的备份点的数据同步。
CN201210261533.6A 2012-07-25 2012-07-25 Ugc主备数据同步方法及其系统 Active CN103581231B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210261533.6A CN103581231B (zh) 2012-07-25 2012-07-25 Ugc主备数据同步方法及其系统
PCT/CN2013/080081 WO2014015809A1 (zh) 2012-07-25 2013-07-25 Ugc主备数据同步方法及其系统、计算机存储介质
US14/415,372 US20160026699A1 (en) 2012-07-25 2013-07-25 Method for Synchronization of UGC Master and Backup and System Thereof, and Computer Storage Medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210261533.6A CN103581231B (zh) 2012-07-25 2012-07-25 Ugc主备数据同步方法及其系统

Publications (2)

Publication Number Publication Date
CN103581231A CN103581231A (zh) 2014-02-12
CN103581231B true CN103581231B (zh) 2019-03-12

Family

ID=49996603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210261533.6A Active CN103581231B (zh) 2012-07-25 2012-07-25 Ugc主备数据同步方法及其系统

Country Status (3)

Country Link
US (1) US20160026699A1 (zh)
CN (1) CN103581231B (zh)
WO (1) WO2014015809A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095313B (zh) * 2014-05-22 2018-12-28 阿里巴巴集团控股有限公司 一种数据访问方法和设备
CN104317914B (zh) * 2014-10-28 2018-07-31 小米科技有限责任公司 数据获取方法和装置
CN105991744B (zh) * 2015-03-03 2019-12-17 阿里巴巴集团控股有限公司 用于同步用户应用数据的方法与设备
CN106156164B (zh) * 2015-04-15 2021-01-29 腾讯科技(深圳)有限公司 资源信息处理方法和装置
CN105262627B (zh) * 2015-10-30 2019-12-13 Tcl集团股份有限公司 一种固件升级方法、装置及系统
CN106817387B (zh) * 2015-11-28 2021-01-29 成都华为技术有限公司 一种数据同步方法、装置和系统
CN106055559A (zh) * 2016-05-17 2016-10-26 北京金山安全管理系统技术有限公司 一种数据同步方法及装置
CN105827736B (zh) * 2016-05-20 2019-01-25 上海画擎信息科技有限公司 一种消息发送方法及系统
CN108282501B (zh) * 2017-01-05 2021-03-09 阿里巴巴集团控股有限公司 一种云服务器资源信息同步方法、装置和系统
CN109284339A (zh) * 2018-11-30 2019-01-29 安徽继远软件有限公司 一种数据库数据实时同步的方法和装置
CN114185489A (zh) * 2021-12-02 2022-03-15 中国电信股份有限公司 一种数据同步方法、装置、电子设备及存储介质
CN114661736B (zh) * 2022-03-10 2024-04-16 北京百度网讯科技有限公司 电子地图更新方法、装置、电子设备、存储介质及产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005088474A1 (en) * 2004-03-17 2005-09-22 Abb Research Ltd Service for verifying consistency of replicated data
CN102098342A (zh) * 2011-01-31 2011-06-15 华为技术有限公司 一种基于事务级的数据同步方法、装置及系统
CN102098344A (zh) * 2011-02-21 2011-06-15 中国科学院计算技术研究所 一种缓存管理中同步版本方法和装置及其缓存管理系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745753A (en) * 1995-01-24 1998-04-28 Tandem Computers, Inc. Remote duplicate database facility with database replication support for online DDL operations
US5835915A (en) * 1995-01-24 1998-11-10 Tandem Computer Remote duplicate database facility with improved throughput and fault tolerance
US5794252A (en) * 1995-01-24 1998-08-11 Tandem Computers, Inc. Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
DE60220418T2 (de) * 2002-11-14 2008-01-31 Alcatel Lucent Verfahren und Anbieter zur Systemsynchronisation
US7761678B1 (en) * 2004-09-29 2010-07-20 Verisign, Inc. Method and apparatus for an improved file repository
JP4843976B2 (ja) * 2005-03-25 2011-12-21 日本電気株式会社 レプリケーションシステムと方法
CN101540726A (zh) * 2009-04-27 2009-09-23 华为技术有限公司 同步数据的方法、客户端、服务器及系统
CN102054035B (zh) * 2010-12-29 2013-01-02 北京播思软件技术有限公司 一种基于数据范围的数据库数据同步方法
US9542538B2 (en) * 2011-10-04 2017-01-10 Chegg, Inc. Electronic content management and delivery platform
EP2825953A4 (en) * 2012-03-15 2016-08-03 Hewlett Packard Entpr Dev Lp DEFINITION OF A FLOW PLAN FOR AN ORDER TO REPLICATE AN OBJECT STORED ON A MEMORY DEVICE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005088474A1 (en) * 2004-03-17 2005-09-22 Abb Research Ltd Service for verifying consistency of replicated data
CN102098342A (zh) * 2011-01-31 2011-06-15 华为技术有限公司 一种基于事务级的数据同步方法、装置及系统
CN102098344A (zh) * 2011-02-21 2011-06-15 中国科学院计算技术研究所 一种缓存管理中同步版本方法和装置及其缓存管理系统

Also Published As

Publication number Publication date
CN103581231A (zh) 2014-02-12
WO2014015809A1 (zh) 2014-01-30
US20160026699A1 (en) 2016-01-28

Similar Documents

Publication Publication Date Title
CN103581231B (zh) Ugc主备数据同步方法及其系统
CN105187464B (zh) 一种分布式存储系统中的数据同步方法、装置及系统
CN104488248B (zh) 一种文件同步方法、服务器及终端
CN108280080A (zh) 一种数据同步方法、装置以及电子设备
CN104537076A (zh) 一种文件读写方法及装置
CN105608142B (zh) 一种Json数据的存储方法及装置
CN110321383A (zh) 大数据平台数据同步方法、装置、计算机设备及存储介质
CN109634970A (zh) 表数据同步方法、设备、存储介质及装置
CN106055622A (zh) 一种数据搜索方法及系统
CN104967873A (zh) 流媒体直播调度方法、系统和调度服务器
CN110941676B (zh) 一种配置方法、装置、设备及介质
CN107040576A (zh) 信息推送方法及装置、通讯系统
CN106708941A (zh) 电网多任务在线协同编辑方法
CN109361777A (zh) 分布式集群节点状态的同步方法、同步系统及相关装置
CN105827678A (zh) 一种基于高可用架构下的通信方法和节点
CN115146002A (zh) 跨数据中心的数据同步方法及装置
CN108256034A (zh) 数据迁移方法及设备
CN105915636B (zh) 一种联系人信息的同步方法和装置
CN110377602A (zh) 一种数据同步方法、系统和存储介质
CN102594874B (zh) 一种同步处理方法和装置
CN112486664A (zh) 一种节点扩容方法、系统、终端及存储介质
CN104378239A (zh) 基于集群框架的快速可靠性指标统计系统及方法
CN106528286A (zh) 一种实现定时器的方法和装置
CN104753659B (zh) 一种多网元数据同步加载的方法、装置及系统
CN109656610A (zh) 网络游戏分布式数据热更新方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant