CN113296816A - Method for improving reliability and performance of SVN storage - Google Patents

Method for improving reliability and performance of SVN storage Download PDF

Info

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
Application number
CN202110664789.0A
Other languages
Chinese (zh)
Other versions
CN113296816B (en
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.)
Shandong New Generation Information Industry Technology Research Institute Co Ltd
Original Assignee
Shandong New Generation Information Industry Technology Research Institute 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 Shandong New Generation Information Industry Technology Research Institute Co Ltd filed Critical Shandong New Generation Information Industry Technology Research Institute Co Ltd
Priority to CN202110664789.0A priority Critical patent/CN113296816B/en
Publication of CN113296816A publication Critical patent/CN113296816A/en
Application granted granted Critical
Publication of CN113296816B publication Critical patent/CN113296816B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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

Method for improving reliability and performance of SVN storage
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.
CN202110664789.0A 2021-06-16 2021-06-16 Method for improving reliability and performance of SVN storage Active CN113296816B (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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