lec09
dz / distributed_systems_MIT / lec09Summary
More Replication, CRAQ
Node Tree
- test_and_set
- zookeeper
- CRAQ
- different_ft_properties
Nodes
| zookeeper | |
| content | zookeeper |
| children | problems_to_solve, reads_stale_writes_ordered, API, based_on_raft |
| based_on_raft | |
| content | based on raft |
| parents | zookeeper |
| reads_stale_writes_ordered | |
| content | Reads can be stale, writes are ordered |
| parents | zookeeper |
| problems_to_solve | |
| content | Problems to solve |
| children | config_info, elect_master |
| parents | zookeeper |
| remarks | problems it solves, perhaps? |
| config_info | |
| content | Config info |
| parents | problems_to_solve |
| test_and_set | |
| content | VMWare test and set service that is fault-tolerant and does right thing under partitions |
| elect_master | |
| content | Elect Master |
| children | zookeeper_primitives (I think this was a phrase used while talking about,electing a master as a usecase) |
| parents | problems_to_solve |
| zookeeper_primitives | |
| content | "zookeeper primitives" |
| parents | elect_master |
| API | |
| content | API |
| children | exists, filesystem_like, get_data, list, set_data, z_nodes, create, delete, ex_count, ex_locks |
| parents | zookeeper |
| filesystem_like | |
| content | Filesystem-like |
| children | naming_system |
| parents | API |
| naming_system | |
| content | naming system |
| parents | filesystem_like |
| z_nodes | |
| content | Z-Nodes |
| children | regular, sequential, ephemeral |
| parents | API |
| regular | |
| content | Regular |
| children | flags |
| parents | z_nodes |
| ephemeral | |
| content | Ephemeral |
| children | flags |
| parents | z_nodes |
| sequential | |
| content | Sequential |
| children | flags |
| parents | z_nodes |
| flags | |
| content | flags |
| children | create (flags argument) |
| parents | ephemeral, regular, sequential |
| create | |
| content | create(path, data, flags) |
| parents | API, flags |
| delete | |
| content | delete |
| children | version |
| parents | API |
| version | |
| content | version |
| parents | delete |
| exists | |
| content | exists(path, watch) |
| children | check_and_insert |
| parents | API |
| check_and_insert | |
| content | exists check and insert if watch is atomic |
| parents | exists |
| remarks | "if watch is atomic?" I think I meant to say it was an atomic operation? |
| get_data | |
| content | get data |
| parents | API |
| set_data | |
| content | set data |
| parents | API |
| ex_count | |
| content | Example: count (using zookeeper) |
| children | count_pseudocode |
| parents | API |
| count_pseudocode | |
| content | While true x,v = getdata("f") if setdata("f", x-> 1, w) break |
| children | mini_transaction, no_finish_guarantee, pulled_off_atomic |
| parents | ex_count |
| mini_transaction | |
| content | Mini-transaction |
| children | pulled_off_atomic (Atomicity is why this is referred to as a "mini,transaction") |
| parents | count_pseudocode |
| pulled_off_atomic | |
| content | Once pulled off, is atomic |
| parents | count_pseudocode, mini_transaction |
| no_finish_guarantee | |
| content | Not guaranteed to finish |
| children | okay_in_practice |
| parents | count_pseudocode |
| okay_in_practice | |
| content | this is usually okay in practice and doesn't happen |
| parents | no_finish_guarantee |
| ex_locks | |
| content | Example: Locks |
| children | herd_effect, lock_without_herd, non_scalable_lock |
| parents | API |
| remarks | Prof: "in paper, not necessarily helpful" |
| herd_effect | |
| content | Herd effect |
| children | lock_without_herd, too_many_clients |
| parents | ex_locks |
| too_many_clients | |
| content | Problem caused by too many clients |
| parents | herd_effect |
| non_scalable_lock | |
| content | non-scalable lock |
| parents | ex_locks |
| list | |
| content | list operation |
| parents | API |
| lock_without_herd | |
| content | Lock without herd effect |
| children | scalable_lock |
| parents | ex_locks, herd_effect |
| scalable_lock | |
| content | Scalable lock |
| parents | lock_without_herd |
| remarks | Prof impressed that zookeeper can express it but not sure why it is helpful to have in zookeeper |
| CRAQ | |
| content | CRAQ |
| children | optimizes_reads, why_reading, chain_repl |
| why_reading | |
| content | Why read about this? |
| parents | CRAQ |
| different_ft_properties | |
| content | The fault-tolerant properties are different from from RAFT |
| chain_repl | |
| content | Chain replication |
| children | failure_recovery, incomplete_repl_story, old_version, optimizes_reads, raft_load_higher_than_chain_head, chain_of_servers |
| parents | CRAQ |
| old_version | |
| content | old version |
| parents | chain_repl |
| optimizes_reads | |
| content | Optimizes reads |
| parents | chain_repl, CRAQ |
| chain_of_servers | |
| content | Chain of servers |
| children | head, tail |
| parents | chain_repl |
| head | |
| content | Head |
| children | writes_start_proliferate |
| parents | chain_of_servers |
| tail | |
| content | tail |
| children | reads_from_tail, sends_reply_client |
| parents | chain_of_servers |
| reads_from_tail | |
| content | Reads from tail |
| parents | tail |
| sends_reply_client | |
| content | sends reply to client |
| parents | writes_start_proliferate, tail |
| writes_start_proliferate | |
| content | writes start here, proliferate |
| children | sends_reply_client |
| parents | head |
| failure_recovery | |
| content | Failure Recovery |
| children | head_fails_next, intermediate_more_compliex, tail_fails_prev, constrainted_set_of_states |
| parents | chain_repl |
| constrainted_set_of_states | |
| content | Set of strates after failure relatively constrained |
| parents | failure_recovery |
| head_fails_next | |
| content | If head fails, next one in chain becomes head |
| children | intermediate_more_compliex (more complex than head) |
| parents | failure_recovery |
| tail_fails_prev | |
| content | If tail fails, previous node takes over |
| children | intermediate_more_compliex (more complex than tail) |
| parents | failure_recovery |
| intermediate_more_compliex | |
| content | Intermediate failed node, more complex than head/tail |
| parents | tail_fails_prev, failure_recovery, head_fails_next |
| raft_load_higher_than_chain_head | |
| content | load on raft leader higher than chain replication head |
| parents | chain_repl |
| incomplete_repl_story | |
| content | Not a complete replication story |
| children | config_manager (config manager completes I think?) |
| parents | chain_repl |
| config_manager | |
| content | Configuration manager |
| children | if_dead_new_config, monitors_liveness, built_on |
| parents | incomplete_repl_story |
| monitors_liveness | |
| content | Monitors Liveness |
| parents | config_manager |
| if_dead_new_config | |
| content | If it thinks a server is dead, it sends a new config |
| parents | config_manager |
| built_on | |
| content | built on RAFT, Pasx, or zookeeper |
| parents | config_manager |