WO2013047207A1 - Cache system, cache method, and cache server - Google Patents

Cache system, cache method, and cache server Download PDF

Info

Publication number
WO2013047207A1
WO2013047207A1 PCT/JP2012/073345 JP2012073345W WO2013047207A1 WO 2013047207 A1 WO2013047207 A1 WO 2013047207A1 JP 2012073345 W JP2012073345 W JP 2012073345W WO 2013047207 A1 WO2013047207 A1 WO 2013047207A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
cache
cache server
server
requested
Prior art date
Application number
PCT/JP2012/073345
Other languages
French (fr)
Japanese (ja)
Inventor
潤 粟野
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2013047207A1 publication Critical patent/WO2013047207A1/en

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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • the present invention relates to a cache system, a cache method, and a cache server.
  • the present invention relates to a cache system, a cache method, and a cache server that deliver content requested from a terminal to a terminal from a cache server instead of an origin server.
  • FIG. 14 shows an example of a cache system.
  • the cache system in this example includes a network 1, a network 2, a terminal 100, an origin server 200, and a cache server 300.
  • the cache server 300 is communicatively connected to the origin server 200 via the network 1. Further, the cache server 300 is communicatively connected to the terminal 100 via the network 2.
  • the origin server 200 distributes the content requested from the terminal 100 to the terminal 100.
  • the cache server 300 mediates content distribution from the origin server 200 to the terminal 100. More specifically, the cache server 300 delivers the requested content instead of the origin server 200 when the content is requested by the terminal 100 by caching the content. Thereby, the load of the origin server 200 and the network 1 can be reduced. As a result, the cache server 300 is generally disposed at a location closer to the terminal 100 than the origin server 200, so that the delay in content distribution can also be shortened.
  • the cache server 300 may hold the content to be distributed in advance in accordance with the business agreement with the owner of the origin server 200 or the content owner held in the origin server 200.
  • Fig. 15 shows a sequence diagram of the content distribution system.
  • the terminal 100 requests content from the origin server 200.
  • various protocols can be considered as a protocol for making a content request.
  • the content request corresponds to HTTP GET.
  • the method using the DNS server is a method in which when the terminal 100 acquires the address of the origin server 200 using the DNS server, the DNS server responds with the address of the cache server 300 instead of the origin server 200.
  • the cache server 300 When the cache server 300 receives the content request, the cache server 300 identifies the requested content based on information such as a URL (Uniform Resource Locator) included in the content request. Then, the cache server 300 checks whether or not the requested content is held, and if not, transfers the requested content request to the origin server 200 (this step holds the targeted content in this step). Not).
  • the content request from the terminal 100 may be transferred without being changed, or may be transferred after changing the address or the like.
  • the origin server 200 Upon receiving the content request transferred from the cache server 300, the origin server 200 starts a process of distributing the requested content to the cache server 300 (S101).
  • the cache server 300 When the cache server 300 receives the content started to be distributed from the origin server 200, in step S102, the cache server 300 distributes the content to the terminal 100 and stores the cache of the content (hereinafter also referred to as caching).
  • the terminal 100 receives the content distributed via the cache server 300.
  • the terminal 100 requests the same content.
  • the terminal 100 here does not have to be the same terminal as the terminal 100 that requested the content for the first time.
  • the cache server 300 holds a cache of the content. Therefore, the content requested from the cache server 300 is distributed to the terminal 100 without transferring the content request to the origin server 200 (S103).
  • FIG. 16 shows an example in which a plurality of cache servers shown in FIG. 14 are deployed in a distributed manner. That is, FIG. 16 is an example of a non-cooperative cache system in which the cache does not exchange caches between cache servers.
  • the cache servers 300a, 300b, and 300c, terminals 100a, 100b, and 100c, and networks 2a, 2b, and 2c in FIG. 16 indicate a situation where there are a plurality of cache servers 300, terminals 100, and networks 2 described in FIG.
  • the networks 2a, 2b and 2c may be networks of different ISPs or network operators, or may be networks of the same ISP and network operators.
  • the cache server 300a does not cache the content requested from the terminal 100a, the content is acquired from the origin server 200 even if there is a cache in another cache server.
  • inter-cache server cooperation a cache system that can be linked between each cache server. Specifically, if the content requested from the terminal is not cached in a certain cache server, does not immediately acquire the content from the origin server, but does the other cache server hold the requested content? Confirm whether or not. As a result, if there is a cache server holding the content, the cache is acquired from the cache server and distributed to the terminal.
  • this cooperation is referred to as inter-cache server cooperation.
  • FIG. 17 shows a cache system that can be linked between cache servers.
  • the cache servers 300'a, 300'b, and 300'c are cache servers each having a cooperation function.
  • the management server 400 provides content information held by other cache servers to each cache server 300 ′, and controls content to be held by each cache server.
  • FIG. 18 shows a graph showing the effect of cooperation between cache servers.
  • FIG. 18 shows the difference between the hit rate of a single cache server and the hit rate when cooperation between cache servers is applied, assuming that the content request trend of the terminal 100 follows the Zipf distribution.
  • the Zipf distribution is a distribution in which access concentrates on content with high popularity, and the access probability to the kth most popular content can be expressed by the following formula (1).
  • the horizontal axis represents the number of cache servers that can be linked
  • the vertical axis represents the hit rate of the entire system, that is, the hit rate obtained as a result of linkage.
  • Each line assumes a different cache server size.
  • the size of the cache server is expressed as a percentage of the origin server.
  • FIG. 18 shows that the cache hit rate can be improved by inter-cache server cooperation regardless of the size of the cache server.
  • the content allocation to each cache server is not controlled in consideration of cooperation, and the requested content is only cached at the judgment of each cache server.
  • the cache hit rate improvement effect by the cooperation is more than the value shown in FIG. For example, if some cache servers cache content that is popular to some extent, control can be performed so that other cache servers do not cache the same content. On the other hand, for very popular contents, it may be better to place them on a plurality of cache servers in terms of load distribution.
  • Non-Patent Document 1 describes a technology related to CRISP (Caching and Replication for Internet Service Performance) in which a plurality of cache servers cooperate.
  • the management server 400 When trying to realize a content arrangement that allows the cache servers 300 ′ shown in FIG. 17 to be efficiently linked, the management server 400 stores information on the contents held by each cache server 300 ′, Access information must be collected from each cache server 300 'and each cache server 300' must be controlled to achieve an optimal placement.
  • the management server 400 controls the arrangement of contents in an integrated manner
  • the amount of information to be exchanged with the cache server and the optimum arrangement are calculated when the type of contents and the number of cache servers increase.
  • the amount of calculation for this becomes large. For this reason, there is a problem that the management server 400 cannot complete the processing. When such a state is reached, there is a concern that each cache server has more processing depending on the management server 400 and cannot continue normal operation and fails as a system.
  • An object of the present invention is to provide a cache system, a cache method, and a cache server that solve the above-described problems.
  • the cache system includes an origin server and a plurality of cache servers that distribute the content requested from the terminal instead of the origin server.
  • the server does not hold the content requested from the terminal, it indicates the load caused by transmitting / receiving the content to / from the other cache server when acquiring the content from the other cache server holding the content and distributing it to the terminal Based on the index, content duplication is controlled.
  • a caching method in a cache system comprising an origin server and a plurality of cache servers that deliver content requested from a terminal instead of the origin server,
  • the server does not hold the content requested from the terminal, it indicates the load caused by transmitting / receiving the content to / from the other cache server when acquiring the content from the other cache server holding the content and distributing it to the terminal Based on the index, content duplication is controlled.
  • the cache server when the content requested from the terminal is distributed instead of the origin server, the content requested from the terminal is not held.
  • content replication is controlled based on an index indicating the load caused by transmitting / receiving the content to / from another cache server.
  • the cache system according to the present invention it is possible to provide a distributed cache system capable of obtaining a good cache hit rate.
  • FIG. 1 is a diagram illustrating an example of a distributed cache system according to a first embodiment of the present invention. It is a figure which shows an example of the block configuration of the cache server which concerns on 1st Embodiment of this invention. It is a flowchart which shows the flow of the process which the cache server which concerns on 1st Embodiment of this invention performs replication determination and replication instruction
  • FIG. 1 shows an example of a distributed cache system according to the first embodiment.
  • the distributed cache system of the first embodiment includes a network 1, a plurality of networks 2a, b, c,... (Hereinafter collectively referred to as network 2), and a plurality of terminals 100a, b, c,. , Terminal server 100), origin server 200, and a plurality of cache servers 301a, b, c,... (Hereinafter collectively referred to as cache server 301).
  • the cache server 301 is communicatively connected to the origin server 200 and other cache servers 301 via the network 1. Further, the cache server 301 is communicatively connected to the terminal 100 via the network 2.
  • FIG. 2 shows an example of a block configuration of the cache server 301.
  • the cache server 301 includes a distribution unit 310, a cooperation unit 311, a replication determination unit 312, and a storage device 320.
  • a distribution unit 310 receives a packet data packet from the main memory 301.
  • a cooperation unit 311 receives a packet data packet from the main memory 301.
  • a replication determination unit 312 receives a packet data from the cache server 301.
  • the distribution unit 310 When receiving the content request from the terminal 100, the distribution unit 310 checks whether the requested content is recorded as a cache in the storage device 320. If the requested content is recorded in the storage device 320, the distribution unit 310 distributes the content to the terminal 100. On the other hand, when the requested content is not recorded in the storage device 320, the cooperation unit 311 is requested to acquire the content from the other cache server 301 by cooperation between the cache servers. As a result, when the target content is obtained from another cache server 301, it is delivered to the terminal 100. When the target content cannot be obtained from the other cache server 301, the target content is requested to the origin server 200 and the responded content is distributed to the terminal 100. The distribution unit 310 further holds the content obtained from the origin server as a cache in the storage device 320 on the condition that the origin server 200 has requested the same content a predetermined number of times.
  • the distribution unit 310 also records content information including information such as the number of accesses to the content from the terminal 100 in the storage device 320.
  • the content information also includes a content identifier (URL or an identifier assigned by the system), and the content information can be referred to using the content identifier as key information.
  • the content information may include other information such as size and media type.
  • the cooperation unit 311 searches for another cache server 301 that holds the content requested from the terminal 100.
  • the cache server 301 requests the target content from the cache server group that is a candidate for cooperation, in close order or randomly. As a result, if there is a cache server 301 that holds the target content, the target content is acquired from the cache server 301 and distributed to the terminal 100 via the distribution unit 310.
  • the cooperation candidate cache servers are sequentially inquired, but other methods may be adopted.
  • a cache server as a cooperation candidate is arranged in the same station.
  • the target content is obtained from the cache server that has returned the response indicating that the target content is held by inquiring about the target content by means of broadcasting or multicasting means capable of broadcasting to a plurality of cache servers. You may do it.
  • the sequential inquiry method requires a long time to find the target content. Therefore, the cache servers that are candidates for cooperation may be limited to some cache servers in the system.
  • the cooperation unit 311 When an arbitrary content is requested from another cache server 301 and the requested content is held in the storage device 320, the cooperation unit 311 responds to the request-source cache server 301 with the requested content. . At this time, the cooperation unit 311 records the number of accesses from other cache servers in the storage device 320 as one piece of content information.
  • the cooperation unit 311 is notified of the copy of the content together with the content identifier from the copy determination unit 312.
  • the information instructing the copy of the content in the response of the content Is stored.
  • the content requesting cache server is instructed to copy the content.
  • the content response is stored with information for instructing content duplication, but content duplication may be instructed by another signal.
  • the cooperation unit 311 also saves the received content in the storage device 320 as a cache if the content response stores information instructing content replication. Even when the content response is instructed to copy the content by another signal, when the content to be copied is received, the content is stored in the storage device 320 as a cache.
  • the free space of the storage device 320 of the cache server 301 and information indicating the load may be stored in the request.
  • the information indicating the load is, for example, information such as a CPU usage rate, a communication interface usage rate, a traffic amount related to content transmission / reception with another cache server, and the number of simultaneous connections.
  • the linkage unit 311 of the cache server 301 on the content instructing cache server 301 selects the cache to be instructed to copy the content based on information indicating the free capacity and load of the storage device 320 of the cache server on the content requesting side.
  • a server may be selected.
  • the replication determination unit 312 monitors information related to the communication interface of the cache server. Then, if any of the number of contents transmitted and received at the same time by the inter-cache server cooperation or the total bandwidth by the inter-cache server cooperation exceeds a threshold value, it is considered that the inter-cache server cooperation is being used too much. Then, the content information recorded in the storage device 320 is referred to, and one or a plurality of contents contributing to the load between the cache servers is determined.
  • Threshold value is a value that depends on the CPU performance of the cache server and the performance of the communication interface, and can be set in advance. Furthermore, the threshold value may be corrected based on dynamically changing information such as the number of simultaneous contents transmitted / received in the entire cache server, the total distribution bandwidth, the CPU load factor, and the like. *
  • the number of accesses from other cache servers can be used as an index for determining that it contributes to the load of cooperation between cache servers.
  • the content size may be an index that takes into account the size of the content, such as a value obtained by multiplying the number of accesses. Furthermore, it is good also as an parameter
  • the copy determination unit 312 means that the other cache server is determined to perform the copy together with the corresponding one or more content identifiers. Information to be notified to the cooperation unit 311.
  • cached content and content information are recorded.
  • Content information includes the content identifier, the number of accesses from the terminal, and the number of accesses from other cache servers. In addition, information regarding content such as content size and media type may be included.
  • the distribution unit 310, the linkage unit 311, and the replication determination unit 312 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
  • the storage device 320 can be configured by a device capable of recording and reading information, such as a semiconductor memory and a hard disk drive.
  • step S200 the duplication determination process in the duplication determination unit 312 starts at a regular opportunity or when the cooperation unit 311 receives a content request from another cache server.
  • step S201 as described above with respect to the function of the replication determination unit 312, the content replication is performed by referring to the number of contents simultaneously transmitted / received by the inter-cache server cooperation, the bandwidth by the inter-cache server cooperation, Decide whether or not to do.
  • step S202 the copy determination result is evaluated, and if the copy is made, step S203 is processed (Y in S202), and if not copied, the process is ended (N in S202).
  • step S203 the replication determination unit 312 determines one or more contents to be replicated using the number of accesses from other cache servers as an evaluation index.
  • the duplication determination unit 312 notifies the cooperating unit 311 of the duplication along with the identifier of the content to be duplicated (S204).
  • the linkage unit 311 stores information instructing to copy the content in the response of the content, and the cache server that becomes the response destination of the content Is instructed to copy the content, and the process ends.
  • the distribution unit 310 searches the storage device 320 and determines whether the requested content is already held as a cache (S301).
  • the distribution unit 310 reads the target content from the storage device 320, distributes it to the terminal 100 (S310), and ends the processing.
  • the cooperation unit 311 requests the content from the cache server 301 that holds the content, and sends the responded content via the distribution unit 310. Distribute to the terminal 100 (S304). At this time, if the content response stores information instructing to copy the content, the process proceeds to Y in step S305, and the content is held in the storage device 320 as a cache in step S306. Thereafter, in step S307, information such as the number of accesses in the content information of the storage device 320 is updated, and the process is terminated.
  • step S305 if there is no content duplication instruction (N in S305), the content is not retained, the content information is updated in step S307, and the process ends.
  • step S308 the distribution unit 310 requests the target content from the origin server, and distributes the content returned from the origin server to the terminal 100. At this time, based on information such as the number of accesses to the content, it is determined whether to store the content in the storage device 320 as a cache.
  • the processing after step S306 already described is processed.
  • the content information update of step S307 is implemented and a process is complete
  • FIG. 5 shows an example of an operation sequence of the terminal 100a and the cache servers 301a to 301c.
  • the cache server 301c instructs the cache server 301a to copy the content, and the flow of processing until the cache server 301a holds the content as a cache according to the instruction, using a more specific example. explain.
  • the terminal 100a is a terminal accommodated under the cache server 301a, and that the terminal requests content.
  • the requested content is assumed to be held in the cache server 301c.
  • the cache server 301a receives a content request from the terminal 100a. Since the cache server 301a holds the requested content as a cache, the cache server 301a requests the content from the cache server 301b among the cooperation candidate cache servers. However, since the cache server 301b does not hold the requested content, it responds “no content” to the cache server 301a (S401).
  • the cache server 301a requests the content from the next candidate cache server 301c again (S402).
  • the cache server 301a When the cache server 301a receives content storing information instructing content replication, the cache server 301a distributes the content to the terminal 100a (S405) and holds it as a cache in the storage device 320 (S406).
  • the distributed cache system can use inter-cache server cooperation without excess or deficiency even when there is no management server.
  • a good cache hit rate by cooperation between cache servers can be obtained without communication load and processing load for calculating an appropriate content arrangement.
  • the cache server 302 of the second embodiment is substantially the same as the cache server 301 of the first embodiment, but the functions of the linkage unit 313 and the replication determination unit 314 are the same as those of the linkage unit 311 of the first embodiment. This is different from the replication determination unit 312. Therefore, here, an explanation will be given focusing on the functions of the cooperation unit 313 and the replication determination unit 314.
  • the duplication determination unit 314 has substantially the same function as the duplication determination unit 312 of the first embodiment, but when the duplication of content is decided, the duplication target content and the number of duplications are also decided. More specifically, when notifying the cooperation unit 313 to instruct the copying of content, information on the number of copies is included in addition to the content identifier.
  • the replication determining unit 314 refers to the number of accesses and the number of simultaneous connections by cooperation between cache servers when determining the number of replicas. When it becomes necessary to increase the number of copies of content in the system immediately, such as when these values greatly exceed the threshold, the number of copies can be increased according to the degree of urgency.
  • the cooperation unit 313 has substantially the same function as the cooperation unit 311 of the first embodiment. Further, the linkage unit 313 receives either the number of copies notified from the copy determination unit 314 or the number of copies stored together with information indicating a content copy instruction as a content response from another cache server. Then, based on the received number of copies, when another cache server requests content to be copied, it instructs to copy the content. Further, by storing the number-of-replications information as required, it requests the other cache server 302 to instruct to copy the contents.
  • the cooperation unit 313 and the replication determination unit 314 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
  • the processing flow of the cache server 302 of the second embodiment is almost the same as the processing flow of the cache server 301 of the first embodiment shown in FIGS.
  • the cache server 302 is different from the process shown in FIG. 3 in that the copy number is determined at the same time when determining the copy instruction.
  • the cache server 302 returns the copy number information together with information for responding the content and instructing the copy of the content. It is also different in that it is stored as necessary.
  • the processing of the cache server 302 also confirms the existence of the number of copies information when determining whether or not the content responded from the other cache servers by the cooperation between the cache servers includes information instructing the copy. Is different from the process shown in FIG. If the copy number information is stored, it is acquired and recorded together with the content identifier. As described above, the copy number information recorded here is referred to when instructing another cache server to copy the content based on the copy number information.
  • step S500 it is assumed that the communication amount due to the cooperation between cache servers is excessive in step S500.
  • the determination as to whether or not the number is excessive may be, for example, the case where the number of simultaneous content distributions and the communication bandwidth by cooperation between cache servers greatly exceed a predetermined threshold. However, it may be determined that it is excessive or likely to be excessive based on other indicators such as the number of simultaneous distributions and the speed of increase in bandwidth.
  • the terminal 100 makes a content request to the cache server 302a (S501).
  • the cache server 302a When the cache server 302a receives the content response, it delivers it to the terminal 100 (S503). At the same time, according to the copy instruction, the cache server 302a holds the received content as a cache (S504).
  • step S505 when content to be copied is requested from the cache server 302c, information indicating a copy instruction and a content response storing the number of copies are transmitted to the cache server 302c.
  • the cache server 302a has set 2 as the number of copies.
  • the number of replicas is determined, and according to the determined number of replicas, another cache server is also requested for a replication instruction. In this way, the number of content copies can be increased at a high speed even when the cache server cooperation is excessively used or when excessive use is predicted, reducing the risk of system failure. .
  • the cache server 303 of the third embodiment is almost the same as the cache server 301 of the first embodiment, but the function of the linkage unit 315 is different from the linkage unit 311 of the first embodiment. Therefore, here, an explanation will be given focusing on the function of the cooperation unit 315.
  • the cooperation unit 315 requests content from other cache servers by cooperation between the cache servers.
  • the response is made, if the copy of the content is required by the function of the copy determination unit 312 and the responded content is a copy target, the content is held in the storage device 320 as a cache.
  • This is different from the cooperation unit 311 of the first embodiment. Other than that, it has the same function as the cooperation part 311 of 1st Embodiment.
  • the linkage unit 311 of the first embodiment instructs the requested cache server to copy the content to the requested cache server.
  • the cooperation unit 315 of the third embodiment is different in that the content requesting side determines the necessity of copying the content and the content to be copied.
  • the cooperation unit 315 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
  • step S600 when the cooperation unit 315 receives content from another cache server, the copy determination unit 312 starts the copy determination process.
  • step S601 as described in the description of the function of the replication determination unit 312, the number of contents simultaneously transmitted / received by inter-cache server cooperation, the bandwidth by inter-cache server cooperation, and the like are referred to. Decide whether or not to replicate.
  • step S602 the copy determination result is evaluated, and if copying is performed, step S603 is processed (Y in S602), and if not copied, the process is terminated (N in S602).
  • step S603 the copy determination unit 312 determines one or more contents to be copied using the number of accesses from other cache servers as an evaluation index.
  • the cooperation unit 315 determines whether or not the content received from another cache server is included in the content to be copied determined in step S603 (S604). If it is included, the process proceeds to Y, and the content is held as a cache in the storage device 320 in step S605. On the other hand, if it is determined in step S604 that the received content is not included in the content to be copied, the process proceeds to N and is not held as a cache, and the process ends.
  • the processing flow when the cache server 303 receives a content request from the terminal 100 is obtained by replacing the processing from step S305 to step S306 shown in FIG. 4 with the processing from step S600 to step S605 shown in FIG. Become.
  • the terminal 100a is a terminal accommodated under the cache server 303a, and the terminal requests content. Assume that the requested content is not held by the cache server 303a but is held by the cache server 301c.
  • step S700 the cache server 303a receives a content request from the terminal 100a. Since the cache server 303a holds the requested content as a cache, the cache server 303a requests the content from the cache server 303b selected from the cooperation candidate cache servers. However, since the cache server 303b does not hold the requested content, “no content” is returned to the cache server 303a (S701).
  • the cache server 303a requests content from the next candidate cache server 303c (S702).
  • the cache server 303c When the cache server 303c receives the content request in step S702, the cache server 303c holds the requested content, and therefore responds to the cache server 303a with the content (S703).
  • the cache server 303a Upon receiving the content response, the cache server 303a responds to the terminal 100a (S704), and determines whether the received content should be cached according to the flowchart shown in FIG. If it is determined that the content should be cached, the content is held as a cache (S704).
  • the cache server that receives the content determines whether or not to cache. .
  • the cache server on the content response side does not need to store information instructing copying in the content response.
  • the existing protocol such as HTTP is reused as a protocol for exchanging contents between the cache servers, it is not necessary to change the existing protocol, so that the cache system according to the present invention can be easily applied.
  • FIG. 1 An overall view of the distributed cache system of the fourth embodiment is shown in FIG.
  • the devices and networks having the same names and numbers are the same as in the overall view (FIG. 1) of the distributed cache system of the first embodiment, and thus the description thereof is omitted here.
  • the cache server 304 and the management server 401 are different from the distributed cache system according to the first embodiment of the present invention.
  • the cache server 304 according to the fourth embodiment further includes an information exchange unit 316 in addition to the cache server 301 according to the first embodiment. Moreover, the function of the cooperation part 317 is a little different from the cooperation part 311 of 1st Embodiment.
  • the other functional blocks are the same as the configuration of the cache server 301 of the first embodiment, and a description thereof will be omitted.
  • the information exchanging unit 316 has a function of notifying the management server 401 of a list of contents held in the storage device 320, acquires a list of contents held by another cache server 304 from the management server 401, and stores this list Record in device 320. At this time, the storage device 320 records the identifier of the cache server 304 in association with the list of contents held by the cache server.
  • the timing at which the information exchange unit 316 notifies the management server of the content list and the opportunity to acquire the content list of another cache server for example, a part or all of the content list is periodically notified and acquired. It doesn't matter. Further, it may be held at the timing when the cache is deleted because the content is held in the storage device 320 as a cache, or because the capacity of the storage device 320 is low. Alternatively, the management server 401 may be notified of deleted content information. Furthermore, when the content is requested from the terminal 100, the holding status of another requested cache server of the requested content may be acquired from the management server 401.
  • the cooperation unit 317 has substantially the same function as the cooperation unit 311 according to the first embodiment of the present invention. Further, when determining the content requesting cache server, the linkage unit 317 refers to the content list of another cache server recorded in the storage device 320. Then, after specifying a cache server that holds the requested content, one of the specified cache servers is determined as a content request destination. This eliminates the need to find a cache server that holds the requested content in a sequential manner, thus enabling more efficient cooperation between cache servers.
  • the management server 401 holds the content list notified from the cache server 304.
  • a content list of the cache server 304 in the cache system is returned.
  • the responding content list may be limited to a part of the information to be responded, such as limiting the content list to the content list for the cache servers around the cache server 304 that has requested the content list. .
  • the content list is shared via the management server 401, thereby enabling smooth cooperation between the cache servers.
  • the management server 401 is necessary. Communication between the management server 401 and the cache server 304 occurs.
  • the calculation load and communication load of the management server which are listed as problems in the background art, are not a big problem here.
  • the functions of the management server 401 of the fourth embodiment are limited to functions that mediate limited information. More specifically, the information to be exchanged is limited to the content list, and the management server 401 calculates the content allocation to each cache server and uses the cache server for the calculated content allocation. This is because there is no need to control.
  • the information exchange unit 316 and linkage unit 317 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
  • the management server 401 can be implemented on a server equipped with a CPU or storage device with the above-described functions implemented by software.
  • the operation flow of the cache server 304 according to the fourth embodiment of the present invention is almost the same as the processing when the cache server 301 of the first embodiment receives a content request from the terminal 100, as already shown in FIG. Become.
  • the only difference is that the content list acquired from the management server 401 is referred to when the cache server as the content request destination is found in step S302.
  • the distributed cache system according to the fourth embodiment further includes a management server 401 compared to the distributed cache system of the first embodiment.
  • the cache server 304 includes an information exchange unit 316 for exchanging content lists with the management server 401.
  • the cooperation unit 317 uses the content list of another cache server obtained from the management server 401 by the information exchange unit 316 to determine a cache server as a content request destination.
  • the elements that are the differences between the first embodiment and the fourth embodiment can be similarly applied to the configurations of the second embodiment and the third embodiment in the same manner as in the first embodiment.
  • the cache server when acquiring content from another cache server, uses the content list obtained by the management server to determine the content request destination. Efficient linkage between cache servers can be realized.
  • the cache server 305 shares the functions of the management server 401 of the fourth embodiment. Therefore, the management server 401 is not necessary in the distributed cache system of the fifth embodiment. For this reason, the configuration of the distributed cache system of the fifth embodiment is the same as that of the first embodiment, and thus the figure is omitted.
  • the cache server 305 of the fifth embodiment further includes a management server function 318 in addition to the cache server 304 of the fourth embodiment.
  • the management server function 318 exchanges content list information with the information exchange unit 316 of the other cache server 305 in the same manner as the function of the management server 401 in the fourth embodiment. However, it is different from the management server 401 in the fourth embodiment in that a part of content is managed instead of managing a list of all content. A method for determining content to be managed by the management server function 318 of each cache server 305 will be described later.
  • the information exchange unit 316 ′ basically has the same function as the information exchange unit 316 of the fourth embodiment.
  • the information exchanging unit 316 ′ is different in that the notification destination and acquisition destination of the content list are not the management server 401 but the management server function 318 of another cache server 305. Another difference is that a cache server as a content notification destination / acquisition destination is determined for each content.
  • a cache server index (CacheServerIndex) that is a continuous value from 0 is assigned to each cache server. Assume that the cache server index and the number of cache servers (NumOfCacheServer) in the distributed cache system are shared by the cache servers.
  • the information exchanging unit 316 ′ determines a cache server that notifies the holding state of the content when the content identifier whose content identifier is ContentID is held as a cache, when the content is deleted, or when the content is periodically deleted.
  • the cache server index is obtained by the calculation shown in Expression (2). Then, the cache server to which the obtained cache server index is assigned is determined as the content list notification destination of the content.
  • Hash (x) indicates a process of calculating a hash value of x by a hash function such as MD5 or SHA1.
  • X% y means a remainder when x is divided by y.
  • Formula 2 is also used when determining the cache server that manages the content list of content in order to acquire information on the cache server that holds a certain content. That is, the cache server to which the cache server index obtained by Expression 2 is assigned is set as the content list acquisition destination.
  • the cache list sharing method shown above is merely an example, and the content list may be shared and managed by other methods.
  • the information exchange unit 316 'and the management server function 318 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
  • efficient management between cache servers can be realized even if there is no management server by managing the functions of the management server by each cache server.
  • the cache system uses information obtained internally by each cache server to determine that the load due to cooperation between cache servers has become excessive, and the load due to cooperation between cache servers has become excessive. Identify content that is the main factor that you have, and increase duplication of that content. Thereby, even when there is no management server, inter-cache server cooperation can be used without excess or deficiency. In addition, it is possible to provide a distributed cache system that can obtain a good cache hit rate by cooperation between cache servers without communication load and processing load for calculating an appropriate content arrangement.
  • the cache system according to the second embodiment is configured to determine the number of replicas in addition to the determination of the execution of replication, and to request replication instructions from other cache servers according to the determined number of replicas. In this way, the number of content copies can be increased at a high speed even when the cache server cooperation is excessively used or when excessive use is predicted, reducing the risk of system failure. .
  • the cache server side that receives the content determines whether or not to cache. .
  • the cache server on the content response side does not need to store information instructing copying in the content response. For this reason, when an existing protocol such as HTTP is reused as a protocol for exchanging contents between cache servers, it is not necessary to change the existing protocol, so that the present invention can be easily applied.
  • the cache server obtained by the management server is used to determine the content request destination. More efficient linkage between cache servers can be realized.
  • the distributed cache system according to the present invention By applying the distributed cache system according to the present invention to a fixed ISP network or a mobile network, it is possible to obtain a high cache hit rate utilizing the cooperation between cache servers in the distributed cache system. Thereby, the traffic on an interconnection point (POI: Point Of Interface) can be reduced effectively, and the operator of the network can reduce OPEX (Operation Expense). In addition, high scalability and high availability can be realized by enabling distributed processing such as content copying.
  • POI Point Of Interface
  • a cache system According to the cache system according to the present invention, there is provided a cache system, a cache method, and a cache server that do not require a management server and can realize an effective cooperation between cache servers based on information that each cache server can have. be able to.

Abstract

A cache system is provided with an origin server and a plurality of cache servers which delivers content requested from a terminal instead of the origin server. When the cache server does not hold the content requested from the terminal, and delivers the content to the terminal by acquiring the content from another cache server holding the content, the cache server controls duplication of the content on the basis of the index indicating a load caused by transmitting/receiving the content to/from the other cache server.

Description

キャッシュシステム、キャッシュ方法、及びキャッシュサーバCache system, cache method, and cache server
 本発明は、キャッシュシステム、キャッシュ方法、及びキャッシュサーバに関する。特に本発明は、端末から要求されたコンテンツを、オリジンサーバの代わりにキャッシュサーバから端末に配信するキャッシュシステム、キャッシュ方法、並びにキャッシュサーバに関する。 The present invention relates to a cache system, a cache method, and a cache server. In particular, the present invention relates to a cache system, a cache method, and a cache server that deliver content requested from a terminal to a terminal from a cache server instead of an origin server.
 図14は、キャッシュシステムの一例を示す。この例のキャッシュシステムは、ネットワーク1、ネットワーク2、端末100、オリジンサーバ200、及びキャッシュサーバ300を備える。 FIG. 14 shows an example of a cache system. The cache system in this example includes a network 1, a network 2, a terminal 100, an origin server 200, and a cache server 300.
 キャッシュサーバ300は、ネットワーク1を介して、オリジンサーバ200と通信接続される。また、キャッシュサーバ300は、ネットワーク2を介して、端末100と通信接続される。 The cache server 300 is communicatively connected to the origin server 200 via the network 1. Further, the cache server 300 is communicatively connected to the terminal 100 via the network 2.
 オリジンサーバ200は、端末100から要求されたコンテンツを、端末100に配信する。キャッシュサーバ300は、オリジンサーバ200から端末100へのコンテンツの配信を仲介する。より具体的に説明すると、キャッシュサーバ300は、コンテンツをキャッシュすることによって、端末100から同じコンテンツを要求された場合には、オリジンサーバ200の代わりに要求されたコンテンツを配信する。これによりオリジンサーバ200や、ネットワーク1の負荷を下げることができる。これによって、一般にキャッシュサーバ300は、オリジンサーバ200よりも端末100に近い場所に配置されるので、コンテンツ配信の遅延も短縮することができる。 The origin server 200 distributes the content requested from the terminal 100 to the terminal 100. The cache server 300 mediates content distribution from the origin server 200 to the terminal 100. More specifically, the cache server 300 delivers the requested content instead of the origin server 200 when the content is requested by the terminal 100 by caching the content. Thereby, the load of the origin server 200 and the network 1 can be reduced. As a result, the cache server 300 is generally disposed at a location closer to the terminal 100 than the origin server 200, so that the delay in content distribution can also be shortened.
 また、キャッシュサーバ300は、オリジンサーバ200の所有者、又はオリジンサーバ200に保持されたコンテンツの所有者とのビジネス的な同意に従い、事前に配信対象とするコンテンツを保持することもある。 Further, the cache server 300 may hold the content to be distributed in advance in accordance with the business agreement with the owner of the origin server 200 or the content owner held in the origin server 200.
 図15にコンテンツ配信システムのシーケンス図を示す。まずステップS100で、端末100は、オリジンサーバ200に対してコンテンツの要求を行う。ここで、コンテンツ要求を行うためのプロトコルは様々なプロトコルが考えられるが、例えばHTTPの場合は、コンテンツ要求は、HTTP GETに相当する。 Fig. 15 shows a sequence diagram of the content distribution system. First, in step S <b> 100, the terminal 100 requests content from the origin server 200. Here, various protocols can be considered as a protocol for making a content request. For example, in the case of HTTP, the content request corresponds to HTTP GET.
 端末100が、オリジンサーバ200に対して行うコンテンツ要求を、キャッシュサーバ300に仲介させるための方法がいくつか存在する。ひとつは、端末100に、WEB Proxyサーバとしてキャッシュサーバ300の情報を設定し、端末100の動作によりキャッシュサーバ300にアクセスする方法である。 There are several methods for causing the cache server 300 to mediate content requests made by the terminal 100 to the origin server 200. One is a method of setting the information of the cache server 300 as a WEB Proxy server in the terminal 100 and accessing the cache server 300 by the operation of the terminal 100.
 次に、DNS(Domain Name System)サーバを使う方法である。DNSサーバを使う方法は、端末100が、DNSサーバを使ってオリジンサーバ200のアドレスを取得する際に、DNSサーバは、オリジンサーバ200の代わりにキャッシュサーバ300のアドレスを応答する方法である。他にも、HTTPリダイレクトによる方法や、端末100がオリジンサーバ200と通信する際に通過する経路上にキャッシュサーバ300を配置する方法等があるが、本発明には直接関係ないので詳細は省略する。 Next, it is a method using a DNS (Domain Name System) server. The method using the DNS server is a method in which when the terminal 100 acquires the address of the origin server 200 using the DNS server, the DNS server responds with the address of the cache server 300 instead of the origin server 200. There are other methods, such as a method using HTTP redirection and a method in which the cache server 300 is arranged on a path through which the terminal 100 communicates with the origin server 200, but the details are omitted because they are not directly related to the present invention. .
 キャッシュサーバ300は、コンテンツ要求を受信すると、コンテンツ要求に含まれるURL(Uniform Resource Locator)等の情報に基づいて、要求対象のコンテンツを特定する。そして、キャッシュサーバ300は、要求されたコンテンツを保持しているか否かを確認し、保持していない場合はオリジンサーバ200に要求対象のコンテンツ要求を転送する(このステップでは対象のコンテンツを保持していないものとする)。ここで、端末100からのコンテンツ要求を変更すること無くコンテンツ要求を転送する場合もあれば、アドレス等に変更を加えた後で転送する場合もある。 When the cache server 300 receives the content request, the cache server 300 identifies the requested content based on information such as a URL (Uniform Resource Locator) included in the content request. Then, the cache server 300 checks whether or not the requested content is held, and if not, transfers the requested content request to the origin server 200 (this step holds the targeted content in this step). Not). Here, the content request from the terminal 100 may be transferred without being changed, or may be transferred after changing the address or the like.
 オリジンサーバ200は、キャッシュサーバ300から転送されたコンテンツ要求を受信すると、要求されたコンテンツをキャッシュサーバ300へと配信する処理を開始する(S101)。 Upon receiving the content request transferred from the cache server 300, the origin server 200 starts a process of distributing the requested content to the cache server 300 (S101).
 キャッシュサーバ300は、オリジンサーバ200から配信が開始されたコンテンツを受信すると、ステップS102で、これを端末100に配信すると共に、そのコンテンツのキャッシュを保存する(以後、キャッシュするともいう)。 When the cache server 300 receives the content started to be distributed from the origin server 200, in step S102, the cache server 300 distributes the content to the terminal 100 and stores the cache of the content (hereinafter also referred to as caching).
 その後、端末100は、キャッシュサーバ300介して配信されたコンテンツを受信する。 Thereafter, the terminal 100 receives the content distributed via the cache server 300.
 次に端末100が同じコンテンツを要求した場合を考える。ここでの端末100は、一度目にコンテンツを要求した端末100と同じ端末である必要はない。この場合、キャッシュサーバ300は、端末100からコンテンツ要求を受信すると、そのコンテンツのキャッシュを保持している。そのため、コンテンツ要求をオリジンサーバ200に転送することなく、キャッシュサーバ300から要求されたコンテンツを端末100へ配信する(S103)。 Next, consider a case where the terminal 100 requests the same content. The terminal 100 here does not have to be the same terminal as the terminal 100 that requested the content for the first time. In this case, when receiving a content request from the terminal 100, the cache server 300 holds a cache of the content. Therefore, the content requested from the cache server 300 is distributed to the terminal 100 without transferring the content request to the origin server 200 (S103).
 次に、図14に示すキャッシュサーバを、複数台分散配備した例を図16に示す。すなわち、図16は、キャッシュがキャッシュサーバ間でキャッシュの交換をしない非連携キャッシュシステムの例である。 Next, FIG. 16 shows an example in which a plurality of cache servers shown in FIG. 14 are deployed in a distributed manner. That is, FIG. 16 is an example of a non-cooperative cache system in which the cache does not exchange caches between cache servers.
 図16のキャッシュサーバ300a、300b、300c、端末100a、100b、100c、ネットワーク2a、2b、2cはそれぞれ、図14で説明したキャッシュサーバ300、端末100、ネットワーク2が複数ある状況を示している。ネットワーク2a、2b、2cは、異なるISP、又はネットワークオペレータのネットワークの場合もあれば、同じISP、ネットワークオペレータのネットワークの場合もある。 The cache servers 300a, 300b, and 300c, terminals 100a, 100b, and 100c, and networks 2a, 2b, and 2c in FIG. 16 indicate a situation where there are a plurality of cache servers 300, terminals 100, and networks 2 described in FIG. The networks 2a, 2b and 2c may be networks of different ISPs or network operators, or may be networks of the same ISP and network operators.
 図16では、端末100aがコンテンツ要求した場合、キャッシュサーバ300aにキャッシュが保持される。そして、端末100b、端末100cについては、それぞれキャッシュサーバ300b、キャッシュサーバ300cにキャッシュが保持される。このとき、キャッシュされる際の動作は、図15と同じである。 In FIG. 16, when the terminal 100a requests content, the cache is held in the cache server 300a. For the terminals 100b and 100c, caches are held in the cache server 300b and the cache server 300c, respectively. At this time, the cache operation is the same as in FIG.
 この例のキャッシュシステムは、端末100aから要求されたコンテンツをキャッシュサーバ300aがキャッシュしていなかった場合、他のキャッシュサーバにキャッシュがあったとしても、オリジンサーバ200から取得する。 In the cache system of this example, if the cache server 300a does not cache the content requested from the terminal 100a, the content is acquired from the origin server 200 even if there is a cache in another cache server.
 これを改善するため、各キャッシュサーバ間で連携可能なキャッシュシステムとすることが考えられる。具体的には、あるキャッシュサーバで端末から要求されたコンテンツをキャッシュしていなかった場合、すぐオリジンサーバからコンテンツを取得するのではなく、他のキャッシュサーバが要求されたコンテンツを保持していないかを否かを確認する。その結果、コンテンツを保持しているキャッシュサーバがあった場合、当該キャッシュサーバからキャッシュを取得し、端末に配信するというものである。以降ではこの連携のことを、キャッシュサーバ間連携と呼称する。 In order to improve this, a cache system that can be linked between each cache server is considered. Specifically, if the content requested from the terminal is not cached in a certain cache server, does not immediately acquire the content from the origin server, but does the other cache server hold the requested content? Confirm whether or not. As a result, if there is a cache server holding the content, the cache is acquired from the cache server and distributed to the terminal. Hereinafter, this cooperation is referred to as inter-cache server cooperation.
 キャッシュサーバ間連携可能なキャッシュシステムを図17に示す。図17の、キャッシュサーバ300’a、300’b、300’cはそれぞれ連携機能を持ったキャッシュサーバである。管理サーバ400は、各キャッシュサーバ300’に対して他のキャッシュサーバが保持するコンテンツの情報を提供したり、各キャッシュサーバが保持すべきコンテンツを制御する。 FIG. 17 shows a cache system that can be linked between cache servers. In FIG. 17, the cache servers 300'a, 300'b, and 300'c are cache servers each having a cooperation function. The management server 400 provides content information held by other cache servers to each cache server 300 ′, and controls content to be held by each cache server.
 図18にキャッシュサーバ間連携の効果を示すグラフを示す。図18は、端末100のコンテンツ要求の傾向がZipf分布に従うと想定したときに、単独のキャッシュサーバのヒット率と、キャッシュサーバ間連携を適用した場合のヒット率の違いを示したものである。Zipf分布とは、人気度の高いコンテンツにアクセスが集中する分布を示し、k番目に人気のコンテンツへのアクセス確率は以下の式(1)で表すことができる。 Fig. 18 shows a graph showing the effect of cooperation between cache servers. FIG. 18 shows the difference between the hit rate of a single cache server and the hit rate when cooperation between cache servers is applied, assuming that the content request trend of the terminal 100 follows the Zipf distribution. The Zipf distribution is a distribution in which access concentrates on content with high popularity, and the access probability to the kth most popular content can be expressed by the following formula (1).
Figure JPOXMLDOC01-appb-M000001
 
Figure JPOXMLDOC01-appb-M000001
 
 ここで、Σ{N,n=1} (1/n^s)は、nを1からNまで変化させた時の、(1/n^s)の和を示す。また、sは、人気の高いコンテンツへのアクセス集中度を決めるパラメタであり、動画配信サービスにおいてはs=0.55程度となるとの研究報告があるため、ここでは、s=0.55とした。 Here, Σ {N, n = 1} (1 / n ^ s) indicates the sum of (1 / n ^ s) when n is changed from 1 to N. In addition, s is a parameter that determines the degree of concentration of access to popular content, and there is a research report that s = 0.55 in the video distribution service, so here s = 0.55. .
 図18のグラフでは、連携可能なキャッシュサーバの数を横軸、システム全体でのヒット率、すなわち連携の結果得られるヒット率を縦軸としている。連携可能なキャッシュサーバの数が0の場合は連携なしのキャッシュサーバを適用した場合のヒット率を示す。 In the graph of FIG. 18, the horizontal axis represents the number of cache servers that can be linked, and the vertical axis represents the hit rate of the entire system, that is, the hit rate obtained as a result of linkage. When the number of cache servers that can be linked is 0, the hit rate when a cache server without linkage is applied is shown.
 各ラインでは、異なるキャッシュサーバのサイズを想定している。キャッシュサーバのサイズは、オリジンサーバに対する割合として表現している。 Each line assumes a different cache server size. The size of the cache server is expressed as a percentage of the origin server.
 図18より、キャッシュサーバのサイズに関わらず、キャッシュサーバ間連携によりキャッシュヒット率を向上できることがわかる。しかし、図18の場合では、各キャッシュサーバへのコンテンツ配置については連携を意識した制御は行わず、要求されたコンテンツを各キャッシュサーバの判断でキャッシュするのみである。 FIG. 18 shows that the cache hit rate can be improved by inter-cache server cooperation regardless of the size of the cache server. However, in the case of FIG. 18, the content allocation to each cache server is not controlled in consideration of cooperation, and the requested content is only cached at the judgment of each cache server.
 各キャッシュサーバへのコンテンツ配置についても、キャッシュサーバ間連携を意図した配置とすることで、連携によるキャッシュヒット率の改善効果は図18に示されている値以上となる。例えば、ある程度人気にあるコンテンツを、一部のキャッシュサーバがキャッシュしていた場合は、他のキャッシュサーバは、同じコンテンツをキャッシュしないようにする制御が考えられる。一方で、人気が非常に高いコンテンツについては、負荷分散の意味で、複数のキャッシュサーバに配置した方がよい場合がある。 Regarding the content allocation to each cache server, the cache hit rate improvement effect by the cooperation is more than the value shown in FIG. For example, if some cache servers cache content that is popular to some extent, control can be performed so that other cache servers do not cache the same content. On the other hand, for very popular contents, it may be better to place them on a plurality of cache servers in terms of load distribution.
 また、非特許文献1には、複数のキャッシュサーバが連携するCRISP(Caching and Replication for Internet Service Performance)に関する技術が記載されている。 Also, Non-Patent Document 1 describes a technology related to CRISP (Caching and Replication for Internet Service Performance) in which a plurality of cache servers cooperate.
 図17に示すキャッシュサーバ300’同士を効率よく連携させることができるようなコンテンツ配置を実現しようとする場合、管理サーバ400は、各キャッシュサーバ300’が保持するコンテンツの情報や、各コンテンツへのアクセス情報を、各キャッシュサーバ300’から収集して、最適な配置となるように、各キャッシュサーバ300’を制御しなければならない。 When trying to realize a content arrangement that allows the cache servers 300 ′ shown in FIG. 17 to be efficiently linked, the management server 400 stores information on the contents held by each cache server 300 ′, Access information must be collected from each cache server 300 'and each cache server 300' must be controlled to achieve an optimal placement.
 しかしながら、管理サーバ400がコンテンツの配置を一元的に制御する方法の場合には、コンテンツの種類や、キャッシュサーバの数が多くなると、キャッシュサーバと交換すべき情報量や、最適な配置を計算するための計算量が大きくなる。そのため、管理サーバ400では処理しきれなくなる問題がある。このような状態となったとき、各キャッシュサーバが、管理サーバ400に依存した処理が多いほど、正常動作を継続できずシステムとして破綻する懸念がある。 However, in the case of the method in which the management server 400 controls the arrangement of contents in an integrated manner, the amount of information to be exchanged with the cache server and the optimum arrangement are calculated when the type of contents and the number of cache servers increase. The amount of calculation for this becomes large. For this reason, there is a problem that the management server 400 cannot complete the processing. When such a state is reached, there is a concern that each cache server has more processing depending on the management server 400 and cannot continue normal operation and fails as a system.
 本発明の目的は、上述した課題を解決するキャッシュシステム、キャッシュ方法、及びキャッシュサーバを提供することにある。 An object of the present invention is to provide a cache system, a cache method, and a cache server that solve the above-described problems.
 上記課題を解決するために、本発明の第1の態様に係わるキャッシュシステムによると、オリジンサーバと、端末から要求されたコンテンツを、オリジンサーバの代わりに配信する複数のキャッシュサーバとを備え、キャッシュサーバは、端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。 In order to solve the above-described problem, according to the cache system according to the first aspect of the present invention, the cache system includes an origin server and a plurality of cache servers that distribute the content requested from the terminal instead of the origin server. When the server does not hold the content requested from the terminal, it indicates the load caused by transmitting / receiving the content to / from the other cache server when acquiring the content from the other cache server holding the content and distributing it to the terminal Based on the index, content duplication is controlled.
 本発明の第2の態様に係わるキャッシュ方法によると、オリジンサーバと、端末から要求されたコンテンツを、オリジンサーバの代わりに配信する複数のキャッシュサーバとを備えるキャッシュシステムにおけるキャッシュ方法であって、キャッシュサーバは、端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。 According to the caching method according to the second aspect of the present invention, there is provided a caching method in a cache system comprising an origin server and a plurality of cache servers that deliver content requested from a terminal instead of the origin server, When the server does not hold the content requested from the terminal, it indicates the load caused by transmitting / receiving the content to / from the other cache server when acquiring the content from the other cache server holding the content and distributing it to the terminal Based on the index, content duplication is controlled.
 本発明の第3の態様に係わるキャッシュサーバよると、端末から要求されたコンテンツを、オリジンサーバの代わりに配信するキャッシュサーバであって、端末から要求されたコンテンツを保持していない場合に、当該コンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。 According to the cache server according to the third aspect of the present invention, when the content requested from the terminal is distributed instead of the origin server, the content requested from the terminal is not held. When the content is acquired from another cache server holding the content and distributed to the terminal, content replication is controlled based on an index indicating the load caused by transmitting / receiving the content to / from another cache server.
 なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。 Note that the above summary of the invention does not enumerate all the necessary features of the present invention, and sub-combinations of these feature groups can also be the invention.
 以上の説明から明らかなように、この発明に係わるキャッシュシステムによれば、良好なキャッシュヒット率が得られる分散キャッシュシステムを提供することができる。 As is apparent from the above description, according to the cache system according to the present invention, it is possible to provide a distributed cache system capable of obtaining a good cache hit rate.
本発明の第1実施形態に係る分散キャッシュシステムの一例を示す図である。1 is a diagram illustrating an example of a distributed cache system according to a first embodiment of the present invention. 本発明の第1実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。It is a figure which shows an example of the block configuration of the cache server which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係るキャッシュサーバが複製決定及び複製指示する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which the cache server which concerns on 1st Embodiment of this invention performs replication determination and replication instruction | indication. 本発明の第1実施形態に係るキャッシュサーバが端末からのコンテンツ要求を受信した際の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process when the cache server which concerns on 1st Embodiment of this invention receives the content request from a terminal. 本発明の第1実施形態に係る端末、及びキャッシュサーバの動作シーケンスの一例を示す図である。It is a figure which shows an example of the operation | movement sequence of the terminal which concerns on 1st Embodiment of this invention, and a cache server. 本発明の第2実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。It is a figure which shows an example of the block configuration of the cache server which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る端末、及びキャッシュサーバの動作シーケンスの一例を示す図である。It is a figure which shows an example of the operation | movement sequence of the terminal which concerns on 2nd Embodiment of this invention, and a cache server. キャッシュサーバのブロック構成の一例を示す図である。It is a figure which shows an example of the block configuration of a cache server. 本発明の第3実施形態に係わるキャッシュサーバが端末からのコンテンツ要求を受信した際の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process when the cache server concerning 3rd Embodiment of this invention receives the content request from a terminal. 本発明の第3実施形態に係わる端末、及びキャッシュサーバの動作シーケンスの一例を示す図である。It is a figure which shows an example of the operation | movement sequence of the terminal concerning 3rd Embodiment of this invention, and a cache server. 本発明の第4実施形態に係る分散キャッシュシステムの一例を示す図である。It is a figure which shows an example of the distributed cache system which concerns on 4th Embodiment of this invention. 本発明の第4実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。It is a figure which shows an example of the block configuration of the cache server which concerns on 4th Embodiment of this invention. 本発明の第5実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。It is a figure which shows an example of the block configuration of the cache server which concerns on 5th Embodiment of this invention. キャッシュシステムの一例を示す図である。It is a figure which shows an example of a cache system. 端末、キャッシュサーバ、及びオリジンサーバの動作シーケンスの一例を示す図である。It is a figure which shows an example of the operation | movement sequence of a terminal, a cache server, and an origin server. キャッシュサーバ間連携しない分散キャッシュシステムの一例を示す図である。It is a figure which shows an example of the distributed cache system which does not cooperate between cache servers. キャッシュサーバ間連携可能な分散キャッシュシステムの一例を示す図である。It is a figure which shows an example of the distributed cache system which can be cooperated between cache servers. キャッシュサーバ間連携による効果を示すグラフである。It is a graph which shows the effect by cooperation between cache servers.
 以下、発明の実施形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, the present invention will be described through embodiments of the invention. However, the following embodiments do not limit the invention according to the scope of claims, and all combinations of features described in the embodiments are included. It is not necessarily essential for the solution of the invention.
 <第1実施形態>
 図1は、第1実施形態に係る分散キャッシュシステムの一例を示す。第1実施形態の分散キャッシュシステムは、ネットワーク1、複数のネットワーク2a、b、c、・・・(以下、ネットワーク2と総称する。)、複数の端末100a、b、c、・・・(以下、端末100と総称する。)、オリジンサーバ200、及び複数のキャッシュサーバ301a、b、c、・・・(以下、キャッシュサーバ301と総称する。)を備える。
<First Embodiment>
FIG. 1 shows an example of a distributed cache system according to the first embodiment. The distributed cache system of the first embodiment includes a network 1, a plurality of networks 2a, b, c,... (Hereinafter collectively referred to as network 2), and a plurality of terminals 100a, b, c,. , Terminal server 100), origin server 200, and a plurality of cache servers 301a, b, c,... (Hereinafter collectively referred to as cache server 301).
 キャッシュサーバ301は、ネットワーク1を介して、オリジンサーバ200、及び他のキャッシュサーバ301と通信接続される。また、キャッシュサーバ301は、ネットワーク2を介して、端末100と通信接続される。 The cache server 301 is communicatively connected to the origin server 200 and other cache servers 301 via the network 1. Further, the cache server 301 is communicatively connected to the terminal 100 via the network 2.
 図2は、キャッシュサーバ301のブロック構成の一例を示す。キャッシュサーバ301は、配信部310、連携部311、複製決定部312、及び記憶装置320を備える。
 以下、各構成要素の機能及び動作を説明する。
FIG. 2 shows an example of a block configuration of the cache server 301. The cache server 301 includes a distribution unit 310, a cooperation unit 311, a replication determination unit 312, and a storage device 320.
Hereinafter, the function and operation of each component will be described.
 配信部310は、端末100からコンテンツ要求を受信すると、要求されたコンテンツが記憶装置320にキャッシュとして記録されているか否かを確認する。そして、要求されたコンテンツが記憶装置320に記録されている場合、配信部310は、そのコンテンツを、端末100に配信する。一方、要求されたコンテンツが記憶装置320に記録されていなかった場合、連携部311に、キャッシュサーバ間連携により、他のキャッシュサーバ301からコンテンツを取得することを要求する。その結果、他のキャッシュサーバ301からの対象のコンテンツが得られた場合は、これを端末100に配信する。他のキャッシュサーバ301から対象のコンテンツが得られなかった場合は、オリジンサーバ200に対し対象のコンテンツを要求し、応答されたコンテンツを端末100に配信する。
 配信部310はさらに、オリジンサーバ200に対して同一のコンテンツを所定の回数要求したこと等を条件にオリジンサーバから得られたコンテンツを記憶装置320にキャッシュとして保持する。
When receiving the content request from the terminal 100, the distribution unit 310 checks whether the requested content is recorded as a cache in the storage device 320. If the requested content is recorded in the storage device 320, the distribution unit 310 distributes the content to the terminal 100. On the other hand, when the requested content is not recorded in the storage device 320, the cooperation unit 311 is requested to acquire the content from the other cache server 301 by cooperation between the cache servers. As a result, when the target content is obtained from another cache server 301, it is delivered to the terminal 100. When the target content cannot be obtained from the other cache server 301, the target content is requested to the origin server 200 and the responded content is distributed to the terminal 100.
The distribution unit 310 further holds the content obtained from the origin server as a cache in the storage device 320 on the condition that the origin server 200 has requested the same content a predetermined number of times.
 配信部310はまた、端末100からコンテンツへのアクセス数等の情報を含んだコンテンツ情報を、記憶装置320に記録する。コンテンツ情報には、他にもコンテンツの識別子(URL、又はシステムが割り当てた識別子)が含まれ、コンテンツ識別子をキー情報としてコンテンツの情報が参照できる。コンテンツ情報には、他にも、サイズや、メディアのタイプ等、他の情報を含むこととしてもよい。 The distribution unit 310 also records content information including information such as the number of accesses to the content from the terminal 100 in the storage device 320. The content information also includes a content identifier (URL or an identifier assigned by the system), and the content information can be referred to using the content identifier as key information. The content information may include other information such as size and media type.
 連携部311は、配信部310の要求に応じて、他のキャッシュサーバが、端末100から要求されたコンテンツを保持するキャッシュサーバ301を探す。 In response to a request from the distribution unit 310, the cooperation unit 311 searches for another cache server 301 that holds the content requested from the terminal 100.
 ここで、端末100から要求されたコンテンツを保持するキャッシュサーバ301を探すにあたり、連携候補とするキャッシュサーバ301群のIPアドレス等、アクセスする際に必要な情報が事前に設定されていることを想定する。 Here, when searching for the cache server 301 that holds the content requested from the terminal 100, it is assumed that information necessary for access, such as the IP address of the cache server 301 group to be a cooperation candidate, is set in advance. To do.
 キャッシュサーバ301は、連携候補とするキャッシュサーバ群の中から、近い順に、又はランダムに、対象のコンテンツを要求する。その結果、対象のコンテンツを保持するキャッシュサーバ301があった場合は、前記キャッシュサーバ301から対象のコンテンツを取得し、これを配信部310を介して端末100に配信する。 The cache server 301 requests the target content from the cache server group that is a candidate for cooperation, in close order or randomly. As a result, if there is a cache server 301 that holds the target content, the target content is acquired from the cache server 301 and distributed to the terminal 100 via the distribution unit 310.
 上記の説明では、連携候補のキャッシュサーバに順次問い合わせるものとしたが、他の方法を採用することもできる。例えば、同一局舎内に連携候補のキャッシュサーバが配備されているケースが考えられる。その場合、ブロードキャストやマルチキャスト等の複数のキャッシュサーバに同報可能な手段により、対象のコンテンツを問い合わせ、対象のコンテンツを保持している旨を示す応答を返したキャッシュサーバから対象のコンテンツを取得するようにしてもよい。なお、連携候補のキャッシュサーバの数が多い場合、順次問合せ方法では、対象のコンテンツを発見するまでに長い時間を要してしまう。よって、連携候補とするキャッシュサーバを、システム中の一部のキャッシュサーバに限定することとしてもよい。 In the above description, it is assumed that the cooperation candidate cache servers are sequentially inquired, but other methods may be adopted. For example, there may be a case where a cache server as a cooperation candidate is arranged in the same station. In that case, the target content is obtained from the cache server that has returned the response indicating that the target content is held by inquiring about the target content by means of broadcasting or multicasting means capable of broadcasting to a plurality of cache servers. You may do it. If the number of cache servers that are cooperation candidates is large, the sequential inquiry method requires a long time to find the target content. Therefore, the cache servers that are candidates for cooperation may be limited to some cache servers in the system.
 連携部311は、他のキャッシュサーバ301から任意のコンテンツを要求された場合で、要求対象のコンテンツを記憶装置320に保持していた場合は、対象のコンテンツを要求元のキャッシュサーバ301に応答する。この際、連携部311は、他のキャッシュサーバからアクセス数をコンテンツ情報の一つとして記憶装置320に記録する。 When an arbitrary content is requested from another cache server 301 and the requested content is held in the storage device 320, the cooperation unit 311 responds to the request-source cache server 301 with the requested content. . At this time, the cooperation unit 311 records the number of accesses from other cache servers in the storage device 320 as one piece of content information.
 また、連携部311は、コンテンツの複製をコンテンツの識別子と共に複製決定部312から通知され、その後、他のキャッシュサーバからコンテンツに対するコンテンツ要求があった場合、コンテンツの応答にコンテンツの複製を指示する情報を格納する。このようにして、コンテンツ要求元のキャッシュサーバに対してコンテンツの複製を指示する。ここでは、コンテンツ応答に、コンテンツの複製を指示する情報を格納するとしたが、他の信号でコンテンツの複製を指示するようにしても構わない。 In addition, the cooperation unit 311 is notified of the copy of the content together with the content identifier from the copy determination unit 312. After that, when there is a content request for the content from another cache server, the information instructing the copy of the content in the response of the content Is stored. In this way, the content requesting cache server is instructed to copy the content. Here, the content response is stored with information for instructing content duplication, but content duplication may be instructed by another signal.
 連携部311はまた、コンテンツ応答に、コンテンツの複製を指示する情報が格納されていた場合は、受信したコンテンツをキャッシュとして記憶装置320に保存する。コンテンツ応答とは他の信号でコンテンツの複製を指示された場合も、複製対象のコンテンツを受信した際に、そのコンテンツをキャッシュとして記憶装置320に保存する。 The cooperation unit 311 also saves the received content in the storage device 320 as a cache if the content response stores information instructing content replication. Even when the content response is instructed to copy the content by another signal, when the content to be copied is received, the content is stored in the storage device 320 as a cache.
 連携部311は、他のキャッシュサーバにコンテンツを要求する際に、キャッシュサーバ301の記憶装置320の空き容量や、負荷を示す情報とを、要求に格納してもよい。ここで、負荷を示す情報とは、例えば、CPU使用率、通信インタフェースの使用率、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数等の情報である。また、コンテンツの複製を指示する側のキャッシュサーバ301の連携部311は、コンテンツ要求側のキャッシュサーバの記憶装置320の空き容量や負荷を示す情報に基づいて、コンテンツの複製の指示対象とするキャッシュサーバを選択するようにしてもよい。 When the cooperation unit 311 requests content from another cache server, the free space of the storage device 320 of the cache server 301 and information indicating the load may be stored in the request. Here, the information indicating the load is, for example, information such as a CPU usage rate, a communication interface usage rate, a traffic amount related to content transmission / reception with another cache server, and the number of simultaneous connections. Further, the linkage unit 311 of the cache server 301 on the content instructing cache server 301 selects the cache to be instructed to copy the content based on information indicating the free capacity and load of the storage device 320 of the cache server on the content requesting side. A server may be selected.
 複製決定部312は、キャッシュサーバの通信インタフェースに関する情報を監視している。そして、キャッシュサーバ間連携により同時に送受信しているコンテンツの数、キャッシュサーバ間連携による合計帯域のいずれかが、閾値を超えた場合、キャッシュサーバ間連携を使用しすぎているとみなす。そして、記憶装置320に記録されたコンテンツ情報を参照し、キャッシュサーバ間連携の負荷に寄与している1又は複数のコンテンツを決定する。 The replication determination unit 312 monitors information related to the communication interface of the cache server. Then, if any of the number of contents transmitted and received at the same time by the inter-cache server cooperation or the total bandwidth by the inter-cache server cooperation exceeds a threshold value, it is considered that the inter-cache server cooperation is being used too much. Then, the content information recorded in the storage device 320 is referred to, and one or a plurality of contents contributing to the load between the cache servers is determined.
 閾値は、キャッシュサーバのCPUの性能や、通信インタフェースの性能に依存する値で、事前に設定しておくことができる。さらに、キャッシュサーバ全体の同時コンテンツ送受信数や、配信帯域の合計、CPU負荷率等のように動的に変わる情報に基づき、閾値を補正することとしてもよい。  Threshold value is a value that depends on the CPU performance of the cache server and the performance of the communication interface, and can be set in advance. Furthermore, the threshold value may be corrected based on dynamically changing information such as the number of simultaneous contents transmitted / received in the entire cache server, the total distribution bandwidth, the CPU load factor, and the like. *
 また、キャッシュサーバ間連携の負荷に寄与していることを判定する際の指標としては、他のキャッシュサーバからのアクセス数が使用できる。また、コンテンツのサイズを、アクセス数に掛けた値を指標とする等、コンテンツのサイズを考慮した指標としてもよい。さらに、他の要素を考慮して、キャッシュサーバ間連携の負荷に寄与していることを判定する指標としてもよい。 Also, the number of accesses from other cache servers can be used as an index for determining that it contributes to the load of cooperation between cache servers. Further, the content size may be an index that takes into account the size of the content, such as a value obtained by multiplying the number of accesses. Furthermore, it is good also as an parameter | index which determines that it contributes to the load of cooperation between cache servers in consideration of another factor.
 複製決定部312は、キャッシュサーバ間連携の負荷に寄与しているコンテンツを決定すると、該当する1又は複数のコンテンツ識別子と共に、他のキャッシュサーバに対して複製を実施させることを決定したことを意味する情報を、連携部311に通知する。 When the content that contributes to the load of cooperation between the cache servers is determined, the copy determination unit 312 means that the other cache server is determined to perform the copy together with the corresponding one or more content identifiers. Information to be notified to the cooperation unit 311.
 記憶装置320には、キャッシュされたコンテンツ、及びコンテンツ情報が記録される。 In the storage device 320, cached content and content information are recorded.
 コンテンツ情報には、コンテンツの識別子、端末からのアクセス数、他のキャッシュサーバからのアクセス数が含まれる。その他にも、コンテンツのサイズや、メディアタイプといったコンテンツに係る情報を含むものとしても構わない。 Content information includes the content identifier, the number of accesses from the terminal, and the number of accesses from other cache servers. In addition, information regarding content such as content size and media type may be included.
 以上説明した、配信部310、連携部311、複製決定部312は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。一方、記憶装置320は、半導体メモリ、ハードディスクドライブ等、情報を記録・読み出し可能な装置により構成できる。 The distribution unit 310, the linkage unit 311, and the replication determination unit 312 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware. On the other hand, the storage device 320 can be configured by a device capable of recording and reading information, such as a semiconductor memory and a hard disk drive.
 次に、図3のフローチャートを用いて第1実施形態のキャッシュサーバ301が、キャッシュされたコンテンツの複製を決定し、他のキャッシュサーバにコンテンツの複製を指示する手順を説明する。 Next, a procedure in which the cache server 301 according to the first embodiment determines the copy of the cached content and instructs the other cache server to copy the content will be described using the flowchart of FIG.
 まず、ステップS200で、定期的な契機、又は連携部311が、他キャッシュサーバからのコンテンツ要求を受信した契機で、複製決定部312における複製判定処理を開始する。 First, in step S200, the duplication determination process in the duplication determination unit 312 starts at a regular opportunity or when the cooperation unit 311 receives a content request from another cache server.
 次に、ステップS201で、複製決定部312の機能について前に述べたとおり、キャッシュサーバ間連携により同時に送受信しているコンテンツの数や、キャッシュサーバ間連携による帯域等を参照して、コンテンツの複製をすべきか否かを決定する。 Next, in step S201, as described above with respect to the function of the replication determination unit 312, the content replication is performed by referring to the number of contents simultaneously transmitted / received by the inter-cache server cooperation, the bandwidth by the inter-cache server cooperation, Decide whether or not to do.
 次に、ステップS202で、複製判定結果が評価され、複製する場合はステップS203が処理される(S202のY)、複製しない場合は処理を終了する(S202のN)。 Next, in step S202, the copy determination result is evaluated, and if the copy is made, step S203 is processed (Y in S202), and if not copied, the process is ended (N in S202).
 ステップS203で、複製決定部312は、他のキャッシュサーバからのアクセス数等を評価指標として、複製対象とする1又は複数のコンテンツを決定する。 In step S203, the replication determination unit 312 determines one or more contents to be replicated using the number of accesses from other cache servers as an evaluation index.
 最後に、複製決定部312は、連携部311に対して、複製対象のコンテンツの識別子と共に、複製の実施を通知する(S204)。連携部311は、ここで通知されたコンテンツを他のキャッシュサーバから要求された際に、当該コンテンツの応答にコンテンツの複製を指示する情報を格納する等して、コンテンツの応答先となるキャッシュサーバにコンテンツの複製を指示し、処理を終了する。 Finally, the duplication determination unit 312 notifies the cooperating unit 311 of the duplication along with the identifier of the content to be duplicated (S204). When the linked unit 311 requests the content notified here from another cache server, the linkage unit 311 stores information instructing to copy the content in the response of the content, and the cache server that becomes the response destination of the content Is instructed to copy the content, and the process ends.
 次に、図4のフローチャートを用いて第1実施形態のキャッシュサーバ301が、端末100からのコンテンツ要求を受信した際の処理の流れを説明する。 Next, the flow of processing when the cache server 301 of the first embodiment receives a content request from the terminal 100 will be described using the flowchart of FIG.
 まず、配信部310は、端末100からのコンテンツ要求を受信すると、記憶装置320を検索し、要求されたコンテンツを既にキャッシュとして保持しているか否か判定される(S301)。 First, when receiving a content request from the terminal 100, the distribution unit 310 searches the storage device 320 and determines whether the requested content is already held as a cache (S301).
 ここで、キャッシュがあった場合は(S301のY)、配信部310は、記憶装置320から対象のコンテンツを読み出し、これを端末100に配信し(S310)、処理を終了する。 Here, when there is a cache (Y in S301), the distribution unit 310 reads the target content from the storage device 320, distributes it to the terminal 100 (S310), and ends the processing.
 一方、キャッシュがなかった場合(S301のN)、連携部311の機能により、対象のコンテンツを保持している他のキャッシュサーバを発見する処理を実施する。この方法については既に説明した通りである。 On the other hand, when there is no cache (N in S301), the function of the linkage unit 311 performs a process of finding another cache server holding the target content. This method has already been described.
 そして、対象のコンテンツを保持するキャッシュサーバがあった場合(S303のY)、連携部311は、そのコンテンツを保持するキャッシュサーバ301にコンテンツを要求し、応答されたコンテンツを配信部310を介して端末100に配信する(S304)。このとき、コンテンツ応答に、コンテンツの複製を指示する情報が格納されていた場合は、ステップS305のYに進み、ステップS306で、コンテンツは記憶装置320にキャッシュとして保持される。その後ステップS307で、記憶装置320のコンテンツ情報中のアクセス数等の情報が更新され、処理を終了する。 If there is a cache server that holds the target content (Y in S303), the cooperation unit 311 requests the content from the cache server 301 that holds the content, and sends the responded content via the distribution unit 310. Distribute to the terminal 100 (S304). At this time, if the content response stores information instructing to copy the content, the process proceeds to Y in step S305, and the content is held in the storage device 320 as a cache in step S306. Thereafter, in step S307, information such as the number of accesses in the content information of the storage device 320 is updated, and the process is terminated.
 一方、コンテンツの複製指示がなかった場合(S305のN)、コンテンツは保持せず、ステップS307でコンテンツ情報の更新が行われ、処理が終了する。 On the other hand, if there is no content duplication instruction (N in S305), the content is not retained, the content information is updated in step S307, and the process ends.
 ここで、ステップS303に戻り、対象のコンテンツを保持するキャッシュサーバがなかった場合(S303のN)を説明する。この場合、ステップS308で、配信部310はオリジンサーバに対し対象のコンテンツを要求し、オリジンサーバから応答されたコンテンツを端末100に配信する。この際、当該コンテンツに対するアクセス数等の情報に基づき、記憶装置320に当該コンテンツをキャッシュとして保持するか否か判定される。キャッシュとして保持する場合(S309のY)、既に説明したステップS306以降の処理が処理される。一方、キャッシュとして保持しない場合(S309のN)、ステップS307のコンテンツ情報更新が実施され、処理が終了する。 Here, returning to step S303, the case where there is no cache server holding the target content (N in S303) will be described. In this case, in step S308, the distribution unit 310 requests the target content from the origin server, and distributes the content returned from the origin server to the terminal 100. At this time, based on information such as the number of accesses to the content, it is determined whether to store the content in the storage device 320 as a cache. When the data is held as a cache (Y in S309), the processing after step S306 already described is processed. On the other hand, when not holding as a cache (N of S309), the content information update of step S307 is implemented and a process is complete | finished.
 図5は、端末100a、及びキャッシュサーバ301a~cの動作シーケンスの一例を示す。次に、キャッシュサーバ301cが、キャッシュサーバ301aに対してコンテンツの複製を指示し、キャッシュサーバ301aが、指示に従い、コンテンツをキャッシュとして保持するまでの処理の流れを、より具体的な例を用いて説明する。 FIG. 5 shows an example of an operation sequence of the terminal 100a and the cache servers 301a to 301c. Next, the cache server 301c instructs the cache server 301a to copy the content, and the flow of processing until the cache server 301a holds the content as a cache according to the instruction, using a more specific example. explain.
 ここでの説明にあたり、端末100aは、キャッシュサーバ301a配下に収容された端末であり、当該端末がコンテンツを要求するものとする。そして、要求されたコンテンツは、キャッシュサーバ301cで保持されているものと想定する。 In this description, it is assumed that the terminal 100a is a terminal accommodated under the cache server 301a, and that the terminal requests content. The requested content is assumed to be held in the cache server 301c.
 はじめにステップS400で、端末100aのコンテンツ要求をキャッシュサーバ301aが受信する。キャッシュサーバ301aは、要求されたコンテンツをキャッシュとして保持していなので、連携候補のキャッシュサーバのうち、キャッシュサーバ301bに対してコンテンツを要求する。しかし、キャッシュサーバ301bは、要求されたコンテンツを保持していないので、”コンテンツ無し”をキャッシュサーバ301aに応答する(S401)。 First, in step S400, the cache server 301a receives a content request from the terminal 100a. Since the cache server 301a holds the requested content as a cache, the cache server 301a requests the content from the cache server 301b among the cooperation candidate cache servers. However, since the cache server 301b does not hold the requested content, it responds “no content” to the cache server 301a (S401).
 キャッシュサーバ301aは、次の候補であるキャッシュサーバ301cに対して、コンテンツを再度要求する(S402)。 The cache server 301a requests the content from the next candidate cache server 301c again (S402).
 このとき、キャッシュサーバ301cでは、複製決定部312の機能により、コンテンツを複製する決定がなされていたものとする。この状態で、ステップS402で、キャッシュサーバ301cがコンテンツを要求されると、キャッシュサーバ301cの連携部311は、要求されたコンテンツを応答する際に、その応答にコンテンツの複製を指示する情報を格納する(S404)。 At this time, it is assumed that the cache server 301c has been determined to copy the content by the function of the copy determination unit 312. In this state, when the cache server 301c is requested for content in step S402, when the linkage unit 311 of the cache server 301c responds to the requested content, the instruction to copy the content is stored in the response. (S404).
 キャッシュサーバ301aは、コンテンツ複製を指示する情報が格納されたコンテンツを受信すると、これを端末100aに配信すると共に(S405)、記憶装置320にキャッシュとして保持する(S406)。 When the cache server 301a receives content storing information instructing content replication, the cache server 301a distributes the content to the terminal 100a (S405) and holds it as a cache in the storage device 320 (S406).
 以上説明したとおり、第1実施形態では、各キャッシュサーバが内部的に得られる情報を使って、キャッシュサーバ間連携による負荷が過剰になったことを判定する。また、キャッシュサーバ間連携による負荷が過剰となっている主たる要因のコンテンツを特定し、当該コンテンツの複製を増やすよう動作する。このように、第1実施形態の分散キャッシュシステムは、管理サーバがない場合でも、キャッシュサーバ間連携を過不足なく使用することができる。また、適切なコンテンツ配置を算出するための通信負荷、及び処理負荷なく、キャッシュサーバ間連携による良好なキャッシュヒット率が得られる。 As described above, in the first embodiment, it is determined using the information obtained internally by each cache server that the load due to cooperation between the cache servers has become excessive. In addition, it operates to identify content that is the main cause of excessive load caused by cooperation between cache servers and increase the number of copies of the content. As described above, the distributed cache system according to the first embodiment can use inter-cache server cooperation without excess or deficiency even when there is no management server. In addition, a good cache hit rate by cooperation between cache servers can be obtained without communication load and processing load for calculating an appropriate content arrangement.
<第2実施形態>
 次に、第2実施形態について図面を参照して詳細に説明する。第2実施形態では、キャッシュサーバ302以外の構成は第1実施形態と同じとなるため、ここでは、キャッシュシステム全体の図は省略する。
<Second Embodiment>
Next, a second embodiment will be described in detail with reference to the drawings. In the second embodiment, the configuration other than the cache server 302 is the same as that in the first embodiment, and therefore, the entire cache system is omitted here.
 第2実施形態のキャッシュサーバ302は、図6に示すように、第1実施形態のキャッシュサーバ301とほぼ同じだが、連携部313、複製決定部314の機能が、第1実施形態の連携部311、複製決定部312と異なる。よってここでは、連携部313、複製決定部314の機能に着目した説明を行う。 As shown in FIG. 6, the cache server 302 of the second embodiment is substantially the same as the cache server 301 of the first embodiment, but the functions of the linkage unit 313 and the replication determination unit 314 are the same as those of the linkage unit 311 of the first embodiment. This is different from the replication determination unit 312. Therefore, here, an explanation will be given focusing on the functions of the cooperation unit 313 and the replication determination unit 314.
 複製決定部314は、第1実施形態の複製決定部312とほぼ同じ機能を備えるが、コンテンツの複製を決定した際に、複製対象となるコンテンツを決定すると共に、複製数も決定する。より具体的に説明すると、連携部313対しコンテンツの複製を指示するよう通知する際に、コンテンツ識別子に加え、複製数の情報も含める。 The duplication determination unit 314 has substantially the same function as the duplication determination unit 312 of the first embodiment, but when the duplication of content is decided, the duplication target content and the number of duplications are also decided. More specifically, when notifying the cooperation unit 313 to instruct the copying of content, information on the number of copies is included in addition to the content identifier.
 複製決定部314は、複製数を決定する上で、キャッシュサーバ間連携によるアクセス数や同時接続数を参照する。これらの値が閾値を大きく超えた場合等、早急にシステム中のコンテンツの複製を増やす必要が生じた場合、緊急の度合いに応じて複製数を大きな値とすることができる。 The replication determining unit 314 refers to the number of accesses and the number of simultaneous connections by cooperation between cache servers when determining the number of replicas. When it becomes necessary to increase the number of copies of content in the system immediately, such as when these values greatly exceed the threshold, the number of copies can be increased according to the degree of urgency.
 連携部313は、第1実施形態の連携部311とほぼ同じ機能を備える。また、連携部313は、複製決定部314から通知された複製数、又は他のキャッシュサーバからのコンテンツ応答としてコンテンツ複製の指示を示す情報と共に格納された複製数のいずれかを受け取る。そして、受け取った複製数に基づき、他のキャッシュサーバが、複製対象となるコンテンツを要求してきた場合には、そのコンテンツの複製を指示する。また、必要に応じて複製数情報も格納することで、さらに他のキャッシュサーバ302にもコンテンツの複製の指示を依頼する。 The cooperation unit 313 has substantially the same function as the cooperation unit 311 of the first embodiment. Further, the linkage unit 313 receives either the number of copies notified from the copy determination unit 314 or the number of copies stored together with information indicating a content copy instruction as a content response from another cache server. Then, based on the received number of copies, when another cache server requests content to be copied, it instructs to copy the content. Further, by storing the number-of-replications information as required, it requests the other cache server 302 to instruct to copy the contents.
 以上説明した、連携部313、複製決定部314は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。 The cooperation unit 313 and the replication determination unit 314 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
 第2実施形態のキャッシュサーバ302の処理の流れは、図3、図4で示した第1実施形態のキャッシュサーバ301の処理の流れとほぼ同じである。ただし、キャッシュサーバ302は、複製指示を決定する際に、複製数も同時に決定する点が図3に示す処理と異なる。また、キャッシュサーバ302は、通知された複製数に応じて、他のキャッシュサーバから要求されたコンテンツが複製対象だった場合、コンテンツを応答すると共にコンテンツの複製を指示する情報と共に、複製数情報を必要に応じて格納する点も異なる。 The processing flow of the cache server 302 of the second embodiment is almost the same as the processing flow of the cache server 301 of the first embodiment shown in FIGS. However, the cache server 302 is different from the process shown in FIG. 3 in that the copy number is determined at the same time when determining the copy instruction. In addition, when the content requested from another cache server is a copy target according to the notified copy number, the cache server 302 returns the copy number information together with information for responding the content and instructing the copy of the content. It is also different in that it is stored as necessary.
 また、キャッシュサーバ302の処理は、キャッシュサーバ間連携により他のキャッシュサーバから応答されたコンテンツに複製を指示する情報が含まれているか否か判定する際に、複製数情報の存在も確認する点が図4に示す処理と異なる。そして、複製数情報が格納されていた場合は、これを取得し、これをコンテンツ識別子と共に記録しておく。ここで記録された複製数情報は、上記したように、複製数情報に基づいて他のキャッシュサーバにコンテンツの複製を指示する際に参照される。 In addition, the processing of the cache server 302 also confirms the existence of the number of copies information when determining whether or not the content responded from the other cache servers by the cooperation between the cache servers includes information instructing the copy. Is different from the process shown in FIG. If the copy number information is stored, it is acquired and recorded together with the content identifier. As described above, the copy number information recorded here is referred to when instructing another cache server to copy the content based on the copy number information.
 第2実施形態の処理の流れをより明確にするため、図7のシーケンス図を用いて第2実施形態の分散キャッシュシステムの処理の流れを説明する。 In order to clarify the processing flow of the second embodiment, the processing flow of the distributed cache system of the second embodiment will be described using the sequence diagram of FIG.
 まず、ステップS500でキャッシュサーバ間連携による通信量が過剰気味となっている状況を想定する。過剰か否かの判定は、先に説明したとおり、例えば、キャッシュサーバ間連携によるコンテンツの同時配信数や通信帯域が、予め決めたおいた閾値を大きく超える場合が考えられる。ただし、同時配信数や、帯域の増加の早さ等、他の指標により過剰であること、又は過剰になりそうなことを判定してもよい。 First, it is assumed that the communication amount due to the cooperation between cache servers is excessive in step S500. As described above, the determination as to whether or not the number is excessive may be, for example, the case where the number of simultaneous content distributions and the communication bandwidth by cooperation between cache servers greatly exceed a predetermined threshold. However, it may be determined that it is excessive or likely to be excessive based on other indicators such as the number of simultaneous distributions and the speed of increase in bandwidth.
 この状態で、端末100は、キャッシュサーバ302aにコンテンツ要求を実施する(S501)。 In this state, the terminal 100 makes a content request to the cache server 302a (S501).
 キャッシュサーバ302aは、要求されたコンテンツを保持していない場合、そのコンテンツを保持するキャッシュサーバ(ここでは、キャッシュサーバ302bとする。コンテンツを保持するキャッシュサーバを順次的に探す手順はここでは関係ないので省略する。)に対してコンテンツの要求を実施し、要求先のキャッシュサーバ302bは、要求されたコンテンツをキャッシュサーバ302aに応答する。このとき、キャッシュサーバ302bは、キャッシュサーバ間連携が過剰に使用されていることから、コンテンツの複製の指示と共に、複製指示を他のキャッシュサーバに依頼するために、複製数をコンテンツ応答に格納する。そして、これをキャッシュサーバ302aに通知する(S502)。なお、ここでは算出された複製数が8の場合で、かつ、キャッシュサーバ302aに、8つの内の4つ分の複製指示を依頼することを想定している。4つ分のコンテンツ複製を依頼した後、キャッシュサーバ302bが当該コンテンツの複製指示をすべき数は、キャッシュサーバ302aに1つ複製が作られることも考慮し、3(=8-4-1)つとなる。 When the cache server 302a does not hold the requested content, the cache server holds the content (in this case, the cache server 302b. The procedure for sequentially searching for the cache server holding the content is irrelevant here. Therefore, the requested cache server 302b responds to the cache server 302a with the requested content. At this time, the cache server 302b stores the number of copies in the content response in order to request another cache server together with the content duplication instruction because the inter-cache server cooperation is excessively used. . Then, this is notified to the cache server 302a (S502). Here, it is assumed that the calculated number of replicas is 8, and that the cache server 302a is requested to request four of the eight replicas. After requesting four content copies, the number that the cache server 302b should instruct to copy the content is 3 (= 8-4-1) considering that one copy is made in the cache server 302a. Become one.
 キャッシュサーバ302aが、コンテンツ応答を受信すると、これを端末100に配信する(S503)。それと共に、複製指示に従い、キャッシュサーバ302aは、受信したコンテンツをキャッシュとして保持する(S504)。 When the cache server 302a receives the content response, it delivers it to the terminal 100 (S503). At the same time, according to the copy instruction, the cache server 302a holds the received content as a cache (S504).
 キャッシュサーバ302aはまた、キャッシュの複製数(=4)として複製の指示を依頼されたことで、他のキャッシュサーバにさらに4つ分のコンテンツの複製を指示するための契機を待つ。すなわち、他のキャッシュサーバから、複製対象のコンテンツを要求される契機を待つ。 The cache server 302a also waits for an opportunity to instruct another cache server to copy the content for four more contents when the copy instruction is requested as the number of cache copies (= 4). In other words, it waits for a request for the content to be copied from another cache server.
 ここで、ステップS505のように、キャッシュサーバ302cから複製対象のコンテンツが要求された場合には、複製指示を示す情報と、複製数を格納したコンテンツ応答をキャッシュサーバ302cに送信する。ステップS505の例では、キャッシュサーバ302aは、複製数に2を設定したものと想定する。この場合、キャッシュサーバ302aが複製対象のコンテンツに関して、複製指示すべき残り数は1となる(=4-複製を依頼した数2 -キャッシュサーバ302cへの複製1)。 Here, as shown in step S505, when content to be copied is requested from the cache server 302c, information indicating a copy instruction and a content response storing the number of copies are transmitted to the cache server 302c. In the example of step S505, it is assumed that the cache server 302a has set 2 as the number of copies. In this case, with respect to the content to be copied by the cache server 302a, the remaining number to be instructed to copy is 1 (= 4—number of copies requested 2—copy 1 to the cache server 302c).
 以上説明したとおり、第2実施形態では、複製の実施の決定に加え、複製数を決定し、決定された複製数に応じて、他のキャッシュサーバにも複製指示を依頼するよう構成した。
 このようにして、キャッシュサーバ間連携を過剰に使用している場合や、過剰な使用が予測される場合にも、高速にコンテンツの複製数を増やすことができ、システムが破綻する懸念を軽減できる。
As described above, in the second embodiment, in addition to the decision to execute replication, the number of replicas is determined, and according to the determined number of replicas, another cache server is also requested for a replication instruction.
In this way, the number of content copies can be increased at a high speed even when the cache server cooperation is excessively used or when excessive use is predicted, reducing the risk of system failure. .
<第3実施形態>
 次に、第3実施形態について図面を参照して詳細に説明する。第3実施形態では、キャッシュサーバ303以外の構成は第1実施形態と同じとなるため、ここでは、キャッシュシステム全体の図は省略する。
<Third Embodiment>
Next, a third embodiment will be described in detail with reference to the drawings. In the third embodiment, the configuration other than the cache server 303 is the same as that of the first embodiment, and therefore, the illustration of the entire cache system is omitted here.
 第3実施形態のキャッシュサーバ303は、図8に示すように、第1実施形態のキャッシュサーバ301とほぼ同じだが、連携部315の機能が、第1実施形態の連携部311と異なる。よってここでは、連携部315の機能に着目した説明を行う。 As shown in FIG. 8, the cache server 303 of the third embodiment is almost the same as the cache server 301 of the first embodiment, but the function of the linkage unit 315 is different from the linkage unit 311 of the first embodiment. Therefore, here, an explanation will be given focusing on the function of the cooperation unit 315.
 連携部315は、キャッシュサーバ間連携により、他のキャッシュサーバにコンテンツを要求する。そして、これが応答された際に、複製決定部312の機能により、コンテンツの複製が必要で、かつ、応答されたコンテンツが複製対象であった場合には、そのコンテンツをキャッシュとして記憶装置320に保持する点が第1実施形態の連携部311と異なる。それ以外は第1実施形態の連携部311と同様の機能を備える。 The cooperation unit 315 requests content from other cache servers by cooperation between the cache servers. When the response is made, if the copy of the content is required by the function of the copy determination unit 312 and the responded content is a copy target, the content is held in the storage device 320 as a cache. This is different from the cooperation unit 311 of the first embodiment. Other than that, it has the same function as the cooperation part 311 of 1st Embodiment.
 即ち、第1実施形態の連携部311は、複製が必要なコンテンツを要求された場合、コンテンツを要求された側のキャッシュサーバが、要求した側のキャッシュサーバに対してコンテンツの複製を指示する。これに対し、第3実施形態の連携部315は、コンテンツ要求元側で、コンテンツの複製の実施の必要性と、複製対象とするコンテンツを決定する点が異なっている。 That is, in the case where the content requiring replication is requested, the linkage unit 311 of the first embodiment instructs the requested cache server to copy the content to the requested cache server. On the other hand, the cooperation unit 315 of the third embodiment is different in that the content requesting side determines the necessity of copying the content and the content to be copied.
 以上説明した、連携部315は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。 The cooperation unit 315 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
 次に、図9のフローチャートを用いて第3実施形態のキャッシュサーバ303が、キャッシュサーバ間連携により、他のキャッシュサーバから配信されるコンテンツを受信した場合に、必要に応じてそのコンテンツをキャッシュする手順を説明する。 Next, when the cache server 303 according to the third embodiment receives the content distributed from another cache server by inter-cache server cooperation using the flowchart of FIG. 9, the content is cached as necessary. Explain the procedure.
 まず、ステップS600で、連携部315が他のキャッシュサーバからコンテンツを受信した契機に、複製決定部312における複製判定処理を開始する。 First, in step S600, when the cooperation unit 315 receives content from another cache server, the copy determination unit 312 starts the copy determination process.
 次に、ステップS601で、複製決定部312の機能の説明の箇所に記述したとおり、キャッシュサーバ間連携により同時に送受信しているコンテンツの数や、キャッシュサーバ間連携による帯域等を参照して、コンテンツの複製をすべきか否かを決定する。 Next, in step S601, as described in the description of the function of the replication determination unit 312, the number of contents simultaneously transmitted / received by inter-cache server cooperation, the bandwidth by inter-cache server cooperation, and the like are referred to. Decide whether or not to replicate.
 次に、ステップS602で、複製判定結果が評価され、複製する場合はステップS603が処理される(S602のY)、複製しない場合は処理を終了する(S602のN)。 Next, in step S602, the copy determination result is evaluated, and if copying is performed, step S603 is processed (Y in S602), and if not copied, the process is terminated (N in S602).
 ステップS603で、複製決定部312は、他のキャッシュサーバからのアクセス数等を評価指標として、複製対象とする1又は複数のコンテンツを決定する。 In step S603, the copy determination unit 312 determines one or more contents to be copied using the number of accesses from other cache servers as an evaluation index.
 次に、連携部315は、他のキャッシュサーバから受信したコンテンツが、ステップS603で決定した複製対象のコンテンツに含まれているか否か判定する(S604)。そして、含まれている場合はYに進みステップS605で当該コンテンツは、記憶装置320にキャッシュとして保持される。一方、ステップS604の判定で、受信したコンテンツが複製対象のコンテンツに含まれていないと判定された場合は、Nに進みキャッシュとして保持せず処理を終了する。 Next, the cooperation unit 315 determines whether or not the content received from another cache server is included in the content to be copied determined in step S603 (S604). If it is included, the process proceeds to Y, and the content is held as a cache in the storage device 320 in step S605. On the other hand, if it is determined in step S604 that the received content is not included in the content to be copied, the process proceeds to N and is not held as a cache, and the process ends.
 キャッシュサーバ303が端末100からコンテンツ要求を受信した際の処理の流れは、図4に示すステップS305からステップS306までの処理を、図9に示すステップS600からステップS605までの処理で置き換えたものとなる。 The processing flow when the cache server 303 receives a content request from the terminal 100 is obtained by replacing the processing from step S305 to step S306 shown in FIG. 4 with the processing from step S600 to step S605 shown in FIG. Become.
 次に、図10のシーケンス図を用いて、キャッシュサーバ303aが、端末100から要求されたコンテンツをキャッシュサーバ303cから取得し、そのコンテンツを複製判定結果に基づきキャッシュとして保持するまでの処理の流れを説明する。 Next, referring to the sequence diagram of FIG. 10, the processing flow until the cache server 303a acquires the content requested from the terminal 100 from the cache server 303c and holds the content as a cache based on the copy determination result. explain.
 ここでの説明にあたり、端末100aは、キャッシュサーバ303a配下に収容された端末であり、当該端末がコンテンツを要求するものとする。そして、要求されたコンテンツは、キャッシュサーバ303aで保持されておらず、キャッシュサーバ301cで保持されている状況を想定する。 In this description, it is assumed that the terminal 100a is a terminal accommodated under the cache server 303a, and the terminal requests content. Assume that the requested content is not held by the cache server 303a but is held by the cache server 301c.
 はじめにステップS700で、端末100aのコンテンツ要求をキャッシュサーバ303aが受信する。キャッシュサーバ303aは、要求されたコンテンツをキャッシュとして保持していなので、連携候補のキャッシュサーバから選ばれたキャッシュサーバ303bに対してコンテンツを要求する。しかし、キャッシュサーバ303bは、要求されたコンテンツを保持していないので、”コンテンツ無し”をキャッシュサーバ303aに応答する(S701)。 First, in step S700, the cache server 303a receives a content request from the terminal 100a. Since the cache server 303a holds the requested content as a cache, the cache server 303a requests the content from the cache server 303b selected from the cooperation candidate cache servers. However, since the cache server 303b does not hold the requested content, “no content” is returned to the cache server 303a (S701).
 そこでキャッシュサーバ303aは、次の候補であるキャッシュサーバ303cに対して、コンテンツを要求する(S702)。 Therefore, the cache server 303a requests content from the next candidate cache server 303c (S702).
 キャッシュサーバ303cは、ステップS702でコンテンツ要求を受信すると、要求されたコンテンツを保持しているため、当該コンテンツをキャッシュサーバ303aに応答する(S703)。 When the cache server 303c receives the content request in step S702, the cache server 303c holds the requested content, and therefore responds to the cache server 303a with the content (S703).
 キャッシュサーバ303aは、コンテンツ応答を受信すると、これを端末100aへと応答すると共に(S704)、図9に示すフローチャートに従い、受信したコンテンツをキャッシュすべきか否かの判定を行う。そして、キャッシュすべきと判断された場合は、当該コンテンツをキャッシュとして保持する(S704)。 Upon receiving the content response, the cache server 303a responds to the terminal 100a (S704), and determines whether the received content should be cached according to the flowchart shown in FIG. If it is determined that the content should be cached, the content is held as a cache (S704).
 以上説明したとおり、第3実施形態では、キャッシュサーバがキャッシュサーバ間連携によりコンテンツを他のキャッシュサーバから受信した際に、コンテンツを受信したキャッシュサーバ側がキャッシュすべきか否かの判定を行う構成とした。このようにして、コンテンツ応答する側のキャッシュサーバは、コンテンツ応答に複製を指示する情報を格納する必要がなくなる。このため、キャッシュサーバ間でコンテンツをやり取りするプロトコルとして、HTTP等、既存のプロトコルを再利用する場合において、既存のプロトコルへの変更が不要となるため、本発明に係わるキャッシュシステムの適用が容易となる。 As described above, in the third embodiment, when a cache server receives content from another cache server through cooperation between cache servers, the cache server that receives the content determines whether or not to cache. . In this way, the cache server on the content response side does not need to store information instructing copying in the content response. For this reason, when the existing protocol such as HTTP is reused as a protocol for exchanging contents between the cache servers, it is not necessary to change the existing protocol, so that the cache system according to the present invention can be easily applied. Become.
<第4実施形態>
 次に、第4実施形態について図面を参照して詳細に説明する。第4実施形態の分散キャッシュシステムの全体図を図11に示す。ここで名称や、番号が同じ装置やネットワークは、第1実施形態の分散キャッシュシステムの全体図(図1)と同じなので、ここでは説明を省略する。
<Fourth embodiment>
Next, a fourth embodiment will be described in detail with reference to the drawings. An overall view of the distributed cache system of the fourth embodiment is shown in FIG. Here, the devices and networks having the same names and numbers are the same as in the overall view (FIG. 1) of the distributed cache system of the first embodiment, and thus the description thereof is omitted here.
 本発明の第1実施形態に係わる分散キャッシュシステムと異なるのは、キャッシュサーバ304と、管理サーバ401である。 The cache server 304 and the management server 401 are different from the distributed cache system according to the first embodiment of the present invention.
 第4実施形態のキャッシュサーバ304は、図12に示すように、第1実施形態のキャッシュサーバ301に加え、さらに情報交換部316を備える。また、連携部317の機能が第1実施形態の連携部311と少し異なる。その他の機能ブロックは第1実施形態のキャッシュサーバ301の構成と同じなので説明を省略する。 As shown in FIG. 12, the cache server 304 according to the fourth embodiment further includes an information exchange unit 316 in addition to the cache server 301 according to the first embodiment. Moreover, the function of the cooperation part 317 is a little different from the cooperation part 311 of 1st Embodiment. The other functional blocks are the same as the configuration of the cache server 301 of the first embodiment, and a description thereof will be omitted.
 情報交換部316は、記憶装置320に保持されたコンテンツのリストを管理サーバ401に通知する機能を有すると共に、管理サーバ401から他のキャッシュサーバ304が保持するコンテンツのリストを取得し、これを記憶装置320に記録する。この際、記憶装置320には、キャッシュサーバ304の識別子と、当該キャッシュサーバが保持するコンテンツのリストが対応付けられて記録される。 The information exchanging unit 316 has a function of notifying the management server 401 of a list of contents held in the storage device 320, acquires a list of contents held by another cache server 304 from the management server 401, and stores this list Record in device 320. At this time, the storage device 320 records the identifier of the cache server 304 in association with the list of contents held by the cache server.
 情報交換部316が、コンテンツリストを管理サーバに通知するタイミングや、他のキャッシュサーバのコンテンツリストを取得する契機については、例えば、定期的にコンテンツリストの一部又は全てを通知、及び取得するようにしても構わない。また、記憶装置320にコンテンツがキャッシュとして保持されたタイミング、又は記憶装置320の容量が残り少なくなったこと等を理由として、キャッシュが削除されたタイミングで保持するようにしてもよい。または、削除されたコンテンツの情報を管理サーバ401に通知することとしてもよい。さらに、端末100からコンテンツを要求された契機に、要求されたコンテンツの他のキャッシュサーバの保持状況を、管理サーバ401から取得することとしてもよい。 As for the timing at which the information exchange unit 316 notifies the management server of the content list and the opportunity to acquire the content list of another cache server, for example, a part or all of the content list is periodically notified and acquired. It doesn't matter. Further, it may be held at the timing when the cache is deleted because the content is held in the storage device 320 as a cache, or because the capacity of the storage device 320 is low. Alternatively, the management server 401 may be notified of deleted content information. Furthermore, when the content is requested from the terminal 100, the holding status of another requested cache server of the requested content may be acquired from the management server 401.
 連携部317は、本発明の第1実施形態に係わる連携部311とほぼ同じ機能を有する。また、連携部317は、コンテンツの要求先のキャッシュサーバを決定する際、記憶装置320に記録された他のキャッシュサーバのコンテンツリストを参照する。そして、要求対象のコンテンツを保持するキャッシュサーバを特定した上で、特定されたキャッシュサーバのうちのいずれかをコンテンツ要求先として決定する。これにより、順次的な方法で要求対象のコンテンツを保持するキャッシュサーバを発見する必要はなくなるため、より効率的なキャッシュサーバ間連携が可能となる。 The cooperation unit 317 has substantially the same function as the cooperation unit 311 according to the first embodiment of the present invention. Further, when determining the content requesting cache server, the linkage unit 317 refers to the content list of another cache server recorded in the storage device 320. Then, after specifying a cache server that holds the requested content, one of the specified cache servers is determined as a content request destination. This eliminates the need to find a cache server that holds the requested content in a sequential manner, thus enabling more efficient cooperation between cache servers.
 管理サーバ401は、キャッシュサーバ304から通知されたコンテンツリストを保持する。また、キャッシュサーバ304からの要求に応じて、キャッシュシステム中のキャッシュサーバ304のコンテンツリストを応答する。情報交換量を削減するため、応答するコンテンツリストを、コンテンツリストを要求してきたキャッシュサーバ304の周辺のキャッシュサーバについてのコンテンツリストに限定する等、応答する情報を一部に限定することとしてもよい。 The management server 401 holds the content list notified from the cache server 304. In response to a request from the cache server 304, a content list of the cache server 304 in the cache system is returned. In order to reduce the amount of information exchange, the responding content list may be limited to a part of the information to be responded, such as limiting the content list to the content list for the cache servers around the cache server 304 that has requested the content list. .
 本発明の第4実施形態に係わるキャッシュシステムは、管理サーバ401を介して、コンテンツリストを共有することで、より円滑なキャッシュサーバ間連携が可能となるが、一方で、管理サーバ401が必要となり、管理サーバ401とキャッシュサーバ304との間での通信が発生する。しかしこの場合でも、背景技術の問題として挙げた管理サーバの計算負荷、及び通信負荷は、ここでは大きな問題とならない。その理由は、第4実施形態の管理サーバ401の備える機能が、限定的な情報を仲介する機能に絞られているためである。より具体的には、情報交換すべき情報は、コンテンツリストに限定されており、また、管理サーバ401では、各キャッシュサーバへのコンテンツ配置の計算と、計算されたコンテンツ配置にするためにキャッシュサーバを制御する必要がないためである。 In the cache system according to the fourth embodiment of the present invention, the content list is shared via the management server 401, thereby enabling smooth cooperation between the cache servers. On the other hand, the management server 401 is necessary. Communication between the management server 401 and the cache server 304 occurs. However, even in this case, the calculation load and communication load of the management server, which are listed as problems in the background art, are not a big problem here. This is because the functions of the management server 401 of the fourth embodiment are limited to functions that mediate limited information. More specifically, the information to be exchanged is limited to the content list, and the management server 401 calculates the content allocation to each cache server and uses the cache server for the calculated content allocation. This is because there is no need to control.
 以上説明した、情報交換部316、連携部317は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。 The information exchange unit 316 and linkage unit 317 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
 管理サーバ401は、上述した機能をソフトウェアで実装し、CPUや、記憶装置を搭載したサーバ上で実施できる The management server 401 can be implemented on a server equipped with a CPU or storage device with the above-described functions implemented by software.
 本発明の第4実施形態に係わるキャッシュサーバ304の動作の流れは、図4で既に示した、第1実施形態のキャッシュサーバ301が、端末100からコンテンツ要求を受信した際の処理とほぼ同じとなる。異なるのは、ステップS302でコンテンツの要求先とするキャッシュサーバを発見に際して、管理サーバ401から取得したコンテンツリストを参照する点だけである。 The operation flow of the cache server 304 according to the fourth embodiment of the present invention is almost the same as the processing when the cache server 301 of the first embodiment receives a content request from the terminal 100, as already shown in FIG. Become. The only difference is that the content list acquired from the management server 401 is referred to when the cache server as the content request destination is found in step S302.
 第4実施形態に係わる分散キャッシュシステムでは、第1実施形態の分散キャッシュシステムに対して、管理サーバ401をさらに備える。キャッシュサーバ304は、管理サーバ401とコンテンツリストを交換するための情報交換部316を備える。連携部317は、情報交換部316により管理サーバ401から得た他のキャッシュサーバのコンテンツリストを利用して、コンテンツ要求先とするキャッシュサーバを決定する。この第1実施形態と第4実施形態の差分となる要素は、同じように、第2実施形態、第3実施形態の構成に対しても、第1実施形態と同様に適用できる。 The distributed cache system according to the fourth embodiment further includes a management server 401 compared to the distributed cache system of the first embodiment. The cache server 304 includes an information exchange unit 316 for exchanging content lists with the management server 401. The cooperation unit 317 uses the content list of another cache server obtained from the management server 401 by the information exchange unit 316 to determine a cache server as a content request destination. The elements that are the differences between the first embodiment and the fourth embodiment can be similarly applied to the configurations of the second embodiment and the third embodiment in the same manner as in the first embodiment.
 以上説明したとおり、第4実施形態では、キャッシュサーバは、他のキャッシュサーバからコンテンツを取得する際に、管理サーバにより得られたコンテンツリストを使って、コンテンツの要求先を決定することで、より効率的なキャッシュサーバ間連携を実現できる。 As described above, in the fourth embodiment, when acquiring content from another cache server, the cache server uses the content list obtained by the management server to determine the content request destination. Efficient linkage between cache servers can be realized.
<第5実施形態>
次に、第5実施形態について図面を参照して詳細に説明する。第5実施形態では、第4実施形態の管理サーバ401の機能を、各キャッシュサーバ305が分担する構成となる。よって、第5実施形態の分散キャッシュシステムでは管理サーバ401が不要となる。このため、第5実施形態の分散キャッシュシステムの構成は、第1実施形態と同様となるので、図は省略する。
<Fifth Embodiment>
Next, a fifth embodiment will be described in detail with reference to the drawings. In the fifth embodiment, the cache server 305 shares the functions of the management server 401 of the fourth embodiment. Therefore, the management server 401 is not necessary in the distributed cache system of the fifth embodiment. For this reason, the configuration of the distributed cache system of the fifth embodiment is the same as that of the first embodiment, and thus the figure is omitted.
 第5実施形態のキャッシュサーバ305は、図13に示すように、第4実施形態のキャッシュサーバ304に加え、さらに管理サーバ機能318を備える。 As shown in FIG. 13, the cache server 305 of the fifth embodiment further includes a management server function 318 in addition to the cache server 304 of the fourth embodiment.
 管理サーバ機能318は、第4実施形態における管理サーバ401が備える機能と同様に、他のキャッシュサーバ305の情報交換部316とコンテンツリストの情報を交換する。ただし、全てのコンテンツについてのリストを管理するのではなく一部のコンテンツを管理する点が、第4実施形態における管理サーバ401と異なっている。各キャッシュサーバ305の管理サーバ機能318が管理対象とするコンテンツを決定する方法は後述する。 The management server function 318 exchanges content list information with the information exchange unit 316 of the other cache server 305 in the same manner as the function of the management server 401 in the fourth embodiment. However, it is different from the management server 401 in the fourth embodiment in that a part of content is managed instead of managing a list of all content. A method for determining content to be managed by the management server function 318 of each cache server 305 will be described later.
 情報交換部316’は、基本的に第4実施形態の情報交換部316と同じ機能を備える。そして、情報交換部316’は、コンテンツリストの通知先、及び取得先とするのが管理サーバ401ではなく、他のキャッシュサーバ305の管理サーバ機能318である点が異なる。また、コンテンツ毎にコンテンツ通知先・取得先とするキャッシュサーバを決定する点が異なる。 The information exchange unit 316 ′ basically has the same function as the information exchange unit 316 of the fourth embodiment. The information exchanging unit 316 ′ is different in that the notification destination and acquisition destination of the content list are not the management server 401 but the management server function 318 of another cache server 305. Another difference is that a cache server as a content notification destination / acquisition destination is determined for each content.
 情報交換部316’が、コンテンツ毎にコンテンツリストの通知先・取得先とするキャッシュサーバを決定する方法の一例を以下に示す。 An example of a method in which the information exchanging unit 316 ′ determines a cache server as a content list notification destination and acquisition destination for each content is shown below.
 ここで、各キャッシュサーバには0から連続した値となるキャッシュサーバインデックス(CacheServerIndex)が割当てられている。そして、キャッシュサーバインデックスと分散キャッシュシステム中のキャッシュサーバの数(NumOfCacheServer)が、各キャッシュサーバで共有されているものとする。 Here, a cache server index (CacheServerIndex) that is a continuous value from 0 is assigned to each cache server. Assume that the cache server index and the number of cache servers (NumOfCacheServer) in the distributed cache system are shared by the cache servers.
 このとき、情報交換部316’は、コンテンツの識別子がContentIDであるコンテンツをキャッシュとして保持した契機、削除した契機、又は定期的な契機で、そのコンテンツの保持状態を通知するキャッシュサーバを決定する。その際、式(2)に示す計算によりキャッシュサーバインデックスを求める。そして、得られたキャッシュサーバインデックスが割り当てられたキャッシュサーバをコンテンツのコンテンツリスト通知先として決定する。 At this time, the information exchanging unit 316 ′ determines a cache server that notifies the holding state of the content when the content identifier whose content identifier is ContentID is held as a cache, when the content is deleted, or when the content is periodically deleted. At that time, the cache server index is obtained by the calculation shown in Expression (2). Then, the cache server to which the obtained cache server index is assigned is determined as the content list notification destination of the content.
Figure JPOXMLDOC01-appb-M000002
                  
Figure JPOXMLDOC01-appb-M000002
                  
 ここで、Hash(x)は、MD5や、SHA1等のハッシュ関数によりxのハッシュ値を算出する処理を示す。また、x%yは、xをyで割った際の剰余を意味する。 Here, Hash (x) indicates a process of calculating a hash value of x by a hash function such as MD5 or SHA1. X% y means a remainder when x is divided by y.
 あるコンテンツを保持しているキャッシュサーバの情報を取得するため、コンテンツのコンテンツリストを管理するキャッシュサーバを決定する場合にも、式2を使用する。即ち、式2により得られたキャッシュサーバインデックスが割り当てられたキャッシュサーバをコンテンツリスト取得先とする。 Formula 2 is also used when determining the cache server that manages the content list of content in order to acquire information on the cache server that holds a certain content. That is, the cache server to which the cache server index obtained by Expression 2 is assigned is set as the content list acquisition destination.
 上に示した、キャッシュリストの分担方法は、あくまで一例であり、他の方法でコンテンツリストを分担管理こととしても構わない。 The cache list sharing method shown above is merely an example, and the content list may be shared and managed by other methods.
 以上説明した、情報交換部316’、管理サーバ機能318は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。 The information exchange unit 316 'and the management server function 318 described above can be implemented by installing all of them in software and operating on the CPU. Alternatively, some or all of them can be configured by hardware.
 以上説明したとおり、第5実施形態では、管理サーバの機能を、各キャッシュサーバで分担管理することで、管理サーバがない場合でも、効率的なキャッシュサーバ間連携を実現できる。 As described above, in the fifth embodiment, efficient management between cache servers can be realized even if there is no management server by managing the functions of the management server by each cache server.
 第1実施形態に係わるキャッシュシステムは、各キャッシュサーバが内部的に得られる情報を使って、キャッシュサーバ間連携による負荷が過剰になったことを判定し、キャッシュサーバ間連携による負荷が過剰となっている主たる要因のコンテンツを特定し、そのコンテンツの複製を増やす。これにより、管理サーバがない場合でも、キャッシュサーバ間連携を過不足なく使用することができる。そして、適切なコンテンツ配置を算出するための通信負荷、及び処理負荷なく、キャッシュサーバ間連携による良好なキャッシュヒット率が得られる分散キャッシュシステムを提供することができる。 The cache system according to the first embodiment uses information obtained internally by each cache server to determine that the load due to cooperation between cache servers has become excessive, and the load due to cooperation between cache servers has become excessive. Identify content that is the main factor that you have, and increase duplication of that content. Thereby, even when there is no management server, inter-cache server cooperation can be used without excess or deficiency. In addition, it is possible to provide a distributed cache system that can obtain a good cache hit rate by cooperation between cache servers without communication load and processing load for calculating an appropriate content arrangement.
 第2実施形態に係わるキャッシュシステムによれば、複製の実施の決定に加え、複製数を決定し、決定された複製数に応じて、他のキャッシュサーバにも複製指示を依頼するよう構成した。このようにして、キャッシュサーバ間連携を過剰に使用している場合や、過剰な使用が予測される場合にも、高速にコンテンツの複製数を増やすことができ、システムが破綻する懸念を軽減できる。 The cache system according to the second embodiment is configured to determine the number of replicas in addition to the determination of the execution of replication, and to request replication instructions from other cache servers according to the determined number of replicas. In this way, the number of content copies can be increased at a high speed even when the cache server cooperation is excessively used or when excessive use is predicted, reducing the risk of system failure. .
 第3実施形態係わるキャッシュシステムによれば、キャッシュサーバがキャッシュサーバ間連携によりコンテンツを他のキャッシュサーバから受信した際に、コンテンツを受信したキャッシュサーバ側がキャッシュすべきか否かの判定を行う構成とした。このようにして、コンテンツ応答する側のキャッシュサーバは、コンテンツ応答に複製を指示する情報を格納する必要がなくなる。
 このため、キャッシュサーバ間でコンテンツをやり取りするプロトコルとして、HTTP等、既存のプロトコルを再利用する場合において、既存のプロトコルへの変更が不要となるため、本発明の適用が容易となる。
According to the cache system according to the third embodiment, when a cache server receives content from another cache server by cooperation between cache servers, the cache server side that receives the content determines whether or not to cache. . In this way, the cache server on the content response side does not need to store information instructing copying in the content response.
For this reason, when an existing protocol such as HTTP is reused as a protocol for exchanging contents between cache servers, it is not necessary to change the existing protocol, so that the present invention can be easily applied.
 第4実施形態に係わるキャッシュシステムによれば、キャッシュサーバは、他のキャッシュサーバからコンテンツを取得する際に、管理サーバにより得られたコンテンツリストを使って、コンテンツの要求先を決定することで、より効率的なキャッシュサーバ間連携を実現できる。 According to the cache system according to the fourth embodiment, when the cache server acquires content from another cache server, the content server obtained by the management server is used to determine the content request destination. More efficient linkage between cache servers can be realized.
 第5実施形態に係わるキャッシュシステムによれば、管理サーバの機能を、各キャッシュサーバで分担管理することで、管理サーバがない場合でも、効率的なキャッシュサーバ間連携を実現できる。 According to the cache system according to the fifth embodiment, by efficiently managing the functions of the management server by each cache server, even when there is no management server, efficient cooperation between cache servers can be realized.
 本発明に係わる分散キャッシュシステムを、固定ISPのネットワーク、又はモバイルネットワークに適用することで、分散キャッシュシステムにおけるキャッシュサーバ間連携を活用した高いキャッシュヒット率を得ることができる。これにより、相互接続点(POI:Point Of Interface)上のトラヒックを効果的に削減でき、ネットワークのオペレータはOPEX(OPeration EXpense)を削減できる。さらに、コンテンツの複製等の制御を分散処理できるようにしたことで、高いスケーラビリティと、高可用性が実現できる。 By applying the distributed cache system according to the present invention to a fixed ISP network or a mobile network, it is possible to obtain a high cache hit rate utilizing the cooperation between cache servers in the distributed cache system. Thereby, the traffic on an interconnection point (POI: Point Of Interface) can be reduced effectively, and the operator of the network can reduce OPEX (Operation Expense). In addition, high scalability and high availability can be realized by enabling distributed processing such as content copying.
 以上、本発明に係わるキャッシュシステムについて実施形態を用いて説明したが、本発明の技術的範囲は、上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 As described above, the cache system according to the present invention has been described using the embodiment. However, the technical scope of the present invention is not limited to the scope described in the above embodiment. It is apparent from the scope of the claims that embodiments in which various modifications or improvements are added to the above embodiments can also be included in the technical scope of the present invention.
 本願は、2011年9月30日に、日本に出願された特願2011-215850号に基づき優先権を主張し、その内容をここに援用する。 This application claims priority based on Japanese Patent Application No. 2011-215850 filed in Japan on September 30, 2011, the contents of which are incorporated herein by reference.
 本発明に係わるキャッシュシステムによれば、管理サーバを必須とせず、個々のキャッシュサーバが持ちうる情報に基づき効果的なキャッシュサーバ間連携を実現し得るキャッシュシステム、キャッシュ方法、及びキャッシュサーバを提供することができる。 According to the cache system according to the present invention, there is provided a cache system, a cache method, and a cache server that do not require a management server and can realize an effective cooperation between cache servers based on information that each cache server can have. be able to.
 1  ネットワーク
 2  ネットワーク
 100  端末
 200  オリジンサーバ
 301  キャッシュサーバ
 302  キャッシュサーバ
 303  キャッシュサーバ
 304  キャッシュサーバ
 305  キャッシュサーバ
 310  配信部
 311  連携部
 312  複製決定部
 313  連携部
 314  複製決定部
 315  連携部
 316  情報交換部
 316’  情報交換部
 317  連携部
 318  管理サーバ機能
 320  記憶装置
 401  管理サーバ
DESCRIPTION OF SYMBOLS 1 Network 2 Network 100 Terminal 200 Origin server 301 Cache server 302 Cache server 303 Cache server 304 Cache server 304 Cache server 305 Cache server 310 Distribution part 311 Cooperation part 312 Replication determination part 313 Cooperation part 314 Replication determination part 315 Cooperation part 316 Information exchange part 316 ' Information exchange unit 317 Cooperation unit 318 Management server function 320 Storage device 401 Management server

Claims (30)

  1.  オリジンサーバと、
     端末から要求されたコンテンツを、前記オリジンサーバの代わりに配信する複数のキャッシュサーバと
    を備え、
     前記キャッシュサーバは、
     前記端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して前記端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御を行うキャッシュシステム。
    An origin server,
    A plurality of cache servers that deliver the content requested from the terminal instead of the origin server;
    The cache server is
    An index indicating a load caused by transmitting / receiving content to / from another cache server when the content requested from the terminal is not held and acquired from another cache server holding the content and distributed to the terminal -Based cache system that controls content replication.
  2.  前記指標は、キャッシュサーバ間でのコンテンツ送受信に関わるトラヒック量、キャッシュサーバ間の同時セッション数、キャッシュサーバの通信インタフェース使用量、CPU使用率の少なくともいずれかにより得られた指標である請求項1に記載のキャッシュシステム。 The index is an index obtained from at least one of a traffic amount related to content transmission / reception between cache servers, the number of simultaneous sessions between cache servers, a communication interface usage amount of a cache server, and a CPU usage rate. The described cache system.
  3.  前記キャッシュサーバは、コンテンツの複製を決定する際に、少なくとも、前記キャッシュサーバが保持するコンテンツへのアクセス数、コンテンツのサイズのいずれかに基づいて、複製対象とする1又は複数のコンテンツを決定する請求項1又は2に記載のキャッシュシステム。 When determining the copy of content, the cache server determines one or more contents to be copied based on at least the number of accesses to the content held by the cache server and the size of the content The cache system according to claim 1 or 2.
  4.  前記キャッシュサーバはコンテンツの複製の実施を決定し、複製対象とする1又は複数のコンテンツを決定した後で、前記キャッシュシステムを構成する他のキャッシュサーバから前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する請求項3に記載のキャッシュシステム。 The cache server decides to copy the content, determines one or more contents to be copied, and then determines the cache server from the other cache servers that constitute the cache system. 4. The cache system according to claim 3, wherein when any one of the contents is requested, a cache server as a content request source is instructed to respond with the contents and hold the contents as a cache. .
  5.  前記キャッシュサーバは、コンテンツの複製の実施を決定した際に、複製対象とする1又は複数のコンテンツを決定すると共に、コンテンツの複製数を決定し、
     前記キャッシュシステムを構成する他のキャッシュサーバから、前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する情報に加え、前記決定したコンテンツ複製数のうち、前記要求元のキャッシュサーバに複製の指示を依頼する数に設定した複製数を通知し、
     前記コンテンツの要求元のキャッシュサーバは、前記複製数を受信すると、複製数分の複製の指示を依頼されたものとして、複製数の分だけ、他のキャッシュサーバにコンテンツの複製を指示するか、又は他のキャッシュサーバに複製数を通知することで、コンテンツの複製の指示を依頼する請求項4に記載のキャッシュシステム。
    The cache server determines one or more contents to be copied when determining to copy the contents, and determines the number of copies of the contents,
    When any one of the determined contents is requested to the cache server from another cache server that constitutes the cache system, the content is requested to the cache server that is a content request source. In addition to the information instructing to hold the content as a cache, the number of copies set to the number of requests to request a copy from the requesting cache server among the determined number of content copies is notified. ,
    When the content requesting cache server receives the number of copies, it is instructed to copy the content to the other cache server as many copies as the number of copies requested, Alternatively, the cache system according to claim 4, wherein a content duplication instruction is requested by notifying another cache server of the number of copies.
  6.  前記キャッシュサーバは、他のキャッシュサーバにコンテンツを要求する際に、前記要求に、前記キャッシュサーバの記憶容量の空き情報、CPU使用状況、通信インタフェース使用量、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数、の少なくともいずれかをキャッシュサーバ負荷情報として格納し、
     前記キャッシュサーバのコンテンツ要求を受信したキャッシュサーバは、前記コンテンツ要求から取得した前記キャッシュサーバ負荷情報に基づき、コンテンツ複製指示の対象とするキャッシュサーバを決定する請求項4に記載のキャッシュシステム。
    When the cache server requests content from another cache server, the request relates to free information on the storage capacity of the cache server, CPU usage status, communication interface usage, and content transmission / reception with another cache server. Store at least one of the traffic volume and the number of simultaneous connections as cache server load information,
    5. The cache system according to claim 4, wherein the cache server that has received the content request of the cache server determines a cache server to be a content duplication instruction based on the cache server load information acquired from the content request.
  7.  前記キャッシュサーバは、他のキャッシュサーバからコンテンツを取得した際に、取得したコンテンツが複製対象として決定したコンテンツに含まれていた場合は、前記コンテンツをキャッシュとして保持する請求項3に記載のキャッシュシステム。 4. The cache system according to claim 3, wherein when the content is acquired from another cache server and the acquired content is included in the content determined as a copy target, the cache server holds the content as a cache. .
  8.  前記キャッシュサーバは、端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、順次的な方法、又は同報的な方法により、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項1又は2に記載のキャッシュシステム。 The cache server holds the requested content by a sequential method or a broadcast method when content is requested from a terminal and the cache server does not hold the content. The cache system according to claim 1, wherein a cache server is found.
  9.  前記キャッシュサーバは、自キャッシュサーバが保持するコンテンツ情報を管理サーバに通知し、
     前記キャッシュサーバが端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、前記管理サーバから得られた情報に基づき、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項1又は2に記載のキャッシュシステム。
    The cache server notifies the management server of content information held by the cache server;
    When the cache server requests content from the terminal and the self-cache server does not hold the content, the cache server holds the requested content based on information obtained from the management server. The cache system according to claim 1, wherein a cache server is found.
  10.  前記管理サーバに相当する機能を、各キャッシュサーバが分担し、各キャッシュサーバは、コンテンツの識別子に基づいて、コンテンツ毎にコンテンツの保有情報を管理を担当するキャッシュサーバを決定する請求項9に記載のキャッシュシステム。 The function corresponding to the management server is shared by each cache server, and each cache server determines a cache server in charge of managing content holding information for each content based on a content identifier. Cache system.
  11.  オリジンサーバと、端末から要求されたコンテンツを、前記オリジンサーバの代わりに配信する複数のキャッシュサーバとを備えるキャッシュシステムにおけるキャッシュ方法であって、
     前記キャッシュサーバは、
     前記端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して前記端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御を行う。
    A cache method in a cache system comprising: an origin server; and a plurality of cache servers that deliver content requested from a terminal instead of the origin server,
    The cache server is
    An index indicating a load caused by transmitting / receiving content to / from another cache server when the content requested from the terminal is not held and acquired from another cache server holding the content and distributed to the terminal Based on the above, the content duplication is controlled.
  12.  前記指標は、キャッシュサーバ間でのコンテンツ送受信に関わるトラヒック量、キャッシュサーバ間の同時セッション数、キャッシュサーバの通信インタフェース使用量、CPU使用率の少なくともいずれかにより得られた指標である請求項11に記載のキャッシュ方法。 12. The index is obtained by at least one of a traffic amount related to content transmission / reception between cache servers, the number of simultaneous sessions between cache servers, a communication interface usage amount of a cache server, and a CPU usage rate. The described caching method.
  13.  前記キャッシュサーバは、コンテンツの複製を決定する際に、少なくとも、前記キャッシュサーバが保持するコンテンツへのアクセス数、コンテンツのサイズのいずれかに基づいて、複製対象とする1又は複数のコンテンツを決定する請求項11又は12に記載のキャッシュ方法。 When determining the copy of content, the cache server determines one or more contents to be copied based on at least the number of accesses to the content held by the cache server and the size of the content The cache method according to claim 11 or 12.
  14.  前記キャッシュサーバはコンテンツの複製の実施を決定し、複製対象とする1又は複数のコンテンツを決定した後で、前記キャッシュ方法を構成する他のキャッシュサーバから前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する請求項13に記載のキャッシュ方法。 The cache server decides to copy the content, and after determining one or more contents to be copied, the cache server determines the determined content from another cache server constituting the cache method to the cache server. The cache method according to claim 13, wherein when any one of the contents is requested, a cache server as a content request source is instructed to respond with the contents and hold the contents as a cache. .
  15.  前記キャッシュサーバは、コンテンツの複製の実施を決定した際に、複製対象とする1又は複数のコンテンツを決定すると共に、コンテンツの複製数を決定し、
     前記キャッシュ方法を構成する他のキャッシュサーバから、前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する情報に加え、前記決定したコンテンツ複製数のうち、前記要求元のキャッシュサーバに複製の指示を依頼する数に設定した複製数を通知し、
     前記コンテンツの要求元のキャッシュサーバは、前記複製数を受信すると、複製数分の複製の指示を依頼されたものとして、複製数の分だけ、他のキャッシュサーバにコンテンツの複製を指示するか、又は他のキャッシュサーバに複製数を通知することで、コンテンツの複製の指示を依頼する請求項14に記載のキャッシュ方法。
    The cache server determines one or more contents to be copied when determining to copy the contents, and determines the number of copies of the contents,
    When any one of the determined contents is requested from the other cache server constituting the cache method to the cache server, the content is requested to the cache server that is a content request source. In addition to the information instructing to hold the content as a cache, the number of copies set to the number of requests to request a copy from the requesting cache server among the determined number of content copies is notified. ,
    When the content requesting cache server receives the number of copies, it is instructed to copy the content to the other cache server as many copies as the number of copies requested, The cache method according to claim 14, wherein the content copy instruction is requested by notifying another cache server of the number of copies.
  16.  前記キャッシュサーバは、他のキャッシュサーバにコンテンツを要求する際に、前記要求に、前記キャッシュサーバの記憶容量の空き情報、CPU使用状況、通信インタフェース使用量、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数、の少なくともいずれかをキャッシュサーバ負荷情報として格納し、
     前記キャッシュサーバのコンテンツ要求を受信したキャッシュサーバは、前記コンテンツ要求から取得した前記キャッシュサーバ負荷情報に基づき、コンテンツ複製指示の対象とするキャッシュサーバを決定する請求項14に記載のキャッシュ方法。
    When the cache server requests content from another cache server, the request relates to free information on the storage capacity of the cache server, CPU usage status, communication interface usage, and content transmission / reception with another cache server. Store at least one of the traffic volume and the number of simultaneous connections as cache server load information,
    The cache method according to claim 14, wherein the cache server that has received the content request of the cache server determines a cache server that is a target of a content duplication instruction based on the cache server load information acquired from the content request.
  17.  前記キャッシュサーバは、他のキャッシュサーバからコンテンツを取得した際に、取得したコンテンツが複製対象として決定したコンテンツに含まれていた場合は、前記コンテンツをキャッシュとして保持する請求項13に記載のキャッシュ方法。 The cache method according to claim 13, wherein when the content is acquired from another cache server and the acquired content is included in the content determined as a copy target, the cache server holds the content as a cache. .
  18.  前記キャッシュサーバは、端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、順次的な方法、又は同報的な方法により、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項11又は12に記載のキャッシュ方法。 The cache server holds the requested content by a sequential method or a broadcast method when content is requested from a terminal and the cache server does not hold the content. The cache method according to claim 11, wherein a cache server is found.
  19.  前記キャッシュサーバは、自キャッシュサーバが保持するコンテンツ情報を管理サーバに通知し、
     前記キャッシュサーバが端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、前記管理サーバから得られた情報に基づき、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項11又は12に記載のキャッシュ方法。
    The cache server notifies the management server of content information held by the cache server;
    When the cache server requests content from the terminal and the self-cache server does not hold the content, the cache server holds the requested content based on information obtained from the management server. The cache method according to claim 11 or 12, wherein a cache server is found.
  20.  前記管理サーバに相当する機能を、各キャッシュサーバが分担し、各キャッシュサーバは、コンテンツの識別子に基づいて、コンテンツ毎にコンテンツの保有情報を管理を担当するキャッシュサーバを決定する請求項19に記載のキャッシュ方法。 20. The function corresponding to the management server is shared by each cache server, and each cache server determines a cache server in charge of managing content holding information for each content based on a content identifier. Caching method.
  21.  端末から要求されたコンテンツを、オリジンサーバの代わりに配信するキャッシュサーバであって、
     前記端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して前記端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御を行うキャッシュサーバ。
    A cache server that delivers content requested from the terminal instead of the origin server,
    An index indicating a load caused by transmitting / receiving content to / from another cache server when the content requested from the terminal is not held and acquired from another cache server holding the content and distributed to the terminal A cache server that controls content duplication based on.
  22.  前記指標は、キャッシュサーバ間でのコンテンツ送受信に関わるトラヒック量、キャッシュサーバ間の同時セッション数、キャッシュサーバの通信インタフェース使用量、CPU使用率の少なくともいずれかにより得られた指標である請求項21に記載のキャッシュサーバ。 The index is obtained by at least one of a traffic amount related to content transmission / reception between cache servers, the number of simultaneous sessions between cache servers, a communication interface usage amount of a cache server, and a CPU usage rate. The listed cache server.
  23.  コンテンツの複製を決定する際に、少なくとも、前記キャッシュサーバが保持するコンテンツへのアクセス数、コンテンツのサイズのいずれかに基づいて、複製対象とする1又は複数のコンテンツを決定する請求項21又は22に記載のキャッシュサーバ。 23. The content to be copied is determined based on at least one of the number of accesses to the content held by the cache server and the size of the content when determining the copy of the content. The cache server described in.
  24.  コンテンツの複製の実施を決定し、複製対象とする1又は複数のコンテンツを決定した後で、前記キャッシュサーバを構成する他のキャッシュサーバから前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する請求項23に記載のキャッシュサーバ。 After deciding to duplicate the content and determining one or more contents to be duplicated, the other cache servers that constitute the cache server send the cache server to the cache server. 24. The cache server according to claim 23, wherein when any content is requested, the cache server that is a content request source is instructed to respond to the content and hold the content as a cache.
  25.  前記コンテンツの応答を受信すると、複製指示に従って、コンテンツ応答により得られたコンテンツ端末に配信すると共に、キャッッシュとして保持する請求項24に記載のキャッシュサーバ。 25. The cache server according to claim 24, wherein when the response of the content is received, the content is distributed to the content terminal obtained by the content response according to the duplication instruction and held as a cache.
  26.  コンテンツの複製の実施を決定した際に、複製対象とする1又は複数のコンテンツを決定すると共に、コンテンツの複製数を決定し、
     前記キャッシュサーバを構成する他のキャッシュサーバから、前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する情報に加え、前記決定したコンテンツ複製数のうち、前記要求元のキャッシュサーバに複製の指示を依頼する数に設定した複製数を通知する請求項24に記載のキャッシュサーバ。
    When deciding to duplicate content, determine one or more content to be duplicated, determine the number of content duplicates,
    When any one of the determined contents is requested to the cache server from another cache server constituting the cache server, the content is requested to the cache server that is a content request source. In addition to information instructing to hold the content as a cache, the number of copies set to the number of requested copy requests to the cache server of the request among the determined number of content copies is notified. The cache server according to claim 24.
  27.  前記コンテンツの要求を受信すると、複製数分の複製の指示を依頼されたものとして、複製数の分だけ、他のキャッシュサーバにコンテンツの複製を指示するか、又は他のキャッシュサーバに複製数を通知することで、コンテンツの複製の指示を依頼する請求項26に記載のキャッシュサーバ。 When the content request is received, it is assumed that the copy instruction for the number of copies is requested, the other cache server is instructed to copy the content, or the other cache server is set with the copy number. 27. The cache server according to claim 26, wherein the cache server requests an instruction to copy the content by notifying.
  28.  他のキャッシュサーバにコンテンツを要求する際に、前記要求に、前記キャッシュサーバの記憶容量の空き情報、CPU使用状況、通信インタフェース使用量、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数、の少なくともいずれかをキャッシュサーバ負荷情報として格納する請求項24に記載のキャッシュサーバ。 When requesting content from another cache server, the request includes free information on the storage capacity of the cache server, CPU usage, communication interface usage, traffic related to content transmission / reception with other cache servers, and simultaneous connection. The cache server according to claim 24, wherein at least one of the numbers is stored as cache server load information.
  29.  前記コンテンツの要求を受信した場合、前記コンテンツの要求から取得した前記負荷を示す指標に基づき、コンテンツ複製指示の対象とするキャッシュサーバを決定する請求項24に記載のキャッシュサーバ。 25. The cache server according to claim 24, wherein when the content request is received, a cache server that is a target of content duplication instruction is determined based on an index indicating the load acquired from the content request.
  30.  他のキャッシュサーバからコンテンツを取得した際に、取得したコンテンツが複製対象として決定したコンテンツに含まれていた場合は、前記コンテンツをキャッシュとして保持する請求項23に記載のキャッシュサーバ。
     
    24. The cache server according to claim 23, wherein when content is acquired from another cache server, if the acquired content is included in content determined as a copy target, the content is retained as a cache.
PCT/JP2012/073345 2011-09-30 2012-09-12 Cache system, cache method, and cache server WO2013047207A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011215850 2011-09-30
JP2011-215850 2011-09-30

Publications (1)

Publication Number Publication Date
WO2013047207A1 true WO2013047207A1 (en) 2013-04-04

Family

ID=47995241

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/073345 WO2013047207A1 (en) 2011-09-30 2012-09-12 Cache system, cache method, and cache server

Country Status (2)

Country Link
JP (1) JPWO2013047207A1 (en)
WO (1) WO2013047207A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509053A (en) * 2014-02-19 2017-03-30 レベル スリー コミュニケーションズ,エルエルシー Content delivery network architecture with edge proxies
WO2019188695A1 (en) * 2018-03-28 2019-10-03 日本電信電話株式会社 Performance impact evaluation device and performance impact evaluation method
US10567493B2 (en) * 2015-08-20 2020-02-18 Verizon Digital Media Services Inc. Intelligent predictive stream caching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (en) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> Decentralized cache distributing method and medium storing decentralized cache distributing program
JP2005312064A (en) * 2005-04-28 2005-11-04 Nec Corp Network system, cache server, cache server control method, and recording medium
JP2006235736A (en) * 2005-02-22 2006-09-07 Ricoh Co Ltd Cache synchronous control method of cluster system
JP2010009448A (en) * 2008-06-30 2010-01-14 Nec Corp Distributed information arrangement system
JP2010113402A (en) * 2008-11-04 2010-05-20 Nippon Telegr & Teleph Corp <Ntt> Method and system for distributing content to cache server, and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4291284B2 (en) * 2005-03-03 2009-07-08 株式会社日立製作所 Cache system and cache server

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (en) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> Decentralized cache distributing method and medium storing decentralized cache distributing program
JP2006235736A (en) * 2005-02-22 2006-09-07 Ricoh Co Ltd Cache synchronous control method of cluster system
JP2005312064A (en) * 2005-04-28 2005-11-04 Nec Corp Network system, cache server, cache server control method, and recording medium
JP2010009448A (en) * 2008-06-30 2010-01-14 Nec Corp Distributed information arrangement system
JP2010113402A (en) * 2008-11-04 2010-05-20 Nippon Telegr & Teleph Corp <Ntt> Method and system for distributing content to cache server, and program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017509053A (en) * 2014-02-19 2017-03-30 レベル スリー コミュニケーションズ,エルエルシー Content delivery network architecture with edge proxies
US10264091B2 (en) 2014-02-19 2019-04-16 Level 3 Communications, Llc Proxy server failover and load clustering
US10367907B2 (en) 2014-02-19 2019-07-30 Level 3 Communications, Llc Content delivery network architecture with edge proxy
US10778801B2 (en) 2014-02-19 2020-09-15 Level 3 Communications, Llc Content delivery network architecture with edge proxy
US10938941B2 (en) 2014-02-19 2021-03-02 Level 3 Communications, Llc Proxy server failover and load clustering using hash value ranges and hash value calculations based on IP addresses
US11165879B2 (en) 2014-02-19 2021-11-02 Level 3 Communications, Llc Proxy server failover protection in a content delivery network
US10567493B2 (en) * 2015-08-20 2020-02-18 Verizon Digital Media Services Inc. Intelligent predictive stream caching
WO2019188695A1 (en) * 2018-03-28 2019-10-03 日本電信電話株式会社 Performance impact evaluation device and performance impact evaluation method
JP2019175067A (en) * 2018-03-28 2019-10-10 日本電信電話株式会社 Performance impact evaluation apparatus and performance impact evaluation method
US11526416B2 (en) 2018-03-28 2022-12-13 Nippon Telegraph And Telephone Corporation Performance impact evaluation device and performance impact evaluation method

Also Published As

Publication number Publication date
JPWO2013047207A1 (en) 2015-03-26

Similar Documents

Publication Publication Date Title
CN102523256B (en) Content management method, device and system
CN103581245B (en) A kind of method and system of content distributing network content distribution
US8396980B2 (en) Origin request with peer fulfillment
JP2004246632A (en) Data distributing server, program, and network system
CN100588172C (en) System and method for realizing network reserved storage
JP4938074B2 (en) Resource location information request method, user node and server for the method
JP2010504668A (en) Resource delivery method, system, and edge server
JP2010522386A (en) Method, system, and node for P2P content sharing
JP2015172954A (en) System and method for combining pull mode and push mode
WO2009152754A1 (en) Method, system and device for providing contents based on peer to peer network
JP2012504282A (en) Selective data transfer storage
JP5847185B2 (en) Content sharing method and apparatus using group change information in content-centric network environment
JP2007066161A (en) Cache system
CN102067094A (en) Cache optimzation
JP6601784B2 (en) Method, network component, and program for supporting context-aware content requests in an information-oriented network
KR20090097034A (en) Peer selction method and system in peer to peer communication
KR101573197B1 (en) Control method for transmitting distributed file based on P2Peer and P2P communication control apparatus therefor
US20110307564A1 (en) Data node apparatus, peer information acquisition method and system
US9781033B2 (en) Providing requested content in an overlay information centric networking (O-ICN) architecture
WO2013047207A1 (en) Cache system, cache method, and cache server
JP2011118593A (en) Data transfer server, data transfer system, data transfer method, and program
JP5399276B2 (en) Content distribution system and method and program
KR20130033252A (en) Method and system for end-to-end qos guaranteed content delivery on service overlay network
WO2013083085A1 (en) Data acquisition method and device
CN109644160B (en) Hybrid method for name resolution and producer selection in ICN by classification

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12835768

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013536154

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12835768

Country of ref document: EP

Kind code of ref document: A1