Frederic G. MARAND 4bb2132ac5 Level 0 Null Storage 6 years ago
..
README.md 3fa864e013 Info and examples for the hashing component. 6 years ago
event_handling.md ea1ca35b3c Added runner components. Restructured to file-per-component. Removed components.md. 6 years ago
hash.md 3fa864e013 Info and examples for the hashing component. 6 years ago
protocol.yml 4bb2132ac5 Level 0 Null Storage 6 years ago
readline.md ea1ca35b3c Added runner components. Restructured to file-per-component. Removed components.md. 6 years ago
runner_cli.md 22ca77701e Documented CLI options and configuration loading topics. 6 years ago
runner_config.md 22ca77701e Documented CLI options and configuration loading topics. 6 years ago
storage_memory.md ea1ca35b3c Added runner components. Restructured to file-per-component. Removed components.md. 6 years ago

README.md

Gache notions

Basic idea

Like Memcached, plus...

  • Usability:
    • True FLUSHALL equivalent to an instance restart
    • Single process for multiple bins
  • Management
    • Complete locking dump/restore (compare cachedump/lru_crawler metadump all`)
    • Snapshots
  • Tag support
  • Pluggable storage
    • Journaling
    • Write-back/write-through replication
    • Chained storage (fast → slow)

Likely to be 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
    • Hash logic for keys
    • 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 (cf standard lru_crawler)

Client library

Testing tools

  • memslap, from libmemcached
    • On MBP2016, memcached 1.5.0 makes 25kqps on the set test,