System design involves creating the architecture of a system to meet specific requirements. Here are some common terms used in system design:
Table of Contents
Network Partition
- Network partitions occur when nodes in a distributed system are unable to communicate with each other due to network issues or other factors. This can result in message loss, delays, or nodes being isolated from each other.
- This can happen due to various reasons such as hardware failures, network congestion, or configuration errors.
- When a network partition occurs, the different segments of the network operate independently, leading to potential issues in distributed systems, like data inconsistency or service availability problems.
In the context of distributed databases or systems, network partitions are particularly challenging because they force the system to make trade-offs between consistency, availability, and partition tolerance, as described by the CAP theorem.
- Consistency: Ensuring all nodes have the same data.
- Availability: Ensuring the system is always operational.
- Partition Tolerance: The ability of the system to continue operating despite the partition.
When a partition occurs, the system must decide whether to prioritize consistency or availability. For example, some systems might continue to operate in all partitions but might serve stale or inconsistent data (favouring availability), while others might refuse to operate until the partition is resolved to ensure data consistency (favouring consistency).
1 thought on “Common Terms of System Design”