sofastack/sofa-jraft

RFC: multi-generation log cache

Open

#854 aberto em 23 de jun. de 2022

Ver no GitHub
 (9 comments) (1 reaction) (0 assignees)Java (1.125 forks)batch import
enhancementhelp wanted

Métricas do repositório

Stars
 (3.406 stars)
Métricas de merge de PR
 (Mesclagem média 20h 13m) (3 fundiu PRs em 30d)

Description

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.

Guia do colaborador