[go: up one dir, main page]

WO2001013600A1 - Gestion de donnees en antememoire dans un reseau - Google Patents

Gestion de donnees en antememoire dans un reseau Download PDF

Info

Publication number
WO2001013600A1
WO2001013600A1 PCT/US2000/022415 US0022415W WO0113600A1 WO 2001013600 A1 WO2001013600 A1 WO 2001013600A1 US 0022415 W US0022415 W US 0022415W WO 0113600 A1 WO0113600 A1 WO 0113600A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
entity
server system
request
network
Prior art date
Application number
PCT/US2000/022415
Other languages
English (en)
Inventor
Hua Chen
Original Assignee
Orblynx, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orblynx, Inc. filed Critical Orblynx, Inc.
Priority to AU69091/00A priority Critical patent/AU6909100A/en
Publication of WO2001013600A1 publication Critical patent/WO2001013600A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to networks and more particularly to caching data in a network.
  • a cache is a local memory for temporarily storing frequently used data.
  • FIG. 4A depicts a typical cache configuration involving a client system 400 such as a browser at which the user is located, a server system 402 such as a web site at which content is located, and a cache system 404 interspersed between the client system 400 and the server system 402.
  • the cache system 404 is commonly located on the same computer as the client system 400 or at an Internet Service Provider (ISP) (not shown) that the client system 400 is directly connected to, for example, by a modem line.
  • ISP Internet Service Provider
  • the client system 400 formulates and transmits a "get" request 410 identifying an entity such as a web page, graphic, audio, or video, hosted on the server system 404 in accordance with an appropriate protocol such as the Hypertext Transfer Protocol (HTTP).
  • HTTP Hypertext Transfer Protocol
  • the get request 410 is intercepted by the cache system 404.
  • the cache system 404 checks its local cache to determine if the cache system 404 is storing a copy of the requested entity. If the cache system 404 is indeed storing a copy of the requested entity, then the cache system 404 retrieves the entity from the local cache memory and transmits the cached entity 412 to the client system 400.
  • the cache system 404 fetches the requested entity from the server system 402 by transmitting a get request 420 to the server system 402.
  • the server system 402 retrieves the requested entity from its file system and sends the retrieved entity 422 to the cache system 404, which stored the retrieved entity 422 in its cache and forwards the entity 412 to the client system 400.
  • This method of populating a cache system 404 is called “pull caching,” because the cache system 404 actively "pulls", i.e. requests and retrieves, entities to be placed in the cache.
  • the pull caching model is not useful for content providers at server systems 402 who regularly update their old content and publish new content, particular if the content provider expects the latest content to be popular and frequently accessed. This latest content, of course, will not be found in the cache system 404, and it is desirable under certain circumstances, e.g. at off-peak times, to update the cache system 404 with the latest entities. In the pull caching model, however, the latest entities will not actually be transmitted to the cache system 404 until there is a request for that entity, which may occur at a peak usage time, thereby consuming bandwidth when that bandwidth is most needed.
  • FIG. 4B One of these techniques is illustrated in FIG. 4B, in which a cache adapter 406 is interspersed between the cache system 404 and the server system 402.
  • a cache adapter 406 is an ancillary device that intercepts requests from the cache system 404 for special handling.
  • the server system 402 transmits an updated or new entity 430 to the cache adapter 406, which in turn submits a get request 432 to the cache system 404 for that entity 430.
  • the get request 432 is identical to a get request from a client system 400, and the cache system 404 behaves identically in response.
  • the cache system 404 attempts to find the requested entity in its cache, and upon not finding the entity, the cache system 404 makes another get request 434.
  • the cache adapter 406 intercepts this get request 434 and services the cache system 404 with a copy 436 of the updated or new entity 430.
  • While such a pull caching technique addresses the issue of populating a cache with a completely new entity (e.g. a new entity at a new network location), it incurs a disadvantage with an updated entity (e.g. a new entity at an old network location, which replaces an old entity).
  • the cache system 404 may already be storing an older copy of the updated entity.
  • the cache system 404 responds to the request with the older copy because there is a cache hit for that request and never pulls the newer copy at the server system 402 into the cache system 404 until a conditional request is received from a user.
  • one common workaround is to remove a cached entity from the cache system 404 after some period of time. Determining the right period of time for a particular entity is difficult, and wrong estimates about the useful life of the cached entity hampers network performance. If the period of time is too short, then there are too many cache misses, forcing additional and unnecessary network activity to fetch an unchanged entity. On the other hand, if the period of time is too long, then the cache system 404 is more likely to serve stale data. Therefore, there is a need for improving the accuracy of cache systems, for example, by not returning stale data. There is also a need for improving the hit rate of cache systems, for example, by not prematurely polling for entities that have not changed.
  • a push caching technique is employed to force the cache system to store a new or updated entity regardless of whether an older copy is found in the cache.
  • forcing the cache system to overwrite an older copy of an entity in response to a push cache with the server system has updated the entity reduces the staleness of the cached data and improves accuracy of cache systems.
  • the hit rate of cache systems is improved because valid copies of entities are not prematurely aged out of the cache because the useful life time of the entity was estimated too low.
  • one aspect of the invention relates to a method and software for maintaining data in a cache system located in a network.
  • a request is received from a server system to update a cache maintained by the cache system.
  • the request includes an entity such as a web page, a graphic, audio, video, etc., to be placed in the cache and a resource identifier such as a URL that indicates the location of the entity in the server system.
  • the cache is updated by storing the entity in the cache in association with the resource identifier. By updating the cache in response to the request, stale data expunged from the cache system.
  • one embodiment of the invention involves a method and software maintaining data in a cache system located in a network.
  • a request is received from a server system to update a cache maintained by the cache system, in which the request includes an entity to be placed in the cache and a resource identifier indicating a location of the entity in the network.
  • the cache is updated by storing the entity in the cache in association with the resource identifier. In one implementation, this determination is made by consulting a push control list that stores the locations of registered server systems. If the location of the registered server systems and the resource identifier match, then the server system is considered to have the permission to update the cache with respect to that entity.
  • Another aspect of the invention pertains to a method and software for publishing data from a server system in a network.
  • the location of the server system is registered in a cache system, and a request is transmitted from the server system to the cache system to update a cache maintained by the cache system.
  • the request includes an entity to be placed in the cache and a resource identifier indicating the location of the entity in the network.
  • the request is made in response to an updating of the entity.
  • FIG. 1 depicts a computer system upon which embodiments of the present invention may be implemented.
  • FIG. 2 illustrates a network and data flow in accordance with one embodiment of the present invention.
  • FIG. 4A illustrates one conventional caching approach.
  • FIG. 4B illustrates another conventional caching approach.
  • FIG. 1 is a block diagram that illustrates a computer system 100 upon which an embodiment of the invention may be implemented.
  • Computer system 100 includes a bus 102 or other communication mechanism for communicating information, and a processor
  • Computer system 100 also includes a main memory 106, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 102 for storing information and instructions to be executed by processor 104. Main memory 106 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 104.
  • Computer system 100 further includes a read only memory (ROM) 108 or other static storage device coupled to bus 102 for storing static information and instructions for processor 104.
  • ROM read only memory
  • a storage device 110 such as a magnetic disk or optical disk, is provided and coupled to bus 102 for storing information and instructions.
  • Computer system 100 may be coupled via bus 102 to a display 112, such as a cathode ray tube (CRT), for displaying information to a computer user.
  • a display 112 such as a cathode ray tube (CRT)
  • An input device 114 is coupled to bus 102 for communicating information and command selections to processor 104.
  • cursor control 116 is Another type of user input device
  • cursor control 116 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 104 and for controlling cursor movement on display 112.
  • This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
  • the invention is related to the use of computer system 100 for caching data in a network.
  • caching data in a network is provided by computer system 100 in response to processor 104 executing one or more sequences of one or more instructions contained in main memory 106.
  • Such instructions may be read into main memory 106 from another computer-readable medium, such as storage device 110.
  • Execution of the sequences of instructions contained in main memory 106 causes processor 104 to perform the process steps described herein.
  • processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 106.
  • hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention.
  • Non-volatile media include, for example, optical or magnetic disks, such as storage device 110.
  • Volatile media include dynamic memory, such as main memory 106.
  • Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise bus 102. Transmission media can also take the form of acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications.
  • RF radio frequency
  • IR infrared
  • Computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
  • Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 104 for execution.
  • the instructions may initially be borne on a magnetic disk of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 100 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal.
  • An infrared detector coupled to bus 102 can receive the data carried in the infrared signal and place the data on bus 102.
  • Bus 102 carries the data to main memory 106, from which processor 104 retrieves and executes the instructions.
  • the instructions received by main memory 106 may optionally be stored on storage device 110 either before or after execution by processor 104.
  • Computer system 100 also includes a communication interface 118 coupled to bus 102.
  • Communication interface 118 provides a two-way data communication coupling to a network link 120 that is connected to a local network 122.
  • communication interface 118 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 118 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 118 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 120 typically provides data communication through one or more networks to other data devices.
  • network link 120 may provide a connection through local network 122 to a host computer 124 or to data equipment operated by an Internet Service Provider (ISP) 126.
  • ISP 126 in turn provides data communication services through the worldwide packet data communication network, now commonly referred to as the "Internet” 128.
  • Internet 128 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 120 and through communication interface 118, which carry the digital data to and from computer system 100, are exemplary forms of carrier waves transporting the information.
  • Computer system 100 can send messages and receive data, including program code, through the network(s), network link 120, and communication interface 118.
  • a server 130 might transmit a requested code for an application program through Internet 128, ISP 126, local network 122 and communication interface 118.
  • one such downloaded application provides for caching data in a network as described herein.
  • the received code may be executed by processor 104 as it is received, and/or stored in storage device 110, or other non- volatile storage for later execution. In this manner, computer system 100 may obtain application code in the form of a carrier wave.
  • FIG. 2 depicts a network arrangement in which one embodiment of the present invention may be employed.
  • a client system 200 such as a computer system at which a user is utilizing a web browser
  • a server system 202 such as computer system for a web site of a content provider that hosts content that users are interested.
  • the server system 202 can be a web server responsible for servicing requests, or a publish utility agent or application service provider that is responsible for proactively disseminating content.
  • a cache system 204 may be provided between the client system 200 and the server system 202, and in various implementation may be located at the computer system for the client system 200 or an ISP (not shown).
  • the cache system 204 is typically implemented in software on a computer system to temporarily store entities in a storage device. These entities may include a web page (e.g. text), graphics (GIF files for drawings and JPEG files for photographs), audio such as music, and video.
  • entities may include a web page (e.g. text), graphics (GIF files for drawings and JPEG files for photographs), audio such as music, and video.
  • the present invention is not limited to the particular types of entities cached.
  • the cache system 204 stores the entities in association with the host location of the entity in the Internet.
  • the location of the entity is preferably given by a Uniform Resource Identifier (URI) such as a Uniform Resource Locator (URL), which identifies the server system 204 that is hosting the entity.
  • URI Uniform Resource Identifier
  • URL Uniform Resource Locator
  • the cache system 204 may employ hashing and compression techniques that make it difficult to add new entities in the file system managed by the cache system 204 except through a defined interface.
  • the interface and software of the cache system 204 is extended to accepted a new "push" message 210 that is compatible in syntax with existing Hypertext Transfer Protocol (HTTP) messages.
  • the push message 210 specifies the URI of the entity as well as the entity 212 itself.
  • the push message has the following format, where "URL” stands for the resource identifier of the entity and the [Entity Body] stands for the content of the entity:
  • the cache system 204 is adapted to accept the push message 210, and, in response to the push message, update or store the cache entry for the specified entity 212 (e.g. based on the URI) regardless of whether there is an older version of the entity already in the cache.
  • updating the entity in the cache entry regardless of whether the entity is already in the cache in contrast with a conventional get message, helps ensure that the cached entity is not stale after the push message.
  • a conventional get message does not cause the entry corresponding to the entity to be updated during a preset, arbitrary expiration period that is difficult to predict for all entities.
  • a server system 202 is registered for push caching at cache system 204.
  • the location of the server system 202 is stored in a push control list at the cache system 204 (block 302).
  • the push control list is a data structure that records the locations (e.g. IP address) of registered server systems. This registration may be performed manually or may be performed automatically in response to a message, e.g. an email, or remote procedure call, sent from the server system 202 to the cache system 204 directing the registration.
  • the server system 202 publishes new content, causing a push message 210 to be sent to the cache system 204 with a URL that identifies the published entity 212 contained in the body of the push message 210.
  • the cache system 204 checks to determine if the server system 202 is permitted to update the cache entry for that particular entity 212. In one embodiment, the cache system 204 checks the push control list to determine if the location of the server system 202 and the location of the entity 212 match, for example, by comparing the respective locations. In some implementations, a password is also used for verifying the authenticity of the server system 202 to prevent spoofing.
  • execution proceeds to block 314 where an error code is returned.
  • execution branches to block 316, in which the entity is placed in the cache maintained by the cache system 204.
  • block 318 directs execution back to block 310 where the content is republished.
  • This operation may be manual, for example at the command line, or automatically in response to a modification of the content at the server system 202, or based on a regularly scheduled interval, for example, via a UNIXTM crontab file.
  • the push message is sent in response to a modification of the content, e.g.
  • the content in response to a modification event, the content is transmitted to the cache system 204 and updated in the cache system 204 regardless of whether an older copy of the content was already present in the cache system.
  • the most recent version of an entity holding content is disseminated throughout the network so that cache systems do not return stale content.
  • the get request 220 at block 320 is transmitted to the cache system 204, which intercepts the get request 220.
  • the cache system 204 inspects its cache to determine if the entity identified in the get request 220 is stored in the cache (block 322). If the entity is not stored therein, then execution proceeds to block 324 where the entity is fetched, for example, by a get request to a web host and cached. Then, execution proceeds to block 326.
  • execution skips to block 326 where the requested entity 222 is retrieved from the cache and transmitted to the client system 200.
  • the cached entity 222 is received by the client system 200.
  • a push caching technique in which a server system can force a cache system to update its local copy of a particular entity.
  • This approach facilitates publication of content by content providers, because stale copies are purged upon receipt of the request, and the request may be sent at off-peak hours or via efficient, multi-casting technologies such as over a geosynchronous satellite.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Cette invention concerne une technique de mise forcée en antémémoire de données stockées dans un réseau selon laquelle un système serveur oblige un système d'antémémoire à stocker une entité nouvelle ou mise à jour, qu'il y ait ou non une copie plus ancienne dans l'antémémoire. Selon un mode de réalisation, on utilise une liste de commande forcée pour déterminer si le système serveur est habilité à procéder à une mise à jour.
PCT/US2000/022415 1999-08-16 2000-08-16 Gestion de donnees en antememoire dans un reseau WO2001013600A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU69091/00A AU6909100A (en) 1999-08-16 2000-08-16 Caching data in a network

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US14876099P 1999-08-16 1999-08-16
US60/148,760 1999-08-16
US18434600P 2000-02-23 2000-02-23
US60/184,346 2000-02-23
US53955400A 2000-03-31 2000-03-31
US09/539,554 2000-03-31

Publications (1)

Publication Number Publication Date
WO2001013600A1 true WO2001013600A1 (fr) 2001-02-22

Family

ID=27386738

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/022415 WO2001013600A1 (fr) 1999-08-16 2000-08-16 Gestion de donnees en antememoire dans un reseau

Country Status (2)

Country Link
AU (1) AU6909100A (fr)
WO (1) WO2001013600A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100430612B1 (ko) * 2001-10-10 2004-05-10 와이더덴닷컴 주식회사 휴대용 단말기 중계용 이동통신 단말기 및 중계 시스템
WO2014183171A1 (fr) * 2013-05-17 2014-11-20 National Ict Australia Limited Systeme pour distribution de donnees mobile efficace

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998017039A1 (fr) * 1996-10-14 1998-04-23 Mirror Image Internet Ab Systeme de communication sur l'internet
CA2241634A1 (fr) * 1997-06-24 1998-12-24 Vistar Telecommunications Inc. Systeme de cache economique utilisant les communications par satellite

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998017039A1 (fr) * 1996-10-14 1998-04-23 Mirror Image Internet Ab Systeme de communication sur l'internet
CA2241634A1 (fr) * 1997-06-24 1998-12-24 Vistar Telecommunications Inc. Systeme de cache economique utilisant les communications par satellite

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LEGEDZA U ET AL: "Using network-level support to improve cache routing", COMPUTER NETWORKS AND ISDN SYSTEMS,NL,NORTH HOLLAND PUBLISHING. AMSTERDAM, vol. 30, no. 22-23, 25 November 1998 (1998-11-25), pages 2193 - 2201, XP004152171, ISSN: 0169-7552 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100430612B1 (ko) * 2001-10-10 2004-05-10 와이더덴닷컴 주식회사 휴대용 단말기 중계용 이동통신 단말기 및 중계 시스템
WO2014183171A1 (fr) * 2013-05-17 2014-11-20 National Ict Australia Limited Systeme pour distribution de donnees mobile efficace

Also Published As

Publication number Publication date
AU6909100A (en) 2001-03-13

Similar Documents

Publication Publication Date Title
US7552220B2 (en) System and method to refresh proxy cache server objects
US8224964B1 (en) System and method of accessing a document efficiently through multi-tier web caching
JP4364947B2 (ja) ミラー保護されたウェブ・サイトに関するユーザ・ヒットをリモート・サイト運営管理者に提供する方法および装置
US8275790B2 (en) System and method of accessing a document efficiently through multi-tier web caching
US7243136B2 (en) Approach for managing and providing content to users
EP1206100B1 (fr) Système de communication permettant de récupérer le contenu de pages web
US7149809B2 (en) System for reducing server loading during content delivery
US7587398B1 (en) System and method of accessing a document efficiently through multi-tier web caching
US6883068B2 (en) Methods and apparatus for implementing a chche replacement scheme
US7197602B2 (en) Multiple cache communication and uncacheable objects
US7685255B2 (en) System and method for prefetching uncacheable embedded objects
US20080235326A1 (en) Methods and Apparatus for Accelerating Web Browser Caching
US7565423B1 (en) System and method of accessing a document efficiently through multi-tier web caching
US20030033283A1 (en) Data access
US20070124309A1 (en) Content retrieval system
US8868707B2 (en) Adaptive write-back and write-through caching for off-line data
US20020198956A1 (en) Method and apparatus for managing a cache
US20020147849A1 (en) Delta encoding using canonical reference files
US20090271527A1 (en) Caching signatures
WO2008054951A1 (fr) Exécution hors ligne d'applications web
US6934761B1 (en) User level web server cache control of in-kernel http cache
US20070240169A1 (en) Computer implemented method for removing an event registration within an event notification infrastructure
US20030191858A1 (en) Response time of transformed documents based on caching and dynamic transformation
US7437754B2 (en) Web object access authorization protocol based on an HTTP validation model
WO2001013600A1 (fr) Gestion de donnees en antememoire dans un reseau

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP