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