(57)【要約】分散型キャッシングオブジェクトを除去するための方法、システム、およびサーバ。本方法は、オブジェクトの識別子を含む除去依頼を受信する。本方法は、ハッシュ結果値を得るために、ハッシングをオブジェクトの識別子に適用し、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、対応するキャッシュサーバを現在のキャッシュサーバにする。本方法は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかを決定する。現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、本方法は、オブジェクトを現在のキャッシュサーバから除去する。
2013536530.tif 000002
【特許請求の範囲】
【請求項１】
分散型キャッシュオブジェクトを除去する方法であって、
除去依頼がオブジェクトの識別子を含む、除去依頼を受信することと、
前記識別子のハッシュ結果値を得るために、ハッシングを前記オブジェクトの前記識別子に適用することと、
前記ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけて、前記対応するキャッシュサーバを現在のキャッシュサーバにすることと、
前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した満了期間を超える動作期間を有するかを決定することと、
前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した前記満了期間を超える動作期間を有するという決定に応答して、前記オブジェクトを前記現在のキャッシュサーバから除去することと、
を含む、方法。
【請求項２】
前記動作期間が、前記満了期間未満であるという決定に応答して、前記オブジェクトを前記現在のキャッシュサーバから除去することと、
前記現在のキャッシュサーバから次のキャッシュサーバに切り替え、前記次のキャッシュサーバを前記現在のキャッシュサーバとし、かつ前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した満了期間を超える動作期間を有するかを決定する行為に戻ることと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ハッシュ結果値に基づいて、前記対応するキャッシュサーバを見つけると、前記現在のキャッシュサーバが不動作ステータスにある場合、前記現在のキャッシュサーバの不動作期間が、前記オブジェクトの前記満了期間を超えるかを決定することをさらに含む、請求項２に記載の方法。
【請求項４】
前記不動作期間が前記満了期間を超える場合、前記現在のキャッシュサーバから前記次のキャッシュサーバに切り替え、前記次のキャッシュサーバを前記現在のキャッシュサーバとし、かつ前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した満了期間を超える動作期間を有するかを決定する行為に戻ることをさらに含む、請求項３に記載の方法。
【請求項５】
前記不動作期間が前記満了期間を超えない場合、前記識別子を記録し、前記現在のキャッシュサーバから次のキャッシュサーバに切り替える行為を実行することをさらに含む、請求項３に記載の方法。
【請求項６】
前記現在のキャッシュサーバが再開されて、前記動作ステータスになる場合、前記記録された識別子に基づいて前記オブジェクトを除去することをさらに含む、請求項５に記載の方法。
【請求項７】
キャッシュサーバのステータステーブルを事前に設定することをさらに含む、請求項１に記載の方法。
【請求項８】
前記ステータステーブルにおいて、それぞれのキャッシュサーバの最後のステータス変更のタイムスタンプと、それぞれのキャッシュサーバの現在のステータスと、を記憶することをさらに含み、前記タイムスタンプは、それぞれのキャッシュサーバの前記現在のステータスの継続期間を決定するために使用される、請求項７に記載の方法。
【請求項９】
分散型キャッシングオブジェクトを除去するシステムであって、除去サーバと、複数のキャッシュサーバと、を含み、
前記キャッシュサーバは、ユーザによってアクセスされるオブジェクトをキャッシュするように構成され、
前記除去サーバは、
除去依頼がオブジェクトの識別子を含む、除去依頼を受信し、
前記識別子のハッシュ結果値を得るために、一貫したハッシングを前記オブジェクトの前記識別子に適用し、
前記ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、前記対応するキャッシュサーバを現在のキャッシュサーバにし、
前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した満了期間を超える動作期間を有するかを決定し、かつ前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した前記満了期間を超える動作期間を有するという決定に応答して、前記オブジェクトを前記現在のキャッシュサーバから除去するように構成される、システム。
【請求項１０】
前記動作期間が前記満了期間未満であるという決定に応答して、前記除去サーバはさらに、前記オブジェクトを前記現在のキャッシュサーバから除去し、前記現在のキャッシュサーバから順序的に次のキャッシュサーバに切り替え、前記次のキャッシュサーバを前記現在のキャッシュサーバとし、かつ前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトの前記満了期間を超える動作期間を有するかを決定する行為に戻るように構成される、請求項９に記載のシステム。
【請求項１１】
前記現在のキャッシュサーバが不動作ステータスにある場合、前記除去サーバはさらに、前記現在のキャッシュサーバの前記動作期間が、前記オブジェクトの前記満了期間を超えるかを決定し、前記現在のキャッシュサーバから順序的に次の前記キャッシュサーバに切り替え、前記不動作期間が前記満了期間を超える場合、前記次のキャッシュサーバを前記現在のキャッシュサーバとし、かつ前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトの前記満了期間を超える動作期間を有するかを決定する行為に戻るように構成される、請求項１０に記載のシステム。
【請求項１２】
前記除去サーバはさらに、前記不動作期間が前記満了期間を超えない場合、前記識別子を記録し、前記現在のキャッシュサーバから次のキャッシュサーバに切り替える行為を実行し、前記現在のキャッシュサーバが再開されて、動作ステータスになった後、前記記録された識別子に基づいて前記オブジェクトを除去するように構成される、請求項１１に記載のシステム。
【請求項１３】
前記除去サーバはさらに、キャッシュサーバのステータステーブルを設定するように構成される、請求項９に記載のシステム。
【請求項１４】
前記除去サーバはさらに、前記ステータステーブルにおいて、それぞれのキャッシュサーバの最後のステータス変更のタイムスタンプと、それぞれのキャッシュサーバの現在のステータスと、を記憶するように構成され、前記タイムスタンプは、対応するキャッシュサーバが前記現在のステータスにある継続期間を決定するために使用される、請求項１３に記載のシステム。
【請求項１５】
除去依頼がオブジェクトの識別子を含む、除去依頼を受信するように構成される受信ユニットと、
前記識別子のハッシュ結果値を得るために、一貫したハッシングを前記オブジェクトの前記識別子に適用するように構成される計算ユニットと、
前記ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、前記対応するキャッシュサーバを現在のキャッシュサーバにするように構成される位置決めユニットと、
前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した満了期間を超える動作期間を有するかを決定するように構成される決定ユニットと、
前記現在のキャッシュサーバが動作ステータスにあり、かつ前記オブジェクトに関連した前記満了期間を超える動作期間を有するという決定に応答して、前記オブジェクトを前記現在のキャッシュサーバから除去するように構成される除去ユニットと、
を備える、除去サーバ。
【請求項１６】
前記除去ユニットはさらに、前記動作期間が前記満了期間未満であるという決定に応答して、前記オブジェクトを前記現在のキャッシュサーバから除去するように構成され、前記除去サーバは、前記現在のキャッシュサーバから次のキャッシュサーバに切り替え、前記次のキャッシュサーバを前記現在のキャッシュサーバとし、かつ前記決定ユニットをトリガするように構成される切り替えユニットをさらに備える、請求項１５に記載の除去サーバ。
【請求項１７】
前記現在のキャッシュサーバが不動作ステータスにある場合、前記決定ユニットはさらに、前記現在のキャッシュサーバの不動作期間が、前記オブジェクトの前記満了期間を超えるかを決定するように構成され、前記現在のキャッシュサーバの前記不動作期間が前記満了期間を超える場合、前記切り替えユニットはさらに、前記現在のキャッシュサーバから次のキャッシュサーバに切り替え、前記次のキャッシュサーバを前記現在のキャッシュサーバとし、かつ前記決定ユニットをトリガするように構成される、請求項１６に記載の除去サーバ。
【請求項１８】
前記不動作期間が前記満了期間を超えない場合、前記識別子を記録し、前記切り替えユニットをトリガするように構成される記録ユニットをさらに備え、
前記現在のキャッシュサーバが前記動作ステータスに戻った後、前記除去ユニットはさらに、前記記録された識別子に基づいて前記オブジェクトを除去するように構成される、
請求項１７に記載の除去サーバ。
【請求項１９】
キャッシュサーバのステータステーブルを事前に設定するように構成される設定ユニットをさらに備える、請求項１５に記載の除去サーバ。
【請求項２０】
前記ステータステーブルにおいて、それぞれのキャッシュサーバの最後のステータス変更のタイムスタンプと、それぞれのキャッシュサーバの現在のステータスと、を記憶するように構成される記憶ユニットをさらに備え、前記タイムスタンプは、それぞれのキャッシュサーバの現在のステータスの継続期間を決定するために使用される、請求項１９に記載の除去サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連特許出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれる、２０１０年８月２６日出願の中国特許出願第２０１０１０２６８８００．３号、表題「Ｍｅｔｈｏｄ，Ｓｙｓｔｅｍ  ａｎｄ  Ｒｅｍｏｖａｌ  Ｓｅｒｖｅｒ  ｏｆ  Ｒｅｍｏｖｉｎｇ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃａｃｈｉｎｇ  Ｏｂｊｅｃｔ」に対する優先権を主張する。
【０００２】
本開示は、ネットワーク技術の分野に関し、具体的には、分散型キャッシングオブジェクトを除去する方法、システム、およびサーバに関する。
【背景技術】
【０００３】
大規模のウェブサイトシステムは、通常、分散型キャッシュ構造を介して、データを記憶および回収する。例えば、ｔａｏｂａｏウェブサイト（すなわち、ｔａｂａｏ．ｃｏｍ）は、分散型キャッシュ構造を介して、ユーザによってアップロードされた画像を記憶および回収する。通常、分散型キャッシュシステムは、ソースデータサーバ、ソースデータサーバと連通する複数のキャッシュサーバ、およびディスパッチャを含む。ユーザの依頼に応答して、分散型キャッシュシステムは、概して、受信されたユーザの依頼に基づく一貫したハッシングアルゴリズムを介して、ユーザがどのキャッシュサーバからデータを得ることができるかを決定するために、ディスパッチャを使用する。そのように決定されたキャッシュサーバがデータを有する場合、決定されたキャッシュサーバは、データをディスパッチャに戻す。決定されたキャッシュサーバがデータを有しない場合、決定されたキャッシュサーバは、ソースデータサーバからデータを依頼し、その中にデータを記憶し、データをユーザに戻すディスパッチャにデータを戻す。
【０００４】
ｔａｏｂａｏウェブサイトの画像システム等の既存の分散型キャッシュシステムにおいて、売り手が悪意のある画像（例えば、侵害画像または違法画像）をアップロードするとき、画像は、最初にソース画像サーバにアップロードされる。ネットワークユーザが、ｔａｏｂａｏネットワークのリンクを介して悪意のある画像にアクセスするとき、ユーザは、最初に一貫したハッシングアルゴリズムに基づいて決定されるある画像キャッシュ（ｃａｃｈｅ）サーバにアクセスする。その画像キャッシュサーバが悪意のある画像を有しない場合、画像キャッシュサーバは、ソース画像サーバから悪意のある画像を得て、悪意のある画像を記憶する。この悪意のある画像の存在が検出されるとき、システムは、この悪意のある画像を除去する必要がある。既存の技術は、ソース画像サーバおよび分散型キャッシュシステムの全ての画像キャッシュサーバにおいてその悪意のある画像の除去動作を実行する。
【０００５】
既存の技術の研究中に、本出願の発明者は、既存の技術の除去動作が、サーバの負担を著しく増加させ、かつ全てのキャッシュサーバが悪意のあるデータを有するわけではないにもかかわらず、全てのサーバがそのような除去動作を実行しなければならないため、サーバのリソースを無駄にすることを指摘した。これは、特に、多数のキャッシュサーバを含むシステムにおいて当てはまる。除去動作が悪意のあるデータを有しないキャッシュサーバにおいて必要以上に実行されるため、分散型キャッシュシステムの全体的な性能が低下する。
【発明の概要】
【０００６】
本開示の例示的な実施形態は、全ての分散型キャッシュサーバにおいて除去動作を実行することを必要とし、したがって、サーバのリソースを無駄にし、かつ全体的なシステム性能を低下させる既存の技術に存在する問題を解決するために、分散型キャッシングオブジェクトを除去する方法、システム、およびサーバを提供することを目標とする。
【０００７】
前述の問題を解決するために、例示的な実施形態は、分散型キャッシングオブジェクトを除去する方法を提供し、以下のように実装される。
【０００８】
一実施形態において、分散型キャッシングオブジェクトを除去する方法は、除去依頼を受信することを含んでもよい。除去依頼は、オブジェクトの識別子を含んでもよい。本方法は、識別子のハッシュ結果値を得るために、一貫したハッシングを、例えば、オブジェクトの識別子に適用してもよい。ハッシュ結果値に基づいて、本方法は、対応するキャッシュサーバを見つけてもよい。一実施形態において、本方法は、対応するキャッシュサーバを現在のキャッシュサーバにしてもよい。いくつかの実施形態において、本方法は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超えるか、またはそれよりも長い動作期間を有するかを決定してもよい。現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間よりも長い動作期間を有するという決定に応答して、本方法は、オブジェクトを現在のキャッシュサーバから除去してもよい。
【０００９】
前述の問題を解決するために、例示的な実施形態は、分散型キャッシングオブジェクトを除去するシステムをさらに提供し、以下のように実装される。
【００１０】
一実施形態において、分散型キャッシュオブジェクトを除去するシステムは、除去サーバおよび複数のキャッシュサーバを含んでもよい。複数のキャッシュサーバを、ユーザによってアクセスされるオブジェクトをキャッシュするように構成してもよい。いくつかの実施形態において、除去サーバを、除去依頼を受信するように構成してもよい。除去依頼は、オブジェクトの識別子を含んでもよい。一実施形態において、除去サーバをさらに、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用するように構成してもよい。除去サーバは、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけて、対応するキャッシュサーバを現在のキャッシュサーバにしてもよい。さらに、いくつかの実施形態において、除去サーバは、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかを決定してもよい。現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、除去サーバは、オブジェクトを現在のキャッシュサーバから除去してもよい。
【００１１】
前述の問題を解決するために、例示的な実施形態は、除去サーバを提供し、以下のように実装される。
【００１２】
一実施形態において、除去サーバは、受信ユニットを含んでもよい。受信ユニットを、除去依頼を受信するように構成してもよく、除去依頼は、オブジェクトの識別子を含んでもよい。さらに、除去サーバは、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用するように構成される計算ユニットをさらに含んでもよい。いくつかの実施形態において、除去サーバは、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけて、対応するキャッシュサーバを現在のキャッシュサーバにするように構成される位置決めユニットをさらに含んでもよい。一実施形態において、除去サーバは、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかを決定するように構成される決定ユニットを含んでもよい。さらに、除去サーバは、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、オブジェクトを現在のキャッシュサーバから除去するように構成される除去ユニットをさらに含んでもよい。
【００１３】
本開示の例示的な実施形態は、オブジェクトの識別子を含む除去依頼を受信し、識別子のハッシュ結果値を得るために一貫したハッシングをオブジェクトの識別子に適用し、ハッシュ結果値に基づいて対応するキャッシュサーバを見つけ、対応するキャッシュサーバを現在のキャッシュサーバにし、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかを決定し、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、オブジェクトを現在のキャッシュサーバから除去する。したがって、本開示の例示的な実施形態は、全てのキャッシュサーバにおいて除去動作を実行する必要はない。代わりに、見つけられたキャッシュサーバの動作期間をオブジェクトに関連した満了期間と比較することによって、例示的な実施形態は、除去される予定のオブジェクトを含むキャッシュサーバを正確に見つけて除去動作を実行し、ひいては他のキャッシュサーバがリソースを無駄にすることを防いで除去動作を実行し、したがって、分散型キャッシュシステムの全体的な性能を向上させる。
【図面の簡単な説明】
【００１４】
本開示の例示的な実施形態または既存の技術の技術的スキームをより明確に理解するために、例示的な実施形態または既存の技術の説明に不可欠な添付の図が、以下に簡潔に記載される。理解できるように、以下の図は、数個の本開示の例示的な実施形態のみを構成する。これらの添付の図に基づいて、当業者は、いかなる創造的な努力をすることなく、他の図を得ることができる。
【図１】本開示のある実施形態に従って、一貫したハッシングリングを説明する概略図を示す。
【図２】分散型キャッシングオブジェクトを除去する第１の例示的な方法を説明する流れ図を示す。
【図３】分散型キャッシングオブジェクトを除去する第２の例示的な方法を説明する流れ図を示す。
【図４】分散型キャッシングオブジェクトを除去する例示的な方法を実施するシステム構造を説明する略図を示す。
【図５】図４に記載のシステム構造を使用してオブジェクトを除去するプロセスを示す。
【図６】本開示のある実施形態に従って、一貫したハッシングリングの例示的な使用を説明する概略図を示す。
【図７】分散型キャッシングオブジェクトを除去する例示的なシステムを説明するブロック図を示す。
【図８】第１の除去サーバを説明するブロック図を示す。
【図９】第２の除去サーバを説明するブロック図を示す。
【図１０】図８〜９に記載の例示的な除去サーバをより詳細に示す。
【発明を実施するための形態】
【００１５】
本開示の例示的な実施形態は、分散型キャッシングオブジェクトを除去する方法、システム、およびサーバを提供する。
【００１６】
当業者が例示的な実施形態の技術的スキーム、目標、特性、および利点を明確に理解する手助けとなるように、例示的な実施形態における技術的スキームは、例示的な実施形態の添付の図を参照して、より詳細に説明される。
【００１７】
例示的な実施形態において、分散型キャッシュシステムにおいて除去されるオブジェクトは、システムの分散型キャッシュサーバに記憶されたオブジェクトである。したがって、既存のシステムが分散型キャッシュサーバにオブジェクトを記憶および回収する方法が、一貫したハッシングアルゴリズムを参照して、最初に説明される。
【００１８】
分散型キャッシュシステムにおいて、キャッシュサーバは、一貫したハッシングアルゴリズムから計算されるそれぞれのハッシュ値に基づいて、０〜２３２のリングに配置される。キャッシュサーバのハッシュ値が計算されるとき、ハッシュ値は、選択されるハッシュ機能をキャッシュサーバのＩＰアドレスに適用することによって得られる。ハッシュ値は、３２桁の整数である。キャッシュサーバは、その整数の値に基づいて、リング内の位置上に対応してマッピングされる。図１は、０〜２３２のリングのある実施例を示す。分散型キャッシュシステムに４つのキャッシュサーバを含ませる。一貫したハッシングの適用時、４つのキャッシュサーバ、すなわち、時計回り方向で配置されるキャッシュサーバ１、キャッシュサーバ２、キャッシュサーバ３、およびキャッシュサーバ４は、図１に示されるように、それぞれのハッシュ値に基づいて、リング上にマッピングされる。ユーザが、分散型キャッシュサーバを介して、あるオブジェクト（例えば、画像、音声、または映像等のネットワークリソースであり得る）にアクセスすることを望むとき、ハッシュ計算がオブジェクトに適用される（概して、ハッシュ計算をオブジェクトの識別子であるＵＲＬに適用する）。得られたハッシュ値は、キーとして使用され、キーの値に基づいて、０〜２３２のリング内の位置上に対応してマッピングされる。キーの位置は、第１のキャッシュサーバをリング上で時計回り方向に見つけるために、最初の位置として使用される。ユーザは、そのように見つけられた第１のキャッシュサーバを介して、オブジェクトにアクセスする。この時計回りの検索を介して見つけられた第１のキャッシュサーバが利用不可能である場合（例えば、ダウンまたはクラッシュ状態）、時計回りの検索は、利用可能なキャッシュサーバが見つけられるまで継続する。ユーザがアクセスすることを望むオブジェクトが、その利用可能なキャッシュサーバ内に存在する場合、オブジェクトは、ディスパッチャを介してユーザに戻される。ユーザがアクセスすることを望むオブジェクトが、その利用可能なキャッシュサーバ内に存在しない場合、そのキャッシュサーバは、ソースデータサーバからオブジェクトを要求し、その中にオブジェクトを記憶し、オブジェクトをユーザに戻すディスパッチャにオブジェクトを戻す。
【００１９】
キャッシュサーバに記憶されるそれぞれのオブジェクトは、満了期間を有する。オブジェクトが、その満了期間よりも長くキャッシュされるとき、キャッシュサーバは、オブジェクトを自動的に除去する。その後、ユーザが、キャッシュサーバを介して、再度オブジェクトにアクセスすることを望む場合、キャッシュサーバは、再度ソースデータサーバからオブジェクトを得て、前述のプロセスを繰り返してもよい。
【００２０】
図２は、分散型キャッシングオブジェクトを除去する第１の例示的な方法を説明する流れ図を示す。この実施形態は、見つけられたキャッシュサーバの動作期間がオブジェクトの満了期間を超えるときにオブジェクトを除去するプロセスを示す。
【００２１】
２０１で、本方法は、除去依頼を受信する。除去依頼は、除去される予定のオブジェクトの識別子を含む。分散型キャッシュシステムが大規模のウェブサイトにおいて採用されるとき、オブジェクトは、画像、音声、映像等のネットワークリソースを指す。それぞれの特定のネットワークリソースは、ＵＲＬ（ユニバーサルリソースロケータ）を介して位置付けられる。
【００２２】
２０２で、本方法は、識別子のハッシュ結果値を得るために、ハッシングをオブジェクトの識別子に適用する。一実装例において、このブロックは、ハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用するプロセスに相当する。ハッシングは、オブジェクトを記憶および回収するために既存の技術において実装される計算プロセスと一致している。したがって、このブロックは、本明細書において重複して記載されない。
【００２３】
２０３で、本方法は、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけて、対応するキャッシュサーバを現在のキャッシュサーバにする。
【００２４】
図１に示される一貫したハッシングリングを参照して、一貫したハッシングをオブジェクトの識別子に適用して、ハッシュ結果値を得た後、ハッシュ結果値を、一貫したハッシングリングの対応する位置上にマッピングされるキーとして使用してもよく、第１のキャッシュサーバを見つける検索を、その位置から開始して、時計回り方向に実行してもよい。そのように見つけられる第１のキャッシュサーバが、ユーザがオブジェクトにアクセスしたときにディスパッチされるキャッシュサーバであるため、第１のキャッシュサーバは、除去される予定のオブジェクトをキャッシュしている（第１のキャッシュサーバが動作ステータスにあると仮定して、オブジェクトは、ユーザによってアクセスされており、かつオブジェクトの満了期間をまだ超えていない）。
【００２５】
２０４で、本方法は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するかを決定する。
【００２６】
２０５で、本方法は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するという決定に応答して、オブジェクトを現在のキャッシュサーバから除去する。
【００２７】
動作期間は、キャッシュサーバが動作ステータスにある間の継続期間を指す。見つけられた第１のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するとき、ＵＲＬを除去する動作が、見つけられた第１のキャッシュサーバのみにおいて実行される必要がある。これは、このキャッシュサーバが現在動作しており、オブジェクトにアクセスする全ての要求がこのキャッシュサーバに送信されたためである。オブジェクトが他のキャッシュサーバに存在したとしても、オブジェクトは、オブジェクトの継続期間がオブジェクトの満了期間を超えると、自動的に除去される。
【００２８】
図３は、分散型キャッシュオブジェクトを除去する第２の例示的な方法を説明する流れ図を示す。この実施形態は、見つけられたキャッシュサーバの動作ステータスおよびステータス履歴に基づいてオブジェクトを除去するプロセスについて詳細に示す。
【００２９】
３０１で、本方法は、キャッシュサーバのステータステーブルを事前に設定し、ステータステーブルにおいて、それぞれのキャッシュサーバの最後のステータス変更のタイムスタンプおよびそれぞれのキャッシュサーバの現在のステータスを記憶する。
【００３０】
この例示的な実施形態は、キャッシュサーバのステータステーブルを設定する。ステータステーブルのそれぞれの入力は、キャッシュサーバの最後のステータス変更のタイムスタンプおよびキャッシュサーバの現在のステータスを記録するために使用される。キャッシュサーバの現在のステータスの継続期間を、このタイムスタンプに基づいて決定してもよい。現在のステータスは、動作ステータスまたは不動作ステータスを含んでもよい。不動作ステータスは、通常、キャッシュサーバがダウンしていることを示す。
【００３１】
３０２で、本方法は、除去依頼を受信し、除去依頼は、オブジェクトの識別子を含む。
【００３２】
３０３で、本方法は、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用する。
【００３３】
３０４で、本方法は、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけて、対応するキャッシュサーバを現在のキャッシュサーバとする。
【００３４】
３０５で、本方法は、現在のキャッシュサーバが動作ステータスにあるかを決定する。肯定である場合、本方法は、ブロック３０６に進み、さもなければ、本方法は、ブロック３０９に進む。
【００３５】
３０６で、本方法は、現在のキャッシュサーバの動作期間がオブジェクトの満了期間を超えるかを決定する。肯定である場合、本方法は、ブロック３０７に進み、さもなければ、本方法は、ブロック３０８に進む。
【００３６】
３０７で、本方法は、オブジェクトを現在のキャッシュサーバから除去し、現在のプロセスを終了する。
【００３７】
ステータステーブルから見つけられた現在のキャッシュサーバが、動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有する場合、ＵＲＬを除去する動作が、見つけられた第１のキャッシュサーバのみにおいて実行される必要がある。これは、キャッシュサーバが現在動作しており、オブジェクトにアクセスする全ての要求がそのキャッシュサーバに送信されたためである。オブジェクトが他のキャッシュサーバに存在したとしても、オブジェクトは、オブジェクトの継続期間がオブジェクトの満了期間を超えると自動的に除去される。
【００３８】
３０８で、本方法は、オブジェクトを現在のキャッシュサーバから除去し、現在のキャッシュサーバから次のキャッシュサーバに切り替え、次のキャッシュサーバを現在のキャッシュサーバとする。プロセスは、ブロック３０５に戻る。
【００３９】
ステータステーブルから見つけられる現在のキャッシュサーバが、動作ステータスにあり、かつ対応するタイムスタンプに基づいて、オブジェクトの満了期間未満であるか、またはそれよりも短いと決定される動作期間を有する場合、オブジェクトは、最初にキャッシュサーバから除去される。その後、キャッシュサーバが、動作ステータスの前に不動作ステータスにあり、かつ除去される予定のオブジェクトにアクセスする要求が、現在のキャッシュサーバが不動作ステータスにあった期間中に、次のキャッシュサーバ（一貫したハッシングリング上で現在のキャッシュサーバの次である）に転送されたかもしれないことを考慮すると、次のキャッシュサーバは、そのオブジェクトをキャッシュしたかもしれず、したがって、再度対応するステータスを決定するために、それを得て、現在のキャッシュサーバとすることが必要とされる。本方法は、ブロック３０５に戻る。
【００４０】
３０９で、本方法は、現在のキャッシュサーバの不動作期間が、オブジェクトの満了期間を超えるかを決定する。肯定である場合、本方法は、ブロック３１０に進み、さもなければ、本方法は、ブロック３１１に進む。
【００４１】
３１０で、本方法は、現在のキャッシュサーバから次のキャッシュサーバに切り替え、次のキャッシュサーバを現在のキャッシュサーバとする。本方法は、ブロック３０５に戻る。
【００４２】
テーブルから見つけられる現在のキャッシュサーバステータスが、不動作ステータスにあり、かつ対応するタイムスタンプに基づいて、オブジェクトの満了期間を超えると決定される不動作期間を有する場合、除去される予定のオブジェクトにアクセスする要求は、現在のキャッシュサーバが不動作ステータスにあった期間中に、次のキャッシュサーバ（一貫したハッシングリング上で現在のキャッシュサーバの次である）に転送されたかもしれず、次のキャッシュサーバは、そのオブジェクトをキャッシュしたかもしれない。したがって、再度対応するステータスを決定するために、次のキャッシュサーバを得て、現在のキャッシュサーバとすることが必要とされる。本方法は、ブロック３０５に戻る。
【００４３】
オブジェクトの満了期間を超える不動作期間を有するキャッシュサーバについて、キャッシュサーバは、オブジェクトの満了期間を超えたため、キャッシュサーバが動作ステータスに戻った後、オブジェクトの除去動作を自動的に実行する。
【００４４】
３１１で、本方法は、オブジェクトの識別子を記録し、現在のキャッシュサーバから次のキャッシュサーバに切り替え、次のキャッシュサーバを現在のキャッシュサーバとする。本方法は、ブロック３０５に戻る。
【００４５】
ステータステーブルから見つけられる現在のキャッシュサーバが、不動作ステータスにあり、かつ対応するタイムスタンプに基づいて、オブジェクトの満了期間未満であると決定される不動作期間を有する場合、除去される予定のオブジェクトにアクセスする要求は、現在のキャッシュサーバが不動作ステータスにあった期間中に、次のキャッシュサーバ（一貫したハッシングリング上で現在のキャッシュサーバの次である）に転送されたかもしれず、次のキャッシュサーバは、オブジェクトをキャッシュしたかもしれない。したがって、再度対応するステータスを決定するために、次のキャッシュサーバを得て、現在のキャッシュサーバとすることが必要とされる。本方法は、ブロック３０５に戻る。
【００４６】
オブジェクトの満了期間未満の不動作期間を有するキャッシュサーバについて、キャッシュサーバは、キャッシュサーバがオブジェクトの満了期間の前に動作ステータスに戻れば、キャッシュサーバが記録された識別子に基づいてオブジェクトを除去してもよいように、除去される予定のオブジェクトの識別子を記録する必要がある。
【００４７】
図４は、分散型キャッシングオブジェクトを除去する例示的な方法を実施するシステム構造を説明する略図を示す。システム構造は、ソースデータサーバ、Ｎ数のキャッシュサーバ（Ｎは、正の整数である）、ディスパッチャ、およびパージエージェントを含む。ソースデータサーバ、キャッシュサーバ、およびディスパッチャが、分散型キャッシュシステムにおいてデータを記憶および回収する既存の手法を実施する間、パージエージェントは、本実施形態において分散型キャッシングオブジェクトの除去を実施するために追加されるサーバである。
【００４８】
ディスパッチャ（ロードバランサ「ｈａｐｒｏｘｙ」としても既知である）は、ユーザからオブジェクトにアクセスする要求を受信し、一貫したハッシングアルゴリズムに基づいて、要求をあるキャッシュサーバにディスパッチする。ディスパッチプロセスが既存の技術と同一であるとして、ディスパッチプロセスは、本明細書において重複して記載されない。
【００４９】
キャッシュサーバ（オープンソースキャッシュサービスプログラム「ｓｑｕｉｄ」を関連サーバ上にロードすることによって実装することができる）は、ディスパッチされる要求をディスパッチャから受信し、（ユーザがアクセスすることを望む）オブジェクトをディスパッチャから戻すか、または（ユーザがアクセスすることを望む）オブジェクトをソースデータサーバから得て、オブジェクトをソースデータサーバから戻す。
【００５０】
パージエージェントは、例示的なシステム構造に追加されるサーバであり、ディスパッチャの同一の一貫したハッシングアルゴリズムを使用して、キャッシングオブジェクトの除去を実施する。パージエージェントは、独立したサーバであってもよいか、または除去機能を実行するあるキャッシュサーバ内に組み込まれてもよい。パージエージェントは、本システムにおいて、全てのキャッシュサーバと連通してもよい。システムからオブジェクトを除去する要求は、パージエージェントに送信される。例えば、悪意のある画像が検出され、除去される必要がある場合、または製品がもはや販売されていないため、製品の画像が除去される必要がある場合、除去される予定のオブジェクトの識別子を含む除去依頼（例えば、悪意のある画像のリンクアドレス）は、パージエージェントに送信される。パージエージェントは、全てのキャッシュサーバのステータス情報を含むステータステーブルをさらに維持してもよい。ステータステーブルは、それぞれのキャッシュサーバの２つの情報を記録する。一方の情報は、キャッシュサーバの最後のステータス変更のタイムスタンプであり（タイムスタンプに基づいて、キャッシュサーバの最後のステータス変更が生じた以降の継続期間を計算することができる）、他方の情報は、キャッシュサーバの現在のステータスである。現在のステータスを使用して、キャッシュサーバが現在動作しているか、またはダウンしているかを決定することができる。
【００５１】
ｕｒｌ＿ａを除去される予定のオブジェクトの識別子にする。この実施形態の除去プロセスは、図１に示される一貫したハッシングリングを参照して説明される。ｕｒｌ＿ａは、ネットワークリソースを表し、通常、オブジェクトのリンクアドレスである。ｕｒｌ＿ａの除去を決定すると、オブジェクトは、最初にソースデータサーバから除去され、キャッシュサーバに存在するｕｒｌ＿ａが続いて除去される。一貫したハッシングをｕｒｌ＿ａに適用すると、ｕｒｌ＿ａにアクセスするために、最初に一貫したハッシングリングのキャッシュサーバ１にマッピングする決断が下され、ステータステーブルが照合される。対応するプロセスが、図５に示される。
【００５２】
５０１で、本プロセスは、ｕｒｌ＿ａを含む除去依頼を受信する。
【００５３】
５０２で、本プロセスは、キャッシュサーバ１が、ｕｒｌ＿ａにアクセスするために、一貫したハッシングに基づいてディスパッチされる必要があることを決定する。
【００５４】
５０３で、本プロセスは、現在ディスパッチされたキャッシュサーバが動作ステータスにあり、かつオブジェクトｕｒｌ＿ａの満了期間を超える動作期間を有するかを決定する。肯定である場合、本プロセスは、ブロック５０４に進み、さもなければ、本プロセスは、ブロック５０５に進む。
【００５５】
５０４で、本プロセスは、オブジェクトｕｒｌ＿ａを現在ディスパッチされたキャッシュサーバから除去し、現在のプロセスを終了する。
【００５６】
見つけられたキャッシュサーバ１の現在のステータスが「動作中」であり、かつキャッシュサーバ１の動作期間が、そのタイムスタンプに基づいて、ｕｒｌ＿ａの満了期間を超えると決定される場合、ｕｒｌ＿ａにアクセスする全ての要求は、キャッシュサーバ１がダウンしているか否かにかかわらず、キャッシュサーバ１が現在動作しているため、キャッシュサーバ１に送信されている。さらに、ｕｒｌ＿ａが他のキャッシュサーバに存在したとしても、ｕｒｌ＿ａは、その存在期間がｕｒｌ＿ａの満了期間を超えると自動的に除去される。したがって、ｕｒｌ＿ａを除去する動作は、キャッシュサーバ１のみで実行される必要がある。
【００５７】
５０５で、本プロセスは、現在ディスパッチされたキャッシュサーバが依然としてダウンしているかを決定する。肯定である場合、本プロセスは、ブロック５０６に進み、さもなければ、本プロセスは、ブロック５０８に進む。
【００５８】
５０６で、本プロセスは、現在ダウンしているキャッシュサーバのダウン持続期間が、オブジェクトｕｒｌ＿ａの満了期間を超えるかを決定する。肯定である場合、本プロセスは、ブロック５０９に進み、さもなければ、本プロセスは、ブロック５０７に進む。
【００５９】
見つけられたキャッシュサーバ１の現在のステータスが「ダウン」しており、かつそのダウン持続期間が、そのタイムスタンプに基づいて、オブジェクトｕｒｌ＿ａの満了期間を超えると決定される場合、オブジェクトｕｒｌ＿ａのアクセスは、キャッシュサーバ１がダウンしていた期間中に、キャッシュサーバ２〜４のうちのいずれか１つに切り替えられたかもしれない。したがって、順序的に次のキャッシュサーバを得る必要があり、ブロック５０３から開始するブロックは、そのキャッシュサーバにおいて繰り返される。キャッシュサーバ１について、いったんキャッシュサーバ１が動作ステータスに戻ると、オブジェクトｕｒｌ＿ａの満了期間が過ぎているので、キャッシュサーバ１は、オブジェクトｕｒｌ＿ａの除去動作を自動的に実行する。
【００６０】
５０７で、本プロセスは、現在のキャッシュサーバおよびオブジェクトｕｒｌ＿ａを記憶する。本プロセスは、ブロック５０９に続く。
【００６１】
見つけられたキャッシュサーバ１の現在のステータスが「ダウン」しており、かつそのダウン持続期間が、そのタイムスタンプに基づいて、オブジェクトｕｒｌ＿ａの満了期間未満であると決定される場合、オブジェクトｕｒｌ＿ａのアクセスは、キャッシュサーバ１がダウンしていた期間中に、キャッシュサーバ２〜４のうちのいずれか１つに切り替えられたかもしれない。したがって、順序的に次のキャッシュサーバを得る必要があり、ブロック５０３から開始するブロックは、そのキャッシュサーバにおいて繰り返される。キャッシュサーバ１のダウン持続期間がオブジェクトｕｒｌ＿ａの満了期間未満であるため、オブジェクトｕｒｌ＿ａは、キャッシュサーバ１が、オブジェクトｕｒｌ＿ａの満了期間の前に動作ステータスに戻る場合、キャッシュサーバ１が、この記録に基づいてオブジェクトｕｒｌ＿ａを除去するように記録される必要がある。
【００６２】
現在のキャッシュサーバ１とオブジェクトｕｒｌ＿ａとの間の関係を、据え置き除去リストに記憶してもよい。キャッシュサーバ１が、オブジェクトｕｒｌ＿ａの満了期間の前に動作ステータスに戻る場合、オブジェクトｕｒｌ＿ａを、据え置き除去リストに記録された入力に基づいてキャッシュサーバ１から除去してもよい。
【００６３】
５０８で、本プロセスは、オブジェクトｕｒｌ＿ａを現在のキャッシュサーバから除去する。見つけられたキャッシュサーバ１の現在のステータスが「動作中」であり、かつその動作期間が、対応するタイムスタンプに基づいて、オブジェクトｕｒｌ＿ａの満了期間未満であると決定される場合、ｕｒｌ＿ａは、最初にキャッシュサーバ１から除去される。その後、キャッシュサーバ１が、「動作」ステータスの前に「ダウン」ステータスにあり、かつｕｒｌ＿ａにアクセスする要求が、キャッシュサーバ１が「ダウン」ステータスにあった期間中に、キャッシュサーバ２〜４のうちのいずれか１つに切り替えられたかもしれないことを考慮すると、次のキャッシュサーバを得る必要があり、ブロック５０３から開始するブロックが、そのキャッシュサーバにおいて繰り返される。
【００６４】
５０９で、本プロセスは、次のキャッシュサーバを現在のキャッシュサーバからマッピングすることができるかを決定する。肯定である場合、本プロセスは、ブロック５１０に進み、さもなければ、本プロセスは終了する。
【００６５】
５１０で、本プロセスは、現在のキャッシュサーバから順序的に次のキャッシュサーバにマッピングし、ブロック５０３に戻る。
【００６６】
見られるように、例示的なパージエージェントは、ディスパッチャの同一の一貫したハッシングアルゴリズムを使用し、キャッシュサーバのステータス変更情報の助けを借りて、除去される予定のオブジェクトが存在するキャッシュサーバを正確に見つける。除去動作が全てのキャッシュサーバにおいて実行されることを必要とせず、オブジェクトを正確かつ完全に除去することができるため、この実施形態は、既存の技術と比較して、システムの全てのキャッシュサーバにおける除去動作の実行によって占有されるシステムリソースの量を減少させる。
【００６７】
図６を参照して、例示的な実施形態のある実装例が、悪意のある画像を分散型画像キャッシュシステムから除去する例を使用して説明される。
【００６８】
分散型キャッシュシステムに、それぞれ、３つのキャッシュサーバ、Ｓ１、Ｓ２、およびＳ３を含ませる。それぞれのキャッシュサーバは、それぞれの識別子の役割を果たすそれぞれのＩＰアドレスによって識別される。指定されたハッシュ機能、ハッシュ＿機能＿ｘが適用されて、Ｓ１、Ｓ２、およびＳ３のＩＰアドレスを別々にハッシュする。そのようにして得られたそれぞれのハッシュ値が、３つの整数、すなわち、１０００、２０００、および３０００である場合、これらの３つのキャッシュサーバは、図６に示される位置でリング上にマッピングされる。これらの３つのキャッシュサーバの最初のステータスを示すステータステーブルを表１とし、その中で、最後＿スタンプは、キャッシュサーバの最後のステータス変更が生じるときのタイムスタンプを表し、現在＿ステータスは、キャッシュサーバの現在のステータスを表す。
【００６９】
【表１】
2013536530.tif 000003
【００７０】
表１において、Ｓ１、Ｓ２、およびＳ３のそれぞれの最後＿スタンプは、最初は「０」であり、Ｓ１、Ｓ２、およびＳ３のタイムスタンプが、最初は全てゼロであることを示す。タイムスタンプを「日」単位で記録してもよい。例えば、最初のスタートアップは、１日目に生じ、タイムスタンプは「０」である。タイムスタンプの値は、１日１つずつインクリメントする。現在＿ステータスが「アップ」とは、Ｓ１、Ｓ２、およびＳ３が、最初は動作ステータスにあることを示す。現在＿ステータスが「ダウン」とは、関連サーバがダウンしていることを示す。
【００７１】
ユーザは、例えば、タイム１で、オブジェクトリソースｕｒｌ＿１にアクセスすることを望み得る。ハッシュ機能、ハッシュ＿機能＿ｘをｕｒｌ＿ａに適用して、２５３のハッシュ値を得ると、ハッシュ値は、図６に示されるようにリング上にマッピングされる。２５３のハッシュ値がマッピングされた位置から開始して、時計回り方向に検索することによって、見つけられる第１のキャッシュサーバは、Ｓ１である。したがって、オブジェクトリソースｕｒｌ＿１にアクセスする要求は、Ｓ１によって処理される。ユーザがＳ１を介して初めてｕｒｌ＿１にアクセスする場合、Ｓ１は、オブジェクトリソースｕｒｌ＿１をソースデータサーバから得て、ｕｒｌ＿１を記憶し、ｕｒｌ＿１をユーザに戻す。
【００７２】
Ｓ１が、タイム２でダウンしている場合、テーブルキャッシュサーバのステータスは、表２に示されるようにアップデートされる。
【００７３】
【表２】
2013536530.tif 000004
【００７４】
表２において、Ｓ１の現在＿ステータスが「ダウン」とは、Ｓ１の最後のステータス変更後のステータスが「ダウン」している、すなわち、Ｓ１は、現在「ダウン」ステータスにあることを示す。最後＿スタンプが「０」から「２」に変化し、Ｓ１が「ダウン」した状態になるとき、タイムスタンプが「２」であることを示す。「ダウン」ステータスのＳ１の継続期間は、現在のタイムスタンプとタイムスタンプ「２」との間の差である。
【００７５】
ユーザが、タイム３で、再度オブジェクトリソースｕｒｌ＿１にアクセスすることを望むことを想定する。ｕｒｌ＿１の２５３のハッシュ値は、ハッシュ機能、ハッシュ＿機能＿ｘを適用することによって得られる。２５３のハッシュ値がマッピングされた位置から開始して、時計回り方向に検索することによって、見つけられる第１のキャッシュサーバは、Ｓ１である。ステータステーブル（表２）から、Ｓ１がダウンしていることが認められるため、リング上の次のキャッシュサーバ、Ｓ２（現在動作ステータスにある）が、Ｓ１から開始して時計回り方向に検索することによって得られる。したがって、オブジェクトリソースｕｒｌ＿１にアクセスする要求は、Ｓ２によって処理される。そのとき、オブジェクトリソースｕｒｌ＿１は、Ｓ１およびＳ２の両方においてキャッシュされる。
【００７６】
オブジェクトリソースｕｒｌ＿１をタイム４で悪意のある画像として検出させる。したがって、ｕｒｌ＿１を分散型キャッシュシステムから除去することが必要とされる。システム管理者は、標準のＨＴＴＰ  Ｐｏｓｔメソッドを使用して、除去依頼をパージエージェントに送信してもよい。除去依頼は、除去される予定の標的としてｕｒｌ＿１を含む。
【００７７】
除去依頼の受信に応答して、パージエージェントは、除去される予定の標的であるｕｒｌ＿１を読み取り、ハッシュ機能、ハッシュ＿機能＿ｘを介して、ｕｒｌ＿１のハッシュ値を２５３として得る。パージエージェントは、図６に示されるように、リング上で２５３のハッシュ値がマッピングし、２５３のハッシュ値がマッピングされる位置から開始して、第１のキャッシュサーバを見つける。パージエージェントは、ステータステーブルをさらに調査し、Ｓ１がタイム２以降ダウンしていたことを見出し、したがって、そのときにＳ１に記憶されるｕｒｌ＿１を除去することができない。パージエージェントは、Ｓ１および対応するｕｒｌ＿１を据え置き除去リストに追加し、Ｓ１が再開されてｕｒｌ＿１を除去するまで待つ。パージエージェントは、その後、リングに沿ってＳ１から時計回り方向に検索を開始することによってＳ２を見つける。パージエージェントは、ステータステーブルをさらに調査し、Ｓ２が現在動作ステータスにあることを見出す。したがって、パージエージェントは、除去依頼に基づいて、その中で記憶される悪意のある画像（すなわち、ｕｒｌ＿１）を見つけて除去するＳ２に除去依頼を送信する。Ｓ２が過去にダウンしていないため、除去動作は完了する。
【００７８】
分散型キャッシングオブジェクトを除去する例示的な方法に対応して、本開示は、分散型キャッシングオブジェクトを除去する例示的なシステムおよびサーバをさらに提供する。
【００７９】
図７は、分散型キャッシングオブジェクトを除去する例示的なシステムを説明するブロック図を示す。
【００８０】
システムは、複数のキャッシュサーバ７０１および除去サーバ７０２を含む。複数のキャッシュサーバ７０１は、ユーザによってアクセスされるオブジェクトをキャッシュするように構成される。除去サーバ７０２は、除去依頼を受信するように構成される。除去依頼は、オブジェクトの識別子を含んでもよい。除去サーバ７０２をさらに、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用するように構成してもよい。一実施形態において、除去サーバ７０２は、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、対応するキャッシュサーバを現在のキャッシュサーバにし、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかどうかを決定してもよい。現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、除去サーバ７０２は、オブジェクトを現在のキャッシュサーバから除去してもよい。
【００８１】
さらに、動作期間が満了期間未満であるという決定に応答して、除去サーバ７０２はさらに、オブジェクトを現在のキャッシュサーバから除去し、現在のキャッシュサーバから次のキャッシュサーバに順に切り替え、次のキャッシュサーバを現在のキャッシュサーバとし、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するかを決定する行為に戻るように構成される。
【００８２】
除去サーバ７０２をさらに、現在のキャッシュサーバが不動作ステータスにある場合、現在のキャッシュサーバの動作期間がオブジェクトの満了期間を超えるかを決定し、現在のキャッシュサーバから次のキャッシュサーバに順に切り替え、不動作期間が満了期間を超える場合、次のキャッシュサーバを現在のキャッシュサーバとし、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するかを決定する行為に戻るように構成してもよい。
【００８３】
除去サーバ７０２をさらに、不動作期間が満了期間を超えない場合、識別子を記録し、現在のキャッシュサーバから次のキャッシュサーバに切り替える行為を実行し、現在のキャッシュサーバが再開されて、動作ステータスになった後、記録された識別子に基づいてオブジェクトを除去するように構成してもよい。
【００８４】
除去サーバ７０２をさらに、キャッシュサーバのステータステーブルを設定し、ステータステーブルにおいて、それぞれのキャッシュサーバの最後のステータス変更のタイムスタンプおよびそれぞれのキャッシュサーバの現在のステータスを記憶するように構成してもよい。タイムスタンプは、対応するキャッシュサーバが現在のステータスにある継続期間を決定するために使用される。
【００８５】
図８は、第１の除去サーバ８００を説明するブロック図を示す。除去サーバ８００は、受信ユニット８１０、計算ユニット８２０、位置決めユニット８３０、決定ユニット８４０、および除去ユニット８５０を含む。
【００８６】
受信ユニット８１０は、除去依頼を受信するように構成され、除去依頼は、オブジェクトの識別子を含む。
【００８７】
計算ユニット８２０は、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用するように構成される。
【００８８】
位置決めユニット８３０は、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、対応するキャッシュサーバを現在のキャッシュサーバにするように構成される。
【００８９】
決定ユニット８４０は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかを決定するように構成される。
【００９０】
除去ユニット８５０は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、オブジェクトを現在のキャッシュサーバから除去するように構成される。
【００９１】
図９は、第２の除去サーバ９００を説明するブロック図を示す。除去サーバ９００は、設定ユニット９１０、記憶ユニット９２０、受信ユニット９３０、計算ユニット９４０、位置決めユニット９５０、決定ユニット９６０、除去ユニット９７０、切り替えユニット９８０、および記録ユニット９５０を含む。
【００９２】
設定ユニット９１０は、キャッシュサーバのステータステーブルを設定するように構成される。
【００９３】
記憶ユニット９２０は、ステータステーブルにおいて、それぞれのキャッシュサーバの最後のステータス変更のタイムスタンプおよびそれぞれのキャッシュサーバの現在のステータスを記憶するように構成され、タイムスタンプは、対応するキャッシュサーバが現在のステータスにある継続期間を決定するために使用される。
【００９４】
受信ユニット９３０は、除去依頼を受信するように構成され、除去依頼は、オブジェクトの識別子を含む。
【００９５】
計算ユニット９４０は、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用するように構成される。
【００９６】
位置決めユニット９５０は、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、対応するキャッシュサーバを現在のキャッシュサーバとするように構成される。
【００９７】
決定ユニット９６０は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するかを決定するように構成される。
【００９８】
除去ユニット９７０は、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトの満了期間を超える動作期間を有するという決定に応答して、オブジェクトを現在のキャッシュサーバから除去するように構成される。
【００９９】
除去ユニット９７０はさらに、動作期間が満了期間未満であるという決定に応答して、オブジェクトを現在のキャッシュサーバから除去するように構成される。
【０１００】
切り替えユニット９８０は、現在のキャッシュサーバから次のキャッシュサーバに切り替え、次のキャッシュサーバを現在のキャッシュサーバとし、決定ユニット９６０をトリガするように構成される。
【０１０１】
決定ユニット９６０はさらに、現在のキャッシュサーバが不動作ステータスにある場合、現在のキャッシュサーバの不動作期間がオブジェクトの満了期間を超えるかを決定するように構成される。
【０１０２】
現在のキャッシュサーバの不動作期間が満了期間を超える場合、切り替えユニット９８０はさらに、現在のキャッシュサーバから次のキャッシュサーバに切り替え、次のキャッシュサーバを現在のキャッシュサーバとし、決定ユニット９６０をトリガするように構成される。
【０１０３】
記録ユニット９９０は、不動作期間が満了期間を超えない場合、識別子を記録し、切り替えユニット９８０をトリガするように構成される。
【０１０４】
除去ユニット９７０はさらに、現在のキャッシュサーバが動作ステータスに戻った後、記録された識別子に基づいてオブジェクトを除去するように構成される。
【０１０５】
例示的な実装例の上の記述から、本開示の例示的な実施形態は、オブジェクトの識別子を含む除去依頼を受信し、識別子のハッシュ結果値を得るために、一貫したハッシングをオブジェクトの識別子に適用し、ハッシュ結果値に基づいて、対応するキャッシュサーバを見つけ、対応するキャッシュサーバを現在のキャッシュサーバにし、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するかを決定し、現在のキャッシュサーバが動作ステータスにあり、かつオブジェクトに関連した満了期間を超える動作期間を有するという決定に応答して、オブジェクトを現在のキャッシュサーバから除去する。したがって、本開示の例示的な実施形態は、全てのキャッシュサーバにおいて除去動作を実行する必要はない。代わりに、見つけられたキャッシュサーバの動作期間をオブジェクトに関連した満了期間と比較することによって、例示的な実施形態は、除去される予定のオブジェクトを含むキャッシュサーバを正確に見つけて除去動作を実行し、ひいては他のキャッシュサーバがリソースを無駄にすることを防いで除去動作を実行し、したがって、分散型キャッシュシステムの全体的な性能を向上させる。
【０１０６】
上述の例示的な実施形態から、当業者であれば、必須のユニバーサルハードウェアプラットフォームを有するソフトウェアを使用して、本開示の方法およびシステムを実施してもよいことを明確に理解することができる。この理解に基づいて、本開示の技術的スキームまたは既存の技術を、ソフトウェア製品の形態で実施することができ、不揮発性記憶媒体、例えば、ＲＯＭ／ＲＡＭ、ディスク、またはコンパクトディスク内に記憶される。ソフトウェアは、コンピュータデバイス（例えば、パーソナルコンピュータ、サーバ、またはネットワークデバイス）に対して、本開示における例示的な実施形態または例示的な実施形態のある部分に記載の方法を実行する指示を含む。
【０１０７】
様々な例示的な実施形態が、本開示において漸進的に説明される。例示的な実施形態の同一または類似の部分を、相互に参照することができる。それぞれの例示的な実施形態は、他の例示的な実施形態とは異なる焦点を有する。とりわけ、例示的なシステムは、それが例示的な方法と基本的に一致するため、比較的単純な様式で説明されている。その詳細を、例示的な方法の関連部分に照会することができる。
【０１０８】
本開示の方法およびシステムを、汎用または特殊コンピュータシステム（複数を含む）の環境または構成において使用してもよい。例として、パーソナルコンピュータ、サーバコンピュータ、手持ちデバイスまたは携帯デバイス、タブレットデバイス、多重プロセスもしくはシステム、マイクロプロセスもしくはシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、マイクロコンピュータ、マクロコンピュータ、および任意のシステムまたは上のデバイスを含む分散型コンピュータ環境が挙げられる。
【０１０９】
本開示の方法およびシステムを、コンピュータ実行可能指示、例えば、プログラムモジュールの一般的文脈で説明することができる。概して、プログラムモジュールは、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含むことができる。本開示の方法およびシステムを、機能が通信ネットワークを介して接続されるリモート処理デバイスによって実行される分散型コンピュータ環境において実践することもできる。分散型コンピュータ環境において、プログラムモジュールを、メモリ記憶デバイスを含むローカルおよび／またはリモートコンピュータ記憶媒体に設置してもよい。
【０１１０】
例えば、図１０は、上述のサーバ等の例示的な除去サーバ１０００をより詳細に説明する。一実施形態において、サーバ１０００は、１つ以上のプロセッサ１０１０、ネットワークインターフェース１０２０、メモリ１０３０、および入力／出力インターフェース１０４０を含むことができるが、それらに限定されない。
【０１１１】
メモリ１０３０は、ランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリおよび／または読み出し専用メモリ（ＲＯＭ）もしくはフラッシュＲＡＭ等の不揮発性メモリの形態で、コンピュータ可読媒体を含んでもよい。メモリ１０３０は、コンピュータ可読媒体の例である。
【０１１２】
コンピュータ可読媒体には、コンピュータ可読指示、データ構造、プログラムモジュール、または他のデータ等の情報の記憶用の、任意の方法または技術において実装される揮発性および不揮発性、除去可能および除去不可能な媒体が含まれる。コンピュータ記憶媒体の例として、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、他のタイプのランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または情報を記憶するために使用することができる、コンピュータデバイスによるアクセスのための任意の他の非伝送媒体が挙げられるが、それらに限定されない。本明細書で定義されるように、コンピュータ可読媒体は、変調データ信号および搬送波等の一過性の媒体を含まない。
【０１１３】
メモリ１０３０は、プログラムユニット１０５０およびプログラムデータ１０６０を含んでもよい。一実施形態において、プログラムユニット１０５０は、受信ユニット１０７０、計算ユニット１０８０、位置決めユニット１０９０、決定ユニット１１００、および除去ユニット１１１０を含んでもよい。さらに、いくつかの実施形態において、プログラムユニット１０５０は、設定ユニット１１２０および記憶ユニット１１３０をさらに含んでもよい。さらに、または代替として、プログラムユニット１０５０は、切り替えユニット１１４０および記録ユニット１１５０を含んでもよい。これらのプログラムユニットについての詳細を、上に記載される前述の実施形態において見出すことができる。
【０１１４】
例示的な実施形態を使用して本開示を説明しているが、当業者は、本開示を、本開示の精神および範囲から逸脱することなく、多くの異なる方法で変更または修正することができることを理解するはずである。したがって、本開示が、本開示の特許請求の範囲およびそれらの同等物の範囲内に収まる全ての修正および変更を包含することが意図される。
【図１】
2013536530.tif 000005
【図２】
2013536530.tif 000006
【図３】
2013536530.tif 000007
【図４】
2013536530.tif 000008
【図５】
2013536530.tif 000009
【図６】
2013536530.tif 000010
【図７】
2013536530.tif 000011
【図８】
2013536530.tif 000012
【図９】
2013536530.tif 000013
【図１０】
2013536530.tif 000014
【国際調査報告】
2013536530.tif 000015