distributed == parallel shared nothing architecture
Intro Distributed Locking each nodes has lock table locally, can manage the pages/tuples easily, but when it comes to Table, there should be a global lock table (or distributed lock tables)and a coordinator to manage the access to the table.
Distributed Deadlocks Detection 合并全局waits Distributed Commit 全局投票 2PC The Recovery Processes crash situations 2PC, Locking and Availability 2PC + Strict 2PL locking what if a node is down?
Scaling Relational Databases isn’t always the best option including partitioning and replication
BUT, consistency is hard to enforce!
Taxonomy of NoSQL Data Models Key-Value Stores 1 2 Map<Key, Value> get/put Distribution / Partitioning, just using hash function
if no replication, key k is stored on $h(k)$ node if multi-way replication, key k is stored on $h_i(k), i=1,2,…,n$ nodes Extensible Record Stores the idea is that do not use a simple key to lookup 🤔