Created
May 14, 2009 04:09
-
-
Save schacon/111475 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Git is an open source, distributed version control system implemented | |
| as a directed acyclic graph of commit objects pointing to snapshots | |
| of content, with all data saved in it's own custom content addressable | |
| filesystem by the SHA-1 checksum hash of each objects data. branches | |
| are simply pointers into this directed graph of commits, identifying | |
| entry points that designate the latest work on that branch, allowing | |
| Git to traverse the pointers, determining a coherent history. | |
| this makes branching cheap and easy, and merging simple, encouraging | |
| non-linear development styles and frictionless context switching while | |
| facilitating distributed development, cryptographic integrity and late | |
| decision making. nearly all commands run locally with no network | |
| latency overhead and it is implemented mainly in C, making it | |
| incredibly fast and efficient even for very large projects. There | |
| are several large open source projects using it, not to mention the | |
| 100,000 open source repositories maintained by the 80,000 developers | |
| on GitHub alone. | |
| Chances are if you are using another source control system, | |
| you should learn more about Git and consider switching to it. | |
| So, now that we're all on the same page on Git, I'm going to cover | |
| GitHub a bit. | |
| What is GitHub? GitHub is a Git-based source code hosting website | |
| where anyone can freely and openly host their various projects source | |
| code; and other users can find them, use them and help improve them. | |
| A lot of people and companies use us for hosting their private and | |
| open source projects, and we hope you also do. | |
| This talk is to show you how we have used Erlang to help us manage | |
| the rapid growth of our community in the numbers of projects and users | |
| in the last year. | |
| Originally, we used a few webservers running Git commands on a shared | |
| filesystem over GFS. Due to the nature of GFS and the high IO needs | |
| of Git, this began to break down - it would not scale. We decided to | |
| move to an RPC system, where we would federate our repositories over | |
| multiple backend servers and run commands over RPC from any frontend | |
| system, allowing us to scale either tier independently. | |
| We used Erlang for that RPC system, and here is Tom to show you how. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment