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