unify-io -> HEAD

From: Robert Collins <robertc@dont-contact.us>
Date: 18 Dec 2002 11:13:37 +1100

I've hit the wall with unify-io - I can't make more sensible changes at
this point (due to time and 'staring-at-the-wall-from-to-close'
effects).

There is a patch at http://www.squid-cache.org/~robertc/ that I'd like
to bring into HEAD. If I haven't heard 'NO' in the next few days, I will
commit it. Conversely, if I hear 'yes' from another core hacker, I'll
commit it.

AFAIK there are no *new* bugs in it. There are a number of ones that
have been removed / identified during the hacking.

Changes:

* SwapDir, a base class for all FS modules.
* No more function-pointers in the SwapDir struct - actual inheritance
and abstract methods are used.
* null, ufs, aufs, diskd and coss have been simplified as a result.
* ufs, aufs, diskd now have ~90% common code *in one place* for the UFS
directory layout and logic. This is achieved in two ways: (1) common
code resides in the UFSSwapDir class, Non-consolidated, to-be-common
code is in AUFSSwapDir, UfsSwapDir, DiskdSwapDir. (2) IO specific code -
swapdir layout ignorant - is in a concrete class derived from
UFSStrategy. These classes may eventually be broken out. So far the
results have been very encouraging.
* Some use of refcounted rather than callback access for appropriate
cases - such as ownership of storeIOState objects, which are owned, not
called back to.

I want to merge this branch because:
*) It will stop it bit rotting until I can get back to it.
*) It reduces the amount of duplicate code, making it easier to plan ufs
swap dir algorithm enhancements.
*) And that makes bugfixes easier.
*) It rectifies a few coss-related bugs (where assumptions where still
made about cache dir by the supporting code

Cheers,
Rob

Received on Tue Dec 17 2002 - 17:13:40 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:19:01 MST