Re: [squid-users] http partial caching

From: Jun OKAJIMA <okajima@dont-contact.us>
Date: Wed, 23 Mar 2005 15:59:39 +0900

Thank you Mr. Henrik Nordstrom!.

I am digging behavior about caching of partial content of squid.

Assume you download 100MB file, what happen in each case?

case A. You are disconnected in the first 30MB. Then download the rest
         with resuming. In this case, squid can cache a full 100MB file
         at the end? and of course, the next users can benefit from it?

case B. While you are downloading the rest 70MB with resuming, If another
         user is going to download the first 30MB, what happens? The user
         can benefit from the 30MB cache?
         This case can be divided three patterns.
         case B-1. The user downloads the whole 100MB file.
                     ( = range 0 to 100MB.)
              B-2. The user downloads just only less than 30MB,
                     but starting from the head.
                     I mean, range 0 to 25MB or such.
              B-3. The user downloads the some part of the 30MB
                     by http range request.
                     for example, range 4MB to 23MB.

And, there raises up another question. Concurrent access of a same partial data.
Assume there are two users say X and Y and are going to download the same
100MB file. User X starts first and already downloaded 18MB and squid has
20MB because of read ahead. Then user Y starts to download. but user Y has
faster line than user X. So Y would get ahead soon. So far is okay?

And my question is how user Y can benefit from the 20MB in each case.

case A. User Y gets whole 0 - 100MB.
case B. User Y gets only 0 - 20MB.
case C. User Y gets only 5 - 8MB.

and case A would be divided three sub cases. First, assume Y gets ahead
when X downloads 25MB.

    case A-1. During Y is downloading 0-20MB.
         A-2. During Y is downloading 20-25MB.
         A-3. During Y is downloading 25-100MB.
               ( actually , in this case, the question should be like
                 that "can user X benefit from user Y's downloading?". )

                ---- Okajima, Jun. Tokyo, Japan.

BTW, I realize this would be a brassy stuff, but using a sparse file would be
one idea for implementing partial caching easily. A cache file comes with
a bitmap to indicate which block is not downloaded or already downloaded
but just zero. You seem to use chunked files linked with chain pointer,
and I guess the reason you did so is performance. But I guess that
there is no big difference in performance between one big sparse file and
many chunked files.
 

>On Tue, 22 Mar 2005, Jun OKAJIMA wrote:
>
>> Hello squid developers.
>>
>> How it goes about partial caching?.
>
>It doesn't, not yet anyway.
>
>Partial caching is planned for the 3.1 release.
>
>But it does give you requested fragments of already cached files if found
>fresh.
>
>Regards
>Henrik
>
Received on Wed Mar 23 2005 - 00:00:12 MST

This archive was generated by hypermail pre-2.1.9 : Fri Apr 01 2005 - 12:00:02 MST