lp://staging/~rousskov/squid/smp
Making Squid SMP-scalable. This branch is based on Squid3 trunk.
- Get this branch:
- bzr branch lp://staging/~rousskov/squid/smp
Branch merges
Branch information
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
ActionCreator.Needs post-merge polishing in a bootstrap-capable environment.
- 10314. By Alex Rousskov
-
Polished HTTP client socket closing code: It is better to close in swanSong
than in the destructor. - 10311. By Alex Rousskov
-
Added and used forward-declaration files to reduce ipc/ and mgr/
inter-dependencies. - 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.
Branch metadata
- Branch format:
- Branch format 6
- Repository format:
- Bazaar pack repository format 1 (needs bzr 0.92)