components.md 2.0 KB

Gache components

Server

  • 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

Event handling: builtin

From http://nginx.org/en/docs/events.html

Method Linux macOS Windows BSD UNIX Notes
select X X X X X Least efficient, widest support
poll X X X X Low efficiency, wide support
kqueue X, Go X Go Efficient
epoll Go Efficient
/dev/poll X Efficient
eventport Solaris 10+, Go Problems, use /dev/poll instead
IOCP X, Go Recommended for Windows

Readline

Client library