Architecture
- Describe BigTable's architecture hierarchically. Instances > Clusters > Nodes (on BigTable cluster) > Tablets (on Colossus)
- What is Colossus? Google's File System
- Why is rebalancing tablets so fast? the actual data is not copied. Bigtable simply updates the pointers for each node.
- What happens when a node fails? No data is lost, it's still on the tablet
- Why is recovery from a failed node so fast? Only metadata on the node needs to be copied to a new node
- What are compactions? Bigtable periodically rewrites your tables to remove deleted entries, and to reorganize your data so that reads and writes are more efficient.
- What is a mutation? Happens whenever data changes
- Why do mutations take up extra space? Because Bigtable stores mutations sequentially and compacts (i.e. compaction) them only periodically.
- A table belongs to a(n)...? Instance, not cluster nor node
- How does replication work? Multiple clusters per instance
- What is an application profile? Stores settings that tell your Cloud Bigtable instance how to handle incoming requests from an application.
- What are the available routing profiles for application profiles? Single-cluster routing and multi-cluster routing
- What is multi-cluster routing? Sends requests to the nearest available cluster in the instance.
- What is single-cluster routing? Sends all requests to a single cluster that you specify.
- What is cluster group routing? Sends requests to the nearest available cluster within a cluster group that you specify in the app profile settings.
- In Bigtable, reads and writes are always atomic at...? Row level (Atomicity = An atomic transaction is an indivisible and irreducible series of database operations such that either all occurs, or nothing occurs.)
- What are the two supported operations? Read-modify-write operations, including increments and appends. A read-modify-write operation reads an existing value; increments or appends to the existing value; and writes the updated value to the table. Check-and-mutate operations, also known as conditional mutations or conditional writes. In a check-and-mutate operation, Bigtable checks a row to see if it meets a specified condition. If the condition is met, Bigtable writes new values to the row.
- What is a failover? If a Cloud Bigtable cluster becomes unresponsive, replication makes it possible for incoming traffic to fail over to another cluster in the same instance
- How does Bigtable assist in preventing conflicting transactions?
- Prevent single-row transactions when multi-cluster routing is enabled
- Explicitly set enabling single-row transactions on app profile level
- Warn when single-cluster routing combines single-row transaction, with app profile pointing to different clusters