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