~rousskov/squid/IcapLog3p0

Viewing all changes in revision 8910.

  • Committer: Alex Rousskov
  • Date: 2008-10-12 00:05:10 UTC
  • Revision ID: rousskov@measurement-factory.com-20081012000510-m9obgne8z9zsetz9
Fixed total ICAP time accounting for icap_proc_time format code.

The code had three problems: First, some history updates were lost when a
request got cloned or replaced by an ICAP transactions. This was fixed by
sharing ICAP history among all requests associated with the HTTP transaction.

Second, there were too many places where the processing timer was sarted or
stopped, which usually leads to bugs. We now start (once) and stop (once)
timer in just two classes: ICAP ACL check and ICAPModXact launcher.

Third, the code did not account for the fact that ICAP-related activities
might be concurrent. The history class was modified to keep track of
concurrency levels and maintain total ICAP-related time by updating accounting
on first start and last stop only.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: