Claims
- 1. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site using a pre-fetch bandwidth allocation value, the content delivery services provider programmed for:modeling a retrieval time of content o of size size(o) using b units of bandwidth as ret(o)=congestion×size(o)×d(b), wherein d(b) is a unit delay observed when b units of bandwidth is used for pre-fetching the content, congestion(Util) is a function that can be represented as congestion(Util)=βUtilθ+α+φor congestion(Util)=β×(1.0−Util)α+φ, Util describes a ratio of network bandwidth used with respect to a maximum network bandwidth, and parameters α, β, and φ are used for fitting the congestion function onto a congestion curve;modeling an amount of delay observed by the at least one proxy server for the content fetched from the at least one content provider original site at time t0 as ret(P)=congestion(P+r(t0)B)×r(t0)×d,wherein P is a pre-fetch bandwidth size, B is a total bandwidth available to the system, r(t)=(1−σ(P))×u(t) is an amount of bandwidth the system uses for retrieving end user browser requests for content that is not stored in the at least one proxy server, σ(P) is a cache freshness and availability value given a bandwidth P, and u(t) is a user access rate;calculating an optimum pre-fetch bandwidth allocation value P by solving δ ret(P)δ P=0;andcommunicating the optimum pre-fetch bandwidth allocation value P to the at least one proxy server.
- 2. A content delivery services provider as recited in claim 1, the content delivery services provider further programmed for computing an adjusted pre-fetch bandwidth allocation value which takes into account estimated worst-case bandwidth utilization by:solving δ ret(P)δ P=0using a current bandwidth consumption (R=r(t0)) for P;calculating ret(P) using the current bandwidth consumption(R=r(t0)); estimating a maximum bandwidth consumption Rmax within the period [t0, t0+ret(P)×p] using a history function hr(t) which describes the behavior of r(t) until time t0, where p is a degree of future look-up; calculating an adjusted pre-fetch bandwidth allocation value Padjusted by solving δ ret(P)δ P=0using the estimated maximum bandwidth consumption (R=Rmax); andcommunicating the adjusted pre-fetch bandwidth allocation value Padjusted to the at least one proxy server.
- 3. A content delivery services provider as recited in claim 2, the content delivery services provider further programmed for computing an averaged pre-fetch bandwidth allocation value which takes into account estimated average bandwidth utilization by:calculating Δt=ret(Padjusted)×p using the estimated maximum bandwidth consumption (Rmax); defining average utility as Utilavg=Pavg×Δ t+∫t0t0+Δ tr(t) ⅆtB×Δ t,wherein ∫t0t0+Δ tr(t) ⅆtis estimated using advance knowledge about bandwidth consumption or the history function hr(t);defining expected retrieval time Retexp(Pavg) using Utilavg and Pavg; calculating an estimated averaged pre-fetch bandwidth allocation value Pavg by solving δ retexp(Pavg)δ Pavg=0;andcommunicating the averaged pre-fetch bandwidth allocation value Pavg to the at least one proxy server.
- 4. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the content delivery services provider programmed for:calculating a priority value for pre-fetching content Oi as priority(Oi)=query frequency(Oi)c1×update frequency(Oi)c2time to expire(Oi)c3,wherein query frequency(Oi), update frequency(Oi), and time to expire(Oi) for each content Oi is obtained from a cache log file, and c1, c2, and c3 are order coefficients which may be assigned using statistics from a prior time period or empirical computations over fixed time intervals;selecting a set of content Op to pre-fetch in a next Δt units of time using the calculated priority values and a given pre-fetch bandwidth; and communicating this set of content Op to the at least one proxy server.
- 5. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the content delivery services provider programmed for:calculating an expected number of stale objects that will be accessed in a following Δt units of time as ∑oi∈O prob(oi is accessed)×prob(oi is stale), wherein prob(oi is accessed)=1−(1−q(oi))Δt, prob(oi is stale)=1−(1−u(oi))Δt+(t−lr(oi)), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all OiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Op1-[(1-(1-q(oi))Δ t)×(1-(1-u(oi))Δ t+(t-lr(oi)))]while maintaining ∑oi∈Opsize(oi)≤P×Δ tas a true statement, wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andcommunicating this set of content Op to the at least one proxy server.
- 6. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the content delivery services provider programmed for:calculating an expected number of fresh objects that will be accessed in a following Δt units of time as ∑oi∈Oexpected number of accesses(oi)×prob(oi is fresh),wherein the expected number of accesses to object oi in Δt units of time is Δt×q(oi), prob(oi is fresh)=(1−(1−u(oi))Δt+(t−lr(oi))), q(oi) is a query probability (for a unit time) for all OiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Opq(oi)×Δ t×(1-u(oi))Δ t+(t-lr(oi))while maintaining ∑oi∈Opsize(oi)≤P×Δ tas a true statement, wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andcommunicating the set of content Op to the at least one proxy server.
- 7. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site using a number of pre-fetch connections, the content delivery services provider programmed for:modeling a retrieval time of content o of size size(o) as ret(o)=congestion×size(o), wherein congestion(Util) can be represented as congestion(Util)=βUtilθ+α+φor congestion(Util)=β×(1.0−Util)α+φ, Util describes a ratio of connections open with respect to a maximum number of allowed connections, and parameters α, β, and φ are used for fitting the congestion function onto a congestion curve;modeling an amount of delay observed at the at least one proxy server for the content fetched from the at least content provider original site at time t0 as ret(P)=congestion(P+r(to)+u(to)B)×(u(to)+r(to))×avg obj size,wherein P is a number of pre-fetch connections, B is a maximum number of connections allowed, r(t)=(1−σ(P))×u(t) is an amount of connections the system uses to request-fetch content that is not stored in the at least one proxy server, σ(P) is a cache freshness and availability value given a bandwidth P, and u(t) is a user connection access rate;calculating an optimum number of pre-fetch connections P by solving δ ret(P)δ P=0;andcommunicating the optimum number of pre-fetch connections P to the at least one proxy server.
- 8. A content delivery services provider as recited in claim 7, the content delivery services provider further programmed for computing an adjusted number of pre-fetch connections which takes into account estimated worst-case connection utilization by:solving δ ret(P)δ P=0using a current number of connections used (R=r(t0)) for P;finding an amount of time ρ required to prefetch P content using the congestion calculated using R and P; estimating a maximum number of request-fetch connections Rmax within the period [t0, t0+p] using a history function hr(t) which describes the behavior of r(t) until time t0, where p is a time required to prefetch the P content; calculating an adjusted number of pre-fetch connections Padjusted by solving δ ret(P)δ P=0using the estimated maximum number of request-fetch connections (R=Rmax); andcommunicating the adjusted number of pre-fetch connections Padjusted to the at least one proxy server.
- 9. A content delivery services provider as recited in claim 8, the content delivery services provider further programmed for computing an averaged number of pre-fetch connections which takes into account estimated average connection utilization by:defining Δt as a worst-case amount of time required to pre-fetch Padjusted connections; defining average utilization as Utilavg=Pavg×Δ t+∫t0t0+Δ t(r(t) ⅆt+u(t)) ⅆtB×Δ t,wherein ∫t0t0+Δ tr(t) ⅆtis estimated using advance knowledge about pre-fetch connections or the history function hr(t);defining expected retrieval time retexp(Pavg) using Utilavg and Pavg; calculating an estimated averaged number of pre-fetch connections Pavg by solving δ retexp(Pavg)δ Pavg=0;andcommunicating the estimated averaged number of pre-fetch connections Pavg to the at least one proxy server.
- 10. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the content delivery services provider programmed for:calculating a priority value for pre-fetching content Oi as priority (Oi)=query frequency (Oi)c1×update frequency (Oi)c2time to expire (Oi)c3,wherein query frequency(Oi), update frequency(Oi), and time to expire(Oi) for each content Oi is obtained from a cache log file, and c1, c2, and c3 are order coefficients which may be assigned using statistics from a prior time period or empirical computations over fixed time intervals;selecting a set of content Op to pre-fetch in a next Δt units of time using the calculated priority values and a given number of network connections; and communicating this set of content Op to the at least one proxy server.
- 11. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the content delivery services provider programmed for:calculating an expected number of stale objects that will be accessed in a following Δt units of time as ∑oi∈O prob (oi is accessed)×prob (oi is stale),wherein prob(oi is accessed)=1−(1−q(oi))Δt, prob(oi is stale)=1−(1−u(oi))Δt+(t−lr(oi)), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Op 1-[(1-(1-q (oi))Δ t)×(1-(1-u(oi))Δ t+(t-lr(oi)))]while maintaining ∑oi∈Op size (oi)≤P×Δ t×average bandwidth consumption per connection as a true statement,wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andcommunicating the set of content Op to the at least one proxy server.
- 12. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a content delivery services provider for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the content delivery services provider programmed for:calculating an expected number of fresh objects that will be accessed in a following Δt units of time as ∑oi∈O expected number of accesses (oi)×prob (oi is fresh),wherein the expected number of accesses to object oi in Δt units of time is Δt×q(oi), prob(oi is fresh)=(1−u(oi))Δt+(t−lr(oi)), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Op q (oi) Δ t×(u(oi))Δ t+(t-lr(oi))while maintaining ∑oi∈Op size (oi)≤P×Δ t×average bandwidth consumption per connection as a true statement,wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andcommunicating the set of content Op to the at least one proxy server.
- 13. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for pre-fetching content from the at least one content provider original site using a pre-fetch bandwidth allocation value, the method comprising the steps of:modeling a retrieval time of content o of size size(o) using b units of bandwidth as ret(o)=congestion×size(o)×d(b), wherein d(b) is a unit delay observed when b units of bandwidth is used for pre-fetching the content, congestion(Util) can be represented as congestion(Util)=βUtilθ+α+φor congestion(Util)=β×(1.0−Util)α+φ, Util describes a ratio of network bandwidth used with respect to a maximum network bandwidth, and parameters α, β, and φ are used for fitting the congestion function onto a congestion curve;modeling an amount of delay observed by the at least one proxy server for the content fetched from the at least one content provider original site at time t0 as ret(P)=congestion(P+r(t0)B)×r(t0)×d,wherein P is a pre-fetch bandwidth size, B is a total bandwidth available to the system, r(t)=(1−σ(P))×u(t) is an amount of bandwidth the system uses for retrieving end user browser requests for content that is not stored in the at least one proxy server, σ(P) is a cache freshness and availability value given a bandwidth P, and u(t) is a user access rate;calculating an optimum pre-fetch bandwidth allocation value P by solving δ ret(P)δ P=0;andpre-fetching content from the at least one content provider original site using the optimum pre-fetch bandwidth allocation value P.
- 14. A method for pre-fetching content from the at least one content provider original site using a pre-fetch bandwidth allocation value as recited in claim 13, the method for further computing an adjusted pre-fetch bandwidth allocation value which takes into account estimated worst-case bandwidth utilization, the method further including the steps of:solving δ ret(P)δ P=0using a current bandwidth consumption (R=r(t0)) for P;calculating ret(P) using the current bandwidth consumption(R=r(t0)); estimating a maximum bandwidth consumption Rmax within the period [t0, t0+ret(P)×p] using a history function hr(t) which describes the behavior of r(t) until time t0, where p is a degree of future look-up; calculating an adjusted pre-fetch bandwidth allocation value Padjusted by solving δ ret(P)δ P=0using the estimated maximum bandwidth consumption (R=Rmax); andpre-fetching content from the at least one content provider original site using the adjusted pre-fetch bandwidth allocation value Padjusted.
- 15. A method for pre-fetching content from the at least one content provider original site using a pre-fetch bandwidth allocation value as recited in claim 14, the method for further computing an averaged pre-fetch bandwidth allocation value which takes into account estimated average bandwidth utilization, the method further including the steps of:calculating Δt=ret(Padjusted)×p using the estimated maximum bandwidth consumption (Rmax); defining average utility as Utilavg=Pavg×Δ t+∫t0t0+Δ tr(t) ⅆtB×Δ t,wherein ∫t0t0+Δ tr(t) ⅆtis estimated using advance knowledge about bandwidth consumption or the history function hr(t);defining expected retrieval time Retexp(Pavg) using Utilavg and Pavg; calculating an estimated averaged pre-fetch bandwidth allocation value Pavg by solving δ retexp(Pavg)δ Pavg=0;andpre-fetching content from the at least one content provider original site using the averaged pre-fetch bandwidth allocation value Pavg.
- 16. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the method comprising the steps of:calculating a priority value for pre-fetching content Oi as priority (Oi)=query frequency (Oi)c1×update frequency (Oi)c2time to expire (Oi)c3,wherein query frequency(Oi), update frequency(Oi), and time to expire(Oi) for each content Oi is obtained from a cache log file, and c1, c2, and c3 are order coefficients which may be assigned using statistics from a prior time period or empirical computations over fixed time intervals;selecting a set of content Op to pre-fetch in a next Δt units of time using the calculated priority values and a given pre-fetch bandwidth; and communicating this set of content Op to the at least one proxy server.
- 17. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the method comprising the steps of:calculating an expected number of stale objects that will be accessed in a following Δt units of time as ∑oi∈O prob(oi is accessed)×prob(oi is stale),wherein prob(oi is accessed)=1−(1−q(oi))Δt, prob(oi is stale)=1−(1−u(oi))Δt+(t−lr(oi)), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Op 1-[(1-(1-q(oi))Δ t)×(1-(1-u(oi))Δ t+(t-lr(oi)))]while maintaining ∑oi∈Op size(oi)≤P×Δ tas a true statement, wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andpre-fetching content from the at least one content provider original site in the next Δt units of time-from the set of content Op.
- 18. In a system for storing and delivering content, the system including a plurality of end-user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the method comprising the steps of:calculating an expected number of fresh objects that will be accessed in a following Δt units of time as ∑oi∈O expected number of accesses (oi)×prob(oi is fresh),wherein the expected number of accesses to object oi in Δt units of time is Δt×q(oi), prob(oi is fresh)=(1−(1−u(oi))Δt+(t−lr(oi))), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Op q(oi)×Δ t×(1-u(oi))Δ t+(t-lr(oi))while maintaining ∑oi∈Op size(oi)≤P×Δ tas a true statement, wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andpre-fetching content from the at least one content provider original site in the next Δt units of time from the set of content Op.
- 19. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site using a number of pre-fetch connections, the method comprising the steps of:modeling a retrieval time of content o of size size(o) as ret(o)=congestion×size(o), wherein congestion(Util) can be represented as congestion (Util)=βUtil θ+α+φor congestion(Util)=β×(1.0−Util)α+φ, Util describes a ratio of connections open with respect to a maximum number of allowed connections, and parameters α, β, and φ are used for fitting the congestion function onto a congestion curve;modeling an amount of delay observed at the at least one proxy server for the content fetched from the at least content provider original site at time t0 as ret(P)=congestion(P+r(to)+u(to)B)×(u(to)+r(to))×avg obj size,wherein P is a number of pre-fetch connections, B is a maximum number of connections allowed, r(t)=(1−σ(P))×u(t) is an amount of connections the system uses to request-fetch content that is not stored in the at least one proxy server, σ(P) is a cache freshness and availability value given a bandwidth P, and u(t) is a user connection access rate;calculating the optimum number of pre-fetch connections P by solving δ ret(P)δ P=0;andpre-fetching content from the at least one content provider original site using the optimum number of pre-fetch connections P.
- 20. A method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site using a number of pre-fetch connections as recited in claim 19, the method for further computing an adjusted number of pre-fetch connections which takes into account estimated worst-case connection utilization, the method further including the steps of:solving δ ret(P)δ P=0using a current number of connections used (R=r(t0)) for P;finding an amount of time ρ required to prefetch P content using the congestion calculated using R and P; estimating a maximum number of request-fetch connections Rmax within the period [t0, t0+P] using a history function hr(t) which describes the behavior of r(t) until time t0, where p is a time required to prefetch the P content; calculating an adjusted number of pre-fetch connections Padjusted by solving δ ret(P)δ P=0using the estimated maximum number of request-fetch connections (R=Rmax); andpre-fetching content from the at least one content provider original site using the optimum number of pre-fetch connections Padjusted.
- 21. A method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site using a number of pre-fetch connections as recited in claim 20, the method for further computing an averaged number of pre-fetch connections which takes into account estimated average connection utilization, the method further including the steps of:defining Δt as a worst-case amount of time required to pre-fetch Padjusted connections; defining average utilization as Utilavg=Pavg×Δ t+∫t0t0(r(t) ⅆt+u(t))ⅆtB×Δ t,wherein ∫t0t0+Δ tr(t) ⅆt is estimated using advance knowledge about pre-fetch connections or the history function hr(t);defining expected retrieval time Retexp(Pavg) using Utilavg and Pavg; calculating an estimated averaged number of pre-fetch connections Pavg by solving δ retexp(Pavg)δ Pavg=0;andpre-fetching content from the at least one content provider original site using the averaged number of pre-fetch connections Pavg.
- 22. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the method comprising the steps of:calculating a priority value for pre-fetching content Oi as priority(Oi)=query frequency(Oi)c1×update frequency(Oi)c2time to exp ire(Oi)c3,wherein query frequency (Oi), update frequency (Oi), and time to expire (Oi) for each content Oi is obtained from a cache log file, and c1, c2, and c3 are order coefficients which may be assigned using statistics from a prior time period or empirical computations over fixed time intervals;selecting a set of content Op to pre-fetch in a next Δt units of time using the calculated priority values and a given number of network connections; and communicating this set of content Op to the at least one proxy server.
- 23. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the method comprising the steps of:calculating an expected number of stale objects that will be accessed in a following Δt units of time as ∑oi∈Oprob(oi is accessed)×prob(oi is stale),wherein prob(oi is accessed)=1−(1−q(oi))Δt, prob(oi is stale)=1−(1−u(oi))Δt+(t−lr(oi)), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Op1-[(1-(1-q(oi)) Δ t)×(1-(1-u(oi))Δ t+(t-lr(oi)))]while maintaining ∑oi∈Opsize(oi)≤P×Δ t×average bandwidth consumption per connectionas a true statement, wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andpre-fetching content from the at least one content provider original site in the next Δt units of time from the set of content Op.
- 24. In a system for storing and delivering content, the system including a plurality of end user browsers for requesting content, at least one content provider original site for delivering the content, and at least one proxy server for storing the content coupled over a network for communicating with each other, a method for directing the at least one proxy server to pre-fetch content from the at least one content provider original site, the method comprising the steps of:calculating an expected number of fresh objects that will be accessed in a following Δt units of time as ∑oi∈Oexpected number of accesses(oi)×prob(oi is fresh),wherein the expected number of accesses to object oi in Δt units of time is Δt×q(oi) and prob(oi is fresh)=(1−u(oi))Δt+(t−lr(oi)), q(oi) is a query probability (for a unit time) for all oiεO, O is a set of objects, u(oi) is an update probability (for a unit time) for all oiεO, and lr(oi) is a last-retrieval time for all oiεO;selecting a set of content Op to pre-fetch in a next Δt units of time such that a number of stale objects accessed in a following Δt is minimized by using a 0-1 knapsack algorithm to maximize ∑oi∈Opq(oi)Δ t×(u(oi))Δ t+(t-lr(oi))while maintaining ∑oi∈Opsize(oi)≤P×Δ t×average bandwidth consumption per connectionas a true statement, wherein size(oi) is a size for all oiεO and P is a pre-fetch bandwidth; andpre-fetching content from the at least one content provider original site in the next Δt units of time from the set of content Op.
CROSS-REFERENCE TO RELATED APPLICATIONS
Embodiments of the present invention claim priority from a U.S. Provisional Application entitled “Method and Apparatus of Intelligent Network Bandwidth Utilization for Web Content Fetch,” Ser. No. 60/195,641, filed Apr. 7, 2000, the contents of which are incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/195641 |
Apr 2000 |
US |