Duane Wessels wrote:
> > What is left for a debut of squid-2.4-stable1?
>
> probably not much. I think mostly documenting and
> fixing up the "2.4" page.
I'd still like to attemt to shrink the size of the StoreEntry and
related per-cache-object structures, but time is running out on this
project.
There mainly two problems there:
a) A lot of space is used for time information, which many times are not
there or of any real use.
b) The memory overhead for separated removal policies are rather large:
malloc + at least 2 pointers (StoreEntry<->removal node)
Ideas which I have been tossing around in my head are:
A) Time information is mainly required by ICP and digests. Both only
care for if the object is fresh or not. Time information is also
required for "Age:" calculation.
* Use a internal delta-represenation for time. For example based on a
one-year window (24 bits).
* Compress all of the time fields to only two values:
- request date (24 bits)
- freshness ttl (16 bits)
The first should be sufficient for Age: calculation, and both combined
for ICP/digest.
B) There is only one removal node per store entry, and the majority of
the store entries do have a removal node.
* Try to join RequestEntry and policy node together again avoid both
malloc overhead and numerous pointers. Since the supported removal
policies needs to be compiled into the code this should not be too hard.
Should only be a matter of making sure there are space for one in the
other, and then some simple pointer arithmetic to go the other way
around.
/Henrik
Received on Mon Jan 08 2001 - 16:47:36 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:13:13 MST