Distributed Cache

Requirement

  • Functional (put, get)
  • non-functional (high scalability, high availability, high performance)

Simple solution

  • client -> local cache -> Data storage
  • LRU

Scale to multiple machine

  • local cache is not enough -> distributed system
  • separate service / cache server
  • sharding cache server (Consistent Hashing)
  • Cache client call config service(ZooKeeper) to discover all cashe servers
  • master / slave for cache server
    • put: master
    • get: slave

Resource

TODO

cache miss, search from disk? Bloom filter? SStable?

0%