sofastack/sofa-jraft

RFC: multi-generation log cache

Open

#854 aperta il 23 giu 2022

Vedi su GitHub
 (9 commenti) (1 reazione) (0 assegnatari)Java (1125 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (3406 star)
Metriche merge PR
 (Merge medio 20h 13m) (3 PR mergiate in 30 g)

Descrizione

RFC: multi-generation log cache

As discussion in #840 , jraft keeps a cache for latest log entries, it's unlimited and may consume too much memory under write-heavy workload or catching up replication when node restarts.

I think we can abstracts a cache interface and provide a multi-generation cache to replace current one:

  • Gen-1: totaly in memory with limited capacity.
  • Gen-2: Off-heap cache.When Gen-1 overflows, move the LRU(least recently used) item into off-heap cache such as OHC.

Main goals:

  • Abstracts log cache interface.
  • Provide a multi-generation cache implementation.

Guida contributor