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 |