LRU Cache System

==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'

Excalidraw Data

Text Elements

Cache service ^p8o56fVk

User ^ikIvMQIg

Load balancer ^rQi2zUXj

Cache Node ^X0krucGD

Cache Node
(leader) ^dNtttmOs

Cache Node ^3s7A0SiJ

Cache Node ^0ApuxRmk

Cache Node ^tHWWwc9e

Cache Node ^IQbqLMOS

Cache Node ^gPhT1zYS

Cache Node ^Zs2gqeOr

LRU cache system ^RphUR87X

Consider

  • Consistent hashing, virtual nodes

  • Failure handling

    • Failure detection: Gossip protocol
    • Unsync problem:
      • Use anti-entropy with merkle tree
      • Optimistic locking with Vector Clock ^dAswHMHe

%%

Drawing

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

%%