CN113296816A - Method for improving reliability and performance of SVN storage - Google Patents
Method for improving reliability and performance of SVN storage Download PDFInfo
- Publication number
- CN113296816A CN113296816A CN202110664789.0A CN202110664789A CN113296816A CN 113296816 A CN113296816 A CN 113296816A CN 202110664789 A CN202110664789 A CN 202110664789A CN 113296816 A CN113296816 A CN 113296816A
- Authority
- CN
- China
- Prior art keywords
- svn
- storage
- revs
- performance
- object storage
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The invention discloses a method for improving SVN storage reliability and performance, and belongs to the technical field of version management. The method for improving the storage reliability and performance of the SVN comprises the steps of changing the source code of the SVN system, converting the read-write operation of the SVN aiming at the files in revs into an object storage putObject/getObject operation, converting the files in a revs directory into individual objects, storing the files in the original revs directory in an object storage system, and keeping the whole framework and the client of the SVN server unchanged. The method for improving the SVN storage reliability and performance can improve the SVN storage reliability and improve the SVN concurrent processing capacity by multiple times, and has good popularization and application values.
Description
Technical Field
The invention relates to the technical field of version management, and particularly provides a method for improving SVN storage reliability and performance.
Background
The SVN is called Subversion, a version control system. It is the most popular version control system for open source code. Being an open source version control system, Subversion manages data that changes over time. These data are placed in a central Repository (Repository). This archive resembles a regular file server, but it keeps track of every file change. This allows the archive to be restored to the old version or to the history of changes in the viewed file. Subversion is a general system that can be used to manage any type of file, including program source code. The SVN adopts a client/server system, various versions of a project are stored on a server, program developers firstly obtain a latest version of the project from the server and copy the latest version of the project to a local computer, and then on the basis, each developer can carry out independent development work on own client and can submit new codes to the server at any time. Of course, the latest code on the server can be obtained through the updating operation, so that the consistency with the version used by other developers is maintained.
In SVN, there are two ways to store data in the version repository. One is to store the data in the Berkeley DB database; the other is to use a common file, using a custom format. Because developers of SVNs refer to versioned libraries as (versioned) file systems, they have accepted the habit of referring to the latter storage method as FSFS, i.e., a system that uses a local operating system file system to store versioned files of data. FSFS was added later and is currently in wide use. The FSFS mode is that a revs directory exists in a local file system, a version structure organized by the directory is arranged below the revs directory, each 1000 versions form a directory, each version forms a file by itself, the file name is the version number generated after commit, and real version change data are stored. When a file with a certain version number is obtained from a client, the SVN server can inquire the previous version number, if the file with the middle version number is damaged or incomplete, the file with the complete version number is difficult to obtain, and the faults of a single machine, such as a disk, are more. In addition, disk file competition can occur when a plurality of SVN users exist, the performance is not good, and the development of a large team is not facilitated. This problem cannot be fundamentally solved using SVN server mirroring.
Disclosure of Invention
The technical task of the present invention is to provide a method for improving the storage reliability and performance of SVN, which can improve the storage reliability of SVN and multiply the concurrent processing capability of SVN.
In order to achieve the purpose, the invention provides the following technical scheme:
a method for improving SVN storage reliability and performance is characterized in that reading and writing operations aiming at files in revs in SVN are converted into putObject/getObject operations through changing SVN system source codes, the files in revs directories are converted into individual objects, the files in the original revs directories are stored in an object storage system, and the whole architecture and a client side of an SVN server side are not changed.
The object storage system may be either open source or business selectable.
The method for improving the storage reliability and performance of the SVN comprises the steps of changing source codes of the SVN system, converting read-write operation of files in revs in the SVN into putObject/getObject operation of object storage, converting files in a revs directory into individual objects, storing the files in an original revs directory in an object storage system, selecting open sources and commercial services by the object storage system, and not changing the overall architecture and the client of an SVN server. The invention can improve the reliability of SVN storage and improve the concurrent processing capability and performance of the SVN by several times under the condition that the whole framework of the SVN server and the client are not changed.
Preferably, when the client submits the new version, the generated object name is consistent with the full path name of the file in the revs directory, and the SVN version change file is stored in the object storage system by using putObject operation of the object storage.
Preferably, when the client acquires the version, the getObject operation of the object storage is used to acquire the file content corresponding to the object name matching the full path name of the file in the original revs directory from the object storage system.
Preferably, the SVN version change data is stored in the object storage system in multiple copies, and when a node of the object storage system is down or fails, other copy data is obtained from other nodes, so that the problem of single-point storage failure of the original SVN is solved.
Preferably, a new SVN server program is installed for the newly-built SVN version library, and the operation mode and the client side are not changed.
Preferably, the object store is in a separate compute and store mode, and the SVN utilizes the latest network and storage hardware conditions.
Preferably, for the existing SVN version library, the SVN server is upgraded to a new version SVN server program, and the version change file existing in the revs directory is converted and migrated to the object storage by using an upgrade migration tool.
Preferably, for the existing SVN version, when the version change file existing in the revs directory is converted and migrated into the object storage, the operation mode and the client side are not changed.
Compared with the prior art, the method for improving the storage reliability and performance of the SVN has the following outstanding beneficial effects: the method for improving the SVN storage reliability and performance can improve the SVN storage reliability and improve the SVN concurrent processing capability and performance by multiple times under the condition that the whole framework and the client of the SVN server are not changed, and has good popularization and application values.
Detailed Description
The method for improving storage reliability and performance of SVN of the present invention will be described in further detail with reference to the following embodiments.
Examples
The method for improving the storage reliability and performance of the SVN converts the reading and writing operation of the file in revs in the SVN into the putObject/getObject operation of object storage by changing the source code of the SVN system, converts the file in the revs directory into one object, stores the file in the original revs directory in the object storage system, and does not change the whole framework and the client of the SVN server. Wherein the object storage system is selectable from either an open source or a business.
When the client submits the new version, the generated object name is consistent with the full path name of the file in the revs directory, and the SVN version change file is stored in the object storage system by using putObject operation of object storage. When the client acquires the version, the getObject operation of the object storage is used for acquiring the file content of which the object name is consistent with the full path name of the file in the original revs directory from the object storage system. SVN version change data is stored in an object storage system in a multi-copy mode, and when a node of the object storage system is down or fails, other copy data are obtained from other nodes, so that the problem of single-point storage failure of the original SVN is solved. And installing a new SVN server program to the newly-built SVN version library, wherein the operation mode and the client side are not changed. The object storage adopts a calculation and storage separation mode, and the SVN utilizes the latest network and storage hardware conditions. And for the existing SVN version library, the SVN server is upgraded to a new SVN server program, and the version change file existing in the revs directory is converted and migrated to the object storage by using an upgrade migration tool, wherein the operation mode and the client side are not changed.
The method for improving the storage reliability and performance of the SVN comprises the steps of changing source codes of the SVN system, converting read-write operation of files in revs in the SVN into putObject/getObject operation of object storage, converting files in a revs directory into individual objects, storing the files in an original revs directory in an object storage system, selecting open sources and commercial services by the object storage system, and not changing the overall architecture and the client of an SVN server. The invention can improve the reliability of SVN storage and improve the concurrent processing capability and performance of the SVN by several times under the condition that the whole framework of the SVN server and the client are not changed.
One specific embodiment of the method for improving the storage reliability and performance of the SVN of the present invention is as follows:
the object storage products are more, and the paramServer of the IROS also contains class object storage operation. By changing the SVN system source code, the file read-write operation in the SVN aiming at the revs is converted into putObject/getObject operation of the IROS for object storage, the files in the revs directory are converted into individual objects, the files in the original revs directory are stored in the paramServer of the IROS, other object storage systems can be selected, and the whole framework and the client of the SVN server are not changed.
When the client submits a new version, the generated object name is consistent with the full path name of the file in the original revs directory, and the svn version change file is stored in the object storage system by using the putObject operation of the IROS.
When the client acquires a certain version, the getObject operation of the IROS is used for acquiring the file content of which the object name is consistent with the full path name of the file in the original revs directory from the object storage system.
The object storage generally supports multi-copy storage, the SVN version change data is stored in the object storage system in a multi-copy mode, and when any one node of the object storage system is down or has other faults, other copy data can be obtained from other nodes, so that the problem of single-point storage fault of the original SVN is solved.
For the existing SVN version library, the SVN server can be upgraded to a new version SVN server program realized by the scheme, and the version change file existing in the revs directory is converted and transferred to the object storage by using the upgrading and transferring tool provided by the scheme, and other subsequent operation modes and clients are not changed.
The method for improving the storage reliability and performance of the SVN comprises the steps of changing source codes of the SVN system, converting read-write operation of files in revs in the SVN into putObject/getObject operation of object storage, converting files in a revs directory into individual objects, storing the files in an original revs directory in an object storage system, selecting open sources and commercial services by the object storage system, and not changing the overall architecture and the client of an SVN server. The invention can improve the reliability of SVN storage and improve the concurrent processing capability and performance of the SVN by several times under the condition that the whole framework of the SVN server and the client are not changed.
The above-described embodiments are merely preferred embodiments of the present invention, and general changes and substitutions by those skilled in the art within the technical scope of the present invention are included in the protection scope of the present invention.
Claims (8)
1. A method for improving storage reliability and performance of SVN is characterized in that: by changing the SVN system source code, the file read-write operation in the SVN aiming at the revs is converted into an object storage putObject/getObject operation, the files in the revs directory are converted into individual objects, the files in the original revs directory are stored in an object storage system, and the whole architecture and the client side of the SVN server side are not changed.
2. The method for improving SVN storage reliability and performance of claim 1, wherein: when the client submits the new version, the generated object name is consistent with the full path name of the file in the revs directory, and the SVN version change file is stored in the object storage system by using putObject operation of object storage.
3. The method for improving SVN storage reliability and performance of claim 2, wherein: when the client acquires the version, the getObject operation of the object storage is used for acquiring the file content of which the object name is consistent with the full path name of the file in the original revs directory from the object storage system.
4. The method for improving storage reliability and performance of an SVN of claim 3, wherein: the SVN version change data is stored in the object storage system in a multi-copy mode, and when a node of the object storage system goes down or fails, other copy data are obtained from other nodes.
5. The method for improving reliability and performance of SVN storage according to claim 4, wherein: and installing a new SVN server program to the newly-built SVN version library, wherein the operation mode and the client side are not changed.
6. The method for improving reliability and performance of SVN storage according to claim 5, wherein: the object storage adopts a calculation and storage separation mode, and the SVN utilizes the latest network and storage hardware conditions.
7. The method for improving reliability and performance of SVN storage according to claim 6, wherein: and for the existing SVN version library, the SVN server is upgraded to a new SVN server program, and the version change file existing in the revs directory is converted and migrated to the object storage by using an upgrade migration tool.
8. The method for improving SVN storage reliability and performance of claim 7, wherein: and for the existing SVN version, when the version change file existing in the revs directory is converted and migrated to the object storage, the operation mode and the client side are not changed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110664789.0A CN113296816B (en) | 2021-06-16 | 2021-06-16 | Method for improving reliability and performance of SVN storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110664789.0A CN113296816B (en) | 2021-06-16 | 2021-06-16 | Method for improving reliability and performance of SVN storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296816A true CN113296816A (en) | 2021-08-24 |
CN113296816B CN113296816B (en) | 2022-10-14 |
Family
ID=77328407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110664789.0A Active CN113296816B (en) | 2021-06-16 | 2021-06-16 | Method for improving reliability and performance of SVN storage |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296816B (en) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897642A (en) * | 1997-07-14 | 1999-04-27 | Microsoft Corporation | Method and system for integrating an object-based application with a version control system |
CN102193841A (en) * | 2010-03-04 | 2011-09-21 | 阿里巴巴集团控股有限公司 | Backup method and device of Subversion configuration database |
US20140379650A1 (en) * | 2013-06-21 | 2014-12-25 | Sap Ag | Managing a file-based versioning system |
US20150046502A1 (en) * | 2012-12-06 | 2015-02-12 | Netapp Inc. | Migrating data from legacy storage systems to object storage systems |
US9223800B1 (en) * | 2013-12-23 | 2015-12-29 | Emc Corporation | Cluster file system providing object store and functionality for transformation of metadata files into objects |
CN105229602A (en) * | 2013-03-15 | 2016-01-06 | 微软技术许可有限责任公司 | Efficient DVCS storage system |
CN106293701A (en) * | 2016-07-26 | 2017-01-04 | 浪潮软件股份有限公司 | The application engine method for designing of many tenants version management based on cloud server |
US20170091235A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Namespace hierarchy preservation with multiple object storage objects |
US20170091296A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Object storage backed file system |
CN107145540A (en) * | 2017-04-24 | 2017-09-08 | 北京邮电大学 | The diagram file textual conversion equipment and method of the version control function of class uml diagram |
CN111986337A (en) * | 2020-08-31 | 2020-11-24 | 山东新一代信息产业技术研究院有限公司 | Robot-based roadside parking charge management system and method |
-
2021
- 2021-06-16 CN CN202110664789.0A patent/CN113296816B/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897642A (en) * | 1997-07-14 | 1999-04-27 | Microsoft Corporation | Method and system for integrating an object-based application with a version control system |
CN102193841A (en) * | 2010-03-04 | 2011-09-21 | 阿里巴巴集团控股有限公司 | Backup method and device of Subversion configuration database |
US20150046502A1 (en) * | 2012-12-06 | 2015-02-12 | Netapp Inc. | Migrating data from legacy storage systems to object storage systems |
CN105229602A (en) * | 2013-03-15 | 2016-01-06 | 微软技术许可有限责任公司 | Efficient DVCS storage system |
US20140379650A1 (en) * | 2013-06-21 | 2014-12-25 | Sap Ag | Managing a file-based versioning system |
US9223800B1 (en) * | 2013-12-23 | 2015-12-29 | Emc Corporation | Cluster file system providing object store and functionality for transformation of metadata files into objects |
US20170091235A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Namespace hierarchy preservation with multiple object storage objects |
US20170091296A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Object storage backed file system |
CN106293701A (en) * | 2016-07-26 | 2017-01-04 | 浪潮软件股份有限公司 | The application engine method for designing of many tenants version management based on cloud server |
CN107145540A (en) * | 2017-04-24 | 2017-09-08 | 北京邮电大学 | The diagram file textual conversion equipment and method of the version control function of class uml diagram |
CN111986337A (en) * | 2020-08-31 | 2020-11-24 | 山东新一代信息产业技术研究院有限公司 | Robot-based roadside parking charge management system and method |
Non-Patent Citations (2)
Title |
---|
黄伯棠,宋建平,杜镰: "机械制图试题库系统总体设计", 《江汉石油学院学报》 * |
黄伯棠,宋建平,杜镰: "机械制图试题库系统总体设计", 《江汉石油学院学报》, no. 03, 20 September 1996 (1996-09-20) * |
Also Published As
Publication number | Publication date |
---|---|
CN113296816B (en) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230350761A1 (en) | Restoring a database using a fully hydrated backup | |
US7610314B2 (en) | Online tablespace recovery for export | |
US10891067B2 (en) | Fast migration of metadata | |
US8504571B2 (en) | Directed placement of data in a redundant data storage system | |
US10789131B2 (en) | Transportable backups for pluggable database relocation | |
US7840539B2 (en) | Method and system for building a database from backup data images | |
EP2342634B1 (en) | Partition management in a partitioned, scalable, and available structured storage | |
US7549028B2 (en) | Backup and restore operations using a single snapshot driven by a server job request | |
US11782649B2 (en) | Restoring an archive authorized by an authenticated user | |
US20080027998A1 (en) | Method and apparatus of continuous data protection for NAS | |
US20070006018A1 (en) | Creation of a single snapshot using a server job request | |
US11321291B2 (en) | Persistent version control for data transfer between heterogeneous data stores | |
JP2003308210A (en) | Method of replicating source file across networked resources and recording medium | |
CN1894672A (en) | Method and apparatus for performing operations on selected data in a storage area | |
JP2005529410A (en) | Multiple simultaneously active file systems | |
US11074224B2 (en) | Partitioned data replication | |
EP3451173A1 (en) | Restoring a database using a fully hydrated backup | |
US20060026567A1 (en) | Distribution of data/metadata in a version control system | |
US20080059941A1 (en) | Method and system for supporting a collaborative development environment | |
US11494271B2 (en) | Dynamically updating database archive log dependency and backup copy recoverability | |
US11966297B2 (en) | Identifying database archive log dependency and backup copy recoverability | |
US11436089B2 (en) | Identifying database backup copy chaining | |
CN113296816B (en) | Method for improving reliability and performance of SVN storage | |
US11079960B2 (en) | Object storage system with priority meta object replication | |
US20220067005A1 (en) | Redo mining during rolling upgrade |
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 |