distributed_systems_MIT/lec12

lec12

dz / distributed_systems_MIT / lec12

Summary

Distributed Transactions, Atomic Commit

Node Tree

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.