lec12
dz / distributed_systems_MIT / lec12Summary
Distributed Transactions, Atomic Commit
Node Tree
-
distributed_transactions
- concurrency_control
- databases
- failures
- transaction
- atomic_commit
- high_availabilty_through_repl
Nodes
| distributed_transactions | |
| content | Distributed Transactions |
| children | concurrency_control, databases, failures, transaction, atomic_commit |
| atomic_commit | |
| content | atomic commit |
| parents | distributed_transactions, transaction |
| concurrency_control | |
| content | Concurrency Control |
| children | optimistic, pessimistic, two_phase_locking |
| parents | distributed_transactions, transaction |
| transaction | |
| content | Transaction |
| children | concurrency_control, abort, atomic_commit |
| parents | distributed_transactions |
| databases | |
| content | Databases |
| children | correctness |
| parents | distributed_transactions |
| correctness | |
| content | Correctness |
| children | pessimistic, ACID |
| parents | databases |
| ACID | |
| content | ACID |
| children | consistent, durable, isolated, atomic_or_none |
| parents | correctness |
| atomic_or_none | |
| content | Atomic or none, despite failures |
| parents | ACID |
| isolated | |
| content | Isolated |
| children | serializable |
| parents | ACID |
| consistent | |
| content | Consistent |
| parents | ACID |
| serializable | |
| content | Serializable |
| children | easy_for_programmers, serializable_def (definition), abort |
| parents | isolated |
| durable | |
| content | Durable |
| children | nv_storage |
| parents | ACID |
| nv_storage | |
| content | Non-volatile st9orage |
| parents | durable |
| easy_for_programmers | |
| content | Easy model for programmers |
| parents | serializable |
| serializable_def | |
| content | If order of execution of actions that yields same result |
| parents | serializable |
| remarks | wrote this verbatim from my notes, I think I am missing something |
| abort | |
| content | Abort |
| children | fail_in_transaction, abort_retry |
| parents | serializable, transaction |
| fail_in_transaction | |
| content | Fail or decide to fail in the middle of a transaction |
| parents | abort |
| pessimistic | |
| content | Pessimistic |
| parents | concurrency_control, correctness |
| optimistic | |
| content | Optimistic |
| children | no_locks |
| parents | concurrency_control |
| no_locks | |
| content | No Locks |
| children | check_at_end |
| parents | optimistic |
| check_at_end | |
| content | Check for interfering transaction only at end |
| children | abort_retry |
| parents | no_locks |
| abort_retry | |
| content | Abort and retry |
| parents | abort, check_at_end |
| two_phase_locking | |
| content | Two-phase locking |
| children | deadlock_easily_produceable, force_serial_order, acquire_lock_before_using |
| parents | concurrency_control |
| acquire_lock_before_using | |
| content | Acquire lock before using record |
| children | hold_until_done |
| parents | two_phase_locking |
| hold_until_done | |
| content | Hold until done |
| children | why_hold |
| parents | acquire_lock_before_using |
| why_hold | |
| content | Why hold until transaction finished? |
| children | avoid_instruction_interleaving |
| parents | hold_until_done |
| avoid_instruction_interleaving | |
| content | Avoids instruction interleaving |
| parents | why_hold |
| force_serial_order | |
| content | Can force serial order |
| parents | two_phase_locking |
| deadlock_easily_produceable | |
| content | Easy to produce deadlock |
| parents | two_phase_locking |
| failures | |
| content | Failures |
| children | atomicity_against |
| parents | distributed_transactions |
| atomicity_against | |
| content | Atomicity Against |
| children | atomic_commit_protocol |
| parents | failures |
| atomic_commit_protocol | |
| content | Atomic Commit Protocol |
| children | two_phase_commit |
| parents | atomicity_against |
| two_phase_commit | |
| content | Two-phase commit |
| children | different_from_raft, evil_rep, low_availability, servers_diff_things, sharded_db, slow_lots_chitchat, transaction_coordinator |
| parents | atomic_commit_protocol |
| transaction_coordinator | |
| content | Transaction coordinator |
| children | computer_driving_commit (description), crash_stores, prepare_message, single_entity, timeout_block, what_if_fails |
| parents | two_phase_commit |
| computer_driving_commit | |
| content | Computer Driving THe Commit |
| children | transaction_id |
| parents | transaction_coordinator |
| transaction_id | |
| content | Transaction ID |
| parents | computer_driving_commit |
| prepare_message | |
| content | prepare message |
| parents | transaction_coordinator |
| what_if_fails | |
| content | What if it fails |
| children | before_sending_commit, cant_forget_might_have_committed, after_sending_commit |
| parents | transaction_coordinator |
| before_sending_commit | |
| content | Before sending commit |
| children | doesnt_matter |
| parents | what_if_fails |
| doesnt_matter | |
| content | Doesn't matter |
| parents | before_sending_commit |
| cant_forget_might_have_committed | |
| content | Can't forget anything that might have been committed |
| children | after_sending_commit |
| parents | what_if_fails |
| after_sending_commit | |
| content | After sending commit |
| children | write_information_before_commit |
| parents | cant_forget_might_have_committed, what_if_fails |
| single_entity | |
| content | Single Entity |
| parents | transaction_coordinator |
| crash_stores | |
| content | "crash stores" |
| parents | transaction_coordinator |
| remarks | not sure what this, I had it in quotes |
| write_information_before_commit | |
| content | Write information (outcome, id) before sending commit messages |
| children | receive_dup_commits |
| parents | after_sending_commit |
| receive_dup_commits | |
| content | Participants prepared to receive duplicate commit messages |
| parents | write_information_before_commit |
| timeout_block | |
| content | timeout/block |
| children | b_times_out, critical_prop_2pc |
| parents | transaction_coordinator |
| critical_prop_2pc | |
| content | Critical property of 2-phase commit |
| parents | timeout_block |
| b_times_out | |
| content | B times out |
| parents | timeout_block |
| evil_rep | |
| content | "evil" reputation |
| parents | two_phase_commit |
| slow_lots_chitchat | |
| content | slow, lots of chitchat |
| parents | two_phase_commit |
| sharded_db | |
| content | Used in shareded databse |
| parents | two_phase_commit |
| different_from_raft | |
| content | Different from RAFT |
| children | combine_2pc_raft, do_same_thing (RAFT does the same thing) |
| parents | two_phase_commit |
| low_availability | |
| content | Low Availability |
| parents | two_phase_commit |
| servers_diff_things | |
| content | Servers do different things |
| children | do_same_thing (2pc servers do different things) |
| parents | two_phase_commit |
| do_same_thing | |
| content | does the same thing |
| parents | high_availabilty_through_repl, servers_diff_things, different_from_raft |
| combine_2pc_raft | |
| content | combine two-phase-commit with RAFT |
| children | participants_in_cluster, ts_replicated_service |
| parents | different_from_raft |
| high_availabilty_through_repl | |
| content | High availability through repl |
| children | do_same_thing (RAFT has high availability) |
| participants_in_cluster | |
| content | Participants in Cluster |
| parents | combine_2pc_raft |
| ts_replicated_service | |
| content | TS replicated servce |
| parents | combine_2pc_raft |
| remarks | not sure what TS stands for. |