JP2017527865A - ローカルキャッシュを有するメムキャッシュドシステム - Google Patents

ローカルキャッシュを有するメムキャッシュドシステム Download PDF

Info

Publication number
JP2017527865A
JP2017527865A JP2016568394A JP2016568394A JP2017527865A JP 2017527865 A JP2017527865 A JP 2017527865A JP 2016568394 A JP2016568394 A JP 2016568394A JP 2016568394 A JP2016568394 A JP 2016568394A JP 2017527865 A JP2017527865 A JP 2017527865A
Authority
JP
Japan
Prior art keywords
value
key
hit
request
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016568394A
Other languages
English (en)
Other versions
JP6308508B2 (ja
Inventor
ウ、シアンビン
ズ、シュンユ
シェン、インゼ
ンガイ、ティン−フック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2017527865A publication Critical patent/JP2017527865A/ja
Application granted granted Critical
Publication of JP6308508B2 publication Critical patent/JP6308508B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

メムキャッシュドシステムに関連する装置、複数の方法、およびストレージ媒体が本明細書により開示される。複数の実施形態において、メムキャッシュドシステムのクライアントデバイスは、メモリと、メモリに結合された1または複数のプロセッサとを含み得る。更に、クライアントデバイスは、メムキャッシュドシステムにおけるキーに対応する値をゲットまたはセットする要求を受信し、受信に応答して、キーがメムキャッシュドロジックによりメモリ内に保持されるローカルキャッシュにおけるヒットをもたらしたか否かを判断し、少なくとも部分的にキーがローカルキャッシュにおけるヒットをもたらしたことを判断の結果が示すか否かに基づいて、ゲットまたはセット要求をサービス提供するように構成されたメムキャッシュドロジックを含み得る。複数の実施形態において、メムキャッシュドシステムのサーバは、ゲット、セット、またはアップデート要求をサービス提供する補数メムキャッシュドロジックを含み得る。他の複数の実施形態が説明され、および/または特許請求され得る。

Description

本開示は、データ処理の分野に関する。より詳細には、本開示は、ローカルキャッシュを有するメムキャッシュドシステムに関する。
本明細書において提供される背景技術の説明は、本開示の文脈を一般に提示することを目的とする。本明細書において別途示されない限り、本節において説明される複数の材料は、本願における特許請求の範囲に対する従来技術ではなく、本節に含まれることにより従来技術であることは認められない。
コンピューティングにおいて、メムキャッシュド(memcached)は、汎用の分散メモリキャッシュシステムである。多くの場合、これは、外部データソース(データベース等)が読み取られなければならない回数を減らすべく、ランダムアクセスメモリ(RAM)内にデータおよびオブジェクトをキャッシュすることにより、動的なデータベースドリブンウェブサイトをスピードアップするように用いられる。ほとんどのシステムは、複数のクライアントおよびサーバを含むクライアントサーバアーキテクチャを用いる。複数のサーバは、キーバリュー連想配列を維持し、複数のクライアントは、この配列をポピュレートしてクエリする。複数のクライアントは、クライアント側の複数のライブラリを用いて複数のサーバにコンタクトする。各クライアントは、全てのサーバを知っており、通常、複数のサーバは、互いに通信しない。クライアントが特定のキーに対応する値を設定し、または読み取ることを希望する場合、クライアントのライブラリはまず、キーのハッシュを演算して用いるサーバを決定する。次に、クライアントのライブラリは、サーバにコンタクトする。サーバは、キーの第2のハッシュを演算して、対応する値をどこに格納し、または読み取るかを決定する。通常、複数のサーバは、値をRAMに保持し、サーバがRAMを使い果たすと、最も古い複数の値を破棄する。
大きな複数のウェブアプリケーション、例えば数百万のユーザがいるウェブアプリケーションについては、複数のページ要求をタイムリーにサービス提供するには数百のメムキャッシュドサーバが必要であり得る。ビジネスの要求を満たすには、サービスオペレータは、所望のサービスレベルアグリーメント(SLA)を満たすべくできるだけ大きなトータルメモリサイズを提供することが必要であるのみならず、多くの場合に特に、ゲット、セット、アップデートを含む、複数のメモリアクセス要求を処理するための多くのCPU電力も必要とする。
CPUに限界があるので、メムキャッシュドサーバは通常、複数のメモリを実装する物理的容量を完全に利用することができない。これに代えて、複数のオペレータは、負荷を複数のメムキャッシュドサーバにわたって分散されて、予期される負荷バランス、従ってSLAを実現することが必要である。これは、少なくとも2つの問題をもたらす。すなわち、1)不十分なメモリ帯域幅の使用、および2)不十分なスケーラビリティである。また、CPUが深く関わっているので、各メモリアクセスに対するオーバヘッドは高くなる。これは、各キーバリューペアアクセス毎に不十分な電力の効率性をもたらす。第3に、メムキャッシュドのアクセスパターンは通常、極めてランダムであり、これによりメムキャッシュド内に格納されたデータに対するCPUのキャッシュをほぼ無用のものとするが、サイクルおよび電力の無駄となる。
実施形態は、以下の詳細な説明を添付の図面と併せて参照することによって、容易に理解されるであろう。この説明を容易にするべく、同一の符号は、同一の構造要素を指す。複数の実施形態は、添付の図面の複数の図において限定としてではなく例として図示される。
開示される複数の実施形態による、複数のローカルキャッシュを有するメムキャッシュドシステムを用いたコンピューティング構成を示すブロック図である。 開示される複数の実施形態による、サーバ上におけるメムキャッシュドロジックの様々な動作フローを図示するフロー図である。 開示される複数の実施形態による、サーバ上におけるメムキャッシュドロジックの様々な動作フローを図示するフロー図である。 開示される複数の実施形態による、サーバ上におけるメムキャッシュドロジックの様々な動作フローを図示するフロー図である。 開示される複数の実施形態による、クライアント上におけるメムキャッシュドロジックの様々な動作フローを図示するフロー図である。 開示される複数の実施形態による、クライアント上におけるメムキャッシュドロジックの様々な動作フローを図示するフロー図である。 開示される複数の実施形態による、クライアント上におけるメムキャッシュドロジックの様々な動作フローを図示するフロー図である。 開示される複数の実施形態による、本開示の様々な態様を実施するべく用いるのに好適な例示的コンピュータシステムを図示する。 開示される複数の実施形態による、図2〜7を参照して説明される複数の方法を実施するための複数の命令を有するストレージ媒体を図示する。
複数のローカルキャッシュを有するメムキャッシュドシステムに関連する複数の装置、複数の方法、およびストレージ媒体が本明細書により開示される。複数の実施形態において、メムキャッシュドシステムのクライアントデバイスは、メモリと、メモリに結合された1または複数のプロセッサとを含み得る。更に、クライアントデバイスは、メムキャッシュドシステムにおけるキーに対応する値をゲットまたはセットする要求を受信し、要求を受信したことに応答して、キーがメムキャッシュドロジックによりメモリ内に保持されるローカルキャッシュにおけるヒットをもたらしたか否かを判断し、少なくとも部分的にキーがローカルキャッシュにおけるヒットをもたらしたことを判断の結果が示すか否かに基づいて、ゲットまたはセット要求をサービス提供するように構成されたメムキャッシュドロジックを含み得る。
複数の実施形態において、メムキャッシュドシステムのサーバは、メモリと、1または複数のプロセッサとを含み得る。更に、メムキャッシュドシステムは、メムキャッシュドシステムにおけるキーに対応する値をゲットする要求を受信し、キーがヒットをもたらしたか否かを判断し、ヒットをもたらすキーに応答して、値および値に関連付けられた状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを返すように構成されたメムキャッシュドロジックを更に備え得る。複数の実施形態において、メムキャッシュドロジックは、メムキャッシュドシステムにおいて第2のキーを第2の対応する値にアップデートする要求を受信し、第2のキーがヒットをもたらしたか否かを判断し、第2のキーがヒットをもたらしたことに応答して、第2のキーに対するヒットをもたらす第1のアイテムに関連する第2の状態フラグを古い状態にアップデートし、第1のアイテムを収集リストに追加し、第2のキーに対する第2のアイテムを生成し、第2のアイテムに第2の値を割り当てるように更に構成され得る。
以下の詳細な説明において、本明細書の一部を形成する添付の図面を参照する。同一の符号は、全体を通して同一の部分を指し、例示として、実施され得る複数の実施形態が示される。他の複数の実施形態が使用され得、本開示の範囲を逸脱することなく構造またはロジックの変更がなされ得ることを理解されたい。従って、以下の詳細な説明は、限定的な意味に解釈されるものではなく、複数の実施形態の範囲は、添付の特許請求の範囲およびその均等物により規定される。
本開示の複数の態様は、添付の明細書において開示される。本開示の複数の代替的な実施形態およびそれらの均等物は、本開示の趣旨または範囲から離れることなく考案され得る。以下に開示される同一の複数の要素は、図面において同一の参照番号により示されることに留意されたい。
同様に、様々な動作は、特許請求される主題を理解するのに最も役立つように複数の別個の作用または動作として説明され得る。
しかし、本明細書における順序は、これらの動作が必ずしも順序に依存するものことを含意するものと解釈されるべきではない。具体的には、これらの動作は、表示される順序で実行されなくてもよい。説明される複数の動作は、説明される複数の実施形態と異なる順序で実行され得る。様々な追加の動作が実行され得、および/または説明される複数の動作は、追加の複数の実施形態において省略されてもよい。
本開示の目的のために、「Aおよび/またはB」という文言は、(A)、(B)、または(AおよびB)を意味する。本開示の目的のために、「A、B、および/またはC」という文言は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または(A、B、およびC)を意味する。
本明細書は、「一実施形態において」または「複数の実施形態において」という文言を用いることがある。これらの文言は各々、同一または異なる複数の実施形態のうちの1または複数を指し得る。更に、本開示の複数の実施形態に対して用いられる「備える」、「含む」、および「有する」等の用語は、同義語である。
本明細書において用いられるように、「モジュール」という用語は、説明される機能を提供する1または複数のソフトウェアもしくはファームウェアプログラム、組み合わせたロジック回路および/または他の好適なコンポーネントを実行する、特定用途向け集積回路(ASIC)、電子回路、プロセッサ(共有、専用、またはグループ)、および/またはメモリ(共有、専用、またはグループ)を指し、これらの一部であり、またはこれらを含み得る。
ここで図1を参照すると、開示される複数の実施形態による、複数のローカルキャッシュを有するメムキャッシュドシステムを用いたコンピューティング構成を示すブロック図が図示される。示されるように、メムキャッシュドシステムを用いるコンピューティング構成100は、ネットワーク104を介して互いに結合されるいくつかのクライアントデバイス102a〜102c、およびいくつかのサーバ106a〜106bを含み得る。各クライアントデバイス102a、102b、または102cは、対応するプロセッサおよびメモリ112a、112b、または112c、クライアント側のメムキャッシュドロジック114a、114b、または114c、ローカルキャッシュ116a、116b、または116c、ならびにネットワークインタフェースカード(NIC)118a、118b、または118cを含み得る。これに対し、各サーバ106aまたは106bは、対応するプロセッサおよびメモリ122aまたは122b、サーバ側のメムキャッシュドロジック124aまたは124b、ならびにリモートダイレクトメモリアクセス(RDMA)NIC126aまたは126bを含み得る。クライアント側のメムキャッシュドロジック114a、114bおよび114c、ならびにサーバ側のメムキャッシュドロジック124aおよび124bは共に、ローカルキャッシュ116a、116b、および116cを用いてメムキャッシュドシステムを実装し、既存の複数のメムキャッシュドシステムに対する潜在的利点を提供する。ローカルキャッシュ116a、116bおよび116cの使用およびメンテナンス、ならびにNIC118a〜118cおよびRDMA NIC126a〜126bの使用を含む、クライアント側のメムキャッシュドロジック114a、114b、および114c、ならびにサーバ側のメムキャッシュドロジック124a、および124bの複数の動作フローは、以下により詳細に説明される。
クライアント側のメムキャッシュドロジック114a、114b、または114c、およびローカルキャッシュ116a、116b、または116cのインスタンス化を除き、クライアントデバイス102a、102b、または102cは、カリフォルニア州クパチーノのアップルコンピュータ、カリフォルニア州パロアルトのヒューレットパッカード等から入手可能なスマートフォン、コンピューティングタブレット、ウルトラブック、ラップトップ、デスクトップコンピュータ、またはサーバを含むがこれらに限定されない、当技術分野で既知の広範なコンピューティングデバイスを表すことを意図する。従って、プロセッサおよびメモリ112a〜112c、ならびにNIC118a〜118cは、当技術分野で既知のいくつかのこれらの要素のうちのいずれか1つであり得る。
同様に、サーバのメムキャッシュドロジック124aまたは124bを除き、サーバ106aまたは106bは、テキサス州オースティンのデルコンピュータ、ニューヨーク州アーモンクのIBM等から入手可能な複数のサーバを含むがこれらに限定されない、当技術分野で既知の広範なコンピューティングデバイスを表すことを意図する。理解を容易にするべく、コンピューティング構成100は、3つのクライアントデバイス102a、102b、および102c、ならびに2つのサーバ106aおよび106bを用いて図示および説明されるが、本開示はそのように限定されるものではない。実施形態において、コンピューティング構成100は、任意の数のクライアントデバイスおよび任意の数のサーバを含み得る。従って、プロセッサおよびメモリ122a〜122c、ならびにRDMA NIC126a〜126bは、当技術分野で既知のいくつかのこれらの要素のうちのいずれか1つであり得る。
ネットワーク104は、当技術分野で既知の1または複数の有線および/または無線、ローカルおよび/またはワイドエリア、パブリックおよび/またはプライベートのネットワークを含み得る。複数のネットワークの各々は、1または複数のルータ、スイッチ、ゲートウェイ、および/または他の複数のネットワークデバイスを含み得る。
ここで図2〜4を参照すると、開示される複数の実施形態による、サーバ上におけるメムキャッシュドロジックの様々な動作フローを図示する3つのフロー図が示される。図示されるように、サーバ側のメムキャッシュドロジック124aまたは124bの複数の動作フローは、様々な要求をサービス提供する処理200および300、ならびにサーバを保守する処理400を含み得る。動作フローは、ブロック202で開始し得、サーバ側のメムキャッシュドロジック124aまたは124bは、メムキャッシュドシステムの典型的なサーバ初期化処理を受け得る。しかし、本開示の下では、既存のメムキャッシュドシステムと異なり、サーバ側のメムキャッシュドロジック124aまたは124bは、初期化処理中にそのメモリ122aまたは122bの複数の物理アドレスをメムキャッシュドシステムのアドレス空間へとマッピングし得る。複数の仮想アドレスではなく、物理アドレスをマッピングする潜在的な利点は、後述される。
次にブロック204において、サーバ側のメムキャッシュドロジック124aまたは124bは、クライアント102a、102bまたは102cから要求を受信してそのサービスを開始し得る。ブロック206において、要求を受信すると、サーバ側のメムキャッシュドロジック124aまたは124bはまず、受信された要求がメムキャッシュドシステムにおけるキーに対応する値をゲットするゲット要求であるか否かを判断し得る。ゲット要求である場合、動作フローは、ブロック208へと続き得、サーバ側のメムキャッシュドロジック124aまたは124bは、キーがヒットをもたらすか否かを判断し得る。キーがヒットをもたらさないことを判断の結果が示す場合、動作フローは、ブロック210へと続き得、サーバ側のメムキャッシュドロジック124aまたは124bは、例えば、キーに対する要求された値が見つからないことを示すメッセージを用いて応答し得る。その後、動作フローは、先述のようにブロック204に戻って継続し得る。
しかし、ブロック208において、キーがヒットをもたらしたことを判断の結果が示す場合、動作フローは、ブロック212へと続き得る。サーバ側のメムキャッシュドロジック124aまたは124bは、(要求された値を返す代わりに)キーの対応する値、および関連する、値が古いか否かを示す関連付けられる状態フラグが格納される、要求元クライアント102a、102b、または102cにメムキャッシュドシステムの1または複数の位置における1または複数のアドレスを返し得る。クライアントデバイス102a、102b、または102cが1または複数のアドレスを受信した後に続く事柄は、クライアントデバイス102a、102b、または102cの複数の動作フローが、図5〜7を参照して説明されるときに後述される。複数の実施形態において、対応する値の位置のアドレス、および関連付けられる状態フラグに対するアドレスが返される。他の複数の実施形態において、対応する値および関連付けられる状態フラグが一緒に位置付けられる位置に対する1つのアドレスが返される。
ブロック206に戻って、要求がゲット要求でないことを判断の結果が示す場合、動作フローは、図3へと続き、ブロック302で開始し得る。ブロック302において、サーバ側のメムキャッシュドロジック124aまたは124bは、要求がセット要求であるか否かを判断し得る。要求がセット要求でもアップデート要求でもないことを判断の結果が示す場合、サーバ側のメムキャッシュドロジック124aまたは124bは、既存の複数のメムキャッシュドシステムにおけるように要求を処理してサービス提供し得る。その後、動作フローは、先述のように図2のブロック204に戻って継続し得る。
他方、ブロック302における判断の結果がセットまたはアップデート要求であることを示す場合、動作フローは、ブロック306へと続き得る。ブロック306において、サーバ側のメムキャッシュドロジック124aまたは124bは、セットまたはアップデート要求のキーに対して対応する古い値が存在するか否かを判断し得る。判断の結果がブロック306において、セットまたはアップデート要求のキーに対して対応する古い値が存在しないことを示す場合、動作フローは、ブロック308へと続き得る。サーバ側のメムキャッシュドロジック124aまたは124bは、キーに対してメムキャッシュドシステムにおける新しいアイテムを割り当て、そのアイテムにセットまたはアップデート要求により提供される値を割り当て得るべく進み得る。次に、ブロック310において、サーバ側のメムキャッシュドロジック124aまたは124bは、例えば、セットまたはアップデート要求が首尾よく完了したことを示すメッセージを用いて要求に応答し得る。動作フローは、先述のようにブロック310から図2のブロック204へと続き得る。
ブロック306に戻って、セットまたはアップデート要求のキーに対して、対応する古い値が存在することをブロック306における判断の結果が示す場合、動作フローは、ブロック312へと続き得る。サーバ側のメムキャッシュドロジック124aまたは124bは、対応する古い値を古いものとして反映するべく、キーに関連付けられた状態フラグをアップデートし得る。更に、サーバ側のメムキャッシュドロジック124aまたは124bは、アイテムに対して割り当てられたメモリが次に回復されることを可能にするべく、キーおよび対応する古い値を有するアイテムを再収集リストに追加し得る。複数の実施形態において、再収集リストは、ファーストインファーストアウトリストであってもよい。ブロック312から、動作フローは、先述のようにブロック308に続き得る。
ゲット、セットまたはアップデート要求をサービス提供する上記の動作フローに加えて、サーバ側のメムキャッシュドロジック124aまたは124bは、「古い」とマークを付けられた値を有する複数のアイテムに割り当てられたメモリを回復するメンテナンス処理400(クリーンアップ処理とも称される)も周期的に実行し得る。処理400は、ブロック402で開始し得、サーバ側のメムキャッシュドロジック124aまたは124bは、メンテナンス処理を実行する時点を待つ。処理400は、メンテナンス処理400を実行する時点になるまでブロック402において連続的にループし得る。そのようなときに、処理400は、ブロック404で継続し得る。ブロック404において、サーバ側のメムキャッシュドロジック124aまたは124bは、任意のアイテムが再収集リストに追加されたか否かを判断し得る。再収集リストが空であることを判断の結果が示し、最後のメンテナンス以来、古いとマークを付けられた値を有するアイテムがないことを意味する場合、処理400は、スリープ状態になり得る。すなわち、ブロック402に戻り、メンテナンスが実行される次の時点を待つことになる。
他方、ブロック404において、再収集リストが空ではないと判断され、古い複数の値を有する1または複数のアイテムが追加されたことを意味する場合、処理400は、ブロック406へと続き得る。ブロック406において、サーバ側のメムキャッシュドロジック124aまたは124bは、再収集リストにおける次のアイテムを調査して、次のアイテムが失効したか否かを判断し得る。失効は、例えば、再収集リストに置かれたときからの経過時間量に基づいて判断され得る。再収集リストがファーストインファーストアウトリストである例示の実施形態において、次のアイテムが失効していない場合、処理400はやはりスリープ状態になり得る。すなわち、先述のようにブロック402に戻り、メンテナンスが実行される次の時点を待つ。これに代えて、再収集リストがファーストインファーストアウトリストでない代替的な複数の実施形態においては、処理400は、先述のようにブロック404に戻り、そこから継続し得る。
他方、ブロック406において調査されたアイテムが失効したことが判断された場合、次にブロック408において、サーバ側のメムキャッシュドロジック124aまたは124bは、失効したアイテムに割り当てられたメモリを解放して再利用のためにメモリプールに戻し得る。その後、処理400は、ブロック404に戻り、先述のように継続し得る。ブロック404〜408における複数の動作は、再収集リストにおける失効したアイテムがなくなるまで反復し得る。再収集リストにおいて失効した全てのアイテムを処理すると、処理400は、先述のようにブロック402に戻り、そこから継続し得る。
ここで図5〜7を参照すると、開示される複数の実施形態による、クライアント上におけるメムキャッシュドロジックの様々な動作フローを図示する3つのフロー図が示される。図示されるように、クライアント側のメムキャッシュドロジック114a、114bまたは114cの複数の動作フローは、初期化処理500、ゲット要求をサービス提供する処理600、およびセット要求をサービス提供する処理700を含み得る。
初期化処理500は、図5のブロック502で開始し得、クライアント側のメムキャッシュドロジック114a、114b、または114cは、既存の複数のメムキャッシュドシステムにおけるようにスタートアップすると初期化され得る。しかし、開示される実施形態では、次にブロック504において、クライアント側のメムキャッシュドロジック114a、114b、または114cは、ローカルキャッシュ116a、116bまたは116cとして用いられるべきローカルメモリのブロックを割り当て得る。
ゲット要求をサービス提供する処理600は、ブロック602で開始し得、クライアント側のメムキャッシュドロジック114a、114bまたは114cは、ゲット要求のキーをローカルキャッシュ116a、116bまたは116cに位置付けることを試み得る。キーがキャッシュヒット(または単に、ヒット)をもたらさなかった場合、ブロック606においてクライアント側のメムキャッシュドロジック114a、114bまたは114cは、既存の複数のメムキャッシュドシステムにおけるように、メムキャッシュドシステムのサーバにゲット要求を送信し得る。先述のように、既存の複数のメムキャッシュドシステムとは異なり、クライアント側のメムキャッシュドロジック114a、114b、または114cはこれに応答して、ブロック608においてキーの対応する値および関連する「古い」状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを受信し得る。次に、クライアント側のメムキャッシュドロジック114a、114bまたは114cは、キーの対応する値および関連付けられた「古い」状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の返された1または複数のアドレスをキャッシュする。次に、ブロック610において、クライアント側のメムキャッシュドロジック114a、114b、または114cは、返された値のアドレスを用いてRDMA動作を実行し、キーの対応する値を取得し得る。その後、クライアント側のメムキャッシュドロジック114a、114b、または114cは、取得された値をゲット要求の要求元に返し得る。ブロック610において、処理600は終了し得る。
RDMA動作の性質により、サーバ側のメムキャッシュドロジック124aまたは124bは、クライアント102a、102bまたは102cが値を取得する場合にRDMA動作を認識せず、従ってサーバ106aまたは106bの複数のプロセッサは、複数のキーに対応する値の実際の取得をサービス提供することには関係しないことに留意されたい。換言すれば、本開示の下では、サーバ106aまたは106bの複数のプロセッサは、サーバ106aまたは106bのメモリ容量を制約するボトルネックではもはやなくなる。従って、本開示の下では、既存の複数のメムキャッシュドシステムと比較して、はるかに大きなメモリ容量が各サーバ106aまたは106bにおいて構成され得ることが期待される。同様に、既存の複数のメムキャッシュドシステムと比較して、より少ないサーバ106aまたは106bがアプリケーションに必要とされることがあり、本開示は、特にRDMAにおいて(仮想アドレスの代わりに)複数の物理アドレスを直接に用いることと結び付けられると、より効率的でスケーラブルなものとなり得る。更に、プロセッサの使用量が顕著に低いので、既存の複数のメムキャッシュドシステムと比較して、サーバ106aおよび106bは、はるかに少ない電力を消費し、よりエネルギー効率がよくなり得る。
他方、更に図6を参照すると、ブロック604における判断の結果がヒットをもたらすキーを示す場合、処理600はブロック612に進み得る。ブロック612において、メムキャッシュドロジック114a、114bまたは114cは、ヒットをもたらすキャッシュエントリが失効したか否かを判断し得る。ヒットをもたらすキャッシュエントリが失効していなかった場合、メムキャッシュドロジック114a、114bまたは114cは、キャッシュヒットをもたらすキャッシュエントリに格納された値の1または複数のアドレスおよび関連付けられる状態フラグを用いてRDMA動作を実行し、キーの対応する値および関連付けられる状態フラグを取得し得る。キャッシュエントリの失効は、例えば現在のシステム時間を、1または複数のアドレスがメムキャッシュドサーバから取得された時間と比較することにより判断され得る。時間差が設定値より大きい場合、キャッシュエントリは、失効したものと判断され得る。次にブロック614〜616において、メムキャッシュドロジック114a、114bまたは114cは、状態フラグをチェックして、取得された値が古いか否かを判断し得る。ブロック616において、取得された値が古くないと判断された場合、ブロック618において、メムキャッシュドロジック114a、114bまたは114cは、ゲット要求の要求元に取得された値を返し得る。ブロック618において、処理600は終了し得る。
しかし、ブロック612において、ヒットをもたらすキャッシュエントリが失効したと判断され、またはブロック616において取得された値が古いと判断された場合、処理600は、ブロック620へと続き得る。ブロック620において、メムキャッシュドロジック114a、114bまたは114cは、既存の複数のメムキャッシュドシステムにおけるように、メムキャッシュドシステムのサーバにゲット要求を送信し得る。先述のように、既存の複数のメムキャッシュドシステムと異なり、ブロック620において、メムキャッシュドロジック114a、114bまたは114cは、応答として、キーの対応する値および関連付けられる状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを受信し得る。先述のように、類似の受信については、メムキャッシュドロジック114a、114bまたは114cは、ローカルキャッシュ116a、116bまたは116cをアップデートし、返された1または複数のアドレスを、ローカルキャッシュ116a、116bまたは116cにおける新しいキャッシュエントリに格納し、キャッシュヒットをもたらす従来のキャッシュエントリを無効にし得る。これに代えて、代替的な複数の実施形態では、メムキャッシュドロジック114a、114bまたは114cは、キャッシュヒットをもたらす従来のキャッシュエントリをアップデートし得る。次に、ブロック622において、メムキャッシュドロジック114a、114bまたは114cは、返された値のアドレスを用いてRDMA動作を実行し、先に検討されたように値を取得し、ゲット要求の要求元に取得された値を返し得る。ブロック622において、処理600は終了し得る。
同様に、セット要求をサービス提供する処理700は、ブロック702で開始し得、メムキャッシュドロジック114a、114bまたは114cは、ローカルキャッシュ116a、116bまたは116c内にセット要求のキーを位置付けることを試み得る。キーがキャッシュヒット(または単に、ヒット)をもたらし、失効していない場合、ブロック706において、メムキャッシュドロジック114a、114bまたは114cは、キャッシュヒットをもたらすキャッシュエントリを無効にして、次にブロック708に進み、そうでなければ処理700は、ブロック708に直に進み得る。ブロック708において、メムキャッシュドロジック114a、114bまたは114cは、既存の複数のメムキャッシュドシステムにおけるようにセット要求を処理してサービス提供し得る。ブロック708において、処理700は終了し得る。
図8は、本開示の選択された複数の態様を実施するクライアントデバイスまたはサーバとして用いるのに好適であり得る例示的コンピュータシステムを図示する。示されるように、コンピュータ900は、1または複数のプロセッサまたはプロセッサコア902と、システムメモリ904とを含み得る。本願の目的のために、特許請求の範囲を含めて、「プロセッサ」および「プロセッサコア」という用語は、文脈において別途明示的に要求しない限り、同義語とみなされ得る。更に、コンピュータ900は、複数の大容量ストレージデバイス906(ディスケット、ハードドライブ、コンパクトディスクリードオンリメモリ(CD‐ROM)等)、複数の入力/出力デバイス908(ディスプレイ、キーボード、カーソル制御器等)、および複数の通信インターフェース910(ネットワークインタフェースカード、モデム等)を含み得る。これらの要素は、1または複数のバスを表し得るシステムバス912を介して互いに結合され得る。複数のバスの場合、要素は、1または複数のバスブリッジ(図示せず)によりブリッジ接続され得る。これらの要素の各々は、当技術分野において既知の従来の諸機能を実行し得る。
具体的には、システムメモリ904および大容量ストレージデバイス906は、先述された、集合的には演算ロジック922と称される、クライアントまたはサーバ側のメムキャッシュドロジック114a、114b、114c、124aまたは124bを実装する複数のプログラミング命令の作業コピーおよび永久コピーを格納するべく使用され得る。様々な要素は、プロセッサ902によりサポートされる複数のアセンブラ命令、またはそのような複数の命令にコンパイルされ得る、例えば、C言語のような複数の高水準言語により実装され得る。
これらの要素910〜912の数、機能および/または容量は、コンピュータ900がクライアントデバイスまたはサーバとして用いられるか否かに応じて異なり得る。具体的には、クライアントデバイスとして用いる場合、これらの要素910〜912の機能および/または容量は、クライアントデバイスが、スマートフォン、コンピューティングタブレット、ウルトラブック、またはラップトップのような静止デバイスか、またはモバイルデバイスか否かに応じて異なり得る。そうでなければ、要素910〜912の複数の構成は既知であり、従って更に説明されない。
当業者には理解されるように、本開示は、複数の方法またはコンピュータプログラム製品として実施され得る。従って、本開示は、先述のようにハードウェアで実施されることに加えて、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、全て、一般には「回路」、「モジュール」、または「システム」と称され得るソフトウェアおよびハードウェアの複数の態様を組み合わせる実施形態の形を取り得る。更に、本開示は、媒体内で実施されるコンピュータで使用可能なプログラムコードを有する表現の任意の有形または非一時的媒体内で実施されるコンピュータプログラム製品の形を取り得る。図9は、装置による複数の命令の実行に応答して、装置に本開示において選択される複数の態様を実施させる複数の命令を格納するべく用いるのに好適であり得る例示的なコンピュータ可読な非一時的ストレージ媒体を図示する。示されるように、非一時的コンピュータ可読ストレージ媒体1002は、いくつかのプログラミング命令1004を含み得る。プログラミング命令1004は、デバイス、例えばコンピュータ900が複数のプログラミング命令の実行に応答して、例えば、クライアントまたはサーバ側のメムキャッシュドロジック114a、114b、114c、124aまたは124bに関連付けられた様々な動作を実行することを可能にするように構成され得る。これに代えて、代替的な複数の実施形態では、プログラミング命令1004は、複数のコンピュータ可読な非一時的ストレージ媒体1002上に配置され得る。代替的な複数の実施形態では、プログラミング命令904は、信号等、コンピュータ可読な一時的ストレージ媒体1002上に配置され得る。
使用可能な1または複数のコンピュータまたはコンピュータ可読媒体の任意の組み合わせが使用され得る。コンピュータで使用可能な媒体またはコンピュータ可読媒体は、例えば、電子、磁気、光、電磁、赤外線、もしくは半導体のシステム、装置、デバイス、または伝搬媒体であり得るが、これらに限定されない。コンピュータ可読媒体のより具体的な複数の例(非包括的な一覧)は、1または複数のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、光ファイバー、ポータブルコンパクトディスクリードオンリメモリ(CD‐ROM)、光ストレージデバイス、インターネットまたはイントラネットをサポートするもの等の送信媒体、または磁気ストレージデバイスを含むであろう。コンピュータで使用可能な媒体またはコンピュータ可読媒体は、更には、プログラムが印刷される紙または別の好適な媒体であり得ることに留意されたい。プログラムは、例えば、紙または他の媒体の光スキャンにより電子的に取り込まれ、次に、必要に応じて好適にコンパイルされ、変換され、またはそうでなければ処理され、次にコンピュータメモリに格納され得る。本文書の文脈においては、コンピュータで使用可能な媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスにより、またはこれに関連して用いるプログラムを含み、格納し、通信し、伝搬し、または運び得る任意の媒体であり得る。コンピュータで使用可能な媒体は、コンピュータで使用可能なプログラムコードがベースバンドで、または搬送波の一部として実施される伝搬データ信号を含み得る。コンピュータで使用可能なプログラムコードは、無線、電線、光ファイバーケーブル、RF等を含むがこれらに限定されない任意の適切な媒体を用いて送信され得る。
本開示の複数の動作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語のような従来の手続き型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで書かれてもよい。プログラムコードは、ユーザのコンピュータに対して完全に、スタンドアロンのソフトウェアパッケージとしてユーザのコンピュータに対して部分的にユーザのコンピュータに対して部分的に、かつリモートコンピュータに対して部分的に、またはリモートコンピュータもしくはサーバに対して完全に実行され得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または接続は、外部コンピュータ(例えば、インターネットサービスプロバイダを用いるインターネットを介して)行われてもよい。
本開示は、本開示の複数の実施形態による複数の方法、装置(システム)、およびコンピュータプログラム製品の複数のフロー図および/またはブロック図を参照して説明される。複数のフロー図および/またはブロック図の各ブロック、および複数のフロー図および/またはブロック図における複数のブロックの組み合わせは、複数のコンピュータプログラム命令により実装され得ることが理解されよう。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラミング可能なデータ処理装置のプロセッサにより実行される複数の命令が、フロー図および/またはブロック図のブロックまたは複数のブロックにおいて指定される機能/動作を実装するための手段を生成するように、汎用コンピュータ、専用コンピュータ、またはマシンを製造するための他のプログミング可能なデータ処理装置のプロセッサに提供され得る。
コンピュータまたは他のプログラミング可能なデータ処理装置に特定の態様で機能するように指示し得るこれらのコンピュータプログラム命令は、コンピュータ可読媒体にも格納され得、従ってコンピュータ可読媒体に格納される複数の命令は、フロー図および/またはブロック図のブロックもしくは複数のブロックにおいて指定された機能/動作を実装する命令手段を含む製造物品を製造する。
また、一連の動作の段階がコンピュータまたは他のプログラミング可能な装置上で実行されるようにさせて、コンピュータ実装された処理を生成するべく、コンピュータプログラム命令は、コンピュータまたは他のプログラミング可能な装置上で実行される複数の命令がフロー図および/またはブロック図のブロックもしくは複数のブロックにおいて指定される複数の機能/動作を実装するための複数の処理を提供するように、コンピュータまたは他のプログラミング可能なデータ処理装置にロードされ得る。
複数の図面におけるフロー図および複数のブロック図は、本開示の様々な実施形態による複数のシステム、方法、およびコンピュータプログラム製品の可能な複数の実装のアーキテクチャ、機能、および動作を図示する。この点において、フロー図または複数のブロック図における各ブロックは、モジュール、セグメント、またはコードの一部を表し得、これらは、指定されるロジック機能を実装するための1または複数の実行可能な命令を備える。また、いくつかの代替的実装において、ブロックにおいて記された複数の機能は、複数の図面において記されたものとは異なる順序で行われ得ることにも留意されたい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはこれらのブロックは、関係する機能に応じて逆の順序で実行される場合もあり得る。複数のブロック図および/またはフロー図の各ブロック、および複数のブロック図および/またはフロー図における複数のブロックの組み合わせは、指定される複数の機能もしくは動作、または専用ハードウェアおよび複数のコンピュータ命令の組み合わせを実行する専用ハードウェアベースの複数のシステムにより実装され得ることに留意されたい。
本明細書において用いられる用語は、特定の実施形態のみを説明する目的のためのものであり、本開示の限定を意図しない。本明細書において用いられるように、単数形の「1つの(a、an、およびthe)」は、文脈において別途明示的に示されない限り、複数形も含むことを意図する。「備える(comprise)および/または「備えている(comprising)という用語は、本明細書において用いられる場合、述べられる複数の機能、整数、段階、動作、要素、および/またはコンポーネントの存在を指定するが、1または複数の他の機能、整数、段階、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を除外するものではないことが更に理解されよう。
複数の実施形態は、コンピュータ処理、コンピューティングシステム、またはコンピュータ可読媒体のコンピュータプログラム製品のような製造物品として実装され得る。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、コンピュータ処理を実行するための複数のコンピュータプログラム命令をエンコードするコンピュータストレージ媒体であってもよい。
以下の特許請求の範囲における全てのミーンズまたはステッププラスファンクションの要素の対応する複数の構造、材料、動作、および均等物は、具体的にクレームされる、クレームされた他の複数の要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことを意図する。本開示の説明は、図示および説明の目的で提示されているが、開示される形態において包括的であること、または本開示を限定することを意図しない。多くの修正形態および改変形態は、本開示の範囲および趣旨を逸脱することなく、当業者には明らかであろう。実施形態は、本開示および実際の用途の原理を最も良く説明し、当技術分野の他の当業者が、企図される特定の使用に好適な様々な変更形態を用いる複数の実施形態についての本開示を理解することを可能にするべく選択され、説明された。
図9を再び参照すると、一実施形態については、複数のプロセッサ902のうちの少なくとも1つが、(メモリ904およびストレージ906上に格納することに代えて)演算ロジック922を有するメモリと共にパッケージ化され得る。一実施形態では、複数のプロセッサ902のうちの少なくとも1つは、演算ロジック922を有するメモリと共にパッケージ化されて、システムインパッケージ(SiP)を形成し得る。一実施形態では、複数のプロセッサ902のうちの少なくとも1つは、演算ロジック922を有するメモリと共に同一のダイ上に集積され得る。一実施形態では、複数のプロセッサ802の少なくとも1つは、演算ロジック922を有するメモリと共にパッケージ化されて、システムオンチップ(SoC)を形成し得る。少なくとも一実施形態では、SoCは、例えばスマートフォンまたはコンピューティングタブレットにおいて使用され得るが、これらに限定されるものではない。
従って、以下の例を含む本開示の様々な例示的な実施形態が説明されているが、これらに限定されるものではない。
例1は、メモリと、メモリに結合された1または複数のプロセッサとを含むメムキャッシュドシステムのクライアント装置であり得る。クライアント装置は、メムキャッシュドシステムにおけるキーに対応する値をゲット、セットまたはアップデートする要求を受信し、要求の受信に応答して、キーがメムキャッシュドロジックによりメモリ内に維持されるローカルキャッシュにおけるヒットをもたらすか否かを判断し、キーがローカルキャッシュにおいてヒットをもたらすことを、判断の結果が示すことに少なくとも部分的に基づいて、ゲット、セットまたはアップデート要求をサービス提供する、1または複数のプロセッサにより操作されるメムキャッシュドロジックを更に備え得る。
例2は、例1であり得、メムキャッシュドロジックは、更に、ローカルキャッシュのためにメモリ内にストレージ空間を割り当て、または割り当てさせる。
例3は、例1または2であり得、ヒットをもたらすキーを用いるゲット要求のために、サービスは、ローカルキャッシュにアクセスして、値および値の関連付けられる状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを取得することと、ローカルキャッシュから取得された1または複数のアドレスを用いて、メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、値および関連付けられる状態フラグを取得することと、リモートダイレクトメモリアクセス動作により取得された状態フラグに少なくとも部分的に基づいて、リモートダイレクトメモリアクセス動作により取得された値が古いか否かを判断することとを含む。
例4は、例3であり得、ヒットをもたらす前記キーを用いるゲット要求のために、サービスが、更に、前記値が古くないことを示すステール判断の結果に応答して、取得された値を返すことを含む。
例5は、例3であり得、ヒットをもたらすキーを用いるゲット要求のために、サービスは、更に、値が古いことを示すステール判断の結果に応答して、メムキャッシュドシステムのサーバに、値を要求するゲット要求を送信することと、値および値の関連付けられる状態フラグが格納される、メムキャッシュドシステムの第2の1または複数の位置の第2の1または複数のアドレスを受信することと、受信された第2の1または複数のアドレスを用いて、メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、値および関連付けられる状態フラグを取得することと、キーに対する第3および第4のアドレスを格納するべく、ローカルキャッシュをアップデートすることと、受信された値を返すこととを含む。
例6は、例1〜5のいずれか1つであり得、ヒットをもたらさないキーを用いるセット要求のために、サービスは、メムキャッシュドシステムのサーバに、値を要求するゲット要求を送信することと、値および値の関連付けられる状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを受信することと、受信された1または複数のアドレスを用いて、メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、値および関連付けられる状態フラグを取得することと、受信された値を返すこととを含む。
例7は、例1〜6のいずれか1つであり得、セット要求のために、サービスは、ヒットをもたらすキーに応答して、ヒットをもたらしたローカルキャッシュにおけるキャッシュエントリを無効にすることと、メムキャッシュドシステムのサーバにセット要求を送信することとを含む。
例8は、例3であり得、リモートダイレクトメモリアクセスを実行することは、失効していないヒットをもたらすキャッシュエントリの第1の判断を含む。
例9は、メモリと、メモリと結合された1または複数のプロセッサと、遠隔のメモリへの直接的アクセスをサポートするように装備されたネットワークインタフェースカードとを備える、メムキャッシュドシステムのサーバ装置であり得る。サーバ装置は、メムキャッシュドシステムにおけるキーに対応する値をゲットする要求を受信し、キーがヒットをもたらしたか否かを判断し、ヒットをもたらすキーに応答して、値および値に関連付けられた状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを返す1または複数のプロセッサにより操作されるメムキャッシュドロジックを更に備え得る。
例10は、例9であり得、メムキャッシュドロジックは、更に、メムキャッシュドシステムにおいて第2のキーを第2の対応する値にアップデートする要求を受信し、第2のキーがヒットをもたらすか否かを判断し、ヒットをもたらす第2のキーに応答して、第2のキーに対するヒットをもたらす第1のアイテムに関連付けられた第2の状態フラグを古い状態にアップデートし、第1のアイテムを収集リストに追加し、第2のキーに対する第2のアイテムを生成し、第2のアイテムに第2の値を割り当てる。
例11は、例9または10であり得、メムキャッシュドロジックは、更に、古い状態と関連付けられる複数の状態フラグを有する複数のアイテムに割り当てられたメモリを回復するメンテナンス動作を周期的に実行する。
例12は、例9〜11のいずれか1つであり得、メムキャッシュドロジックは、更に、メモリの複数の物理アドレスをメムキャッシュドシステムのアドレス空間にマッピングする。
例13は、メムキャッシュドシステムのクライアントデバイスにより、メムキャッシュドシステムにおけるキーに対応する値をゲット、セット、またはアップデートする要求を受信する段階と、クライアントデバイスにより、要求の受信に応答して、キーがクライアントデバイスのメモリ内に維持されるローカルキャッシュにおけるヒットをもたらすか否かを判断する段階と、クライアントデバイスにより、キーがローカルキャッシュにおいてヒットをもたらすことを、判断の結果が示すか否かに少なくとも部分的に基づいて、ゲット、セットまたはアップデート要求をサービス提供する段階とを備える、データをキャッシュするメモリのための方法であり得る。
例14は、例13であり得、クライアントデバイスにより、ローカルキャッシュのためにメモリ内にストレージ空間を割り当てる段階を更に備える。
例15は、例13または14であり得、ヒットをもたらすキーを用いるゲット要求のために、サービス提供する段階は、ローカルキャッシュにアクセスして、値および値の関連付けられる状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを取得する段階と、ローカルキャッシュから取得された1または複数のアドレスを用いて、メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、値および関連付けられる状態フラグを取得する段階と、リモートダイレクトメモリアクセス動作により取得された状態フラグに少なくとも部分的に基づいて、リモートダイレクトメモリアクセス動作により取得された値が古いか否かを判断する段階とを有する。
例16は、例15であり得、ヒットをもたらすキーを用いるゲット要求のために、サービス提供する段階は、更に、値が古くないことを示すステール判断の結果に応答して、取得された値を返す段階を有する。
例17は、例15または16であり得、ヒットをもたらすキーを用いるゲット要求のために、サービス提供する段階は、更に、値が古いことを示すステール判断の結果に応答して、メムキャッシュドシステムのサーバに、値を要求するゲット要求を送信する段階と、値および値の関連付けられる状態フラグが格納される、メムキャッシュドシステムの第2の1または複数の位置の第2の1または複数のアドレスを受信する段階と、受信された第2の1または複数のアドレスを用いて、メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、値および関連付けられる状態フラグを取得する段階と、キーに対する第2またはより多くのアドレスを格納するべく、ローカルキャッシュをアップデートする段階と、受信された値を返す段階とを有する。
例18は、例13〜17のいずれか1つであり得、ヒットをもたらさないキーを用いるゲット要求のために、サービス提供する段階は、メムキャッシュドシステムのサーバに、値を要求するゲット要求を送信する段階と、値および値の関連付けられる状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを受信する段階と、受信された1または複数のアドレスを用いて、メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、値および関連付けられる状態フラグを取得する段階と、受信された値を返す段階とを有する。
例19は、例13〜18のいずれか1つであり得、セット要求のために、サービス提供する段階は、ヒットをもたらすキーに応答して、ヒットをもたらしたローカルキャッシュにおけるキャッシュエントリを無効にする段階と、メムキャッシュドシステムのサーバにセット要求を送信する段階とを有する。
例20は、例15であり得、リモートダイレクトメモリアクセス動作を実行する段階は、失効していないヒットをもたらすキャッシュエントリを第1に判断する段階を有する。
例21は、 メムキャッシュドシステムのサーバにより、キーに対応する値をゲットする要求を受信する段階と、サーバによりキーがヒットをもたらすか否かを判断する段階と、サーバにより、ヒットをもたらすキーに応答して、値および値に関連付けられる状態フラグが格納される、メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを返す段階とを備える、データをキャッシュするメモリのための方法であり得る。
例22は、例21であり得、サーバにより、メムキャッシュドシステムにおいて第2のキーを第2の対応する値にアップデートする要求を受信する段階と、サーバにより第2のキーがヒットをもたらすか否かを判断する段階と、ヒットをもたらす第2のキーに応答して、サーバにより、古い状態を有する第2のキーに対するヒットをもたらす第1のアイテムに関連付けられた第2の状態フラグをアップデートする段階と、第1のアイテムを収集リストに追加する段階と、第2のキーに対する第2のアイテムを生成する段階と、第2のアイテムに第2の値を割り当てる段階とを更に備える。
例23は、例21または22であり得、サーバにより、古い状態と関連付けられる複数の状態フラグを有する複数のアイテムに割り当てられたメモリを回復するメンテナンス動作を周期的に実行する段階を更に備える。
例24は、例21〜23のいずれか1つであり得、サーバにより、サーバのメモリの複数の物理アドレスをメムキャッシュドシステムのアドレス空間にマッピングする段階を更に備える。
例25は、クライアント装置による複数の命令の実行に応答して、クライアント装置に、例13〜18のいずれか1つの複数の方法を実行させる複数の命令を備える、1または複数のストレージ媒体であり得る。
例26は、サーバ装置による複数の命令の実行に応答して、サーバ装置に、例19〜24のいずれか1つの複数の方法を実行させる複数の命令を備える、1または複数のストレージ媒体であり得る。
例27は、例13〜18の複数の方法のいずれか1つを実行するための手段を備えるクライアント装置であり得る。
例28は、例19〜24の複数の方法のいずれか1つを実行するための手段を備えるクライアント装置であり得る。
他のキャッシュ用途、ストレージ用途、または電気製品に対する適用を含む、本開示の趣旨または範囲を逸脱することなく、メムキャッシュドのための開示されるデバイスおよび関連する複数の方法の開示される複数の実施形態において、様々な修正形態および改変形態が行われ得ることが当業者には明らかであろう。従って、修正形態および改変形態があらゆる特許請求の範囲およびその均等物の範囲内に包含されることを条件として、本開示は、上記で開示された複数の実施形態の修正形態および改変形態を包含することを意図する。

Claims (28)

  1. メムキャッシュドシステムのクライアント装置であって、
    メモリと、
    前記メモリに結合された1または複数のプロセッサと、
    前記メムキャッシュドシステムにおけるキーに対応する値をゲット、セットまたはアップデートする要求を受信し、
    前記要求の受信に応答して、前記キーがメムキャッシュドロジックによりメモリ内に維持されるローカルキャッシュにおけるヒットをもたらすか否かを判断し、
    前記キーが前記ローカルキャッシュにおいてヒットをもたらすことを、前記判断の結果が示すことに少なくとも部分的に基づいて、ゲット要求、セット要求、またはアップデート要求をサービス提供する、前記1または複数のプロセッサにより操作される前記メムキャッシュドロジックとを備える、クライアント装置。
  2. 前記メムキャッシュドロジックは、更に、前記ローカルキャッシュのために前記メモリ内にストレージ空間を割り当て、または割り当てさせる、請求項1に記載のクライアント装置。
  3. ヒットをもたらす前記キーを用いるゲット要求のために、サービスは、
    前記ローカルキャッシュにアクセスして、前記値および前記値の関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを取得することと、
    前記ローカルキャッシュから取得された前記1または複数のアドレスを用いて、前記メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、前記値および前記関連付けられる状態フラグを取得することと、
    前記リモートダイレクトメモリアクセス動作により取得された前記状態フラグに少なくとも部分的に基づいて、前記リモートダイレクトメモリアクセス動作により取得された前記値が古いか否かを判断することとを含む、請求項1に記載のクライアント装置。
  4. ヒットをもたらす前記キーを用いるゲット要求のために、サービスは、更に、前記値が古くないことを示すステール判断の結果に応答して、取得された前記値を返すことを含む、請求項3に記載のクライアント装置。
  5. ヒットをもたらす前記キーを用いるゲット要求のために、サービスは、更に、
    前記値が古いことを示すステール判断の結果に応答して、前記メムキャッシュドシステムのサーバに、前記値を要求する前記ゲット要求を送信することと、
    前記値および前記値の関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの第2の1または複数の位置の第2の1または複数のアドレスを受信することと、
    受信された前記第2の1または複数のアドレスを用いて、前記メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、前記値および前記関連付けられる状態フラグを取得することと、
    前記キーに対する第3および第4のアドレスを格納するべく、前記ローカルキャッシュをアップデートすることと、
    受信された前記値を返すこととを含む、請求項3に記載のクライアント装置。
  6. ヒットをもたらさない前記キーを用いるセット要求のために、サービスは、
    前記メムキャッシュドシステムのサーバに、前記値を要求する前記ゲット要求を送信することと、
    前記値および前記値の関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを受信することと、
    受信された前記1または複数のアドレスを用いて、前記メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、前記値および前記関連付けられる状態フラグを取得することと、
    受信された前記値を返すこととを含む、請求項1に記載のクライアント装置。
  7. セット要求のために、サービスは、ヒットをもたらす前記キーに応答して、前記ヒットをもたらした前記ローカルキャッシュにおけるキャッシュエントリを無効にすることと、
    前記メムキャッシュドシステムのサーバに前記セット要求を送信することとを含む、請求項1に記載のクライアント装置。
  8. リモートダイレクトメモリアクセスを実行することは、失効していない前記ヒットをもたらすキャッシュエントリの第1の判断を含む、請求項3に記載のクライアント装置。
  9. メムキャッシュドシステムのサーバ装置であって、
    メモリと、
    前記メモリと結合された1または複数のプロセッサと、
    遠隔のメモリへの直接的アクセスをサポートするように装備されたネットワークインタフェースカードと、
    前記メムキャッシュドシステムにおけるキーに対応する値をゲットする要求を受信し、
    前記キーがヒットをもたらすか否かを判断し、
    ヒットをもたらす前記キーに応答して、前記値および前記値に関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを返す、前記1または複数のプロセッサにより操作されるメムキャッシュドロジックとを備える、サーバ装置。
  10. 前記メムキャッシュドロジックは、更に、
    前記メムキャッシュドシステムにおいて第2のキーを第2の対応する値にアップデートする要求を受信し、
    前記第2のキーがヒットをもたらすか否かを判断し、
    ヒットをもたらす前記第2のキーに応答して、前記第2のキーに対する前記ヒットをもたらす第1のアイテムに関連付けられた第2の状態フラグを古い状態にアップデートし、
    前記第1のアイテムを収集リストに追加し、
    前記第2のキーに対する第2のアイテムを生成し、
    前記第2のアイテムに第2の値を割り当てる、請求項9に記載のサーバ装置。
  11. 前記メムキャッシュドロジックは、更に、古い状態と関連付けられる複数の状態フラグを有する複数のアイテムに割り当てられたメモリを回復するメンテナンス動作を周期的に実行する、請求項9に記載のサーバ装置。
  12. 前記メムキャッシュドロジックは、更に、前記メモリの複数の物理アドレスを前記メムキャッシュドシステムのアドレス空間にマッピングする、請求項9に記載のサーバ装置。
  13. データをキャッシュするメモリのための方法であって、
    メムキャッシュドシステムのクライアントデバイスにより、前記メムキャッシュドシステムにおけるキーに対応する値をゲット、セット、またはアップデートする要求を受信する段階と、
    前記クライアントデバイスにより、前記受信する段階に応答して、前記キーが前記クライアントデバイスのメモリ内に維持されるローカルキャッシュにおけるヒットをもたらすか否かを判断する段階と、
    前記クライアントデバイスにより、前記キーが前記ローカルキャッシュにおいてヒットをもたらすことを、前記判断の結果が示すか否かに少なくとも部分的に基づいて、ゲット要求、セット要求またはアップデート要求をサービス提供する段階とを備える、方法。
  14. 前記クライアントデバイスにより、前記ローカルキャッシュのために前記メモリ内にストレージ空間を割り当てる段階を更に備える、請求項13に記載の方法。
  15. ヒットをもたらす前記キーを用いるゲット要求のために、サービス提供する段階は、
    前記ローカルキャッシュにアクセスして、前記値および前記値の関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを取得する段階と、
    前記ローカルキャッシュから取得された前記1または複数のアドレスを用いて、前記メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、前記値および前記関連付けられる状態フラグを取得する段階と、
    前記リモートダイレクトメモリアクセス動作により取得された前記状態フラグに少なくとも部分的に基づいて、前記リモートダイレクトメモリアクセス動作により取得された前記値が古いか否かを判断する段階とを有する、請求項13に記載の方法。
  16. ヒットをもたらす前記キーを用いるゲット要求のために、サービス提供する段階は、更に、前記値が古くないことを示すステール判断の結果に応答して、取得された前記値を返す段階を有する、請求項15に記載の方法。
  17. ヒットをもたらす前記キーを用いるゲット要求のために、サービス提供する段階は、更に、
    前記値が古いことを示すステール判断の結果に応答して、前記メムキャッシュドシステムのサーバに、前記値を要求する前記ゲット要求を送信する、段階と、
    前記値および前記値の関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの第2の1または複数の位置の第2の1または複数のアドレスを受信する段階と、
    受信された前記第2の1または複数のアドレスを用いて、前記メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、前記値および前記関連付けられる状態フラグを取得する段階と、
    前記キーに対する第2またはより多くのアドレスを格納するべく、前記ローカルキャッシュをアップデートする段階と、
    受信された前記値を返す段階とを有する、請求項15に記載の方法。
  18. ヒットをもたらさない前記キーを用いるセット要求のために、サービス提供する段階は、
    前記メムキャッシュドシステムのサーバに、前記値を要求する前記ゲット要求を送信することと、
    前記値および前記値の関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを受信する段階と、
    受信された前記1または複数のアドレスを用いて、前記メムキャッシュドシステムのサーバ上でリモートダイレクトメモリアクセス動作を実行し、前記値および前記関連付けられる状態フラグを取得する段階と、
    受信された前記値を返す段階とを有する、請求項13に記載の方法。
  19. セット要求のために、サービス提供する段階は、ヒットをもたらす前記キーに応答して、前記ヒットをもたらした前記ローカルキャッシュにおけるキャッシュエントリを無効にする段階と、
    前記メムキャッシュドシステムのサーバに前記セット要求を送信する段階とを有する、請求項13に記載の方法。
  20. リモートダイレクトメモリアクセス動作を実行する段階は、失効していない前記ヒットをもたらすキャッシュエントリを第1に判断する段階を有する、請求項15に記載の方法。
  21. データをキャッシュするメモリのための方法であって、
    メムキャッシュドシステムのサーバにより、キーに対応する値をゲットする要求を受信する段階と、
    前記サーバにより前記キーがヒットをもたらすか否かを判断する段階と、
    前記サーバにより、ヒットをもたらす前記キーに応答して、前記値および前記値に関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを返す段階とを備える、方法。
  22. 前記サーバにより、前記メムキャッシュドシステムにおいて第2のキーを第2の対応する値にアップデートする要求を受信する段階と、
    前記サーバにより、前記第2のキーがヒットをもたらすか否かを判断する段階と、
    前記サーバにより、ヒットをもたらす前記第2のキーに応答して、古い状態を有する前記第2のキーに対する前記ヒットをもたらす第1のアイテムに関連付けられた第2の状態フラグをアップデートする段階と、
    前記第1のアイテムを収集リストに追加する段階と、
    前記第2のキーに対する第2のアイテムを生成する段階と、
    前記第2のアイテムに第2の値を割り当てる段階とを更に備える、請求項21に記載の方法。
  23. 前記サーバにより、古い状態と関連付けられる複数の状態フラグを有する複数のアイテムに割り当てられたメモリを回復するメンテナンス動作を周期的に実行する段階を更に備える、請求項21に記載の方法。
  24. 前記サーバにより、前記サーバのメモリの複数の物理アドレスを前記メムキャッシュドシステムのアドレス空間にマッピングする段階を更に備える、請求項21に記載の方法。
  25. クライアント装置による複数の命令の実行に応答して、前記クライアント装置に、請求項13〜18のいずれか1項に記載の複数の方法を実行させる前記複数の命令を備える、少なくとも1つのストレージ媒体。
  26. サーバ装置による複数の命令の実行に応答して、前記サーバ装置に、請求項19〜24のいずれか1項に記載の複数の方法を実行させる前記複数の命令を備える、少なくとも1つのストレージ媒体。
  27. メムキャッシュドシステムのクライアント装置であって、
    前記メムキャッシュドシステムにおけるキーに対応する値をゲット、セット、またはアップデートする要求を受信するための手段と、
    前記受信に応答して、前記キーが前記クライアント装置のメモリ内に維持されるローカルキャッシュにおいてヒットをもたらすか否かを判断するための手段と、
    前記キーが前記ローカルキャッシュにおいてヒットをもたらすことを、前記判断の結果が示すか否かに少なくとも部分的に基づいて、ゲット要求、セット要求またはアップデート要求をサービス提供するための手段とを備える、クライアント装置。
  28. メムキャッシュドシステムのサーバ装置であって、
    キーに対応する値をゲットする要求を受信するための手段と、
    前記キーがヒットをもたらすか否かを判断するための手段と、
    前記値および前記値に関連付けられる状態フラグが格納される、前記メムキャッシュドシステムの1または複数の位置の1または複数のアドレスを返すための手段を含む、ヒットをもたらす前記キーに応答するための手段とを備える、サーバ装置。
JP2016568394A 2014-06-26 2014-06-26 メムキャッシュドシステムのクライアント装置およびサーバ装置、データをキャッシュするメモリのための方法、コンピュータプログラム、並びにコンピュータ可読ストレージ媒体 Active JP6308508B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/080824 WO2015196413A1 (en) 2014-06-26 2014-06-26 Memcached systems having local caches

Publications (2)

Publication Number Publication Date
JP2017527865A true JP2017527865A (ja) 2017-09-21
JP6308508B2 JP6308508B2 (ja) 2018-04-11

Family

ID=54936478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016568394A Active JP6308508B2 (ja) 2014-06-26 2014-06-26 メムキャッシュドシステムのクライアント装置およびサーバ装置、データをキャッシュするメモリのための方法、コンピュータプログラム、並びにコンピュータ可読ストレージ媒体

Country Status (7)

Country Link
US (1) US10277707B2 (ja)
EP (1) EP3161669B1 (ja)
JP (1) JP6308508B2 (ja)
KR (1) KR102047037B1 (ja)
CN (1) CN106537375B (ja)
SG (1) SG11201609901PA (ja)
WO (1) WO2015196413A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794366B1 (en) * 2016-10-19 2017-10-17 Red Hat, Inc. Persistent-memory management
EP4057148A1 (en) * 2017-04-27 2022-09-14 Google LLC Efficient oblivious permutation
US11314739B2 (en) 2018-04-09 2022-04-26 International Business Machines Corporation Dynamically slicing datastore query sizes
CN110809013B (zh) * 2018-08-06 2022-06-28 北京神州泰岳软件股份有限公司 一种监控数据采集方法、装置、电子设备及存储介质
US10909493B1 (en) * 2019-07-30 2021-02-02 Capital One Services, Llc Orchestration layer arrangements for determining a delivery option and orchestrating delivery
US11316947B2 (en) * 2020-03-30 2022-04-26 International Business Machines Corporation Multi-level cache-mesh-system for multi-tenant serverless environments
CN111737298B (zh) * 2020-06-19 2024-04-26 中国工商银行股份有限公司 基于分布式存储的缓存数据管控方法及装置
CN113485822A (zh) * 2020-06-19 2021-10-08 中兴通讯股份有限公司 内存管理方法、系统、客户端、服务器及存储介质
CN112818019B (zh) * 2021-01-29 2024-02-02 北京思特奇信息技术股份有限公司 一种应用于Redis客户端的查询请求过滤方法及Redis客户端
CN112989250B (zh) * 2021-03-11 2024-01-12 北京百度网讯科技有限公司 一种Web服务响应方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562543A (zh) * 2009-05-25 2009-10-21 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
US20100306256A1 (en) * 2009-06-02 2010-12-02 Sun Microsystems, Inc. Distributed Database Write Caching With Limited Durability
US20110082908A1 (en) * 2009-10-06 2011-04-07 Bela Ban Dynamic caching of nodes
US20140059284A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Systems, methods and computer program products memory space management for storage class memory
US20140337459A1 (en) * 2013-05-08 2014-11-13 Samsung Electronics Co., Ltd. Caching architecture for packet-form in-memory object caching
US20150178243A1 (en) * 2013-12-20 2015-06-25 Rambus Inc. High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292880B1 (en) 1998-04-15 2001-09-18 Inktomi Corporation Alias-free content-indexed object cache
US8332581B2 (en) * 2007-08-13 2012-12-11 International Business Machines Corporation Stale track initialization in a storage controller
US8868831B2 (en) * 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
CN102682037B (zh) 2011-03-18 2016-09-28 阿里巴巴集团控股有限公司 一种数据获取方法、系统及装置
US8499121B2 (en) * 2011-08-31 2013-07-30 Hewlett-Packard Development Company, L.P. Methods and apparatus to access data in non-volatile memory
CN103166997A (zh) * 2011-12-15 2013-06-19 同程网络科技股份有限公司 memcache分布式缓存方法
CN103365926B (zh) * 2012-03-30 2017-10-24 伊姆西公司 在文件系统中用于保存快照的方法和装置
KR101330052B1 (ko) * 2012-06-01 2013-11-15 에스케이텔레콤 주식회사 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
US9369520B2 (en) * 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
CN103729447A (zh) 2013-12-29 2014-04-16 国云科技股份有限公司 一种数据库快速检索的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101562543A (zh) * 2009-05-25 2009-10-21 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
WO2010138168A1 (en) * 2009-05-25 2010-12-02 Alibaba Group Holding Limited Cache data processing using cache cluster with configurable modes
JP2012528382A (ja) * 2009-05-25 2012-11-12 アリババ・グループ・ホールディング・リミテッド キャッシュクラスタを構成可能モードで用いるキャッシュデータ処理
US20100306256A1 (en) * 2009-06-02 2010-12-02 Sun Microsystems, Inc. Distributed Database Write Caching With Limited Durability
US20110082908A1 (en) * 2009-10-06 2011-04-07 Bela Ban Dynamic caching of nodes
US20140059284A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Systems, methods and computer program products memory space management for storage class memory
US20140337459A1 (en) * 2013-05-08 2014-11-13 Samsung Electronics Co., Ltd. Caching architecture for packet-form in-memory object caching
US20150178243A1 (en) * 2013-12-20 2015-06-25 Rambus Inc. High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory

Also Published As

Publication number Publication date
EP3161669A1 (en) 2017-05-03
WO2015196413A1 (en) 2015-12-30
KR20160147947A (ko) 2016-12-23
US10277707B2 (en) 2019-04-30
JP6308508B2 (ja) 2018-04-11
KR102047037B1 (ko) 2019-11-20
EP3161669B1 (en) 2021-02-17
CN106537375A (zh) 2017-03-22
SG11201609901PA (en) 2016-12-29
CN106537375B (zh) 2020-02-14
EP3161669A4 (en) 2018-03-07
US20160285997A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
JP6308508B2 (ja) メムキャッシュドシステムのクライアント装置およびサーバ装置、データをキャッシュするメモリのための方法、コンピュータプログラム、並びにコンピュータ可読ストレージ媒体
EP3268873B1 (en) Memcached systems having local caches
US10007609B2 (en) Method, apparatus and computer programs providing cluster-wide page management
US9519585B2 (en) Methods and systems for implementing transcendent page caching
US11582296B2 (en) Multi-level load balancing
JP2011138506A (ja) コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化
WO2022111313A1 (zh) 一种请求处理方法及微服务系统
US9612976B2 (en) Management of memory pages
US20170310583A1 (en) Segment routing for load balancing
US11436524B2 (en) Hosting machine learning models
US11102139B1 (en) Shared queue management utilizing shuffle sharding
US20180143906A1 (en) Memory access architecture with coherence
US10523741B2 (en) System and method for avoiding proxy connection latency
US20210021524A1 (en) Load balancing system and method
CN117242763A (zh) 用于缓存文件系统内部结构的网络接口卡
US10817334B1 (en) Real-time analysis of data streaming objects for distributed stream processing
CN110168521B (zh) 数据处理装置及数据处理方法
US20240089339A1 (en) Caching across multiple cloud environments

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R150 Certificate of patent or registration of utility model

Ref document number: 6308508

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250