I would like to work into "caching of partial responses"

From: Paolo Malfatti <paolo_at_cidis.ws>
Date: Fri, 20 Apr 2012 00:40:06 -0400

Hi, I would like to expand the Alex Rousskov's idea:

>I am not sure changing the URL is the best or even easiest way forward.
>Instead, I would try to change how cache key is computed by adding Range
>information to the hashing function and then adjust the "does the cached
>store entry match the request" code to account for Range request headers."

Can I create a object that stores a list of range's hashes instead of
original data?

I want to store every request individually indexed with an hash calculated
with range, but I will keep track of them with another object (indexed with
"normal" key) wich will maintain the list of ranges (and keys). That way
will permit to HIT a subset of a wider range, or merge ranges, etc.

Flow can be something like that:

Client request
range x-y
    |
    |
    V
Store computes
the "normal" key and
look for it in the
hash table
    |
    |
    V
if the object is a HIT and it is a
"list of ranges object" (1)
it looks in the list for a match
(subset, superset, whole object)

    |------> if any match,
    | it will retrieve the corresponding(s) object(s)
    | from disk/mem and it will send it to client
    |
    |------> if not, it will retrieve the range from the origin,
                it will store it with a "range" key and it will add it
                to the list in the (1)

I really really appreciate if someone can tell me if it's a doable idea, or
if there is a best solution.

Paolo Malfatti
CIDIS Camiri
Received on Fri Apr 20 2012 - 04:41:17 MDT

This archive was generated by hypermail 2.2.0 : Fri Apr 20 2012 - 12:00:10 MDT