1) The C10K problem :
http://www.kegel.com/c10k.html
Introduce the I/O Strategies (thread/process, block/non-block, level-triggered readiness notification[select/poll]/readiness change notification(edge-triggered)[epoll], synchronous io/asynchronous io )
2) High-Performance Server Architecture: http://pl.atyp.us/content/tech/servers.html
1. Data copies
2. Context switches
3. Memory allocation
4. Lock contention
3) Asynchronous I/O on linux: http://davmac.org/davpage/linux/async-io.html
Please note that the different between POSIX AIO and Linux AIO
Introduce the I/O Strategies (thread/process, block/non-block, level-triggered readiness notification[select/poll]/readiness change notification(edge-triggered)[epoll], synchronous io/asynchronous io )
2) High-Performance Server Architecture: http://pl.atyp.us/content/tech/servers.html
1. Data copies
2. Context switches
3. Memory allocation
4. Lock contention
3) Asynchronous I/O on linux: http://davmac.org/davpage/linux/async-io.html
Please note that the different between POSIX AIO and Linux AIO