Skip to main content
Basic Concepts
ACID Principle
-
Atomicity: the entire transaction happens at once, or doesn't happen at all
-
Consistency: database must be consistent before and after transactions
-
Isoluation: multiple transactions can occur independently without inteference
-
Durability: changes of a successful transaction occurs even if the system failure occurs
C10K problem?
- the challenge of designing and implementing a server that can efficiently handle a large number of concurrent client connections, specifically 10,000.
- solution:
- asynchronous I/O
- Non-Blocking I/O
- Efficient Data Structures
- Connection Pooling
Thundering Herd problem?
- when a large number of requests try to access a resources in a small time frame due to reasons like cache eviction, hardware restart, etc.
- Flooded backend may further cause system failures
- To mitigate this issue
- randomized cache expiration time
- rate limiting
- backend sharding
- asynchronous cache updates
- backoff time on client side
Change Data Capture
- captures changes made within a database
- Implmentations:
- Query based
- Trigger based
- Log based
- Proprietary (developed by database vendor) based