lec11
dz / distributed_systems_MIT / lec11Summary
Cache consistency, Fangipani
Node Tree
-
frangipani
- challenges
- crash_recovery
- distributed_transactions
- kernel_module
- overall_design
- petal
- caching_coherence
- revoke
Nodes
| frangipani | |
| content | Frangipani |
| children | challenges, crash_recovery, distributed_transactions, kernel_module, overall_design, petal, caching_coherence |
| caching_coherence | |
| content | Caching Coherence |
| children | protocols, strong_consistency, auto_update_cache (description), caching |
| parents | challenges, frangipani |
| distributed_transactions | |
| content | Distributed Transactions |
| parents | frangipani |
| crash_recovery | |
| content | Crash Recovery |
| children | crash_with_some_writes (an interesting situation), individual_file_servers (elaboration), log_entry, log_may_be_outdated |
| parents | frangipani |
| kernel_module | |
| content | Kernel Module |
| parents | frangipani |
| overall_design | |
| content | Overall Design |
| children | challenges, human_level, no_security_precautions, shared_environment, small_group, works_with_unix, NFS |
| parents | frangipani |
| NFS | |
| content | NFS |
| parents | overall_design |
| works_with_unix | |
| content | Works with existing unix workstations |
| children | athena (similar) |
| parents | overall_design |
| petal | |
| content | Petal |
| children | stored_in_petal, write_petal, write_then_release, acquire_read, acts_like_shared_disk |
| parents | frangipani |
| acts_like_shared_disk | |
| content | Acts like shared disk drive |
| children | virtual_disk |
| parents | petal |
| virtual_disk | |
| content | Virtual disk |
| parents | acts_like_shared_disk |
| athena | |
| content | Athena AFS |
| parents | works_with_unix |
| no_security_precautions | |
| content | No security precautions |
| parents | overall_design |
| shared_environment | |
| content | Shared environment |
| parents | overall_design |
| small_group | |
| content | small group |
| parents | overall_design |
| human_level | |
| content | "human" level |
| parents | overall_design |
| caching | |
| content | Caching |
| children | write_back |
| parents | challenges, caching_coherence |
| write_back | |
| content | Write-Back |
| children | write_local_initially (description) |
| parents | caching |
| write_local_initially | |
| content | Write to local cache initially |
| children | filesystem_complexity_local |
| parents | write_back |
| filesystem_complexity_local | |
| content | All filesystem complexity handled locally in each client |
| children | nautral_scaling |
| parents | write_local_initially |
| nautral_scaling | |
| content | Natural scaling |
| parents | filesystem_complexity_local |
| challenges | |
| content | Challenges |
| children | decentralized, driven_by_locks, atomicity, caching, caching_coherence |
| parents | frangipani, overall_design |
| atomicity | |
| content | Atomicity |
| children | operations_feel_instant_time (description), transactions, acquire_locks_with_operation, atomic_multistep_operations |
| parents | challenges |
| decentralized | |
| content | Decentralized |
| parents | challenges |
| auto_update_cache | |
| content | Automatically update cache if mods are made in another cache. |
| parents | caching_coherence |
| operations_feel_instant_time | |
| content | Operations that feel instant in time |
| parents | atomicity |
| individual_file_servers | |
| content | Of Individual file-servers |
| parents | crash_recovery |
| driven_by_locks | |
| content | driven by use of locks |
| children | lock_server |
| parents | challenges |
| lock_server | |
| content | Lock Server |
| children | exclusive_writers_shared_readonly, file_owner, rules |
| parents | driven_by_locks |
| file_owner | |
| content | File/Owner |
| parents | lock_server |
| strong_consistency | |
| content | Strong Consistency |
| children | linearizability |
| parents | caching_coherence |
| linearizability | |
| content | Linearizability |
| parents | strong_consistency |
| protocols | |
| content | Protocols |
| children | grant, idle, release, request |
| parents | caching_coherence |
| request | |
| content | Request (WS->LS) |
| parents | protocols |
| grant | |
| content | Grant (LS->WS) |
| parents | protocols |
| revoke | |
| content | Revoke (LS->WS) |
| children | on_revoke |
| release | |
| content | Release (WS->LS) |
| parents | protocols |
| rules | |
| content | Rules |
| children | no_cached_data_without_lock, write_then_release |
| parents | lock_server |
| no_cached_data_without_lock | |
| content | No cached data without lock |
| children | acquire_read |
| parents | rules |
| acquire_read | |
| content | Acquire lock, then read from Petal |
| parents | petal, no_cached_data_without_lock |
| write_then_release | |
| content | Write to Petal, then release lock |
| parents | rules, petal |
| idle | |
| content | Idle state for locks |
| parents | protocols |
| exclusive_writers_shared_readonly | |
| content | Exclusive for writers, shared for read-only access |
| parents | lock_server |
| transactions | |
| content | Transactions |
| children | distrubuted, lock_driven |
| parents | atomicity |
| atomic_multistep_operations | |
| content | Atomic Multistep Operations |
| parents | atomicity |
| distrubuted | |
| content | Distrubuted |
| parents | transactions |
| lock_driven | |
| content | Lock-Driven |
| parents | transactions |
| acquire_locks_with_operation | |
| content | Acquire all locks with operation |
| children | all_updates (step) |
| parents | atomicity |
| all_updates | |
| content | Perform All Updates |
| children | write_petal (step) |
| parents | acquire_locks_with_operation |
| write_petal | |
| content | Write to petal |
| children | release_locks (step) |
| parents | all_updates, petal |
| release_locks | |
| content | Release the locks |
| parents | write_petal |
| crash_with_some_writes | |
| content | Workstation crashes with locks with some writes to petal |
| children | log_may_be_outdated |
| parents | crash_recovery |
| log_entry | |
| content | Log Entry |
| children | log_data, log_seq_num, metadata_fs_only, on_revoke, per_workstation, stored_in_petal, version_num, array_modifications, block_num |
| parents | crash_recovery |
| log_seq_num | |
| content | Log Sequence Number |
| parents | log_entry |
| array_modifications | |
| content | Array of Modifications |
| parents | log_entry |
| block_num | |
| content | Block Number |
| parents | log_entry |
| version_num | |
| content | Version Number |
| parents | log_entry |
| log_data | |
| content | Log Data |
| children | metadata_fs_only |
| parents | log_entry |
| metadata_fs_only | |
| content | metadata for filesystem only |
| parents | log_entry, log_data |
| stored_in_petal | |
| content | Stored in Petal |
| parents | log_entry, petal |
| per_workstation | |
| content | Per-workstation logs |
| parents | log_entry |
| on_revoke | |
| content | On Revoke |
| children | sequencing_important, write_log_to_petal |
| parents | log_entry, revoke |
| write_log_to_petal | |
| content | Write log to petal |
| children | sequencing_important, write_modified_blocks |
| parents | on_revoke |
| sequencing_important | |
| content | Sequencing is important |
| parents | write_log_to_petal, send_release, on_revoke |
| write_modified_blocks | |
| content | Write Modified Blocks for lock |
| children | send_release |
| parents | write_log_to_petal |
| send_release | |
| content | Send Release |
| children | sequencing_important |
| parents | write_modified_blocks |
| log_may_be_outdated | |
| content | Logs may be out of date by the time it replays logs from crashed server |
| children | use_version_numbers (solution), cant_blindly_replay_logs |
| parents | crash_with_some_writes, crash_recovery |
| cant_blindly_replay_logs | |
| content | Can't blindly replay logs |
| parents | log_may_be_outdated |
| use_version_numbers | |
| content | Use version numbers with every piece of data in fileystem as stored in Petal |
| children | associate_update_with_version |
| parents | log_may_be_outdated |
| associate_update_with_version | |
| content | Associate update with version number in log |
| children | write_data_back |
| parents | use_version_numbers |
| write_data_back | |
| content | Write data back with updated version |
| parents | associate_update_with_version |