Misplaced Pages

Piper (source control system)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Version control system by Google

Piper is a centralized version control system used by Google for its internal software development. Originally designed for Linux, it supports Microsoft Windows and macOS since October 2012.

Scale

Since its founding years Google used a central codebase shared by the developers. For over 10 years Google relied on a single Perforce instance, using proprietary caching for scalability. This mode of operation was kept as Google grew, the need for further scaling led to the development of Piper. Currently, Google's version control "is an extreme case": as of 2016, the repository was storing 86 terabytes of data comprising two billion lines of code in nine million files (two orders of magnitude more than in the Linux kernel repository). 25 thousand developers contributed 16 thousand changes daily, with additional 24 thousand commit operations by bots. Read requests each day are measured in billions.

Architecture

Piper uses the standard Google storage infrastructure, Bigtable (now called Spanner), distributed across 10 data centers worldwide and replicated through Paxos protocol.

Use

When using Piper, developers apply changes to a local copy of files, similar to a working copy of Subversion, local clone of Git, or a client of Perforce. Updates made by other developers can be pulled from the central repository and merged into the local code. The commits are only allowed after a code review.

Typical use involves Clients in the Cloud (CitC). This system utilizes cloud backend and a local FUSE filesystem to create an illusion of changes overlaid on top of a full repository. This approach enables seamless browsing and use of standard Unix tools without explicit synchronization operations, thus keeping the local copy very small (average size of a local copy is less than ten files). All file writes are mapped to snapshots thus permitting restoration of the previous states of the code without explicit snapshotting. Due to the always-connected operation, CitC allows easy switching of the computers as well as sharing the modified code with other developers, the automated build system and testing tools. As a result, the majority of Google developers practices trunk-based development with no personal branches; the branches are mostly used for releases.

Security

Most of the codebase is visible to all developers, sensitive individual files (less than 1% as of 2016) are access-controlled. All operations with Piper are logged, accidentally committed files can be purged.

Open-source clone

Piper is proprietary software. Mega, a Git-compatible open-source clone of Piper, is available on GitHub. It supports the trunk-based development, Conventional Commits and code owners.

References

  1. Potvin & Levenberg 2016, p. 79.
  2. Potvin & Levenberg 2016, p. 78.
  3. ^ Potvin & Levenberg 2016, p. 80.
  4. Potvin & Levenberg 2016, pp. 80–81.
  5. Blank-Edelman 2018, p. 329.
  6. Potvin & Levenberg 2016, pp. 78–79.
  7. ^ Potvin & Levenberg 2016, p. 81.
  8. Potvin & Levenberg 2016, p. 82.
  9. "Mega - is an unofficial open source implementation of Google Piper". GitHub.

Sources

Google
a subsidiary of Alphabet
Company
Divisions
Subsidiaries
Active
Defunct
Programs
Events
Infrastructure
People
Current
Former
Criticism
General
Incidents
Other
Development
Software
A–C
D–N
O–Z
Operating systems
Language models
Neural networks
Computer programs
Formats and codecs
Programming languages
Search algorithms
Domain names
Typefaces
Products (software and services)
Defunct or discontinued
Hardware
Pixel
Smartphones
Smartwatches
Tablets
Laptops
Other
Nexus
Smartphones
Tablets
Other
Other
Litigation
Advertising
Antitrust
Intellectual property
Privacy
Other
Related
Concepts
Products
Android
Street View coverage
YouTube
Other
Documentaries
Books
Popular culture
Other
Italics denote discontinued products.
Stub icon

This Google-related article is a stub. You can help Misplaced Pages by expanding it.

Categories: