CN106326372A - Git central warehouse management system and control method - Google Patents

Git central warehouse management system and control method Download PDF

Info

Publication number
CN106326372A
CN106326372A CN201610665962.8A CN201610665962A CN106326372A CN 106326372 A CN106326372 A CN 106326372A CN 201610665962 A CN201610665962 A CN 201610665962A CN 106326372 A CN106326372 A CN 106326372A
Authority
CN
China
Prior art keywords
warehouse
center
git
rear end
centers
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.)
Pending
Application number
CN201610665962.8A
Other languages
Chinese (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 Innovation Information Technology Co Ltd
Original Assignee
Beijing Innovation Information Technology 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 Beijing Innovation Information Technology Co Ltd filed Critical Beijing Innovation Information Technology Co Ltd
Priority to CN201610665962.8A priority Critical patent/CN106326372A/en
Publication of CN106326372A publication Critical patent/CN106326372A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention provides a Git central warehouse management system and a method. The Git central warehouse management system comprises a plurality of rear ends, a front end and a synchronous module, wherein the plurality of rear ends comprise a local rear end and other remote rear ends and are used for storing warehouses; the front end is used for accessing the warehouses at the rear ends by remote calling; the synchronous module is used for enabling the warehouses stored at the plurality of rear ends to be synchronized.

Description

Git central repository management system and control method
Technical field
The present invention relates to field of computer technology, manage system particularly to a kind of distributed multicenter Git central repository And control method.
Background technology
Popular along with distributed source code management instrument Git, occur in that GitHub, GitLab, OSC, Coding, The central repository management software of the Git such as GitCoffee.Central repository manages owing to store substantial amounts of code storehouse, so to solve The problem that the certainly extendible problem of memory capacity, and multiple research and development centres cross-region accesses.
Existing central repository management system, with Gitlab as representative, major part all employ distributed file system (DFS) as the means of warehouse capacity extension.Distributed file system can with dynamic expansion capacity, but, due to Git warehouse by Large amount of small documents forms, and distributed file system is unsuitable for the scene of substantial amounts of small documents storage, so storage efficiency is low, IO readwrite performance is poor.Therefore, the application of distributed file system causes huge limit to the performance of central repository management system System (seeing Fig. 1).
It addition, during the management of existing central repository is, with GitHub as representative, employ the mode of AM/BAM far call Carry out extension storage capacity.This mode solves capacity dynamic expansion, but GitHub employs before rear end RT-PRC realizes The far call (seeing Fig. 2) of rear end.
Rear end RT-RPC uses Erlang, by self-defining serializing mode, it is possible to achieve multiple object oriented language Object serialization, it is possible to realize the far call of Ruby.But, this needs programmer oneself to define service interface and Ruby Object map, which increases the complexity of distributed back-end realization and maintenance.
It addition, whether Gitlab, or Github, the most do not solve the problem that multiple research and development centres cross-region accesses. And, in the case of there is multiple research and development centre in a company, if central repository is located in one of research and development centre, then other Research and development centre accesses owing to network delay can be caused relatively big through wide area network, and network traffics increase severely.
Summary of the invention
For problem above, it is an object of the invention to provide a kind of read and write abruption, multiple research and development centres can visit in strange land The distributed multicenter Git central repository management system asked.
For realizing object above, the present invention provides techniques below scheme:
A kind of Git central repository management system, comprising: multiple rear end, it includes local rear end and other remote back-end, The plurality of rear end is used for storage repository;Front end, it for accessing the warehouse on rear end by far call;And synchronization mould Block, it synchronizes for making the warehouse of storage on the plurality of rear end.
The beneficial effects of the present invention is:
The present invention uses dRuby to achieve the Ruby remote access in Git warehouse, solves capacity dynamic in Git warehouse The problem that scaling problem and multiple research and development centres cross-regions access, is greatly improved read or write speed simultaneously, reduce based on The complexity in Ruby program exploitation distribution Git warehouse, and improve systematic function;The invention also achieves multicenter Git storehouse The synchronization in storehouse, reaches read and write abruption, improves multiple research and development centre and accesses the network speed of central warehouse.
Accompanying drawing explanation
Fig. 1 is that existing employing DFS mode is to realize the schematic diagram of capacity extension.
Fig. 2 is that existing employing is distributed calls the schematic diagram realizing capacity extension.
Fig. 3 is the schematic diagram of the distributed multicenter Git central repository management system of the present invention.
Fig. 4 is the schematic flow sheet of the Git far call based on dRuby of the present invention.
Fig. 5 is the figure describing the control method for controlling Git central repository.
Detailed description of the invention
Below, referring to the drawings the specific embodiment of the present invention is described further, it is noted that, following example are to this Bright it is merely an illustrative, and is in no way intended to limit the scope of the present invention.
As it is shown in figure 1, realize the schematic diagram of capacity extension for existing employing distributed file system (DFS) mode. Wherein, shared resource resides in each Shared Folders on multiple servers, and DFS mode is not suitable for substantial amounts of little literary composition simultaneously The scene of part storage.
As in figure 2 it is shown, call, for existing employing is distributed, the schematic diagram realizing capacity extension.Wherein, GitHub makes Carry out extension storage capacity by the mode of AM/BAM far call, it use rear end RT-PRC and remotely adjust to realize AM/BAM With, this needs programmer oneself to define service interface and Ruby object map, adds distributed back-end realization and maintenance Complexity.
For Ruby language, after 1.9.3 version, inside it, achieve dRuby module, it is achieved distributed remote is adjusted With, dRuby uses the agreement oneself defined, it is not necessary to any external protocol can be achieved with coding so that far call program is more Easily write and safeguard.The proxy mechanism of dRuby employs caching to greatest extent simultaneously, improves systematic function.
Therefore, the present invention directly uses dRuby to realize far call so that systemic-function and performance have and carry the most greatly High.
Below with reference to Fig. 3, the most distributed multicenter Git central repository management system is described 10.The schematic diagram of the distributed multicenter Git central repository management system 10 of the present invention is shown such as Fig. 3.Wherein, the present invention Distributed multicenter Git central repository management system 10 includes multiple rear end 101, and it is used as data burner storehouse, such as, store Code.The plurality of rear end 101 is distributed in multiple center.The embodiment of Fig. 3 has Liang Ge center, the most main center 100 With branch center 110.It should be readily apparent to one skilled in the art that the distributed multicenter Git central repository management system of the present embodiment 10 centers can with more than two.And main center and branch center are the most not restrictive, and the status at multiple centers can To be equality.Illustrate as a example by main center 100 and branch center 110 below.
Shown in Fig. 3, main center 100 and branch center 110 carry out communication by wide area network.But those skilled in the art are easy Understand, the invention is not restricted to this.Wired or wireless personal area network (PAN), office such as can be passed through in main center 100 and branch center 110 Territory net (LAN), Metropolitan Area Network (MAN) (MAN), etc. carry out communication.
According to a preferred embodiment, main center 100 and branch center 110 include the rear end 101 of equal number, the most all wrap Include rear end BE1, BE2 and BE3.The rear end at main center is the most corresponding.Rear end BE1, BE2 and BE3 of such as branch center 110 are respectively The mirror image of rear end BE1, BE2, the BE3 at Shi Zhu center.
In the embodiment of Fig. 3, main center 100 also includes front end (FE) 102, and branch center 110 also includes front end 112.Front end 102 and 112 users being available for main center 100 and branch center 110 respectively access nearby.Due to the rear end at main center and branch center Rear end stores the mirror image of data or data respectively, and therefore user can access the front end of locality nearby, reduces network delay And network traffics, it is greatly improved user and reads the speed in warehouse.
User can also be accessed and carry out scope check by front end 102,112, such as, confirm whether user has this center Carry out the authority of read and/or write, and carry out next step operation, such as refusal user visit according to the result of scope check Ask, or be written and read operating to rear end according to the request of user.
In distributed multicenter Git central repository management system 10 in Fig. 3 embodiment, main center 100 may also include road By module 103, branch center 110 may also comprise routing module 113.Routing module 103 and 113 has corresponding front end 102,112 to adjust With, the rear end of code needed for have user according to the storage of routing rule location.It should be readily apparent to one skilled in the art that for master Center 100 and branch center 110, routing module is the most not necessarily.Such as front end 102 and 112 can be respectively provided with query function, root Corresponding rear end is inquired according to user's input.But when amount of storage is big, rear end number is many when, it is preferred for having routing module , because arranging the routing rule of optimization, it is possible to reduce inquire about, position required time cost, improve user experience quality.
In distributed multicenter Git central repository management system 10 in Fig. 3 embodiment, main center 100 also includes synchronizing Module 104, branch center 110 also includes synchronization module 114.
It will be appreciated by those skilled in the art that the distributed multicenter Git central repository management system 10 of the present embodiment also can be wrapped Include a unified synchronization module, rather than include single synchronization module in the heart in each.Wrap respectively with each center below Illustrate as a example by including respective synchronization module.
Synchronization module 104 and 114 is for synchronizing storage data and the operation of the rear end of main center 100 and branch center 110.Its In, the synchronization module 104 at main center 100 is by state synchronized service creation synchronization job;The synchronization module 114 of branch center 110 Serviced by state synchronized and synchronize the main synchronization job being centrally generated, and update synchronous regime.Such as when main center 100 When rear end BE1 receives write operation, synchronization module 104 and 114 can carry out data syn-chronization, updates the rear end of branch center 110 The data of BE1.Equally, when the rear end BE2 of branch center 110 receives write operation, synchronization module 104 and 114 can be carried out Data syn-chronization, updates the data of the rear end BE2 at main center 110.The Git of standard can be used between synchronization module 104 and 114 Agreement.Therebetween synchronization can be real-time, such as when the Back end data of in main center 100 and branch center 110 When being updated, automatically trigger synchronization.Therebetween synchronization can also be non real-time, and such as timing updates.Can also basis Real needs and set certain synchronization rules.
At each center, user can be accessed and carry out scope check by front end, when confirming that user has the read-write power of correspondence In limited time, routing module is called.Routing module, according to routing rule, finds the rear end at place, warehouse, then to use RPC far call This rear end, such user can access the warehouse content being positioned at this rear end.
It addition, according to a preferred embodiment of the present invention, the front end 112 of branch center 110 can access main center 100 Rear end.Otherwise, the front end 102 at main center 100 can also access the rear end of branch center 110.The most such as main center 100 and point When not yet synchronizing between center 110, it is also possible to ensure that user can access up-to-date data.The most main center 100 and point Center 110 is equipped with synchronous regime labelling, such as, can be " synchronizing " or " synchronization ".Such as behind main center 100 In the case of end has been updated, producing simultaneously operating by front end, be sent to state synchronized module, state synchronized module is led to Cross state synchronized service creation synchronization job, and point out synchronize this synchronization job to all branch centers;Simultaneously by all points The synchronous regime at center is set to not synchronize.
Main center described separately below and the read/write operation of branch center.
When user performs write operation at main center, first, user sends Git write operation order, and this order is sent to Lacal Head End.Secondly, routing module is called in front end, and routing module, according to routing rule, searches warehouse in the rear end residing for this locality; Then front end uses this rear end of RPC far call, and content is write rear end.Then, front end produces simultaneously operating, is sent to state Synchronization module, state synchronized module is passed through state synchronized service creation synchronization job, and is pointed out synchronize to all branch centers This synchronization job;It is set to not synchronize by the synchronous regime of all branch centers simultaneously.Finally, each branch center state synchronized module By Git agreement, synchronize the Git storehouse at main center.After each branch center completes to synchronize, the synchronous regime of self is set to Synchronize.In described far call, in addition to dRuby, it is also possible to use the far call agreements such as xmlrpc, thrift.
Then, when user performs read operation in branch center, first, user sends Git write-read order, this order quilt It is sent to Lacal Head End.Then, the synchronous regime at this center is checked in front end, checks that synchronous regime is to have synchronized or do not synchronized. If state is to have synchronized, then routing module is called in front end, and routing module, according to routing rule, searches warehouse residing for this locality Rear end;Then front end uses RPC far call to access the warehouse content on rear end, returns to client.If state is not synchronize, Then routing module is called in front end, and routing module, according to routing rule, searches warehouse in the rear end residing for main center;Then front end makes Access the warehouse content on rear end with RPC far call, return to client.In described far call, in addition to dRuby, The far call agreements such as xmlrpc, thrift can also be used.
So, when the user of branch center reads warehouse, front end, branch center first checks synchronous regime.If synchronous regime is Synchronize, then access local rear end.If synchronous regime is not for synchronize, then access main center back end.Hereby it is achieved that complete in this locality Read operation, alleviates network delay significantly.
When user performs write operation in branch center, performing write operation similarly with at main center, first, user sends Git write operation order, this order is sent to Lacal Head End.Secondly, routing module is called in front end, and routing module is according to route rule Then, searching the rear end at place, warehouse, then front end uses this rear end of RPC far call, and content is write rear end.Then, front end Produce simultaneously operating, be sent to state synchronized module, state synchronized module pass through state synchronized service creation synchronization job, and to Main center points out synchronize this synchronization job.Finally, main center situation synchronization module passes through Git agreement, synchronizes branch center Git storehouse.In described far call, in addition to dRuby, it is also possible to use the far call agreements such as xmlrpc, thrift.
When user performs read operation at main center, first, user sends Git write-read order, and this order is sent to Lacal Head End.Secondly, routing module is called in front end, and routing module, according to routing rule, searches warehouse after residing for main center End.Then, front end uses RPC far call to access the warehouse content on rear end, returns to client.In described far call, In addition to dRuby, it is also possible to use the far call agreements such as xmlrpc, thrift.
Wherein, when user performs write operation in branch center, write operation can be write the rear end of multiple branch center together, As such, it is possible to perform read-write operation in multiple branch centers, it is achieved polycentric read and write abruption.Such as, user is a branch center When performing write operation, it can write multiple branch center together, then, user can in the plurality of branch center any one Person performs read-write operation, thus reaches read and write abruption.
From above content, at any time, when user submits code to (when performing write operation), all can be written into To main center.It is positioned at the content in all warehouses of each rear end, at the center of its correspondence, has a full backup.
Below, as a example by before and after the web access realizing Git warehouse based on dRuby, platform separates, long-range to the present invention The process called illustrates.
As shown in Figure 4, for the schematic flow sheet of Git far call based on dRuby of the present invention.Wherein, in one The heart, user is accessed and carries out scope check, after confirming that user is authorized to, call routing module, according to routing rule, sends out by front end The rear end at existing place, warehouse, then uses RPC far call to access the warehouse content being positioned on rear end.Web logic uses Ruby Language development, for Git warehouse, encapsulates corresponding RubyGitObject to access Git depot data.
In order to realize remotely accessing the Git warehouse on other-end, first, place, Git warehouse main frame (rear end) starts to be made First a group interface is provided as DrbClient, DrbServer for DrbServer, Web logic place main frame (front end), it is allowed to DrbClient, according to the title in warehouse, accesses the content of opposite depot.DrbServer according to the feature of RubyGitObject, Return two kinds of Object.A kind of object for Re front end rence type, the object of this type return to client After, as an agency, the DrbObject of agency to server side, method call, is all once to remotely access the most every time. Another kind is the object of Value type, and the object of this type returns RubyGitObjects, wherein comprises required Git Depot data.
Feature according to RubyGitObjects, it is achieved for having of Re front end rence type: repository, blame, MergeRepo、OnlineEdit.Be embodied as Value type has blob, commit, tree, diff, tag.DrbInterface Object by the Front Object as Server, uses Ruby's as the object of a Re front end rence type Method_missing mechanism, provides other all GitObject to map between client and server.
It addition, in order to realize multicenter read and write abruption, present invention employs state synchronized module, state synchronized module is passed through Use state synchronized services, it is achieved state and the synchronization of operation, and is achieved in read and write abruption.
Below, the detailed process realizing operation and state synchronized between multiple centers of the present invention is specifically introduced.
First, routing data structure is introduced.Wherein, each center uses and shares Redis and store all of warehouse, rear end Warehouse route and Synchronization Status Message.
Warehouse route preserves location and backendCluster at place, warehouse.In redis, exist entitled The Hash table of repoMap preserves all of warehouse route.The Key of this Hash table is the path (username/repo) of repo, It is worth the rear end group (locationName_backendClusterName, e.g.BJ_backendCluster1) for its storage.
Status data preserves the Synchronization Status Message of the rear end at place, warehouse.The state of the rear end at each place, warehouse, uses The Hash table of entitled repoPath_syncStatus preserves.The key of this Hash table is IP, is worth for " state&time ".Its In, when the current value of State is 0, represents and do not synchronize;Value is to represent when 1 to synchronize.
When the system is initiated, routing iinformation is empty, when establishment of item, generates routing iinformation.The status information of project Generate when establishment of item, and the status information of project only can change according to write state, but will not disappear.
Rear end in the group of group set record each rear end, rear end: use and collect incompatible preservation, set entitled LocationName_backendClusterName_hosts, is worth the IP for rear end.
The Maser member of rear end group be effective time be the character string of 5 seconds (can configure), key form is, LocationName_backendClusterName_master, value is the IP of master.
The existing state of rear end group membership is had expired time (can configure) integer value to represent by one, and key is IP_alive, Value is 1.If there is then representing alive, there is not expression and do not live.
Rear end group resource is respectively as follows:
location_backendCluser1_storageFree:integer
location_backendCluser1_cpuIdle:integer
location_backendCluser1_memFree:integer。
Rear end member resource is respectively as follows:
ip1_cpuIdle:integer;
ip1_memFree:integer;
ip1_storageFree:integer。
Rear end membership synchronization's queue is ip1_queue:tasks.
Below, describing the process in warehouse new for generation/import/Fork, it comprises the following steps:
A) according to the resource service condition of in the heart each backendCluster in master, selects one backendCluster guarantor Deposit this project.
B) front end is by generating project on gitlab_git_client to main rear end.
C) warehouse route is generated.
D) corresponding in backendCluster main rear end and from rear end.For main rear end (the most main center back end), generate Warehouse state data for synchronizing+time at that time.For from rear end (i.e. rear end, branch center), it is not same for generating warehouse state data Step+time at that time.
E), after project generates successfully, front end adds synchronous task all of from rear end (regardless of existing state), it is desirable to From rear end from main backend synchronization project.
F) synchronized process from rear end reads the synchronous task from rear end, completes to synchronize, more New Warehouse shape after completing State data for synchronizing+time at that time.
Below, the process in page amendment warehouse is described, comprising: front end (gitlab_git_client) searches route letter Breath, searches the backendCluster at place, warehouse.Obtain the master of this backendCluster.Gitlab_ is passed through in front end Git_client to master write operation.After having write, the hooks function on master, it is responsible for all of from rear end Middle interpolation synchronous task, it is desirable to from rear end from main backend synchronization project, is set to all of synchronous regime from node not simultaneously Synchronization+timestamp.Synchronized process from rear end reads the synchronous task from rear end, completes to synchronize, more New Warehouse after completing Status data for synchronizing+time at that time.
When the page reads warehouse, front end (gitlab_git_client) searches routing iinformation, searches place, warehouse backendCluster.The state of each rear end according to backendCluster, selects one to read rear end.Front end is passed through Gitlab_git_client is to read operation on the rear end selected.
During backend synchronization, each rear end all being run multiple synchronized process (can configure), synchronized process monitors location_ Task on backendCluser1_ip1_queue:tasks, completes the synchronization in warehouse according to task.Each task includes: The warehouse that synchronization is to be synchronized, generates the time of synchronous task.If this storehouse synchronous regime has been to synchronize, the most it is not synchronization behaviour Making, task completes.Execution simultaneously operating is successful, if the time generating synchronous task more than or equal in warehouse state data is The time synchronized, then mark state is for synchronize+current time, synchronously completes.Execution simultaneously operating failure, then this task weight Newly inserted task queue.
It addition, all run resource on each rear end to check that finger daemon, this process interval (can be defaulted as 1 day) report This rear end storeage free, cpu idle, mem free, and periodically (can be defaulted as 5 seconds) updates this rear end Alive state, rushes to register oneself for maser simultaneously.
After having reported the resource service condition of this rear end, update the resource service condition of this rear end, place, rear end group every time: Update the storage Free of this rear end group, for the storageFree of rear end minimum in this group.Update the rear end of all work The meansigma methods of CPU Idle.Update the meansigma methods of the MeM Free of the rear end of all work.
The existing state of this rear end of Daemon regular update, rear end in each rear end, and compete become Master.Former Then go up Master and keep stable, compete successful rear end and can remain Master for a long time, (the hardware event until breaking down in this rear end Barrier, network failure etc.) or the switching of Master just can occur when the active switching of operation maintenance personnel, shutdown.The principle of switching It is when the Key of previous Master crosses after date in Redis, and first is by the SETNX operation setting oneself of Redis The rear end of Master can operate successfully, and failure can be rushed to register because key assignments exists in remaining rear end.
After Master handover success, the synchronous regime in oneself all storehouse should be set to (only synchronize by new Master Synchronous regime in Redis is set, is not real GIT and synchronizes).In order to ensure reliability, during synchronous regime is set, newly The presence of oneself node should temporarily be arranged " rolling off the production line " by Master, and (SSH is straight to refuse all write operations during this period of time Connect and disconnect, during Web display is safeguarded).After the synchronous regime completing all storehouses is provided with, online by Master node State is set to " reaching the standard grade ".
Describe in accordance with another embodiment of the present invention for controlling the control method of Git central repository below with reference to Fig. 5 500.This control method involves how to synchrodata (example between the distributed Git central repository including center, multiple warehouse Such as computer software code) method.
As it is shown in figure 5, in step 501, first receive from user to a warehouse in the minds of in the plurality of warehouse Center performs the instruction updated.This renewal instruct such as computer software code amendment, delete, add, merging etc..
After receiving this user instruction, it is alternatively possible to carry out user identity or authorization check.If verification is logical Cross, then proceed following steps.
It follows that in step 502, according to this user instruction, update center, one warehouse.Such as revise, delete, add Add, joint account machine software code.
It follows that in step 503, according to step 502, other centers, warehouse in the minds of in the plurality of warehouse are performed same Step operation so that other centers, warehouse described and this warehouse central synchronous, keeps the concordance of data between each center, warehouse.
A deformation according to this embodiment, performs simultaneously operating to other centers, warehouse in the minds of in the plurality of warehouse , the synchronous regime labelling at other centers, warehouse described is set to " synchronization " before, and to center, the plurality of warehouse In other centers, warehouse perform after simultaneously operating, the synchronous regime labelling at other centers, warehouse described is set to " with Step ".
A deformation according to this embodiment, uses standard Git agreement to perform described simultaneously operating.
A deformation according to this embodiment, also includes: when receive user to the plurality of warehouse in the minds of one When center, warehouse performs to read instruction, if the synchronous regime at center, one warehouse is labeled as " synchronization ", then read other Synchronous regime be labeled as the data at center, warehouse of " synchronizing ".
Use the present invention, if user has multiple research and development centre, then can realize warehouse easily in each research and development centre Backup.Ensure that the user being positioned at same research and development centre, reading warehouse when, uses in this research and development centre network simultaneously Warehouse backup.Which greatly enhances user and read the speed in warehouse, decrease network delay and network traffics.It addition, based on The Git far call of dRuby so that remote invocation performance and maintainability are greatly improved, makes system more stable.
Although with reference to exemplary embodiment, invention has been described, but it is to be understood that the invention is not restricted to institute public The exemplary embodiment opened.Scope of the following claims should be given the widest explanation, so that it contains all these change Type example and the 26S Proteasome Structure and Function of equivalent.

Claims (16)

1. a Git central repository management system, comprising:
Center, multiple warehouse, in the plurality of warehouse in the minds of center, each warehouse be respectively provided with one or more rear end;
Synchronization module, in the plurality of warehouse in the minds of the rear end at center, warehouse when being updated, described synchronization module with Step updates the rear end at other centers, warehouse in the minds of in the plurality of warehouse.
Git central repository the most according to claim 1 management system, wherein, in the plurality of warehouse in the minds of each storehouse Center, storehouse include front end, described front end be used for providing a user with access interface and can access described rear end read carrying out and/or Write operation.
Git central repository the most according to claim 2 management system, wherein, in the plurality of warehouse in the minds of described in When the rear end at center, one warehouse is updated, the front end at center, one warehouse is called described synchronization module and is synchronized institute to update State the rear end at other centers, warehouse.
4. manage system, wherein, center, the plurality of warehouse according to the Git central repository according to any one of claim 1-3 In one or more routing modules that also include, described routing module is called by described front end, for according to routing rule position Storage has the rear end of code needed for user.
5. manage system, wherein, center, described each warehouse according to the Git central repository according to any one of claim 1-4 All there is described synchronization module, between the synchronization module at center, warehouse, use standard Git protocol.
6. manage system, wherein, center, the plurality of warehouse according to the Git central repository according to any one of claim 1-5 In the front end at center, a warehouse can access the rear end at other centers, warehouse in the minds of in the plurality of warehouse.
7. manage system, wherein, center, described each warehouse according to the Git central repository according to any one of claim 1-6 There is synchronous regime labelling to reflect the more new state at this center, warehouse.
Git central repository the most according to claim 7 management system, wherein, when the rear end quilt at center, one warehouse During renewal, the synchronous regime labelling at other centers, warehouse described is set to " the most more by the synchronization module at center, one warehouse Newly ".
Git central repository the most according to claim 8 management system, wherein, when the rear end quilt at other centers, warehouse described After renewal, the synchronous regime labelling at other centers, warehouse described is set to " updating ".
10. manage system according to the Git central repository according to any one of claim 1-6, wherein, when to one warehouse When center performs write operation, the front end at center, one warehouse produces the simultaneously operating of described write operation and synchronizes behaviour by described Being sent to the synchronization module at center, one warehouse, the described synchronization module at center, one warehouse is to other storehouses described Warehouse on the rear end at center, storehouse performs described simultaneously operating so that the warehouse on the rear end at other centers, warehouse described and this storehouse Storehouse synchronizes.
11. manage system according to the Git central repository according to any one of claim 1-10, and wherein, described front end uses DRuby far call agreement.
12. manage system according to the Git central repository according to any one of claim 2-11, and wherein, described front end is to user Access carries out scope check.
13. 1 kinds of control methods for Git central repository, described Git central repository includes center, multiple warehouse, described method Including:
Receive the instruction that center, the warehouse execution in the minds of in the plurality of warehouse is updated from user;
Update center, one warehouse;
Other centers, warehouse in the minds of in the plurality of warehouse are performed simultaneously operating so that other centers, warehouse described are with described One warehouse central synchronous.
14. methods according to claim 13, also include: to other centers, warehouse described in the minds of in the plurality of warehouse Before performing simultaneously operating, the synchronous regime labelling at other centers, warehouse described is set to " synchronization ", and to described After other centers, warehouse described in the minds of in multiple warehouses perform simultaneously operating, by the synchronous regime at other centers, warehouse described Labelling is set to " synchronizing "..
15. according to the method according to any one of claim 13-14, wherein, uses standard Git agreement to perform described synchronization Operation.
16. according to the method according to any one of claim 13-15, also include: when receiving user to the plurality of warehouse When center, a warehouse in the minds of in performs the instruction read, if the synchronous regime at center, one warehouse is labeled as " not same Step ", then read the data that synchronous regime is labeled as the center, warehouse of " synchronizing ".
CN201610665962.8A 2016-08-12 2016-08-12 Git central warehouse management system and control method Pending CN106326372A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610665962.8A CN106326372A (en) 2016-08-12 2016-08-12 Git central warehouse management system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610665962.8A CN106326372A (en) 2016-08-12 2016-08-12 Git central warehouse management system and control method

Publications (1)

Publication Number Publication Date
CN106326372A true CN106326372A (en) 2017-01-11

Family

ID=57739346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610665962.8A Pending CN106326372A (en) 2016-08-12 2016-08-12 Git central warehouse management system and control method

Country Status (1)

Country Link
CN (1) CN106326372A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899588A (en) * 2017-02-22 2017-06-27 郑州云海信息技术有限公司 It is a kind of to be applied to the program adaptive environment that multiterminal coexist and build system
CN109815646A (en) * 2019-01-30 2019-05-28 上海易点时空网络有限公司 Code administration method and device
CN111309369A (en) * 2018-12-12 2020-06-19 北京奇虎科技有限公司 Code management method and device based on Git code warehouse
CN111666045A (en) * 2020-05-15 2020-09-15 深圳市大富网络技术有限公司 Data processing method, system, equipment and storage medium based on Git system
CN112966065A (en) * 2021-05-10 2021-06-15 炬星科技(深圳)有限公司 Navigation map data management method, navigation map data management device, and storage medium
CN114466013A (en) * 2021-12-22 2022-05-10 天翼云科技有限公司 Code management method, system, device and storage medium based on Git
CN117454856A (en) * 2023-12-22 2024-01-26 达州爱迦飞诗特科技有限公司 Medical diagnosis data editing method and system based on-line point-to-point mode

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729195A (en) * 2014-01-15 2014-04-16 北京奇虎科技有限公司 Control method and system for software version
CN104899047A (en) * 2015-06-25 2015-09-09 广州杰赛科技股份有限公司 Webpage frame deployment method and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729195A (en) * 2014-01-15 2014-04-16 北京奇虎科技有限公司 Control method and system for software version
CN104899047A (en) * 2015-06-25 2015-09-09 广州杰赛科技股份有限公司 Webpage frame deployment method and system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王文龙: ""分布式软件开发平台的设计与实施"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899588A (en) * 2017-02-22 2017-06-27 郑州云海信息技术有限公司 It is a kind of to be applied to the program adaptive environment that multiterminal coexist and build system
CN111309369A (en) * 2018-12-12 2020-06-19 北京奇虎科技有限公司 Code management method and device based on Git code warehouse
CN111309369B (en) * 2018-12-12 2024-03-29 北京奇虎科技有限公司 Code management method and device based on Git code warehouse
CN109815646A (en) * 2019-01-30 2019-05-28 上海易点时空网络有限公司 Code administration method and device
CN111666045A (en) * 2020-05-15 2020-09-15 深圳市大富网络技术有限公司 Data processing method, system, equipment and storage medium based on Git system
CN112966065A (en) * 2021-05-10 2021-06-15 炬星科技(深圳)有限公司 Navigation map data management method, navigation map data management device, and storage medium
CN114466013A (en) * 2021-12-22 2022-05-10 天翼云科技有限公司 Code management method, system, device and storage medium based on Git
CN117454856A (en) * 2023-12-22 2024-01-26 达州爱迦飞诗特科技有限公司 Medical diagnosis data editing method and system based on-line point-to-point mode
CN117454856B (en) * 2023-12-22 2024-04-16 达州爱迦飞诗特科技有限公司 Medical diagnosis data editing method and system based on-line point-to-point mode

Similar Documents

Publication Publication Date Title
CN106326372A (en) Git central warehouse management system and control method
CN101741911B (en) Multi-copy collaboration-based write operation method, system and node
CN104539681B (en) The processing method of distributed GIS acceleration systems and GIS service
CN101019105B (en) Method and apparatus for data storage using striping
CN102244685B (en) Distributed type dynamic cache expanding method and system for supporting load balancing
CN102693324B (en) Distributed database synchronization system, synchronization method and node management method
CN106713391B (en) Session information sharing method and sharing system
CN104935634B (en) Mobile device data sharing method based on Distributed shared memory
CN103473696A (en) Method and system for collecting, analyzing and distributing internet business information
TW200400444A (en) System and method for accessing different types of back end data stores
JPS6170654A (en) Resource control system of decentralized processing system
CN102855239A (en) Distributed geographical file system
CN102780724A (en) Sending method, sending system and sending device for category information
CN102866998A (en) Centralized password management method and centralized password management system in synchronous system
CN101317375A (en) Network management data synchronous refreshing method, and client terminal and server terminal
CN109684273A (en) A kind of snapshot management method, apparatus, equipment and readable storage medium storing program for executing
CN102207978A (en) Database access method and system
CN103533023A (en) Cloud service application cluster synchronization system and synchronization method based on cloud service characteristics
WO2016082594A1 (en) Data update processing method and apparatus
CN104281980A (en) Remote diagnosis method and system for thermal generator set based on distributed calculation
CN103491137A (en) Data synchronizing system and data synchronizing method
Panigrahi et al. DATALET: An approach to manage big volume of data in cyber foraged environment
CN102624932A (en) Index-based remote cloud data synchronizing method
CN117118742B (en) Government affair data operation method and system based on access frequency monitoring
CN204926097U (en) Memory system is kept apart to data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190308

Address after: Room 205A, 2nd floor, No. 10 Jiuxianqiao Road, Chaoyang District, Beijing 100015

Applicant after: Beijing Innovation Lezhi Network Technology Co., Ltd.

Address before: 10102 8th Floor, Building 6, 33 Guangshun North Street, Chaoyang District, Beijing

Applicant before: Beijing Innovation Information Technology Co., Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170111