Quick Notes

Things that came on the way

Setting Up to Contribute Using Git

Basic steps if you are planning to contribute to an existing project currently on GitHub.

  • Create an account on GitHub.
  • Create a fork of the project repository on GitHub.
  • Create a Git repository on your local machine. This requires Git to be available on the machine
1
git clone https://github.com/your-user-name/repository-name -b branch-name

Spanner

Globally distributed database that automatically shards data across many sets of Paxos state machines in datacenters spread all over the world. Replication is used for global availability and geographic locality; clients automatically failover between replicas. It automatically migrates data between machines to balance load and during failures.

Challenges in Concurrent Programming II

In addition to race conditions, the second challenge in developing concurrent processing is deadlocks and they occur when the processes running concurrently need access to more than one resource. For e.g. if there are two resources R1 & R2 which will be accessed by two concurrent processes A & B,

  • Lets assume process A acquired resource R1

  • OS swaps processes A to start executing process B and processes B acquired resource R2