CN107451172B - 用于版本管理***的数据同步方法及设备 - Google Patents
用于版本管理***的数据同步方法及设备 Download PDFInfo
- Publication number
- CN107451172B CN107451172B CN201710197728.1A CN201710197728A CN107451172B CN 107451172 B CN107451172 B CN 107451172B CN 201710197728 A CN201710197728 A CN 201710197728A CN 107451172 B CN107451172 B CN 107451172B
- Authority
- CN
- China
- Prior art keywords
- storage
- management system
- version management
- data content
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- 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
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的一个目的是提供一种用于版本管理***的数据同步方法及设备。具体地,主节点设备在接收到写操作请求时,根据写操作请求更新主节点设备对应的版本管理***的数据内容,并向存储设备写入写操作请求对应的操作记录,以及向存储设备中写入存储点;从节点设备在启动时,从存储设备读取存储点,根据记录指针从存储设备读取后续操作记录,根据当前数据内容及后续操作记录更新从节点设备对应的版本管理***的数据内容。与现有技术相比,采用的是实时的增量数据备份,减少了数据的存储量,并且不需要对已有版本管理***进行改造,可以适用于各类***,并不会增加数据处理的复杂性,因此不会降低***性能。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种用于版本管理***的数据同步方法及设备。
背景技术
版本管理***可以存储、追踪目录和文件的修改历史,用于存储软件开发的代码,文档等内容。当前流行的版本管理***有csv,svn,git等。根据工作方式又可以进一步分为集中式和分布式管理***两种。集中式版本管理依赖于一个全局的存储仓库,对数据的同步和管理更加方便,但是也造成了可用性的限制。分布式版本管理***在本地复制一份全局的数据后,就可以不依赖全局存储,只要在必要的时候去和全局进行同步,提高了***的工作效率。
目前,分布式版本管理***的数据同步方式主要有以下两种方案:
1、通过定期的全量备份版本管理***中的所有存储数据,当部署版本管理***的节点设备发生故障后,用最近的一次备份进行恢复。但是由于定期的备份实时性差,当发生故障时服务会发生中断,没有来得及备份的数据也会发生丢失,而且每次进行全量备份也会导致存储量较大。
2、通过对特定版本管理***进行改造,将对外服务的入口由单节点入口扩展为多节点,并通过一个调度器进行负载调度,当有一个节点设备故障时,其他节点可以继续服务。但是,对特定版本管理***的改造(如git),不能应用到其他版本管理***中(如svn,cvs等),并且由于将单节点入口扩展为多单节点入口,增加了***的复杂性,对于每次请求的处理需要消耗更多的资源,影响性能。
申请内容
本申请的一个目的是提供一种用于版本管理***的数据同步方法及设备,用以解决现有技术中同步数据的存储量大、处理复杂性高的问题。
为实现上述目的,本申请提供了一种在主节点设备端用于版本管理***的数据同步方法,该方法包括:
在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录;
向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
本申请还提供了一种在从节点设备端用于版本管理***的数据同步方法,该方法包括:
在启动时,从存储设备读取存储点,其中所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;
根据所述记录指针从所述存储设备读取后续操作记录;
根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
基于本申请的另一方面,还提供了一种用于版本管理***数据同步的主节点设备,该设备包括:
数据处理装置,用于在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容;
记录管理装置,用于在接收到数据请求时,向存储设备写入所述写操作请求对应的操作记录;以及向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
本申请实施例还提供了一种用于版本管理***数据同步的从节点设备,该设备包括:
记录管理装置,用于从存储设备读取存储点,根据所述记录指针从所述存储设备读取后续操作记录,其中,所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;
数据处理装置,用于根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
本申请还提供了一种用于版本管理***数据同步的主节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录;向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
本申请还提供了一种用于版本管理***数据同步的从节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:在启动时,从存储设备读取存储点,其中所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;根据所述记录指针从所述存储设备读取后续操作记录;根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
与现有技术相比,本申请的技术方案中主节点设备在处理写操作请求的过程中,会向存储设备中写入每次写操作请求对应的操作记录以及包含特定时刻本地数据内容的存储点,而从节点设备在启动时通过获取存储点更新本地的初始数据内容,并通过后续操作记录进行版本管理***的数据内容同步,采用的是实时的增量数据备份,减少了数据的存储量,并且不需要对已有版本管理***进行改造,可以适用于各类***,并不会增加数据处理的复杂性,因此不会降低***性能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种数据同步***的结构示意图;
图2为一种在所述主节点设备端用于版本管理***的数据同步方法中更新数据内容并写入操作记录的处理流程图;
图3为存储设备中存储点以及操作记录的存储状态示意图;
图4为本申请实施例提供的在从节点设备端用于版本管理***的数据同步方法的处理流程图;
图5为本申请实施例提供的一种用于版本管理***数据同步的主节点设备;
图6为本申请实施例提供的一种用于版本管理***数据同步的从节点设备;
图7为采用本申请方案的数据同步***的示意图;
图8为所述数据同步***中存储管理器的内部结构图;
图9为所述数据同步***中主节点设备在获取请求时的处理流程图;
图10为所述数据同步***进行故障恢复的处理流程图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出了一种数据同步***,用于对各个节点设备对应的版本控制***的数据内容进行同步,包括一主节点设备110、至少一个从节点设备120以及一存储设备130。所述主节点设备对外提供服务,能够接收用户发送的写操作请求,并根据写操作请求对主节点设备对应的版本控制***的数据内容进行本地更新,同时向存储设备同步写入相应的操作记录,以及写入特定时刻本地数据内容的存储点,而从节点设备120在启动时通过获取存储点更新本地的初始数据内容,并在运行过程中不断从存储设备130获取主节点设备写入的操作记录,以此实现与主节点设备的数据同步。在主节点设备无法提供服务时,从节点设备能够成为新的主节点设备继续为用户提供服务。而存储设备130作为主节点设备110和从节点设备120之间数据同步的载体,用于存放存储点和操作记录。
优选地,所述存储设备可以采用分布式存储设备,通过将数据分散存储在多***立的节点上,一方面提高了存储的访问性能,另一方面提高了可用性,当部分存储节点发生故障时,剩余存储节点仍可以提供完整的数据。
在所述主节点设备端,用于版本管理***的数据同步方法主要包括以下两方面:
一、在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录。
二、向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
其中,所述写操作请求由用户向对外提供服务的主节点设备发送。用户的请求包括读操作请求与写操作请求,在获取到用户的请求时,主节点设备会先对请求的类型进行判断,由于读操作请求无需对数据进行修改,不涉及数据内容的同步,因此只有在接收到写操作请求时,才会执行后续处理。所述版本管理***可以部署于所述主节点设备中,也可以部署于其它设备上,仅由所述主节点设备进行管理,主节点设备通过调用版本管理***的相关应用程序接口实现与版本管理***的交互。在根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容时,主节点设备根据写操作请求调用相应的应用程序接口,实现对版本管理***的本地数据进行修改。所述操作记录与写操作请求所实现的数据修改操作一一对应,例如写操作请求R1~Rn,分别用于对数据内容的进行n次修改,对应写操作请求R1~Rn将生成对应的操作记录1~n。
作为一种优选的实施方式,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录的具体处理过程的流程如图2所示,具体包括以下步骤:
步骤S201,在接收到写操作请求时,对所述写操作请求进行合法性检查。
步骤S202,若通过合法性检查,向存储设备写入所述写操作请求对应的操作记录。
步骤S203,在完成所述操作记录的写入后,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容。
如果写操作请求通过合法性检查,意味着在根据写操作请求对版本管理***的数据内容进行更新时不会报错,保证写入到存储设备的操作记录能够被从节点设备正确执行,与主节点设备对应的版本管理***实现正确的数据同步。
由于在版本管理***中存储的软件开发的代码、文档等数据内容,会各自包含多个分支,同一个分支上的数据更新要严格保证顺序,不同分支上顺序先后没有关系。因此,对于不同分支的数据内容可以采用并发处理的方式进行,提高效率,对于上述步骤S201至S202的处理过程,可以根据写操作请求所对应的数据内容的分支,为每个分支设置一个线程,处理该关于该分支的数据内容的所有写操作请求。
具体地,向存储设备写入所述写操作请求对应的操作记录,包括:
通过不同线程向存储设备并行写入写操作请求对应的关于版本管理***的不同分支数据内容的操作记录;以及通过同一线程向存储设备串行写入写操作请求对应的关于版本管理***的同一分支数据内容的操作记录。
例如,针对版本管理***中某一分支1的数据内容进行修改的写操作请求R1、R2、R3,其对应的操作记录为1、2和3,而针对版本管理***中某一分支2的数据内容进行修改的写操作请求R4、R5,其对应的操作记录为4、5,针对版本管理***中某一分支3的数据内容进行修改的写操作请求R6~R9,其对应的操作记录为6~9。在处理时,通过三个线程T1、T2、T3并行处理,即线程T1按照操作记录的顺序向存储设备串行写入操作记录1、2和3,线程T2按照操作记录的顺序向存储设备串行写入操作记录4、5,而线程T3按照操作记录的顺序向存储设备串行写入操作记录6~9。同理,在根据写操作请求更新所述主节点设备对应的版本管理***的数据内容,也可以通过三个线程并发执行。
进一步地,为了减少存储设备中的存储资源,所述用于版本管理***的数据同步方法,还包括:若所述存储设备中存储点的数量大于N个,向所述存储设备发送指令以删除最新创建的N个存储点之前的所有存储点和操作记录,其中N为正整数。
所述存储设备中保存的用于同步的数据包括存储点以及操作记录,其中存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针,图3示出了存储设备中存储点以及操作记录的示意图。其中,存储点M1包括数据内容D1以及记录指针m,指向D1的下一条操作记录m,存储点M2包括数据内容D2以及记录指针n,指向D2的下一条操作记录n。
例如,本实施例中预设保留的存储点的数量N为1个,那么在写入存储点M2之后,可以删除M2之前的所有存储点(即M1)和操作记录(操作记录m~n)。由于在实际场景下,由于网络环境、设备处理能力等影响,从节点设备在读取操作记录时存在一定延迟,为避免删除从节点设备还未读取到的操作记录,可以在写入存储点M2的预设时间之后,再删除存储点M2之前的所有操作记录和存储点。此外,可以将预设保留的存储点的数量N设置为多个,以避免删除从节点设备还未读取到的操作记录。
对于向所述存储设备中写入存储点的时机,可以预先定义预设条件。即在符合预设条件时,向所述存储设备中写入存储点。其中所述预设条件包括但不限于以下几项:1、与写入最新存储点的时间间隔达到预设时长。接上例,若本实施例中所述预设时长为两天,则在存储点M1写入的一天之后,将写入存储点M2。2、最新存储点之后的操作记录数量达到预设数量,即当存储点M1写入之后,主节点设备又向存储设备写入了预设数量的操作记录,此时将写入存储点M2。在实际应用时,上述两种方式可以灵活选择。此外,主节点设备在首次操作记录时,也可以创建存储点,但此种情况不是必须要创建存储点,例如主节点设备对应的版本管理***的数据内容为初始化状态时,由于不包含数据内容,无需创建存储点,此时存储点为空,从节点设备可以直接根据第一条操作记录开始进行数据同步。在此,本领域技术人员应当能够理解上述预设条件的描述仅为举例,其他现有的或今后可能出现的其它形式的预设条件如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在所述从节点设备端,用于版本管理***的数据同步方法的处理流程如图4所示,该方法包括:
步骤S401,在启动时,从存储设备读取存储点,其中所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
步骤S402,根据所述记录指针从所述存储设备读取后续操作记录;
步骤S403,根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
无论是新部署的节点设备在启动时,还是原主节点设备重新启动时,均默认以从节点设备的方式启动,从存储设备读取存储点和后续操作记录来更新对应的版本管理***的数据内容,若在同步过程中发现有主节点设备存在,则继续保持从节点设备的工作方式。
具体地,在根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容时,具体包括以下步骤:
首先,将所述当前数据内容覆盖所述从节点设备对应的版本管理***的数据内容。以存储点M2为例,无论从节点设备对应的版本管理***的数据内容如何,首先将数据内容D2覆盖现有的数据内容。
然后,基于所述当前数据内容,利用所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。由于所述记录指针m指向的操作记录为m,那么后续操作记录即为操作记录m、m+1、m+2等。基于数据内容D2,利用所述操作记录即可实现所述从节点设备对应的版本管理***的数据内容的更新。
由于在所述存储设备中可能会存在多个存储点,从节点设备在启动时可以读取任意一个存储点,并基于相应的后续操作记录实现数据内容的更新,无论读取的是哪个存储点,最终将达到相同状态的数据内容。在实际应用中,考虑到更新的效率,会选择最新创建的存储点,由此可以执行最少的操作记录来更新至最新的数据状态。
与主节点设备类似,所述从节点设备也可以采用多线程的方式进行并发处理。具体地,所述根据所述记录指针从所述存储设备读取后续操作记录,包括:通过不同线程从存储设备并行读取关于版本管理***的不同分支数据内容的后续操作记录;以及通过同一线程从存储设备串行读取关于版本管理***的同一分支数据内容的后续操作记录。同理,在根据所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容时,也可以采用上述多线程的方式实现并发处理更新。
在实际场景中,当主节点设备无法向用户提供服务时,从节点设备需要进行主从切换,成为新的主节点设备继续向用户提供服务。因此,所述方法还包括:在未检测到主节点设备时,从多个候选的从节点设备中选举并切换新的主节点设备。
主节点设备可能由于各类原因而无法检测到,例如主节点设备因故障而下线,或者因网络故障而导致主节点设备无法连通等。此时,将从候选的从节点设备中选举并切换新的主节点设备,具体的选举方式可以采用轮询算法、优先级算法或者随机争抢算法等。其中,所述轮询算法即按照预的顺序查找从节点设备,找到第一个就声明为新的主节点设备;所述优先级算法即预先定义每个节点的优先级,按照优先级的顺序当前最高的从节点设备就声明为新的主节点设备;所述随机争抢算法即第一个汇报的从节点设备成为主节点设备。
在切换为新的主节点设备后,该节点设备需要继续读取并执行操作记录,直至对应的版本管理***的本地数据内容已更新至最新状态(即读取并执行最后一条写入的操作记录),此时才能够正式向用户提供服务,处理用户的请求。
基于本申请的另一方面,还提供了一种用于版本管理***数据同步的主节点设备,该主节点设备110的结构如图5所示,包括数据处理装置510和记录管理装置520。所述数据处理装置510用于在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容;所述记录管理装置520用于在接收到数据请求时,向存储设备写入所述写操作请求对应的操作记录;以及向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
其中,所述写操作请求由用户向对外提供服务的主节点设备发送。用户的请求包括读操作请求与写操作请求,在获取到用户的请求时,主节点设备会先对请求的类型进行判断,由于读操作请求无需对数据进行修改,不涉及数据内容的同步,因此只有在接收到写操作请求时,才会执行后续处理。所述版本管理***可以部署于所述主节点设备中,也可以部署于其它设备上,仅由所述主节点设备进行管理,主节点设备通过调用版本管理***的相关应用程序接口实现与版本管理***的交互。在根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容时,主节点设备根据写操作请求调用相应的应用程序接口,实现对版本管理***的本地数据进行修改。所述操作记录与写操作请求所实现的数据修改操作一一对应,例如写操作请求R1~Rn,分别用于对数据内容的进行n次修改,对应写操作请求R1~Rn将生成对应的操作记录1~n。
作为一种优选的实施方式,所述记录管理装置520用于在接收到写操作请求时,对所述写操作请求进行合法性检查,若通过合法性检查,向存储设备写入所述写操作请求对应的操作记录;所述数据处理装置510用于在所述记录管理装置完成所述操作记录的写入后,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容。
如果写操作请求通过合法性检查,意味着在根据写操作请求对版本管理***的数据内容进行更新时不会报错,保证写入到存储设备的操作记录能够被从节点设备正确执行,与主节点设备对应的版本管理***实现正确的数据同步。
由于在版本管理***中存储的软件开发的代码、文档等数据内容,会各自包含多个分支,同一个分支上的数据更新要严格保证顺序,不同分支上顺序先后没有关系。因此,对于不同分支的数据内容可以采用并发处理的方式进行,提高效率,对于上述记录管理装置520和数据处理装置510的处理过程,可以根据写操作请求所对应的数据内容的分支,为每个分支设置一个线程,处理该关于该分支的数据内容的所有写操作请求。
具体地,所述记录管理装置520用于通过不同线程向存储设备并行写入写操作请求对应的关于版本管理***的不同分支数据内容的操作记录;以及通过同一线程向存储设备串行写入写操作请求对应的关于版本管理***的同一分支数据内容的操作记录。
例如,针对版本管理***中某一分支1的数据内容进行修改的写操作请求R1、R2、R3,其对应的操作记录为1、2和3,而针对版本管理***中某一分支2的数据内容进行修改的写操作请求R4、R5,其对应的操作记录为4、5,针对版本管理***中某一分支3的数据内容进行修改的写操作请求R6~R9,其对应的操作记录为6~9。在处理时,通过三个线程T1、T2、T3并行处理,即线程T1按照操作记录的顺序向存储设备串行写入操作记录1、2和3,线程T2按照操作记录的顺序向存储设备串行写入操作记录4、5,而线程T3按照操作记录的顺序向存储设备串行写入操作记录6~9。同理,数据处理装置在根据写操作请求更新所述主节点设备对应的版本管理***的数据内容,也可以通过三个线程并发执行。
进一步地,为了减少存储设备中的存储资源,所述记录管理装置520还用于在向所述存储设备中写入存储点时,若所述存储设备中存储点的数量大于N个,向所述存储设备发送指令以删除最新创建的N个存储点之前的所有存储点和操作记录,其中N为正整数。
所述存储设备中保存的用于同步的数据包括存储点以及操作记录,其中存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针,图3示出了存储设备中存储点以及操作记录的示意图。其中,存储点M1包括数据内容D1以及记录指针m,指向D1的下一条操作记录m,存储点M2包括数据内容D2以及记录指针n,指向D2的下一条操作记录n。
例如,本实施例中预设保留的存储点的数量N为1个,那么在写入存储点M2之后,可以删除M2之前的所有存储点(即M1)和操作记录(操作记录m~n)。由于在实际场景下,由于网络环境、设备处理能力等影响,从节点设备在读取操作记录时存在一定延迟,为避免删除从节点设备还未读取到的操作记录,可以在写入存储点M2的预设时间之后,再删除存储点M2之前的所有操作记录和存储点。此外,可以将预设保留的存储点的数量N设置为多个,以避免删除从节点设备还未读取到的操作记录。
对于向所述存储设备中写入存储点的时机,可以预先定义预设条件。即所述记录管理装置520用于在符合预设条件时,向所述存储设备中写入存储点。其中所述预设条件包括但不限于以下几项:1、与写入最新存储点的时间间隔达到预设时长。接上例,若本实施例中所述预设时长为两天,则在存储点M1写入的一天之后,将写入存储点M2。2、最新存储点之后的操作记录数量达到预设数量,即当存储点M1写入之后,主节点设备又向存储设备写入了预设数量的操作记录,此时将写入存储点M2。在实际应用时,上述两种方式可以灵活选择。此外,主节点设备在首次操作记录时,也可以创建存储点,但此种情况不是必须要创建存储点,例如主节点设备对应的版本管理***的数据内容为初始化状态时,由于不包含数据内容,无需创建存储点,此时存储点为空,从节点设备可以直接根据第一条操作记录开始进行数据同步。在此,本领域技术人员应当能够理解上述预设条件的描述仅为举例,其他现有的或今后可能出现的其它形式的预设条件如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
相应地,本申请实施例提供的用于版本管理***数据同步的从节点设备如图6所示,该从节点设备120包括数据处理装置610和记录管理装置620。具体地,所述记录管理装置620用于从存储设备读取存储点,根据所述记录指针从所述存储设备读取后续操作记录,其中,所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;所述数据处理装置610用于根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
无论是新部署的节点设备在启动时,还是原主节点设备重新启动时,均默认以从节点设备的方式启动,从存储设备读取存储点和后续操作记录来更新对应的版本管理***的数据内容,若在同步过程中发现有主节点设备存在,则继续保持从节点设备的工作方式。
具体地,所述数据处理装置在根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容时,采用如下的方式进行处理。
首先,将所述当前数据内容覆盖所述从节点设备对应的版本管理***的数据内容。以存储点M2为例,无论从节点设备对应的版本管理***的数据内容如何,首先将数据内容D2覆盖现有的数据内容。
然后,基于所述当前数据内容,利用所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。由于所述记录指针m指向的操作记录为m,那么后续操作记录即为操作记录m、m+1、m+2等。基于数据内容D2,利用所述操作记录即可实现所述从节点设备对应的版本管理***的数据内容的更新。
由于在所述存储设备中可能会存在多个存储点,从节点设备在启动时可以读取任意一个存储点,并基于相应的后续操作记录实现数据内容的更新,无论读取的是哪个存储点,最终将达到相同状态的数据内容。在实际应用中,考虑到更新的效率,会选择最新创建的存储点,由此可以执行最少的操作记录来更新至最新的数据状态。
与主节点设备类似,所述从节点设备也可以采用多线程的方式进行并发处理。具体地,所述记录管理装置620用于通过不同线程从存储设备并行读取关于版本管理***的不同分支数据内容的后续操作记录;以及通过同一线程从存储设备串行读取关于版本管理***的同一分支数据内容的后续操作记录。同理,所述数据处理装置在根据所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容时,也可以采用上述多线程的方式实现并发处理更新。
在实际场景中,当主节点设备无法向用户提供服务时,从节点设备需要进行主从切换,成为新的主节点设备继续向用户提供服务。因此,所述从节点设备还包括切换装置,所述切换装置用于在未检测到主节点设备时,从多个候选的从节点设备中选举并切换新的主节点设备。
主节点设备可能由于各类原因而无法检测到,例如主节点设备因故障而下线,或者因网络故障而导致主节点设备无法连通等。此时,将从候选的从节点设备中选举并切换新的主节点设备,具体的选举方式可以采用轮询算法、优先级算法或者随机争抢算法等。其中,所述轮询算法即按照预的顺序查找从节点设备,找到第一个就声明为新的主节点设备;所述优先级算法即预先定义每个节点的优先级,按照优先级的顺序当前最高的从节点设备就声明为新的主节点设备;所述随机争抢算法即第一个汇报的从节点设备成为主节点设备。
在切换为新的主节点设备后,该节点设备需要继续读取并执行操作记录,直至对应的版本管理***的本地数据内容已更新至最新状态(即读取并执行最后一条写入的操作记录),此时才能够正式向用户提供服务,处理用户的请求。
此外,本申请实施例还提供了一种用于版本管理***数据同步的主节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录;向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
本申请实施例还提供了一种用于版本管理***数据同步的从节点设备,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:在启动时,从存储设备读取存储点,其中所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;根据所述记录指针从所述存储设备读取后续操作记录;根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
图7示出了一种采用本申请方案的数据同步***的示意图,其中,所述存储设备采用分布式存储,各个节点设备的对应的版本管理***部署于相应的节点设备内,每个节点设备通过其内部的存储管理器进行数据的读写,实现数据同步,所述存储管理器通过版本管理***的应用程序接口与版本管理***实现交互,对版本管理***的本地数据进行更新。
其中,存储管理器的内部结构如图8所示,包括http(Hypertext TransferProtocol,超文本传输协议)服务器810、请求分发器820、多个请求处理器830以及记录管理器840。
所述http服务器810接收用户http格式的请求,并向用户返回相应的信息。
请求分发器820将请求分发到多个请求处理器进行多线程的处理,以提高***的运行效率。在处理时,需要判断请求是否可以并行处理,对于版本管理***而言,关于同一分支数据内容的请求需要保证处理顺序,不可并行处理,而关于不同分支数据内容的请求可以同时并行处理。
请求处理器830,根据每个分支的请求设置一个线程,处理该关于该分支的请求。对于每个请求调用版本管理***的应用程序接口,发送给版本管理***860处理,并得到返回。
主节点设备的记录管理器840需要将写操作请求对应的操作记录写入分布式存储中,此外还负责定期创建存储点,并删除分布式存储中旧的存储点以及操作记录。而从节点设备的记录管理器840需要由分布式存储中读取存储点以及操作记录,以实现版本管理***的数据更新。
在所述数据同步***的主节点设备中,获取请求时的具体处理流程如图9所示,包括以下步骤:
步骤S901,http服务器收到http格式的请求;
步骤S902,请求分发器解析收到的请求;
步骤S903,请求分发器根据解析结果将请求分发到请求处理器;
步骤S904,各个请求处理器开始并行处理请求;
步骤S905,请求处理器判断请求是否为写操作请求,若为是,则执行步骤S906,否则,执行步骤S907。
步骤S906,请求处理器对写操作请求的合法性进行检查,并在通过后,调用记录管理器将请求对应的操作记录写到分布式存储中,然后执行步骤S907;
步骤S907,请求处理器调用版本管理***的应用程序接口将请求发送给版本管理***进行处理。
步骤S908,版本管理***处理请求。
在主节点设备故障时,所述数据同步***的进行故障恢复的处理流程如图10所示,具体包括:
步骤S1001,一个从节点设备选举成并切换为新的主节点设备。
步骤S1002,新的主节点设备读取完分布式存储中所有操作记录,更新其版本管理***的本地数据内容。
步骤S1003,新的主节点设备开始向用户提供服务,由从分布式存储读取操作记录变为向分布式存储写入操作记录和存储点。
步骤S1004,旧的主节点设备恢复后重启,初始化默认为从节点设备,读取分布式存储中的存储点和操作记录,进行数据同步。
综上所述,本申请的技术方案中主节点设备在处理写操作请求的过程中,会向存储设备中写入每次写操作请求对应的操作记录以及包含特定时刻本地数据内容的存储点,而从节点设备在启动时通过获取存储点更新本地的初始数据内容,并通过后续操作记录进行版本管理***的数据内容同步,采用的是实时的增量数据备份,减少了数据的存储量,并且不需要对已有版本管理***进行改造,可以适用于各类***,并不会增加数据处理的复杂性,因此不会降低***性能。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
Claims (18)
1.一种在主节点设备端用于版本管理***的数据同步方法,其中,该方法包括:
在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录;
向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;
其中,向存储设备写入所述写操作请求对应的操作记录,包括:
通过不同线程向存储设备并行写入写操作请求对应的关于版本管理***的不同分支数据内容的操作记录;以及通过同一线程向存储设备串行写入写操作请求对应的关于版本管理***的同一分支数据内容的操作记录。
2.根据权利要求1所述的方法,其中,该方法还包括:
若所述存储设备中存储点的数量大于N个,向所述存储设备发送指令以删除最新创建的N个存储点之前的所有存储点和操作记录,其中N为正整数。
3.根据权利要求1所述的方法,其中,在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并向存储设备写入所述写操作请求对应的操作记录,包括:
在接收到写操作请求时,对所述写操作请求进行合法性检查;
若通过合法性检查,向存储设备写入所述写操作请求对应的操作记录;
在完成所述操作记录的写入后,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容。
4.根据权利要求1至3中任一项所述的方法,其中,向所述存储设备中写入存储点,包括:
在符合预设条件时,向所述存储设备中写入存储点,其中,所述预设条件包括与写入最新存储点的时间间隔达到预设时长,或最新存储点之后的操作记录数量达到预设数量。
5.一种在从节点设备端用于版本管理***的数据同步方法,其中,该方法包括:
在启动时,从存储设备读取存储点,其中所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;
根据所述记录指针从所述存储设备读取后续操作记录;
根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容;
其中,根据所述记录指针从存储设备读取后续操作记录,包括:
通过不同线程从存储设备并行读取关于版本管理***的不同分支数据内容的后续操作记录;以及通过同一线程从存储设备串行读取关于版本管理***的同一分支数据内容的后续操作记录。
6.根据权利要求5所述的方法,其中,从存储设备读取存储点,包括:
从所述存储设备读取最新创建的存储点。
7.根据权利要求5所述的方法,其中,根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容,包括:
将所述当前数据内容覆盖所述从节点设备对应的版本管理***的数据内容;
基于所述当前数据内容,利用所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
8.根据权利要求5至7中任一项所述的方法,其中,该方法还包括:
在未检测到主节点设备时,从候选的从节点设备中选举并切换新的主节点设备。
9.一种用于版本管理***数据同步的主节点设备,其中,该设备包括:
数据处理装置,用于在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容;
记录管理装置,用于在接收到数据请求时,通过不同线程向存储设备并行写入写操作请求对应的关于版本管理***的不同分支数据内容的操作记录;以及通过同一线程向存储设备串行写入写操作请求对应的关于版本管理***的同一分支数据内容的操作记录;以及向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
10.根据权利要求9所述的设备,其中,所述记录管理装置,还在所述存储设备中存储点的数量大于N个时,向所述存储设备发送指令以删除最新创建的N个存储点之前的所有存储点和操作记录,其中N为正整数。
11.根据权利要求9所述的设备,其中,所述记录管理装置,用于在接收到写操作请求时,对所述写操作请求进行合法性检查,若通过合法性检查,向存储设备写入所述写操作请求对应的操作记录;
所述数据处理装置,用于在所述记录管理装置完成所述操作记录的写入后,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容。
12.根据权利要求9至11中任一项所述的设备,其中,所述记录管理装置,用于在符合预设条件时,向所述存储设备中写入存储点,其中,所述预设条件包括与写入最新存储点的时间间隔达到预设时长,或最新存储点之后的操作记录数量达到预设数量。
13.一种用于版本管理***数据同步的从节点设备,其中,该设备包括:
记录管理装置,用于从存储设备读取存储点,通过不同线程从存储设备并行读取关于版本管理***的不同分支数据内容的后续操作记录;以及通过同一线程从存储设备串行读取关于版本管理***的同一分支数据内容的后续操作记录,其中,所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;
数据处理装置,用于根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
14.根据权利要求13所述的设备,其中,所述记录管理装置,用于从所述存储设备读取最新创建的存储点。
15.根据权利要求13所述的设备,其中,所述数据处理装置,用于将所述当前数据内容覆盖所述从节点设备对应的版本管理***的数据内容,以及基于所述当前数据内容,利用所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
16.根据权利要求13至15中任一项所述的设备,其中,该设备还包括:
切换装置,用于在未检测到主节点设备时,从候选的从节点设备中选举并切换新的主节点设备。
17.一种用于版本管理***数据同步的主节点设备,其中,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:在接收到写操作请求时,根据所述写操作请求更新所述主节点设备对应的版本管理***的数据内容,并通过不同线程向存储设备并行写入写操作请求对应的关于版本管理***的不同分支数据内容的操作记录;以及通过同一线程向存储设备串行写入写操作请求对应的关于版本管理***的同一分支数据内容的操作记录;向所述存储设备中写入存储点,其中,所述存储点包括写入存储点时所述版本管理***的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针。
18.一种用于版本管理***数据同步的从节点设备,其中,该设备包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:在启动时,从存储设备读取存储点,其中所述存储点包括主节点设备对应的版本管理***在写入所述存储点时的当前数据内容,以及指向该当前数据内容的下一条操作记录的记录指针;通过不同线程从存储设备并行读取关于版本管理***的不同分支数据内容的后续操作记录;以及通过同一线程从存储设备串行读取关于版本管理***的同一分支数据内容的后续操作记录;根据所述当前数据内容及所述后续操作记录更新所述从节点设备对应的版本管理***的数据内容。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610194511 | 2016-03-31 | ||
CN2016101945110 | 2016-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451172A CN107451172A (zh) | 2017-12-08 |
CN107451172B true CN107451172B (zh) | 2021-05-28 |
Family
ID=60486858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710197728.1A Active CN107451172B (zh) | 2016-03-31 | 2017-03-29 | 用于版本管理***的数据同步方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451172B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018106245A1 (de) * | 2018-03-16 | 2019-09-19 | Krones Ag | Behälterbehandlungsanlage und Verfahren mit sicherheitsgerichtetem Management von Einstellungen für eine Behälterbehandlungsanlage |
CN108762736B (zh) * | 2018-03-21 | 2022-09-02 | 五八有限公司 | 项目分支的管理方法、装置、设备及计算机可读存储介质 |
CN109213817B (zh) * | 2018-08-10 | 2019-09-06 | 杭州数梦工场科技有限公司 | 增量数据抽取方法、装置及服务器 |
CN109548056B (zh) * | 2018-11-30 | 2021-07-23 | 中国人民解放军陆军工程大学 | 一种基于ros主从节点管理器的通信方法和*** |
CN109684130B (zh) * | 2018-12-12 | 2020-12-22 | 网宿科技股份有限公司 | 一种机房间数据备份的方法及装置 |
CN110677280B (zh) * | 2019-09-18 | 2020-08-18 | 招商银行股份有限公司 | 服务节点切换方法、装置、设备及计算机可读存储介质 |
EP4213036A4 (en) * | 2020-09-27 | 2023-09-27 | Huawei Technologies Co., Ltd. | DATA STORAGE METHOD AND DEVICE |
CN112966046B (zh) * | 2021-03-03 | 2024-04-12 | 北京金山云网络技术有限公司 | 数据同步方法和装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741911A (zh) * | 2009-12-18 | 2010-06-16 | 中兴通讯股份有限公司 | 基于多副本协同的写操作方法、***及节点 |
CN102063471A (zh) * | 2010-12-07 | 2011-05-18 | 青岛海信宽带多媒体技术有限公司 | 一种广告数据的存储方法 |
CN102682096A (zh) * | 2012-04-27 | 2012-09-19 | 北京航空航天大学 | 一种仿真资源信息与模型源码协同管理装置及其方法 |
CN103595707A (zh) * | 2013-10-17 | 2014-02-19 | 广东电网公司茂名供电局 | 一种基于svn的文件自动网络同步方法 |
CN103902230A (zh) * | 2012-12-27 | 2014-07-02 | ***通信集团公司 | 一种数据处理方法、设备和*** |
CN104536849A (zh) * | 2015-01-20 | 2015-04-22 | 成都携恩科技有限公司 | 一种基于云计算的数据备份方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073512B (zh) * | 2009-11-23 | 2014-07-16 | 阿里巴巴集团控股有限公司 | 一种java集群应用***代码装载及升级装置和方法 |
CN103605809B (zh) * | 2013-12-10 | 2016-09-14 | 厦门诚创网络有限公司 | 一种数据同步的方法 |
CN103647669B (zh) * | 2013-12-16 | 2017-04-05 | 上海证券交易所 | 一种保证分布式数据处理一致性的***及方法 |
CN103744936B (zh) * | 2013-12-31 | 2017-02-08 | 华为技术有限公司 | 一种数据库中的多版本并发控制方法及数据库*** |
CN104350476B (zh) * | 2014-04-22 | 2017-06-27 | 华为终端有限公司 | 一种版本检测周期调节方法及装置 |
CN105094851A (zh) * | 2015-09-06 | 2015-11-25 | 浪潮软件股份有限公司 | 一种基于Git随时发布代码的实现方法 |
-
2017
- 2017-03-29 CN CN201710197728.1A patent/CN107451172B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741911A (zh) * | 2009-12-18 | 2010-06-16 | 中兴通讯股份有限公司 | 基于多副本协同的写操作方法、***及节点 |
CN102063471A (zh) * | 2010-12-07 | 2011-05-18 | 青岛海信宽带多媒体技术有限公司 | 一种广告数据的存储方法 |
CN102682096A (zh) * | 2012-04-27 | 2012-09-19 | 北京航空航天大学 | 一种仿真资源信息与模型源码协同管理装置及其方法 |
CN103902230A (zh) * | 2012-12-27 | 2014-07-02 | ***通信集团公司 | 一种数据处理方法、设备和*** |
CN103595707A (zh) * | 2013-10-17 | 2014-02-19 | 广东电网公司茂名供电局 | 一种基于svn的文件自动网络同步方法 |
CN104536849A (zh) * | 2015-01-20 | 2015-04-22 | 成都携恩科技有限公司 | 一种基于云计算的数据备份方法 |
Non-Patent Citations (1)
Title |
---|
空间数据版本管理的体系结构研究;张亚军等;《测绘科学》;20110428;第155页-第157页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107451172A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451172B (zh) | 用于版本管理***的数据同步方法及设备 | |
CN106970921B (zh) | 一种数据迁移方法及装置 | |
US10642694B2 (en) | Monitoring containers in a distributed computing system | |
US20190215313A1 (en) | Implementing Secure Communication In A Distributed Computing System | |
US5802267A (en) | Method for checkpointing in computer system under distributed processing environment | |
US9165012B2 (en) | Periodic file system checkpoint manager | |
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
US9229970B2 (en) | Methods to minimize communication in a cluster database system | |
CN111221678B (zh) | Hbase数据备份/恢复***、方法、装置及电子设备 | |
CN106357703B (zh) | 集群切换方法与设备 | |
CN110807013B (zh) | 用于分布式数据存储集群的数据迁移方法和装置 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
JP2006268139A (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US20230333945A1 (en) | Scalable Low-Loss Disaster Recovery for Data Stores | |
CN106873902B (zh) | 一种文件存储***、数据调度方法及数据节点 | |
CN112486639A (zh) | 任务的数据保存及恢复方法、装置、服务器及存储介质 | |
US10318330B2 (en) | Data-persisting temporary virtual machine environments | |
WO2019109256A1 (zh) | 一种日志管理方法、服务器和数据库*** | |
CN110895545B (zh) | 共享数据同步方法及装置 | |
CN117763046A (zh) | 集群间数据同步的方法、装置、设备及存储介质 | |
CN113297316A (zh) | 一种实现数据同步的方法及装置和*** | |
CN112187889A (zh) | 一种数据同步方法、装置及存储介质 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
US10409651B2 (en) | Incremental workflow execution | |
CN115587099A (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 |