CN103581231A - Ugc主备数据同步方法及其*** - Google Patents
Ugc主备数据同步方法及其*** Download PDFInfo
- Publication number
- CN103581231A CN103581231A CN201210261533.6A CN201210261533A CN103581231A CN 103581231 A CN103581231 A CN 103581231A CN 201210261533 A CN201210261533 A CN 201210261533A CN 103581231 A CN103581231 A CN 103581231A
- Authority
- CN
- China
- Prior art keywords
- ugc
- data
- 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.)
- Granted
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- 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
-
- 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/2329—Optimistic concurrency control using versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving 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 Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种UGC主备数据同步方法及其***,所述方法包括以下步骤:保存主储存点中每一用户标识对应的UGC数据更新的版本标识;当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;如果是,则从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;否则,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。本发明提供的UGC主备数据同步方法及其***能够实现UGC主备数据同步一致,并且同步数据不会占用过多通信资源,同步效率受UGC数据膨胀的影响较小。
Description
技术领域
本发明涉及互联网络的技术领域,特别是涉及一种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-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种UGC主备数据同步方法,其特征在于,包括以下步骤:
保存主储存点中每一用户标识对应的UGC数据更新的版本标识;
当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;
如果是,则从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;
否则,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。
2.如权利要求1所述的UGC主备数据同步方法,其特征在于,如果判断所述版本标识不满足预定的全量同步条件,则进一步执行以下步骤:
获取所述用户标识对应的用户基本属性数据;
将所述用户基本属性数据以及所述UGC更新数据同步至所述备份点。
3.如权利要求1所述的UGC主备数据同步方法,其特征在于,在判断所述版本标识是否满足预定的全量同步条件之前进一步包括以下步骤:
读取所述主储存点的UGC更新日志,获取所述UGC更新日志中记载的UGC数据更新对应的用户标识;
获取所述用户标识对应的UGC数据更新的版本标识来进行判断。
4.如权利要求3所述的UGC主备数据同步方法,其特征在于,在每次将所述全量UGC数据或者UGC更新数据同步至所述备份点时,进一步将所述用户标识对应的UGC数据更新的版本标识保存为历史版本标识;
则从所述主储存点获取所述用户标识对应的UGC更新数据的步骤包括:
根据所述用户标识对应的UGC数据更新的当前版本标识,以及对应的历史版本标识,从所述主储存点的UGC更新日志中获取所述用户标识对应的UGC更新数据。
5.如权利要求1所述的UGC主备数据同步方法,其特征在于,判断所述版本标识是否满足预定的全量同步条件的步骤包括:
根据所述版本标识,判断在上一次全量同步之后,所述用户标识对应的UGC数据发生更新的次数是否大于或等于预设的全量同步间隔;
如果是,则判断满足预定的全量同步条件;
否则,判断不满足预定的全量同步条件;
其中,所述全量同步为将所述用户标识对应的全量UGC数据同步至所述备份点。
6.如权利要求5所述的UGC主备数据同步方法,其特征在于,所述版本标识为各个所述用户标识对应的UGC数据发生更新的累计次数。
7.如权利要求1所述的UGC主备数据同步方法,其特征在于,所述主储存点和所述备份点都保存有相同的若干个用户集,对每个所述用户集设定UGC数据更新的用户集版本标识;其中,每一所述用户集包括多个所述用户标识;
在执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件的步骤之前,先按照以下方式判断是否执行所述主储存点和所述备份点的数据同步:
按照预定的检测周期,比较所述主储存点的所述用户集版本标识,是否大于所述备份点的所述用户集版本标识;
如果是,则判断执行所述主储存点和UGC数据的备份点的数据同步;
否则,判断不执行所述主储存点和UGC数据的备份点的数据同步。
8.一种UGC主备数据同步***,其特征在于,包括:
更新版本标识模块,用于保存主储存点中每一用户标识对应的UGC数据更新的版本标识;
判断模块,用于当执行所述主储存点和UGC数据的备份点的数据同步时,判断所述版本标识是否满足预定的全量同步条件;
数据同步模块,用于在所述版本标识满足预定的全量同步条件时,从所述主储存点获取所述用户标识所对应的全量UGC数据,并同步至所述备份点;在所述版本标识不满足预定的全量同步条件时,从所述主储存点获取所述用户标识对应的UGC更新数据,并将所述UGC更新数据同步至所述备份点。
9.如权利要求8所述的UGC主备数据同步***,其特征在于,所述数据同步模块在所述版本标识不满足预定的全量同步条件时,进一步获取所述用户标识对应的用户基本属性数据;将所述用户基本属性数据以及所述UGC更新数据同步至所述备份点。
10.如权利要求8所述的UGC主备数据同步***,其特征在于,所述判断模块进一步用于读取所述主储存点的UGC更新日志,获取所述UGC更新日志中记载的UGC数据更新对应的用户标识;获取所述用户标识对应的UGC数据更新的版本标识来进行判断。
11.如权利要求10所述的UGC主备数据同步***,其特征在于,所述数据同步模块在每次将所述全量UGC数据或者UGC更新数据同步至所述备份点时,进一步将所述用户标识对应的UGC数据更新的版本标识保存为历史版本标识;并根据所述用户标识对应的UGC数据更新的当前版本标识,以及对应的历史版本标识,从所述主储存点的UGC更新日志中获取所述用户标识对应的UGC更新数据。
12.如权利要求8所述的UGC主备数据同步***,其特征在于,所述判断模块用于根据所述版本标识,判断在上一次全量同步之后,所述用户标识对应的UGC数据发生更新的次数是否大于或等于预设的全量同步间隔;如果是,则判断满足预定的全量同步条件;否则,判断不满足预定的全量同步条件;其中,所述全量同步为将所述用户标识对应的全量UGC数据同步至所述备份点。
13.如权利要求12所述的UGC主备数据同步***,其特征在于,所述版本标识为各个所述用户标识对应的UGC数据发生更新的累计次数。
14.如权利要求8所述的UGC主备数据同步***,其特征在于,进一步包括:
用户集设置模块,用于在所述主储存点和所述备份点保存相同的若干个用户集,对每个所述用户集设定UGC数据更新的用户集版本标识;其中,每一所述用户集包括多个所述用户标识;
更新判断模块,用于在所述判断模块判断所述版本标识是否满足预定的全量同步条件之前,先按以下方式判断是否执行所述主储存点和所述备份点的数据同步:
按照预定的检测周期,比较所述主储存点的所述用户集版本标识,是否大于所述备份点的所述用户集版本标识;如果是,则判断执行所述主储存点和UGC数据的备份点的数据同步;否则,判断不执行所述主储存点和UGC数据的备份点的数据同步。
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 true CN103581231A (zh) | 2014-02-12 |
CN103581231B 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317914A (zh) * | 2014-10-28 | 2015-01-28 | 小米科技有限责任公司 | 数据获取方法和装置 |
CN105262627A (zh) * | 2015-10-30 | 2016-01-20 | Tcl集团股份有限公司 | 一种固件升级方法、装置及*** |
CN105827736A (zh) * | 2016-05-20 | 2016-08-03 | 上海画擎信息科技有限公司 | 一种消息发送方法及*** |
CN105991744A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 用于同步用户应用数据的方法与设备 |
CN106055559A (zh) * | 2016-05-17 | 2016-10-26 | 北京金山安全管理***技术有限公司 | 一种数据同步方法及装置 |
CN106156164A (zh) * | 2015-04-15 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 资源信息处理方法和装置 |
CN106817387A (zh) * | 2015-11-28 | 2017-06-09 | 成都华为技术有限公司 | 一种数据同步方法、装置和*** |
CN108282501A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种云服务器资源信息同步方法、装置和*** |
CN109284339A (zh) * | 2018-11-30 | 2019-01-29 | 安徽继远软件有限公司 | 一种数据库数据实时同步的方法和装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095313B (zh) * | 2014-05-22 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 一种数据访问方法和设备 |
CN114185489A (zh) * | 2021-12-02 | 2022-03-15 | 中国电信股份有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN114661736B (zh) * | 2022-03-10 | 2024-04-16 | 北京百度网讯科技有限公司 | 电子地图更新方法、装置、电子设备、存储介质及产品 |
US20240048512A1 (en) * | 2022-08-03 | 2024-02-08 | Sap Se | Message broker consumer group versioning |
Citations (4)
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 |
US20100218040A1 (en) * | 2004-09-29 | 2010-08-26 | Verisign, Inc. | Method and Apparatus for an Improved File Repository |
CN102098342A (zh) * | 2011-01-31 | 2011-06-15 | 华为技术有限公司 | 一种基于事务级的数据同步方法、装置及*** |
CN102098344A (zh) * | 2011-02-21 | 2011-06-15 | 中国科学院计算技术研究所 | 一种缓存管理中同步版本方法和装置及其缓存管理*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794252A (en) * | 1995-01-24 | 1998-08-11 | Tandem Computers, Inc. | Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing |
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 |
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 |
JP4843976B2 (ja) * | 2005-03-25 | 2011-12-21 | 日本電気株式会社 | レプリケーションシステムと方法 |
CN101540726A (zh) * | 2009-04-27 | 2009-09-23 | 华为技术有限公司 | 同步数据的方法、客户端、服务器及*** |
CN102054035B (zh) * | 2010-12-29 | 2013-01-02 | 北京播思软件技术有限公司 | 一种基于数据范围的数据库数据同步方法 |
WO2013052601A1 (en) * | 2011-10-04 | 2013-04-11 | Chegg, Inc. | Electronic content management and delivery platform |
US20140358858A1 (en) * | 2012-03-15 | 2014-12-04 | Peter Thomas Camble | Determining A Schedule For A Job To Replicate An Object Stored On A Storage Appliance |
-
2012
- 2012-07-25 CN CN201210261533.6A patent/CN103581231B/zh active Active
-
2013
- 2013-07-25 WO PCT/CN2013/080081 patent/WO2014015809A1/zh active Application Filing
- 2013-07-25 US US14/415,372 patent/US20160026699A1/en not_active Abandoned
Patent Citations (4)
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 |
US20100218040A1 (en) * | 2004-09-29 | 2010-08-26 | Verisign, Inc. | Method and Apparatus for an Improved File Repository |
CN102098342A (zh) * | 2011-01-31 | 2011-06-15 | 华为技术有限公司 | 一种基于事务级的数据同步方法、装置及*** |
CN102098344A (zh) * | 2011-02-21 | 2011-06-15 | 中国科学院计算技术研究所 | 一种缓存管理中同步版本方法和装置及其缓存管理*** |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317914A (zh) * | 2014-10-28 | 2015-01-28 | 小米科技有限责任公司 | 数据获取方法和装置 |
CN104317914B (zh) * | 2014-10-28 | 2018-07-31 | 小米科技有限责任公司 | 数据获取方法和装置 |
CN105991744A (zh) * | 2015-03-03 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 用于同步用户应用数据的方法与设备 |
CN106156164A (zh) * | 2015-04-15 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 资源信息处理方法和装置 |
CN105262627A (zh) * | 2015-10-30 | 2016-01-20 | Tcl集团股份有限公司 | 一种固件升级方法、装置及*** |
CN105262627B (zh) * | 2015-10-30 | 2019-12-13 | Tcl集团股份有限公司 | 一种固件升级方法、装置及*** |
CN106817387A (zh) * | 2015-11-28 | 2017-06-09 | 成都华为技术有限公司 | 一种数据同步方法、装置和*** |
CN106055559A (zh) * | 2016-05-17 | 2016-10-26 | 北京金山安全管理***技术有限公司 | 一种数据同步方法及装置 |
CN105827736B (zh) * | 2016-05-20 | 2019-01-25 | 上海画擎信息科技有限公司 | 一种消息发送方法及*** |
CN105827736A (zh) * | 2016-05-20 | 2016-08-03 | 上海画擎信息科技有限公司 | 一种消息发送方法及*** |
CN108282501A (zh) * | 2017-01-05 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种云服务器资源信息同步方法、装置和*** |
CN108282501B (zh) * | 2017-01-05 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 一种云服务器资源信息同步方法、装置和*** |
CN109284339A (zh) * | 2018-11-30 | 2019-01-29 | 安徽继远软件有限公司 | 一种数据库数据实时同步的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103581231B (zh) | 2019-03-12 |
WO2014015809A1 (zh) | 2014-01-30 |
US20160026699A1 (en) | 2016-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103581231A (zh) | Ugc主备数据同步方法及其*** | |
CN106713487B (zh) | 数据的同步方法和装置 | |
CN109271435B (zh) | 一种支持断点续传的数据抽取方法及*** | |
US20170161297A1 (en) | Data synchronization in a storage network | |
CN110321339B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
CN104899325A (zh) | 一种app采集数据的收集方法、终端、服务器及*** | |
CN109634970A (zh) | 表数据同步方法、设备、存储介质及装置 | |
US11977529B2 (en) | Infinite versioning by automatic coalescing | |
CN108810127A (zh) | 基于区块链的灾备方法及装置 | |
CN102857949A (zh) | 一种规划数据一致性保证的方法和装置 | |
CN105338107A (zh) | 一种据点运营同步管理***及方法 | |
CN114443294A (zh) | 大数据服务组件部署方法、***、终端及存储介质 | |
CN103607731A (zh) | 一种测量报告的处理方法及装置 | |
CN111782618B (zh) | 一种数据同步*** | |
CN112883026A (zh) | 数据处理方法和装置 | |
CN110019131A (zh) | 一种复盘业务的方法和装置 | |
CN116991858A (zh) | 变更数据的采集方法、采集装置和数据采集*** | |
CN101227330B (zh) | 一种历史性能数据采集方法和*** | |
CN112988879A (zh) | 访问数据库的方法、***、装置、存储介质及处理器 | |
CN107422991B (zh) | 一种存储策略管理*** | |
CN115002507A (zh) | 一种视频数据更新方法、装置、设备及可读存储介质 | |
CN112612805B (zh) | 一种hbase数据索引到查询引擎的方法和相关装置 | |
CN110569231B (zh) | 数据迁移方法、装置、设备和介质 | |
CN104753659A (zh) | 一种多网元数据同步加载的方法、装置及*** | |
CN111917826A (zh) | 一种基于区块链知识产权保护的pbft共识算法 |
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 |