Henrik Nordström's Squid work -> Ideas for Async-IO model


Ideas for Async-IO model

Summary:

I/O operations:

Balancing I/O load for swapouts:

  1. Use the disk with most available space and a idle thread. The definition of idle can be that no request are queued on the thread§.
  2. If there is no idle thread then put the request on a global swapout queue. Threads checks this global queue before idling. The chanses for getting a lock situation (swapout requests, all threads idling) from not having a signal related to this queue is close to non-existent as requests are only queued here if all threads have requests queued and if it should occur then it is non-fatal as the next request gets things going again.

Limiting queue lengths:

Thread communication:

Why mmap should not be used

Guidelines for body-transforming implementations


Written by Henrik Nordström <hno@squid-cache.org>, last changed 1998-09-20

Squid Now! Cache Now! Valid HTML 4.0! SourceForge