System Design — Other Topics
Concepts and considerations for some topics in System Design
Published in
13 min readApr 6, 2020
Table of Contents
- Concurrency
- Networking
- Abstraction
- Read-world performance and estimation
- Map-reduce
- Hadoop and Spark
❤️ Thank you for reading! Looking for a comprehensive system design course? check out Educative and Design Gurus!
1. Concurrency
1.1 Threads and processes
- A thread is a basic unit of CPU utilization. It is also referred to as a “lightweight process”.
- A process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system, a process may be made up of multiple threads of execution that execute instructions concurrently.
- CPU is not required when a process is handling the IO request.
1.2 Concurrency and parallelism
- Concurrency means executing multiple tasks at the same time but not necessarily simultaneously. In a single-core environment, concurrency is achieved via a process called…