distributed_systems_MIT/lec11

lec11

dz / distributed_systems_MIT / lec11

Summary

Cache consistency, Fangipani

Node Tree

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