Created by Alex Rousskov and last modified

Making Squid SMP-scalable. This branch is based on Squid3 trunk.

Get this branch:
bzr branch lp:~rousskov/squid/smp
Only Alex Rousskov can upload to this branch. If you are Alex Rousskov please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Alex Rousskov

Recent revisions

10316. By Alex Rousskov

SMP Cache Manager, Phase2. Initial implementation.

Cache Manager actions are forwarded to Coordinator. Coordinator iterates over
Kids, aggregating their stats if possible and/or allowing them to dump
non-aggregatable output if needed.

Old code computed and dumped stats to Store at the same time. To avoid
computing code duplication, we now collect stats in primitive Stats objects
and then either dump those to Store or send them to Coordinator for
aggregation and, eventually, dumping to Store. This is orchestrated by
action-specific *Action classes that Cache Manager creates on-demand using

Needs post-merge polishing in a bootstrap-capable environment.

10315. By Alex Rousskov

Merged from parent (trunk r10820).

10314. By Alex Rousskov

Polished HTTP client socket closing code: It is better to close in swanSong
than in the destructor.

10313. By Alex Rousskov

Reverted accidental AC_PREREQ(2.61) removal in r10311.

10312. By Alex Rousskov

Do not #include system headers before "config.h" or another Squid header.

10311. By Alex Rousskov

Added and used forward-declaration files to reduce ipc/ and mgr/

10310. By Alex Rousskov

Fixed and polished SMP Cache Manager implementation:

 - moved all CacheMgr* classes to Mgr namespace and into a new src/mgr dir
 - used Mgr::Request instead of individual fields similar to Request members
 - remembered comm_close handler as "closer" member and remove it
 - closed HTTP client fd in new jobs that owned it (needs more work)
 - changed debug section of CacheMgr* classes to that of cache manager
 - quit on write errors in all write handlers
 - increased x10 the timeout for non-atomic actions (needs more testing)
 - added status() method to report fd and requestId
 - split CacheMgrMessages.* into two sets of files: {Request,Response}.*

10309. By Alex Rousskov

Initial SMP Cache Manager implementation.

Workers receive cache manager requests and forward them to Coordinator via UDS
along with the HTTP client socket descriptor. For each request, Coordinator
iterates over kids and gives each one a chance to produce its own part of the
response body, wrapping kid's output in "by kidN {...} by kidN" tags.

Several TODOs and XXXs still need to be addressed.

10308. By Alex Rousskov

Added "printing" operator to use StoreIOBuffer as a Comm callback member.

10307. By Alex Rousskov

Merged from parent (trunk r10614).

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 (needs bzr 0.92)
This branch contains Public information 
Everyone can see this information.