squid store io modifications

From: Adrian Chadd <adrian@dont-contact.us>
Date: Wed, 12 Jan 2000 04:29:58 +0100

Henrik, Arjan de Vet and myself have been working on some changes to
squid's store IO interface to support new file system designs.

Currently the code in squid is still too UFS-style centric, so writing
alternate filesystem models isn't too easy.

The current patchset, located at http://www.creative.net.au/squid/ ,
implements the following:

* creation of storeCreate() to create an object
* removal of object number allocation from the store routines
* moving storeOpen() to opening an existing object, not creating an object
* Allowing the swap file / dir allocation to occur after storeCreate()
  has returned (so you can assign filesystem location information after
  you have some more information about the object..)
* Replacing swap_file_number with swap_filen and swap_dirn variables
* Reorganisation of the fs code into src/fs/$DIRTYPE

The configure script has been rewritten to take a list of store modules
to add. It also takes the old --enable-async-io option. For a complete
list of what has happened to the configure script (thanks Henrik :),
please look at the patch.

A few caveats:

* A lot of code has been duplicated between the ufs and aufs code now, so
  it can be totally seperated, mostly being the swaplog file routines.
  Perhaps these should go in a single file which both reference, but this
  is up for discussion.

* The interface is surely going to change, fast and soon, when Henrik/Arjan
  and myself get more time to talk about the store io code, and implement
  new filesystems. Only then will we truely know what we actually need. :-)

One thing that has been discussed is the possibility of moving the store
heap code out of the store routines and making it per-fs . That way,
each fs has its own object replacement algorithms, which squid can 'alter'
(though storeExpire() calls? Its been a week or so since I've looked at this
particular bit of code, my hands are dirty elsewhere right now). You might
be asking "Why?", but consider how you'd integrate a rotational filesystem
in the current framework ..

The website is a list of patches, and the one people should be looking at
is the one against 2.3STABLE1. It shouldn't be hard to pick the right
one. :-)

Feedback is definitely appreciated.

Thanks go to my Christmas break, giving me the time to start this work. :-)

Adrian

-- 
Adrian Chadd					Systems Engineer
<adrian@ip.versatel.net>			Versatel Telecom BV
						Amsterdam, The Netherlands
	"Music in the soul can be heard by the universe" - Lao Tsu
Received on Tue Jan 11 2000 - 19:30:27 MST

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