Skip to content

Instantly share code, notes, and snippets.

@Sudip7
Created March 5, 2019 05:14
Show Gist options
  • Save Sudip7/5b98e36d9d07835d139b836cb91187ec to your computer and use it in GitHub Desktop.
Save Sudip7/5b98e36d9d07835d139b836cb91187ec to your computer and use it in GitHub Desktop.
* What's the distributed system ?
** It's a system that's spread over more than location.
* why distributed system ?
** The purpose of distributed system, or dividing it over more than one physical location,
is to fix the machine and organisational perfomance problem by using two powerful operational and architectual concepts:
*data copying and decoupling*
* What's decoupling ?
** Decoupling means difference parts of application can operate independently without being affected by internal operation of another.
It has following implcations :
*** Enables scalability and resilance by running multiple instance of same service potentially having copies of service closer to client.
*** Effectively decoupled system communicate through well defined APIs. This frees the internal service implementation without affecting outside behaviour.
* What's data copying ?
** Another foundational concept in software design helps to achieve speed and resilance in several different way.
*** *Replicas*
**** A data replica is exact copy of database, constantly sync with one another
**** Comes in two flavour; Active : help with scale, resilence and location-based perfomance. Passive mostly used for failover purpose.
*** *Caches*
**** Maintained as a way to serve read request faster and more cheaply than querying main database. Follwing are adavantage
**** *Location* (info physically close to client), *Medium* (keeping media faster to access physical media like memory), *Design* (keeping
information in data structure optimised for fast reading like key/value stores or graph.
**** Example : CDNs like CloudFlair, AWS CloudFront or Akamai.
*** *Backup*
**** A copy of data for emergency use in case of catastrophic data loss.
**** Backup is written to permanent storage location like disk in multiple physical locations.
**** Slow to write and restore and generally are not kept in sync with master data.
*Refence links*
https://container-solutions.com/what-is-a-distributed-system/
https://container-solutions.com/use-distributed-systems-resilience-performance-availability/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment