CN103370919A - Partial object caching - Google Patents

Partial object caching Download PDF

Info

Publication number
CN103370919A
CN103370919A CN201080071209.7A CN201080071209A CN103370919A CN 103370919 A CN103370919 A CN 103370919A CN 201080071209 A CN201080071209 A CN 201080071209A CN 103370919 A CN103370919 A CN 103370919A
Authority
CN
China
Prior art keywords
cache
realizing
request
cache according
object cache
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201080071209.7A
Other languages
Chinese (zh)
Inventor
布雷德利·B·哈维尔
莫汉·I·科卡尔
詹森·埃格尔斯顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Edgio Inc
Original Assignee
Limelight Networks 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 Limelight Networks Inc filed Critical Limelight Networks Inc
Publication of CN103370919A publication Critical patent/CN103370919A/en
Pending legal-status Critical Current

Links

Images

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Techniques for partial object caching are disclosed. For example, a method includes receiving, at a content delivery network (CDN) from a end user device, a request for at least a portion of an object, retrieving the portion of the object from a content site and delivering the portion of the object to the end user device, and caching, in a partial object cache, the portion of the object. Further, the method may include receiving a subsequent request for the portion of the object, and retrieving, from the partial object cache the portion of the object and delivering the portion of the object in response to the subsequent request.

Description

The part object cache
Background technology
At present, by the client device request object, but for various reasons (for example, click to close, connection failure, bit rate switching etc.) and not with whole objects intact download to client device.For example, client can ask object video and user only to watch the part of this video.When this situation occurs, can not carry out high-speed cache to incomplete object (for example, only the viewed video of part).Alternately, can forcibly carry out complete download to the object that only partly is downloaded, with this object of high-speed cache.
In addition, content distributing network (CDN) carries out high-speed cache to the object (object that for example, is associated with resource locator (URL)) from diverse network (and other) source.When Cache is filled, from high-speed cache, remove early the object of high-speed cache and think new cache object Free up Memory.In addition, must carry out to whole object any part of high-speed cache or non-cache object.Therefore, at least for those reasons, need to make improvement to prior art.
Summary of the invention
In one embodiment, the part object cache can comprise: the forward part of working as of determining request is cached, and then begins to send the fragment from Cache.Alternately, if have current that creating, the non-cache memory space that will cover the vicinity identical with this object (because ongoing request) but the fragment of overlay offset amount not yet, then revise another in real time (in flight) request and stop with the byte place before just in time being in this new segment.In addition, if there is no for the data of this side-play amount high-speed cache, then make for from the request of the required part in source and this part of transmission object.Then, if arrive the ending of current fragment, then will process repeated application in the remainder of request.
According to the detailed description that hereinafter provides, other suitable application area of present disclosure will become obvious.Although should be appreciated that and describe in detail and the concrete various execution modes of example shown, it only is used for illustration purpose but not is intended to limit necessarily the scope of present disclosure.
Description of drawings
Fig. 1 shows the execution mode of content distribution system.
Fig. 2 A and Fig. 2 B show for the method that realizes the part object cache.
Fig. 3 shows the execution mode of computer system.
In the accompanying drawings, similar parts and/or feature can have identical Reference numeral.In some cases, identify the parts of same type by follow dash and the second Reference numeral of further in similar parts, distinguishing in the first Reference numeral back.If only use the first Reference numeral, any similar parts of indicating applicable to by the first Reference numeral are described then.
Embodiment
Ensuing description only provides the preferred illustrative execution mode, and such preferred illustrative execution mode is not intended to limit scope of the present invention or applicability.On the contrary, ensuing description will be so that those skilled in the art can realize such preferred illustrative execution mode.Person of skill in the art will appreciate that, can in the situation that does not break away from the spirit and scope of the present invention of illustrating in the appended claims, function and the layout to element make various changes.
Aspect of the present invention relates to the accurate partial bytes scope of the object that the edge server received and carries out high-speed cache.Bytes range is not the amount of appointment.In addition, each bytes range (or object of part high-speed cache) can have different sizes, and a plurality of part objects can be joined together to form larger part object and/or complete object.Like this, can check request in the future, whether be included in the object of one or more part high-speed cache with the arbitrary portion of determining request; Then, can this request of all or part of realization by the part object of high-speed cache.In addition, follow the tracks of independently and discharge each fragment from Cache.In addition, such part object cache can be for improvement of for the Flash(registered trade mark) media server, Windows(registered trade mark) media server and QuickTime(registered trade mark) high-speed cache of server etc.
Some terms in this specification can followingly define: the part of the object of 1) request-asked by client; 2) fragment-object, previous high-speed cache and can be by the Edge Server part (it also refers to be in the just fragment in constructive process) avoided uniquely of unit as a whole; 3) the whole http object of object-for example.In another embodiment, can use a plurality of http.
At first with reference to Fig. 1, show the block diagram of the execution mode of content distribution system 100, wherein content originator 110 shirks the transmission of content object to content distributing network (CDN).Content originator 110 generates and/or the distribution of content object, and can comprise one or more publisher 106 and content site 108.CDN is sent to terminal use 122 with content object via corresponding end user device 120 by the Internet 104.
As shown in the figure, CDN can comprise source server 112, strategic server 116 and each point of presence (POP) 118.POP 118 can spread in the whole content distribution system 100, and the end user device 120 that content object can be offered in the specific geographical area and/or be connected with particular service provider.For example, POP 118 can be designated as by the Internet 104 with the terminal use 122 that content object offers in the town, particular access network is first-class, to promote effective transmission and good user's experience.Can be by such as the WAN(wide area network) 114 dedicated network and/or connect each CDN element such as the public network of the Internet 104.
Terminal use 122 can utilize its end user device 120 separately at content site 108 place's browsing content objects.As used herein, content object can be the content of any computer-accessible, and can comprise voice data, video data and the image etc. of the computer-accessible form of any amount.Term " content " and " content object " can be at any local Alternates of its appearance.End-user system 120 can comprise personal computer, media player, handheld computer, internet device, smart phone, personal digital assistant, streaming or receive also any miscellaneous equipment of contents processing object.Content site 108 can be the webpage that can visit from it content via web browser.
Can point to position in the content distributing network to the link of the content at content site 108 places.When the terminal use asked the transmission of particular content object, this request can be assigned to POP 120, and POP 120 can be sent to end user device 120 with the content object of request conversely.If can not obtain this content object in the POP position of assigning, then this request can be propagated and can finally realize from source server 112 to the core of CDN.Each some place cache content that can be between core CDN and marginal position is to raise the efficiency.
The important revenue source of the distribution ordinary representation publisher 106 of content object.For example, content site 108 can be watched based on terminal use 122, the number of times of click or downloading contents object generates advertising income.Therefore, in order to make their revenus maximization, publisher 106 may make every effort to realize that terminal use 122 as much as possible has their content when good overall customer experience is provided.
Unfortunately, end-user system 120 can extensively change its ability separately and they and content object and carry out mutual mode.Different end-user systems 120 can be supported different multimedia form set and different transfer schemes.For example, the iPhone(registered trade mark of Apple company) begin to support fully by the HTTP(HTML (Hypertext Markup Language) from operating system version 3.0), with the iPhone(registered trade mark) HTTP stream (IHS) transmits M3U8 playlist and MPEG-2 segmentation video.On the other hand, the Blackberry Storm(registered trade mark of action research company (Research in Motion)) support by the RTSP(real-time streaming protocol) with third generation partner program (3GPP) form multimedia playback content.
For the problem of further complexity, the mode that starts the transmission of content object may change according to equipment.For example, for some type of content object, some end user devices 120 may want help and arrange browser to the switching of player (B2P).In addition, even in the situation that media formats and transfer approach are supported equally, the mode that transmits content object may depend on that specific place is connected the type of end user device 120 connection of 104 to the Internet with the time.Therefore, for example, depend on Blackberry Storm(registered trade mark) be to connect or is connected Blackberry Storm(registered trade mark with the Internet 104 via the cellular network in the remote location via the WIFI in the Internet bar) the possible difference of playback performance.
In the present embodiment, strategic server 116 is coupled to content site 108 via the Internet 104, but and in publisher 106 new content object time spent reception notification is arranged.Alternately, publisher 106 can be with its content uploading to source server 112, but and strategic server 116 can become at new content object the time spent via WAN 114 reception notifications.Although strategic server 116 is illustrated separately, it can be positioned at the other parts of POP 118, source server 112 or content distributing network.In addition, will recognize that the various operations of strategic server 116 can be carried out by a plurality of independent servers (such as policy server, merging server and assembling server etc.).
When preparing to process new content object, strategic server 116 is determined should be how so that new content object can be used for the terminal use.This may relate to a large amount of different editions of generating content object, and these versions are optimized for the different terminals subscriber equipment 120 with different performance, and is used for different network environments potentially.The different editions of content object can generate document or coded document corresponding to the difference that keeps at strategic server 116 places.Generating document conversely can be based on the demand of publisher to the distribution of its content object.For example, publisher may preference with specific media formats its content that distributes, come the distinctive ability of development equipment (as being used for the HIS stream of iPhone), in order to respectively high bit rate environment and low bit rate environment are optimized, thus with specific operating system and/or platform (such as the Windows(registered trade mark) or Mac OS) etc. as target.
Strategic server 116 can be associated the different editions of content object with single network identifier (such as URL(uniform resource locator) (URL)).Then, this single network identifier can be back to the publisher 106 that creates this content.Publisher 106 can be added into network identifier terminal use's 122 addressable one or more content site 108.When the request that receives from end user device for content object, can send it to strategic server 116 and analyze.Use all available informations, strategic server 116 can determine content object, for the preferred version of end user device, and can arrange its preferred version to be sent to the terminal use of the request of sending.Can be for hardware and software performance, bandwidth and the quality of connection of end user device, watch the combination in any of custom, user preferences or these factors, customization preferred version and transfer approach.Preferred version can also comprise the selection for the advertisement that is complementary with information about end user device and/or terminal use.
As described herein, strategic server 116 provides the content of optimization to transmit in the mode of one-to-many to publisher 106.Particularly, the single network identifier can point to a plurality of versions of given content object, and wherein strategic server 116 is selected the preferred version for specific end user equipment from a plurality of versions.Strategic server 116 thereby alleviated the burden that publisher 106 keeps state-of-the-art technologies.When new platform occurs or equipment performance when changing, can make the suitable version of content object can be used for terminal use 122 by existing network identifier and need not further effort from publisher 106.Strategic server 116 to be determining the preferred version of content object for the transparent mode of terminal use, thereby avoided complicated configuration, special-purpose software or manually select.By selecting transfer approach for user's position, network insertion etc. with fast response time and sending the preferred version of content object from POP 118 positions, further improved end-user experience.
Fig. 2 A shows for the exemplary process 200(that realizes the part object cache as being carried out by CDN 112).Some or all of part object cache processing 200 can be carried out by being used for carrying out one or more processor fixing or programmable instruction, and these instructions can utilize the related data element on the computer-readable medium to store conversely.
In piece 205, can receive request for object from end user device.In one embodiment, can check whether Cache is stored in (decision block 210) in the object cache device with in the object of determining to be asked some or all.In addition, the object cache device can be stored on Edge Server etc.In addition, the object cache device can be level object cache device, it allows in object some or all to be included in arbitrary number of level in all levels in source (that is, the content server of object, contiguous Cache and intermediate cache device etc.) of object.Therefore, can effectively obtain object at the arbitrary number of level of cache hierarchy.
Suppose that the object of asking is not included in the object cache device, then in decision block 215, determine whether carrying out another request at least a portion of current part of asking.If determine the ongoing formerly request that existence subsequently will be overlapping with this new request, then real time modifying should " formerly " request stop (processing block 220) with the byte place before the part that just in time is in ongoing request.Like this, in case current request " has been caught up with " ongoing request, then current request can be utilized the cache part of object.In one embodiment, can should ask by mark, but can use other appointment.The fragment that should also be noted that " in carrying out " is available equally in Cache, in addition when its underway also be like this.
Then, in processing block 225, request object works as forward part from the source.Alternately, if for not having ongoing request when forward part, then this processing moves to processing block 225, and request is not made amendment when forward part from source (or contiguous Cache/intermediate cache device).In processing block 227, object is stored in the Cache to be used for request in the future when forward part.Should be pointed out that (that is when, transmitting fragment also this identical fragment of storage in Cache) may occur with processing block 235 is parallel this processing block.Like this, in processing block 235, transmission object work as forward part.
Alternately, if determine high-speed cache object work as forward part, then in processing block 230, from Cache, obtain the forward part of working as of object, then transmit (processing block 235).If determining to transmit not yet fully works as forward part, then process being back to decision block 210; Alternately, if determine to arrive the ending of part (or fragment), then in decision block 245, determine whether the ending of the request that arrives.
If do not arrive the ending of request, then in processing block 250, further part is processed as working as forward part, and processing is back to decision block 210.If determine to have finished this request, then in decision block 255, determine whether to exist client error (for example, connection failure, equipment fault and bit rate change etc.).If have client or server error, then still any translator unit of object is carried out high-speed cache (processing block 260).Then, end process is until receive another request.
In another embodiment, for example, if having mistake when receiving content from network (or middle) server, then can again download from the place of making a mistake by trial and seamlessly correct such mistake.For example, when attempting again downloading the object of asking, can use the request of restarting from source, different resource etc.
In one embodiment, the part in the object can be bytes range.For example, if object has 15,000 bytes, then first can be that byte 1 is to byte 4,356.This scope is optionally partly based on the data volume that is downloaded to end user device.The user may only expect the part (for example, the only montage of video, only comprise first minute the video advance notice etc. of film) of object; Alternately, connection may be interrupted, and the user can click and close etc.Like this, obtain the part of the arbitrary size of object.Therefore, can cache object when forward part (namely in the above example, 4,356 bytes of first of object) and make it can be used for subsequent request.In addition, the Obj State when writing related part object be connected other connection, can dynamically determine side-play amount and length.
For instance, can comprise byte 3,684 to byte 15,000 for the subsequent request of object, thus with overlap (being that byte 3,684 is to byte 4,356) of high-speed cache.Therefore, from Cache, overlapping bytes range (byte 3,684 is to byte 4,356) is sent to the end user device of the request of sending.Then, simultaneously, from the source, obtain remaining byte (being that byte 4,357 is to byte 15,000).
This may be particularly useful under the certain situation that can encode to object (for example object video) with different bit rates.This may essentially compensate link condition, load state, payment structure etc.Like this, even continue to watch in the situation of same object video the user, if switch bit rate during watching video, then this stops to watch a video and begins to watch the situation of another video identical with the user.Therefore, can keep and present to the terminal use utilizing this part object cache method for the object of same object video with different bit rates part high-speed cache, to improve network efficiency.
In alternative example, user A can ask whole object (for example 1 GB), and user B can be after a period of time (for example after 20 seconds) begin to ask the latter half (for example entering object from 500 Mbytes) of same target.Suppose not have at first object by high-speed cache completely or partially, then user A and B obtain object from the source.Therefore, when the latter half of user B request object, the byte that is associated is cached in the part object cache device.Therefore, in case user A arrives the 500th Mbytes of object, just cut off being connected between user A and the source, and user A begins request the 501st Mbytes from the part object of the high-speed cache stored according to the request of user B.
In another example, to user transparent ground, can be joined together to form a plurality of parts (or fragment) of object complete or half entire object (except the part of high-speed cache, still can obtain other parts from the source).In addition, can be at the object of the arbitrary number of level place of cache hierarchy storage any amount.In addition, should be pointed out that can be for the part object of the arbitrary size of given object cache any amount.
Next with reference to Fig. 2 B, can determine that whether current clip size is less than global default (processing block 265).If determine that clip size less than global default, then in processing block 275, can be promoted to this fragment larger high-speed cache fragment.This can increase efficient, and this is because fragment is large and because more effectively follow the trail of larger fragment.
If determine that clip size less than global default, then in decision block 270, determines whether the more multibyte of looking ahead.For example, can ask the initial part of video, and will have the more part of high likelihood that comes request object based on initial request.Therefore, fragment can be promoted to the byte (processing block 275) of larger fragment to comprise expection.
In one embodiment, global default can be by Administrator, or alternately can be Network Based and other condition dynamically arrange.Default value finally as for increasing the filter of clip size to raise the efficiency.For example, default value can be set to 100 bytes, and only therefore asking, 3 bytes will be promoted to 100 bytes of request.
In one embodiment, can use list structure to realize part object cache device.Chained list can be configured to for given object in the part object each be linked together.Can be by for example having the head of identifying chained list to the URL of the link of object.Chained list allow easily and efficiently the insertion portion object and from tabulation the deletion object.For example, A links to the part object B such as the fruit part object, part object B then link to part object C, then by the end to end pointer of part object B is changed into the directed section object B ', ' tail pointer change into the head pointer of directed section object C, can be simply with the part object B ' be inserted in the chained list and with the part object B.
Similarly, if the deletion object B then can realize by each pointer of the tail pointer of part object A being changed into directed section object C.In addition, such configuration provides by the URL fast search, then by the further ability of searching for of each part object of URL.In addition, if request is removed URL and content associated with it from end user device, server etc., then can cancel the chained list of the URL that assigns to remove any trace of URL.
In addition, the node in the chained list can be positioned at the arbitrary number of level place of server level.Thereby some nodes in the chained list can point to other node that is positioned on the different server.In addition, the hash of URL can be used for URL is subdivided into less more manageable hash table bucket (bucket).The hash of URL is pointed to system the hash table bucket that comprises desired URL.For example, can have 100,000,000 URL, but each hash table bucket may only comprise 1,000 URL.Therefore, significantly reduced search time for URL.
In alternative execution mode, opposite with list structure, can use pile structure or tree structure.Tree structure can provide faster seek rate, and so that add the part object or remove the part object from Cache easier, may utilize more memory and resource but compare with chained list.Like this, when the seek rate particular importance (for example, for data file, web page browsing etc.), tree structure may be more favourable.Otherwise, when seek rate is not too important, (for example, to play up for video file), chained list may be more suitable.Therefore, in one embodiment, the type that can be based in part on the data of institute's high-speed cache in the part object cache device dynamically changes employed data structure (chained list, tree and heap etc.).
In addition, should be pointed out that and to come the cache part object based on the data that receive and the data of asking.For example, if end user device receives X byte of object, then can those bytes of high-speed cache; Yet, if the X of request object byte but never receives, X byte that still can cache object.
In addition, the content from a plurality of user's high-speed caches can be stored on the same server.For example, user A may ask the first half of audio object, and user B may ask the latter half of audio object.Like this, whole audio object can be cached in separately in two part objects that occur by different user's requests.Therefore, can be from a plurality of sources the patchwork of the part object of high-speed cache be stitched together, to allow the maximum byte of high-speed cache.
In addition, the part of object can be cached in CDN Edge Server 112 places.Subsequently, can from the part of end user device 120 request objects, perhaps alternately from the part of another end user device request object, therefore make the request to content site 108.Therefore, CDN Edge Server 112 high-speed caches are for the part object of the byte in the further part of object, and these bytes are not included in the part object according to the previous cache of initial request.Therefore, object is not overlapping with the initial part of high-speed cache from the part of subsequent request.
In addition, the fragment of each high-speed cache is remained in the Cache independently.For example, if the front two minutes trailers as video with video file, then compare with the remainder of object video, object video, corresponding to the front two minutes part of video may be more requested (part determine because a lot of users may watch trailer do not watch whole film the fact).Therefore, be not the whole object of object video high speed buffer memory at a high-speed cache, and can high-speed cache " trailer " (or object video front two minutes), and the remainder of object video can be cached in the independent object.
Therefore, the object of " trailer " high-speed cache keeps more of a specified duration in Cache than the remainder of object video.Therefore, for example, if usually watch the trailer of video, but seldom watch film, then when in fact only using the fraction of video file, can not waste cache memory space because of keeping whole video file.
Fig. 3 provides the schematic diagram of an execution mode of computer system 300, and computer system 300 can be carried out method of the present invention as described herein.Should be pointed out that Fig. 3 only is intended to provide the generality explanation of various parts, can suitably utilize any parts or all parts.Therefore, Fig. 3 is clear in a broad sense can realize such as how relatively independent or relatively integrated mode each system element.
Computer system 300 is shown as that comprise can be via the hardware element of bus 305 electric couplings (or can suitably communicate in addition).Hardware element can comprise: one or more processor 310, and it includes but not limited to one or more general processor and/or one or more application specific processor (such as digital signal processing chip and/or figure speed-up chip etc.); One or more input equipment 315, it can include but not limited to mouse and/or keyboard etc.; One or more output equipment 320, it can include but not limited to display device and/or printer etc.
Computer system 300 can also comprise one or more memory device 325(and/or communicate with it), memory device 325 can include but not limited to the memory of this locality and/or network-accessible, and/or can include but not limited to programme and/or disk drive, drive array, light storage device, solid storage device (such as random access memory (" RAM ") and/or read-only memory (" ROM ")) that can flashing etc.Computer system 300 may also comprise communication subsystem 330, and it can include but not limited to modulator-demodulator, network interface card (wireless or wired), infrared communication equipment, Wireless Telecom Equipment and/or chipset (such as bluetooth (registered trade mark) equipment, 802.11 equipment, WiFi equipment, WiMax equipment, cellular communication facility etc.) etc.Communication subsystem 330 can allow and network (network described as follows is only lifted an example) and/or any miscellaneous equipment swap data as herein described.In many execution modes, computer system 300 will also comprise working storage 335, and it can comprise aforesaid RAM or ROM equipment.
Computer system 300 can also comprise the software element that is illustrated as being currently located in the working storage 335, it comprises operating system 340 and/or such as other code of one or more application program 345, and application program 345 can comprise computer program of the present invention and/or can be designed as and realize method of the present invention as described herein and/or dispose system of the present invention.Take a single example, may be implemented as about described one or more routine of method discussed above can be by code and/or the instruction of computer (and/or the processor in the computer) execution.The set of these instructions and/or code can be stored on the computer-readable recording medium (memory device 325 described above).In some cases, storage medium can be contained in the computer system (such as system 300).In other embodiments, storage medium may be independent of computer system (be removable medium, as CD etc.) and be arranged in the installation kit, so that storage medium can be used for utilizing instructions/code stored thereon to come all-purpose computer is programmed.These instructions can be adopted the form of the executable code that can be carried out by computer system 300, and/or the form that can adopt source code and/or code can be installed according to the compiling on computer system 300 and/or installation (for example, use the random procedure in various compilers commonly used, installation procedure, the compression/de-compression utility program etc.), then adopt the form of executable code.In one embodiment, computer or machine readable media can be non-transient state.
Be apparent that to those skilled in the art, can make a large amount of modification according to specific requirement.For example, can also use the hardware of customization, and/or may both realize particular element with hardware, software (comprising portable software, such as applet etc.) or hardware and software.In addition, can adopt and being connected of other computing equipment (such as the network input-output apparatus).
In one aspect, the present invention adopts computer system (such as computer system 300) to carry out method of the present invention.According to one group of execution mode, carry out one or more sequence (it may be comprised in operating system 340 and/or other code such as application program 345) that is included in one or more instruction in the working storage 335 in response to processor 310, by in the routine of the such method of computer system 300 execution some or all.Such instruction can be read in the working storage 335 from another machine readable media (such as the memory device 325 one or more).Take a single example one or more routine that the execution that is included in the command sequence in the working storage 335 may impel processor 310 to carry out in the method described herein.
Term used herein " machine readable media " and " computer-readable medium " refer to participate in providing the arbitrary medium that makes the data that machine operates with ad hoc fashion.In the execution mode that uses computer system 300 to realize, various machine readable medias may relate to processor 310 provides instructions/code to carry out being used for, and/or may be used for storage and/or carry such instructions/code (for example, as signal).In many realizations, computer-readable medium is physics and/or tangible storage medium.This medium can adopt many forms, includes but not limited to non-volatile media, Volatile media and transmission medium.Non-volatile media comprises for example CD or disk, such as memory device 325.Volatile media includes but not limited to dynamic memory, such as working storage 335.Transmission medium comprises coaxial cable, copper cash and optical fiber, comprising the various parts of the wire that comprises bus 305 and communication subsystem 330 (and/or communication subsystem 330 provides the medium of communicating by letter with miscellaneous equipment by it).Therefore, transmission medium can also adopt the form of ripple (including but not limited to unlimited electric wave, sound wave and/or light wave, such as those ripples that produce during radio wave and infrared data communication).
The common form of physics and/or tangible computer-readable medium comprises for example floppy disk, floppy disc, hard disk, tape or any other magnetic medium, compact disc-ROM (CD-ROM), any other optical medium, punched card, paper tape, any other physical medium with sectional hole patterns, RAM, programmable read-only memory (prom), EPROM (Erasable Programmable Read Only Memory) (EPROM), FLASH-EPROM, any other storage chip or coding tape, carrier wave as mentioned below, or computer can be from any other medium of its reading command and/or code.
The various forms of machine readable media can relate to one or more sequences of one or more instructions of processor 310 transmission to be carried out being used for.Take a single example, instruction can be carried on the disk and/or CD of remote computer at first.Remote computer can be with instruction load in its dynamic memory, and sends signal instruction to be received and/or to be carried out by computer system 300 by transmission medium.According to various execution modes of the present invention, may be for these signals of the forms such as electromagnetic signal, acoustical signal and/or light signal the example of following carrier wave: on this carrier wave, can encode to instruction.
Communication subsystem 330(and/or its parts) usually will receive signal, then bus 305 can transfer to working storage 335 with this signal (and/or the entrained data of this signal, instruction etc.), and instruction is obtained and carried out to processor 310 from working storage 335.The instruction that is received by working storage 335 can randomly be stored on the memory device 325 before or after being carried out by processor 310.
As skilled in the art will appreciate, the present invention can realize with other concrete form.As previously mentioned, in a particular implementation of part object cache device, can be associated with a plurality of versions of programming structure.Those skilled in the art only uses normal experiment just will recognize the many equivalents that maybe can determine the specific embodiment of the present invention as herein described.Such equivalent is intended to be included in the claims.

Claims (23)

1. method that be used for to realize the part object cache, described method comprises:
Locate from the request of end user device reception at least a portion of object at content distributing network (CDN);
From content site, obtain the described part of described object and the described part of described object is sent to described end user device;
The described part of described object is cached in the part object cache device;
Reception is for the subsequent request of the described part of described object; And
In response to described subsequent request, from described part object cache device, obtain the described part of described object and transmit the described part of described object.
2. the method for realizing the part object cache according to claim 1 also comprises and determines the current following fragment that creating: the identical adjacency that this fragment covers described object is the part of high-speed cache not.
3. the method for realizing the part object cache according to claim 2, also comprise: in response to request underway and that not yet cover current request, revise in real time formerly request, its byte place before the part that just is in described ongoing request is stopped.
4. the method for realizing the part object cache according to claim 1 determines that described part object cache device does not comprise the data for current request.
5. the method for realizing the part object cache according to claim 4 is as response, from the described part of source request of described object.
6. the method for realizing the part object cache according to claim 5, wherein, described source comprises one or more in contiguous Cache or the intermediate cache device.
7. the method for realizing the part object cache according to claim 1 also comprises: determine finishing when forward part of described object, and as response, obtain the further part of described object.
8. the method for realizing the part object cache according to claim 7, also comprise: the described further part of determining described object is stored in the described part object cache device, and described further part is sent to described end user device from described part object cache device.
9. the method for realizing the part object cache according to claim 1 also comprises: determine to have arrived the ending of described request, and as response, finish the transmission of described object.
10. the method for realizing the part object cache according to claim 1 also comprises: determine to make a mistake on client or at the server place.
11. the method for realizing the part object cache according to claim 10, also comprise: in response to described mistake, still any translator unit with described object is cached in the described part object cache device.
12. the method for realizing the part object cache according to claim 1 also comprises:
With to the transparent mode of described end user device, connect a plurality of parts of the object of high-speed cache; And
A plurality of parts through connecting of the object of high-speed cache are sent to described end user device.
13. the method for realizing the part object cache according to claim 1, wherein, described part object cache device is positioned at the Edge Server place, and wherein, described Edge Server and described CDN communicate.
14. the method for realizing the part object cache according to claim 13, wherein, described part object cache device comprises cache hierarchy.
15. the method for realizing the part object cache according to claim 14, wherein, described cache hierarchy is configured to store at one or more grade place of described cache hierarchy the arbitrary portion of described object.
16. the method for realizing the part object cache according to claim 15, wherein, each grade in the described cache hierarchy upstream moves to the source of described object.
17. the method for realizing the part object cache according to claim 1, wherein, described part object cache device comprises the byte cache device.
18. the method for realizing the part object cache according to claim 1 also comprises:
Whether the byte number of determining to be included in the first of described object surpasses the byte threshold value at least; And
Surpass described byte threshold value in response to the byte number in the described first that is included in described object, the described first of described object is cached in the part object of the first high-speed cache.
19. the method for realizing the part object cache according to claim 1, wherein, described object comprises with lower one or more: audio object; Data object; File; Or object video.
20. the method for realizing the part object cache according to claim 19 wherein, is encoded to the first of object video with the first bit rate, and with the second bit rate the second portion of described object video is encoded.
21. the method for realizing the part object cache according to claim 20, also comprise: in response to the first bit rate the first of described object video being encoded and with the second bit rate the second portion of described object video is encoded, the described first of described object video is cached in first's object and the described second portion of described object video is cached in the second portion object.
22. the method for realizing the part object cache according to claim 1, wherein, described object is associated with resource locator (URL).
23. a computer-readable medium that be used for to realize the part object cache, described computer-readable medium stores instruction set thereon, described instruction set when being carried out by computer so that described computer:
Reception is for the request of at least a portion of object;
Obtain the described part of described object from content site, and the described part of described object is sent to end user device;
The described part of described object is cached in the part object cache device;
Reception is for the subsequent request of the described part of described object; And
In response to described subsequent request, obtain the described part of described object and transmit the described part of described object from described part object cache device.
CN201080071209.7A 2010-12-27 2010-12-27 Partial object caching Pending CN103370919A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2010/062142 WO2012091693A1 (en) 2010-12-27 2010-12-27 Partial object caching

Publications (1)

Publication Number Publication Date
CN103370919A true CN103370919A (en) 2013-10-23

Family

ID=46383421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080071209.7A Pending CN103370919A (en) 2010-12-27 2010-12-27 Partial object caching

Country Status (4)

Country Link
EP (1) EP2659388A4 (en)
CN (1) CN103370919A (en)
BR (1) BR112013016626A2 (en)
WO (1) WO2012091693A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763927A (en) * 2016-02-19 2016-07-13 福州瑞芯微电子股份有限公司 Method and apparatus for caching smart videos at streaming media playing terminal

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201306035D0 (en) * 2013-04-03 2013-05-22 King Com Ltd Method and system for data cash handling
US10270883B2 (en) * 2014-03-27 2019-04-23 Hewlett Packard Enterprise Development Lp Scheduling downloads

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199107B1 (en) * 1998-07-22 2001-03-06 Microsoft Corporation Partial file caching and read range resume system and method
US6463508B1 (en) * 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
JP2004070860A (en) * 2002-08-09 2004-03-04 Hitachi Ltd Stream contents distribution system and proxy server
US20050086386A1 (en) * 2003-10-17 2005-04-21 Bo Shen Shared running-buffer-based caching system
US20070112973A1 (en) * 2005-11-16 2007-05-17 Harris John M Pre-cached streaming content method and apparatus
US9807468B2 (en) * 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763927A (en) * 2016-02-19 2016-07-13 福州瑞芯微电子股份有限公司 Method and apparatus for caching smart videos at streaming media playing terminal

Also Published As

Publication number Publication date
BR112013016626A2 (en) 2016-09-27
EP2659388A4 (en) 2014-07-09
WO2012091693A1 (en) 2012-07-05
EP2659388A1 (en) 2013-11-06

Similar Documents

Publication Publication Date Title
CN105610954B (en) Media information processing method and system
US8555163B2 (en) Smooth streaming client component
US9069720B2 (en) Partial object caching
CN103765423B (en) Gathering transaction data associated with locally stored data files
US8850075B2 (en) Predictive, multi-layer caching architectures
EP2887297A1 (en) Method and device for providing targeted content
CN103380627A (en) Providing dynamic content with an electronic video
CN102439578A (en) Dynamic variable rate media delivery system
CN104981800A (en) Delivery and display of page previews during page retrieval events
CN102549557A (en) Singular, collective and automated creation of a media guide for online content
CN101346757A (en) Method of managing fonts in multimedia scenes and corresponding computer program and terminal
US8266246B1 (en) Distributed playback session customization file management
CN108476329A (en) It is similar to introduce caching mechanism
US8644674B2 (en) Control layer indexed playback
US20090204664A1 (en) Dynamic attachment of advertising to downloaded content
CN103370919A (en) Partial object caching
US11477540B2 (en) Advertisement preparation systems
US10101801B2 (en) Method and apparatus for prefetching content in a data stream
CN101203853A (en) Techniques and systems for supporting podcasting
CN102394908A (en) Local area network-based network video acceleration method
US20140245347A1 (en) Control layer indexed playback
JP7477251B2 (en) Method, system, and program for improving cacheability of single-page applications
KR20180034332A (en) Receiving device, transmitting device and data processing method
CN106162317A (en) A kind of intelligent terminal obtains the method and system of movie film
US12028586B2 (en) Advertisement preparation systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131023