200 likes | 323 Vues
This paper explores the cost implications of using cloud storage for source code revision control. It outlines various architectures designed to store repositories in the cloud, emphasizing the benefits such as resilient storage and simplified server administration. The performance evaluation discusses how cloud solutions like Amazon S3 can enhance the user experience with efficient data management. By analyzing various projects and their commit rates, the study concludes that transitioning to cloud-based repositories is not only feasible but also economically advantageous with minimal adjustments needed to existing systems.
E N D
Cloudifying Source Code Repositories:How much does it cost? LADIS 2009 Big Sky, Montana Michael Siegenthaler Hakim Weatherspoon Cornell University
A Brief History of Cloud Computing • Large scale • Application-specific architectures • Developed for in-house use • Available for general usage • Inexpensive, even for small or medium scale deployments
What is Revision Control? • Repository for data (source code) • All changes are tracked by date and author • Branching and merging • Why move it to the cloud? • Resilient storage • No physical server to administrate • Scale to larger communities (SourceForge)
Available Tools • Subversion, revision control system • Free, open-source • Very popular • Rigid consistency model • Amazon S3, cloud storage service • Eventual consistency • Yahoo ZooKeeper, coordination service • Free, open-source
Various alternativesolutions exist… Cloud Computing P2P • Subversion etc. • Repository stored persistently in the cloud • One true, consistent repository exists • GIT etc. • Repository stored at every client • Many repository copies, converging eventually
Outline • Costs of using cloud storage for revision control • Architecture of a simple solution • Performance evaluation
How to Measure Costs • Each revision stored as two files on disk • Revision data (diff against earlier revisions) • Revision properties (author, log message…) • Calculate bandwidth, per-transaction, and storage costs of pushing each revision into S3 over time
Outline • Costs of using cloud storage for revision control • Architecture of a simple solution • Performance evaluation
A cloud-basedarchitecture... EC2 EC2 S3 S3 S3
Rev. 31337 Two simultaneous commits… Followed by an update… Leads to data loss! EC2 EC2 Rev. 31337 Rev. 31337 S3 S3 S3
EC2 EC2 S3 S3 S3
Commit Process ZooKeeper
Outline • Costs of using cloud storage for revision control • Architecture of a simple solution • Performance evaluation
Usage Observations • Apache Foundation • 1 repository, 74 projects • Average 1.10 commits per minute • Maximum 7 commits per minute • Debian community • 506 repositories • Average 1.12 commits per minute (aggregate) • Maximum 6 commits per minute (aggregate)
Results Checkouts (Reads) Commits (Writes) • Adding servers improves the user experience
Conclusion • Storing source code repositories in the cloud is feasible… • …and very inexpensive • Only minor changes to existing revision control systems are necessary to robustly take advantage of cloud storage