This commit is contained in:
Correl Roush 2021-03-23 01:30:22 -04:00
parent e5a986140a
commit d9cd42fbcc
8 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,24 @@
#+title: Distributed Systems
A [[file:20210310182044-software_architecture.org][Software Architecture]] consisting of multiple independant pieces of software
coordinating via message passing.
* [[file:20210323010700-process_isolation.org][Process Isolation]]
- Monolith vs. Services
* [[file:20210323012431-concurrent_and_parallel_programming.org][Concurrent and Parallel Programming]]
#+begin_quote
A system is said to be concurrent if it can support two or more actions in
progress at the same time. A system is said to be parallel if it can support two
or more actions executing simultaneously.
-- Clay Breshears, The Art Of Concurrency
#+end_quote
- Parallel :: Occurring at the same time
- Concurrent :: Occuring independently
Python threads are concurrent, but not parallel (execution is serialized,
contending for access to the Global Interpreter Lock).
* [[file:20210323010014-cap_theorem.org][CAP Theorem]]
* [[file:20210323010307-conflict_free_replicated_data_types.org][CRDTs]]

View file

@ -0,0 +1,8 @@
#+title: CAP Theorem
States that a [[file:20210323005824-distributed_systems.org][Distributed System]] cannot simultaneously be consistent, available,
and partition tolerant -- typically only achieving two of the three.
* Consistency
* Availability
* Partition Tolerance

View file

@ -0,0 +1,4 @@
#+title: Conflict-Free Replicated Data Types
#+ROAM_ALIAS: CRDTs
Alternatively, Commutative Replicated Data Types.

View file

@ -0,0 +1,4 @@
#+title: Process Isolation
Making a process wholly independent, preventing any access of its internal state
by any other process and communicating by sending and recieving messages.

View file

@ -0,0 +1,8 @@
#+title: The Actor Model
A design in [[file:20210310182044-software_architecture.org][Software Architecture]] in which [[file:20210323010700-process_isolation.org][Isolated Processes]] work together as a
[[file:20210323005824-distributed_systems.org][Distributed System]], coordinating via message passing. This is modeled similarly
to how interactions occur in nature.
This is remarkably similar to Alan Kay's initial concept of [[file:20210323011337-object_oriented_programming.org][Object-Oriented
Programming]].

View file

@ -0,0 +1 @@
#+title: Object-Oriented Programming

View file

@ -0,0 +1,21 @@
#+title: Concurrent and Parallel Programming
#+roam_key: https://joearms.github.io/published/2013-04-05-concurrent-and-parallel-programming.html
#+roam_tags: literature articles
From Joe Armstrong's blog:
#+begin_quote
What's the difference between concurrency and parallelism?
Explain it to a five year old.
[[file:data/fb/2246e7-e0a7-455b-a030-1bd4dfda4ce3/con_and_par.jpeg]]
- Concurrent :: Two queues and one coffee machine.
- Parallel :: Two queues and two coffee machines.
#+end_quote
* Attachments :ATTACH:noexport:
:PROPERTIES:
:ID: fb2246e7-e0a7-455b-a030-1bd4dfda4ce3
:END:

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB