Distributed System basic idea
This means clients send request to servers, servers send response back to clients. But it is the model that many clients to deal with many servers.
Overlay
- Structured:
- Each node knows all neighbours
- If query comes, the node responds to this query or ask its neighbour who stores the answer directly
- Unstructured:
- Each node only knows one neighbour
- If query comes, the node responds to this query or ask its neighbor, its neighbor will do same thing until respond to this query
Coherent System
- Every node works at the same way, you see lots of machines just like see one mechine working.
- When you send a job request, you don’t know which node accepts it and how they work on it, just get the reply from anynoe node
Midlleware: the OS of distributed systems
- RPC – allows invocation of a remote function as if avalible locally
- Communication – allow nothing effect
- Sensitive composition – web pages that combine and aggreagate data from different sources that are distributed
- Reliability – eg. group comminucation
Sharing resources
- Canonical examples
- cloud-based shared storage and files
- peer-to-peer assisted multimedia streaming
- shared mail services (think of outsourced mall systems)
- shared Web hosting (think of content distribution networks)
Distribution transparency
Types
- Access (hide deep layers to users)
- Location (access the source of different locations, get response from which server)
- Relocation (reloacate some source from one server to another one)
- Migration (eg, redirect the link to another, different)
- Replication (web browser, cache, for quick response)
- Concurrency (many usrs at the same time, such as buying the same stuff in Amazon)
- Failure (make copy of data, so even if fail we can’t feel, it recovers immidiately)
Degree of transparency
Observation (chanllenges and costly)
- communication latency can’t be hidden
- storage cost, sometimes need many replicates, sometimes don’t need
- transaction, send request and is executed by server but fail to send back response, or send request and the server fails before execute
- reload cost, in order minimize lost, store everyghing and reflesh them in Disk during every reloading but not into meomery directly
Exposing distribution may be good
If the server is slow or fails can be knownPolicies of mechanisms
- how frequently check status of node
- when grap more data from users and when deliver response
Reference material:
Book: Distributed Systems, Third edition, Version 3.02(2018), Maarten van Steen and Andrew S. Tanenbaum.
Lectures: University of Waterloo, CS 454/654 (Distributed System), 2020 winter term, Professor Khuzaima Daudjee.