Frederic G. MARAND e4e0af726c Partial command reformulation in protocol doc. 7 years ago
..
README.md 22ca77701e Documented CLI options and configuration loading topics. 7 years ago
event_handling.md ea1ca35b3c Added runner components. Restructured to file-per-component. Removed components.md. 7 years ago
protocol.yml e4e0af726c Partial command reformulation in protocol doc. 7 years ago
readline.md ea1ca35b3c Added runner components. Restructured to file-per-component. Removed components.md. 7 years ago
runner_cli.md 22ca77701e Documented CLI options and configuration loading topics. 7 years ago
runner_config.md 22ca77701e Documented CLI options and configuration loading topics. 7 years ago
storage_memory.md ea1ca35b3c Added runner components. Restructured to file-per-component. Removed components.md. 7 years ago

README.md

Gache notions

Basic idea

Like Memcached, plus...

  • Usability:
    • True FLUSHALL
    • Single process for multiple bins
  • Management
    • Complete locking dump/restore
    • Snapshots
  • Tag support
  • Pluggable storage
    • Journaling
    • Write-back/write-through replication
    • Chained storage (fast → slow)

But probably slower overall, but more convenient.

Components

Server

  • Runner
  • Protocol handling (FSMs)
    • Application: Memcache protocol proper
    • Presentation: ASCII / Binary
    • Transport "connection":
    • TCP with persistent connections
    • TCP without persistent connections
    • UDP
    • raw socketpair (stdin/stdout)
    • Event handling
  • Readline equivalence for ASCII presentation interactions
  • Storage
    • Pluggable storage
    • Journaling
    • Storage engines
    • Memory
    • Memcached, for use as a debugging proxy in front of a standard instance
    • Others ?
    • Memory
      • Main memory allocation
      • Slab allocator
    • Reporting
    • Background expiration lurker

Client library