Title: Theory / Important / CS / Development / Site Reliability engineering

Name: mean time to repair
Definition: time it takes (on an average) to replace a failed
disk and to restore the data on it
Page: 442
Chapter: 10
Section: 3.1
Context: data storage

Question: How does SRE spend their time
Answer: at least 50% coding to automate their work
Page: https://sre.google/sre-book/introduction/

Question: How does Google ensure SRE spend at most 50% of their time doing manual process
Answer: tracking time spent. If more than 50% is on manual process, they ask the developer team to be part of the oncall rotation until software become maintenable again
Page: https://sre.google/sre-book/introduction/

Name: Monitoring outputs
Definition: Alerts
Page: 10
Chapter: 1
Context: SRE
Definition2: Tickets
Definition3: Logging

Name: Alerts
Definition: Signify that a human needs to take action immediately in response to something
that is either happening or about to happen, in order to improve the situation.
Page: 10
Chapter: 1
Context: SRE

Name: Tickets
Definition: Signify that a human needs to take action, but not immediately. The system cannot automatically handle the situation, but if a human takes action in a few days,
no damage will result
Page: 10
Chapter: 1
Context: SRE

Name: Logging
Definition: No one needs to look at this information, but it is recorded for diagnostic or forensic purposes. The expectation is that no one reads it unless something else
prompts them to do so.
Page: 10
Chapter: 1
Context: SRE

Question: Who is supposed to decide whether a human response is required
Answer: The machine automatically. Otherwise too many alerts "just in case a human in needed" will ensure people ignore them
Page: 10
Chapter: 1
Context: SRE

Name: Machine
Definition: A piece of hardware (or perhaps a VM)
Page: 13
Context: Google SRE

Name: Server
Definition: A piece of software that implements a service
Page: 13
Context: Google SRE

Name: A rack
Definition: tens of machines
Page: 14
Chapter: 2
Context: Google SRE

Name: A row
Definition: A set of racks
Page: 14
Chapter: 2
Context: Google SRE

Name: A cluster
Definition: One or more row
Page: 14
Chapter: 2
Context: Google SRE

Name: A datacenter
Definition: a building which houses multiple clusters
Page: 14
Chapter: 2
Context: Google SRE

Name: A campus
Definition: Multiple datacenter buildings that are located close together
Page: 14
Chapter: 2
Context: Google SRE

Name: Jupiter
Definition: A Clos network fabric of hundreds of Google-built switches.
Page: 14
Chapter: 2
Context: Google SRE

Question: What is jupiter maximal capacity
Answer: 1.3 Pbps bisection bandwidth among servers
Page: 14
Chapter: 2
Context: Google SRE

Name: B4
Definition: Google globe-spanning backbone network
Page: 15
Chapter: 2
Context: Google SRE

Question: What protocol uses B4
Answer: OpenFlow
open-standard communications protoco
Page: 15
Chapter: 2
Context: Google SRE

Name: Borg
Definition: Google internal distributed cluster operating system
Page: 15
Chapter: 2
Context: Google SRE
Intuition: Ancestor of Kubernetes. Similar to Apache Mesos.

Name: Job
Definition: More than one identical tasks
Page: 15
Chapter: 2
Context: Borg

Name: A task
Definition: An action done by a single machine
Page: 16
Chapter: 2
Context: Borg

Name: Borg naming service
Definition: A service allocating a name and index number to each task controlled by Borg
Page: 16
Chapter: 2
Context: Borg
Abbreviation: BNS

Question: Why do task has a BNS instead of a ip:port address
Answer: A task may be moved to a different machine, BNS keep track of it
Page: 16
Chapter: 2
Context: Borg

Name: Layer D
Definition: The lowest layer of storage, directly dealing with spinning disk and flash drive
Page: 16
Chapter: 2
Context: Borg
Etymology: Disk

Name: Colossus
Definition: a cluster-wide filesystem that offers
usual filesystem semantics, as well as replication and encryption
Page: 16
Chapter: 2
Context: Borg

Name: Google File System
Page: 16
Chapter: 2
Context: Borg
Abbreviation: GFS

Name: Bigtable
Definition: petabytes in size.
Page: 16
Chapter: 2
Context: Borg
Definition2: sparse,
Definition3: distributed,
Definition4: persistent multidi‐
mensional sorted map
Definition5: eventually consistent, cross-datacenter replication
DefType: a NoSQL database
Definition6: indexed by row key, column key, and timestamp
Definition7: each value in the map is an uninterpreted array of bytes.

Name: Spanner
Definition: an SQL-like interface for users that require real consistency across the world
Page: 16
Chapter: 2
Context: Borg

Question: How do Google chose its routing
Answer: A central duplicated controller precomputes the best paths across the network and dumb switching components implements the pre-computed paths
Page: 17
Chapter: 2
Context: Borg
Name: Spanner

Name: Bandwidth enforcer
Definition: manages the available
bandwidth to maximize the average available bandwidth
Page: 17
Chapter: 2
Context: Borg
Abbreviation: BwE

Name: Global Software
Load Balancer
Definition: Geographic load balancing for DNS requests (for example, to www.google.com)
Page: 18
Chapter: 2
Context: Borg
Definition2: Load balancing at a user service level (for example, YouTube or Google Maps)
Definition3: Load balancing at the Remote Procedure Call (RPC) level
Abbreviation: GSLB

Name: Chubby lock service
Definition: a filesystem-like API for maintaining
locks
Page: 18
Chapter: 2
Context: SRE

Question: How does Chubby maintains locks
Answer: It uses the Paxos protocol for asynchronous Consensu
Page: 18
Chapter: 2
Context: SRE

Name: Borgmon
Definition: Borg monitoring system
Page: 18
Chapter: 2
Context: SRE

Name: Remote procedure call
Definition: System allowing to communicate between servers
Page: 19
Chapter: 2
Context: SRE
Abbreviation: RPC

Name: gRPC
Definition: Open sourc eversion of Stubby, google rpc system
Page: 19
Chapter: 2
Context: SRE

Name: stubby
Definition: Google internal RPC
Page: 19
Chapter: 2
Context: SRE

Question: How to increase a program modularity
Answer: Replace internal subroutine call by RPC
Page: 19
Chapter: 2
Context: SRE

Name: Changelist
Definition: A proposed change to the code source
Page: 20
Chapter: 2
Context: SRE
Abbreviation: CL

Name: A push-on-green system
Definition: A system where changes are merged as soon as test passes
Page: 20
Chapter: 2
Context: SRE

Name: Google front-end
Page: 21
Chapter: 2
Context: SRE
Abbreviation: GFE

Name: Query per second
Page: 22
Chapter: 2
Context: SRE
Abbreviation: QPS