Architecture
Pipeline
Example
Command-line Tools can be 235x Faster than your Hadoop Cluster
Apache Kafka
Client-Server
Examples
Web Browser/Web Server
Java Application: JDBC to Postgresql Server
Three Tier
Peer to Peer
Parallel Tasks
Example: Word Frequency
Split file into chunks
Give each worker a chunk
Each worker computes frequency of words in chunk
Sends cumulative work to single system for aggregation
Map Reduce (Special Case of Parallel Task)
Apache Spark for example
Example: Word Frequency
Task Farm
Example: Crack Hash
Farmer: splits MD5 preimages into ranges, repeatedly gives work to workers when they ask. Get results from each worker as they complete and aggregate.
Worker: If not busy, ask farmer for work, complete it, and give results back to farmer.
Divide and Conquer
Example: Parallel Merge Sort
Failover Cluster
Example: SQL Server Mirroring
Load Balancing Cluster
Example: Nginx Loadbalancer
Caching Servers
Example: Squid Proxy
Microservices
https://microservices.io
Martin Fowler - "Microservices: the Good, the Bad, the Ugly"
References
https://www.znetlive.com/blog/how-cluster-architecture-benefits-data-base-web-applications/
https://www.macs.hw.ac.uk/~hwloidl/Courses/F21DP/l08_handout.pdf
https://docs.microsoft.com/en-us/sql/database-engine/database-mirroring/database-mirroring-witness?view=sql-server-2017
https://mapr.com/blog/spark-101-what-it-what-it-does-and-why-it-matters/