NoSQLDatabase Flashcards
What are the three key elements that index BigTable’s map?
Row key, Column key, and Timestamp
What is a row key in BigTable?
An arbitrary string (10-100 bytes) that uniquely identifies a row
What is the purpose of column families in BigTable?
They are basic units of access control and group together columns of the same data type for compression
What is the maximum number of column families allowed in a BigTable table?
100
How does BigTable divide tables for scalability?
Into tablets (row ranges) of about 100-200 MB
What is the format of BigTable’s storage files?
SSTable
What are the three levels in BigTable’s location hierarchy?
- Root tablet in Chubby 2. METADATA tablets 3. SSTable identifiers
What two systems does BigTable rely on for core functionality?
Google File System (GFS) for storage and Chubby for distributed lock management
Where does BigTable store recently committed updates?
In memory in a sorted buffer called memtable
What is BigTable’s main disadvantage?
Cannot handle transactions (no ACID properties), making it unsuitable for banking and e-commerce
What are the three key priorities of Amazon DynamoDB?
High availability, scalability, and distributed key-value storage
How does DynamoDB achieve incremental scalability?
Through consistent hashing with virtual nodes
What is the purpose of virtual nodes in DynamoDB?
They distribute load evenly and handle node failures/additions effectively
How many nodes is each data item replicated to in DynamoDB?
N hosts (N is configurable per instance)
What is a preference list in DynamoDB?
The list of nodes responsible for storing a particular key
What technique does DynamoDB use to detect replica inconsistencies?
Merkle trees (hash trees)
What is the hinted handoff technique in DynamoDB?
Temporarily storing data for unavailable replicas on alternate nodes
How does DynamoDB track causality in updates?
Using vector clocks with tuples indicating update counts per node
What is DynamoDB’s approach to consistency?
Eventual consistency (prioritizes availability over strong consistency)
Why was DynamoDB designed with eventual consistency?
To meet the needs of “always-on” applications requiring continuous operation
What is the coordinator’s role in DynamoDB?
Responsible for replicating data items that fall within its range
How are row keys ordered in BigTable?
Lexicographically
What is a locality group in BigTable?
A grouping of column families to enable more efficient reads
What type of compression does BigTable support?
Custom two-pass compression system based on Bentley and McIlroy algorithm
What is stored in a BigTable value?
An uninterpreted byte string
When does BigTable perform authorization checks?
During both read and write operations
How does DynamoDB handle conflicting updates?
Through either application-level resolution or system-level resolution (e.g., last write wins)
What is the role of Chubby in BigTable authorization?
Stores the list of permitted writers
What distinguishes BigTable from traditional databases?
Its non-relational interface and data model
Since when has BigTable been operational?
2005