client-side delay pools

From: Adrian Chadd <adrian@dont-contact.us>
Date: Wed, 2 Apr 2008 16:58:39 +0800

G'day,

One of the items in my commercial work queue is client-side delay pools.
The client wishes to restrict the throughput of certain items - hit or miss -
back to the client. They're currently using Squid-2.6.18 and are probably
going to upgrade to Squid-2.7 once its released.

I have a tentative plan, which is:

* include the client writing code into the delay pools logic, which shouldn't
  require all that much extra work as the 'pool' code doesn't care much what
  the FD is;
* include a "pool" id for the client-side connection, seperate from the server-side
  pool ID;
* enforce delay pools being either "server" or "client" for now - there's no reason
  they can't be shared, but I think it'd be easier to enforce each pool to be one
  or the other!
* add in ACL lookups for request and reply to map the client into a pool, with an
  optional "burst" delay in bytes or seconds (ie, client gets X bytes/seconds at
  full speed, then the connection gets dumped in the pool)

This is enough to test the idea.

The big thing is to implement at least a per-IP "pool" and quite potentially a
per-connection "pool". I envisage these will be trees of some sort, keyed on
the ipv4 (and later ipv6) + optional fd or src/dest port information restricting
the pool. These would be "class 5" and "class 6" pools, not to clash with
the "class 4" pool which Squid-3 has (and I haven't yet really looked at
integrating back to Squid-2.)

Comments?

Adrian

-- 
- Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial Squid Support -
- $25/pm entry-level VPSes w/ capped bandwidth charges available in WA -
Received on Wed Apr 02 2008 - 02:41:40 MDT

This archive was generated by hypermail 2.2.0 : Wed Apr 30 2008 - 12:00:07 MDT