JP2017134817A - 分散キャッシュメモリにおける適応分割用のシステム及び方法 - Google Patents

分散キャッシュメモリにおける適応分割用のシステム及び方法 Download PDF

Info

Publication number
JP2017134817A
JP2017134817A JP2016221690A JP2016221690A JP2017134817A JP 2017134817 A JP2017134817 A JP 2017134817A JP 2016221690 A JP2016221690 A JP 2016221690A JP 2016221690 A JP2016221690 A JP 2016221690A JP 2017134817 A JP2017134817 A JP 2017134817A
Authority
JP
Japan
Prior art keywords
cache
computer node
slices
slice
cache slices
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
JP2016221690A
Other languages
English (en)
Other versions
JP6263596B2 (ja
Inventor
アムビカナンダン ミスラ プルキット
Ambikanandan Misra Pulkit
アムビカナンダン ミスラ プルキット
ピーター ノエ ダニエル
Peter Noe Daniel
ピーター ノエ ダニエル
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.)
HGST Netherlands BV
Original Assignee
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of JP2017134817A publication Critical patent/JP2017134817A/ja
Application granted granted Critical
Publication of JP6263596B2 publication Critical patent/JP6263596B2/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/133Protocols for remote procedure calls [RPC]
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

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

Abstract

【課題】分散キャッシュメモリにおける適応分割用のシステム及び方法を提供する。【解決手段】キャッシュスライスに分割される分散キャッシュの適応分割を実行するための方法及びシステムであって、分散キャッシュのスライスは、ルーティング表204に基づいて、クラスタ200における異なるコンピュータノードN1、N2に割り当てられる。所定の期間後に、キャッシュスライスは、アクセス統計に基づいて、クラスタの他のコンピュータノードに再割り当てすることができ、クラスタにおけるコンピュータノードへのキャッシュスライスの再割り当てに対応する新しいルーティング表が提供される。【選択図】図2

Description

本開示は、分散キャッシュ又は記憶メモリの適応分割用のシステム及び方法に関する。
コンピュータクラスタは、ネットワークを通して相互接続できる2つ以上のコンピュータノードからなる。コンピュータクラスタは、分散記憶メモリシステム、例えば分散キャッシュシステムを実現することができる。クラスタの総記憶容量は、典型的には、標準サイズの多数のスライスに分割される。スライスは、クラスタのコンピュータノードにわたって分散される。各スライスは、唯一のコンピュータノードにローカルにすることができる。リモートコンピュータノードによって所有されるスライスに属する論理ブロックアドレス(LBA)用のコンピュータノードにおけるどんな要求も、リモートノード上で処理するためにネットワークを通じて送信される必要がある。
これは、ネットワーク上のトラフィックを増加させる可能性があり、それは、ネットワークの競合故に、ネットワーク帯域幅及び待ち時間を悪化させる可能性がある。従って、スライスを適切に分散するためのシステム及び方法が望ましく、それは、ネットワーク性能に対するリモートデータ要求の強い影響を低減することができる。
キャッシュスライスに分割される分散キャッシュの適応分割を実行するための方法及びシステムが提供される。分散キャッシュのスライスは、ルーティング表に基づいて、クラスタにおける異なるコンピュータノードに割り当てられる。所定の期間後に、キャッシュスライスは、アクセス統計に基づいてクラスタの他のコンピュータノードに再割り当てすることができ、クラスタにおけるコンピュータノードへのキャッシュスライスの再割り当てに対応する新しいルーティング表が提供される。
本開示の態様によれば、ネットワークによって相互接続された複数のコンピュータノードを含むクラスタにおける分散キャッシュの適応分割用の方法が提供され、分散キャッシュは、キャッシュスライスに分割される。方法は、第1のルーティング表に基づいて、第1の複数のキャッシュスライスを第1のコンピュータノードに割り当てるステップと、第1の期間後に、コンピュータノードのキャッシュスライス用のアクセス統計に基づいて、第2の複数のキャッシュスライスを第1のコンピュータノードに、且つ第1の複数のキャッシュスライスの第1のサブセットを第1のコンピュータノード以外の少なくとも1つのコンピュータノードに再割り当てするステップと、第1の期間後に、キャッシュスライスの割り当てによる第2のルーティング表をコンピュータノードに提供するステップと、を含むことができる。
本開示の態様によれば、ネットワークによって相互接続された複数のコンピュータノードを含むクラスタにおける分散キャッシュの適応分割用のシステムが提供される。システムは、キャッシュスライスに分割された分散キャッシュ、及び第1のコンピュータノードを含むことができる。第1のコンピュータノードは、第1のルーティング表に基づいて、第1の複数のキャッシュスライスを第1のコンピュータノードに割り当てるように構成され、第1の期間後に、コンピュータノードのキャッシュスライス用のアクセス統計に基づいて、第2の複数のキャッシュスライスを第1のコンピュータノードに再割り当てし、第1の複数のキャッシュスライスの第1のサブセットを第1のコンピュータノード以外の少なくとも1つのコンピュータノードに再割り当てするように構成され、且つ第1の期間後に、キャッシュスライスの割り当てによる第2のルーティング表をコンピュータノードに提供するように構成され得る。
本開示の様々な目的、特徴及び利点は、次の図面と共に検討された場合には、以下の詳細な説明を参照して、より完全に理解することができる。以下の図面において、同様の参照数字は、同様の要素を識別する。以下の図面は、実例のためだけであり、本発明の限定となるようには意図されていない。本発明の範囲は、続く特許請求の範囲で述べられる。
本開示の態様に従って、例示的なクラスタシステムを示す。 本開示の態様に従って、例示的なクラスタシステム、クラスタノード当たりのデータ転送速度、及び例示的なスライス割り当てを示す。 本開示の態様に従って、例示的なクラスタシステム、クラスタノード当たりのデータ転送速度、及びスライス再割り当てを示す。 本開示の態様に従って、クラスタシステムにおいてルーティングマップを更新するための例示的な方法を示す。
分散キャッシュシステムの適応分割用のシステム及び方法が開示される。クラスタの総キャッシュは、多数のスライスに分割され、それらのスライスは、クラスタのコンピュータノードに関連付けられる。開示されるシステム及び方法は、クラスタのネットワーク利用を検討し、且つ新しいコンピュータノードにスライスを再割り当てすることができる。新しい割り当てを表す新しいルーティングマップは、クラスタの全てのコンピュータノードに送ることができる。
図1は、コンピュータノードの例示的なクラスタ100を示す。具体的には、クラスタ100は、コンピュータノード102、104及び106を含む。ノード102は、サーバ108及び記憶装置110を含み、ノード104は、サーバ112及び記憶装置114を含み、ノード106は、サーバ116及び記憶装置118を含む。ノード102、104及び106は、ネットワーク120を通して相互接続される。幾つかの先行技術の分散記憶システムは、典型的には、ストライピングを通じコンピュータノードにわたってスライスを分散する。データストライピング技術は、例えばラウンドロビン方式を通して、異なるコンピュータノードの物理的な記憶装置上に論理的に連続するスライスを記憶する。例えば、クラスタ100におけるスライスは、ノード102、104及び106に、この順序で連続的に割り当てることができる。他の先行技術の分散記憶システムは、例えばハッシュ関数を用いて、クラスタのノード間にスライスをランダムに分散することができる。
これらの先行技術のシステムは、貧弱なスケーラビリティを示す。例えば、クラスタにおける「N」ノード間のスライスのランダム及び均一な分散を仮定すると、特定のノードのサーバから要求されたデータパケットが、ノードにローカルに記憶されている可能性は、単に1/Nである。要求されたデータパケットがローカルに記憶されていない場合に、データパケットの要求は、ネットワークを通じてリモートノードに送信される必要があり、データパケットは、それを要求したノードへとネットワークを通じて転送される必要がある。ノードの数が増加するにつれて、データパケット要求を満たすために、ますます多くのデータパケットが、ネットワークを通じて転送されなければならない。これは、ネットワークの利用可能な帯域幅に否定的な影響を及ぼす可能性がある。上位層アプリケーションがまた、ネットワーク帯域幅を求めて競争しようとする可能性があるので、システムは、ネットワーク輻輳故に貧弱な性能を有する可能性がある。
上記のように、アクセスに関する事前知識なしに、スライスは、最初にクラスタにおける全てのノードにわたってストライピングされ得る。ノードは、クラスタにおける全てのスライス所有権に関する情報を備えたルーティングマップを有することができ、ルーティングマップは、要求を適切な所有者に送るために用いることができる。各ノードはまた、全てのスライス用のアクセス統計を維持することができる。この情報を記憶するためのデータ構造は、スライスの数に従ったサイズにできるアレイとすることができ、且つまたタイムスタンプ用のフィールドをアレイに有することができる。スライス番号は、アレイインデックスからほのめかすことができ、アレイにおける各インデックスは、そのスライス用のアクセス統計、例えばそのノードからその特定のスライスに対して読み取られた且つ/又は書き込まれたデータ量を示すことができる。タイムスタンプは、データ速度(MB/秒)が、データ構造における情報の最後のリセットからの期間用に容易に計算できるように、全データ構造のために記憶することができる。
特定のノードが、論理ブロックアドレス(LBA)用の要求を受信した時はいつも、それは、LBAが属するスライスを決定することができ、次に、その特定のスライスの所有者ノードを決定するためにルーティングマップを調べることができる。特定のノードが、特定のスライスの所有者である場合に、それは、どんなネットワーク資源も消費せずに、要求をローカルでサービスすることができる。特定のスライスが、別のノードによって所有されている場合に、要求は、その所有者に送られる。それに応じて、特定のノードはまた、そのスライス用のアクセス統計カウンタを修正することができる。
本開示の態様によれば、開示されるシステム及び方法は、所定の期間後に、各スライス用の新しい所有者を決定することができ、それは、ネットワーク利用を低減することが可能である。新しい所有者は、新しい所有者に関する決定を通知するために、アクセス統計に関する十分な情報が収集される所定の期間後に決定することができる。開示される方法が、新しい所有者にスライスが変わり得ると決定した場合に、そのスライスは、例えばキャッシュを作り直すためのユーザの介入も要求もなしに、動的に再割り当てられ得る。
1つを超えるノードが、同じスライス内のデータにアクセスできるので、スライスが新しい所有者に再割り当てされた後で、他のノードは、やはり、リモートでスライスにアクセスすることを要求してもよい。従って、ネットワークは、やはり、リモートノードにおけるデータアクセス要求に対応するべきである。本開示の態様によれば、スライスは、アクセスの場所に基づいてノードに、例えば最も多くのデータを転送するノードに再割り当てすることができ、それは、ネットワークに対する影響を最小化することに帰着し得る。
ネットワーク利用の低減に加えて、スライスの動的な割り当てはまた、スケーラビリティを改善することができる。何故なら、それが、クラスタへのより多くのコンピュータノードの追加を可能にするからである。開示されるシステム及び方法はまた、例えば新しいアプリケーション、アプリケーション障害の場合に、又は負荷分散用に、アクセスパターンの変化によりよく適合することができる。
図2及び3は、スライスの例示的で動的な割り当て及び結果としてのネットワーク利用の低減を示す。具体的には、図2は、2つのノード(N1、N2)を備えたクラスタ200を示す。クラスタの総キャッシュは、4つのスライス202に分割される。最初にスライス202は、ルーティングマップ204に示されているように、ラウンドロビン方式で、ノードN1とN2との間に割り当てられる。具体的には、スライス{0、2}は、ノードN1に割り当てられ、スライス{1、3}は、ノードN2に割り当てられる。スライスにおけるデータ用のどんな受信された要求も、ルーティングマップ204に従ってサービスされる。例えば、スライス0に存在するLBA用のノードN1に対する要求は、ローカルにサービスされる。スライス1に存在するLBA用のノードN1に対する要求は、例えばノードN2にLBAを要求することによって、ネットワークを通じてサービスされる。上記のように、開示されるシステム及び方法は、所定の期間後に、例えばクラスタにおけるノード用のアクセス統計を検討することによって、スライス用の新しい所有者を決定することができる。実例的な例として、表206は、ノードN1用のアクセス統計を示し、表208は、ノードN2用のアクセス統計を示す。例えば、表206は、ノードN1が、50MB/sの転送速度でスライス0にデータを要求し210、且つ100MB/sの転送速度でスライス1にデータを要求する212ことを示す。上記のように、リモート要求だけが、総利用可能ネットワーク帯域幅を低減するネットワーク利用を増加させ、従って、ノードN1に関し、リモートスライス、例えばスライス1及び3におけるデータの要求は、ネットワーク利用に寄与する。従って、ノードN2に関し、リモートスライス、例えばスライス0及び2におけるデータの要求は、ネットワーク利用に寄与する。表206及び208におけるアクセス統計に基づいて、ノードN1用のリモート要求速度は、次の式に基づいて計算することができる。
リモート要求速度(N1)=転送速度スライス1+転送速度スライス3=100(Mb/s)+30(Mb/s)=130(Mb/s)
同様に、ノードN2用のリモート要求速度は、次の式に基づいて計算することができる。
リモート要求速度(N2)=転送速度スライス0+転送速度スライス2=20(Mb/s)+60(Mb/s)=80(Mb/s)
従って、総ネットワーク利用は、130MB/s+80MB/s=210MB/sであり、それは高い。本開示の態様によれば、リモート転送割合及び総ネットワーク利用に基づいて、スライスは、総ネットワーク利用を低減するために再割り当てすることができる。これは、図3に示されている。例えば、図3は、図2のクラスタを示し、そこでは、スライスの2つが、再割り当てされた。具体的には、スライス1は、前にノードN2に割り当てられたが、ノードN1に再割り当てされ302、スライス2は、前にノードN1に割り当てられたが、ノードN2に再割り当てされた304。全ての再割り当て後に、新しいルーティングマップ306は、全てのノードに配布され、その結果、各ノードは、新しいスライス割り当てに気付くことができる。
再割り当て後に、ノードN1用のリモート要求速度は、次の式に基づいて計算することができる。
リモート要求速度(N1)=転送速度スライス2+転送速度スライス3=20(Mb/s)+30(Mb/s)=50(Mb/s)
同様に、ノードN2用のリモート要求速度は、次の式に基づいて計算することができる。
リモート要求速度(N2)=転送速度スライス0+転送速度スライス1=20(Mb/s)+40(Mb/s)=60(Mb/s)
従って、総ネットワーク利用は、50MB/s+60MB/s=110MB/sであり、それは、初期値と比較して著しく低く、例えば52.3%だけ低い。クラスタにおける各ノードは、それが所与の時間窓でアクセスした各スライス用に、アクセスサイズの累積値を、例えばバイトで維持することができる。次に、各スライスの転送速度は、アクセスサイズを窓サイズで割ることによって計算することができる。再マッピングのときに、各スライス用に、再マッピングアルゴリズムは、各ノードの転送速度をチェックし、最高転送速度を有するノードにスライスを割り当てることができる。スライスの現在の所有者が、特定のスライス用に最大転送速度を有する場合に、スライスは、再マッピングされる必要がない。多数のノードが、最高転送速度を有する場合に、同スコアは、例えば、アクセスサイズ、スライス所有権入れ換えの周期性、キャッシュ汚染、及び他の発見的方法を用いて壊すことができる。オリジナルで新しいネットワーク利用は、リモートノードによる各スライス用の転送速度の合計によって計算することができる。統計は、再マッピングのラウンド後にリセットすることができる。
再マッピングの頻度は、管理者によって決定することができる。例えば、それは、一日の特定の時刻に、例えば要求トラフィックが低いときに実行することができる。再マッピングはまた、例えば、自動的に行うことができる。例えば、バックグランドにおけるプロセスは、各ノードから周期的に転送速度をポーリングし、且つ例えばアプリケーションアクセスパターンの変化故に、定常状態からの変化があるかどうかを決定することができる。
本発明の代替の態様によれば、ノードにおけるキャッシュ空間の利用、所有権変更後に移動することが必要であろう汚染データの排除及び量などの他の発見的方法が、改善されたスライス配置を決定するために利用され得る。各ノードは、フラッシュできる汚染データの量を追跡することができる。スライスの再マッピングは、回避することができる。それは、閾値を超えて汚染データをフラッシュことを意味するであろう。再マッピング中の様々なノードによる大きなデータ量のフラッシングは、ディスクへのランダムな書き込みをもたらす可能性があり、従って再マッピングを実行する時間に影響する可能性があり、且つまたキャッシュミスにおいてディスクからデータをフェッチする必要のあるアプリケーションI/Oに影響する可能性がある。ノードが、例えば転送速度に基づいてスライス用の最適な所有者になり得るので、キャッシュ利用もまた考えられ得るが、しかしそれは、そのスライスをその最適な所有者に記憶することが性能を改善するであろうことを意味しない。各ノード用に、優先権が、転送速度に基づいて、それらのスライスに割り当てられ得る。キャッシュ利用と共にこれらの優先権は、特定のスライスが、所与のノードに再マッピングされるべきかどうかを決定するために、再マッピング中に使用することができる。キャッシュ利用が低い場合に、再マッピングが行われ得る。低くなければ、低い優先権のスライスのマッピングは、他のより高い優先権のスライスからデータを排除させる可能性があり、それは、性能に否定的に影響し得る。
新しいルーティングマップが作成された後で、例えば、どんな休止時間もなしに、クラスタを削除も作り直すこともせず、長い期間にわたるデータ要求の処理を中断することもなく、各クラスタにおけるルーティングマップを動的に更新することが望ましい。
本開示の態様によれば、新しいルーティングマップは、クラスタにおける全てのノードにわたってアトミックに更新することができる。例えば、ノードの1つは、更新を調整する責任を負うことができるマネージャノードに割り当てることができる。マネージャノードは、クラスタにおける全ての他のノードに新しいルーティングマップを提供することができ、且つそれらのノードに更新処理を開始するように要求することができる。本開示の態様によれば、更新処理は、3つのステップを含むことができる。第1のステップ中に、全てのノードは、新しいルーティングマップを現在のルーティングマップと個々に比較することができ、且つどのスライスがそれらに再割り当てされたか(例えば得られたスライス)、及びどのスライスが、もはやそれらに割り当てられないか(例えば失われたスライス)を決定することができる。
現在のスライス所有者は、キャッシュミスにおいて、バックエンドからデータをフェッチすることができる。再マッピング中に、古い所有者が、全ての汚染データはフラッシュせず、且つ後続のデータをライトスルーとして処理した場合に、新しい所有者は、(リモートヒット期間が終了した後で)バックエンドから陳腐化したデータをフェッチすることに終わる可能性がある。全ての失われたスライス所有権に関し、ノードは、それらのスライス用にノードがキャッシュに有するどんな汚染データもフラッシュすることができ、且つまたそれらのスライスをライトスルーにすることができる。従って、フラッシュされた後で、どんな新しい書き込みも、再びスライスを汚染はしない。これは、どんなエラーの場合にも、スライスの古い所有者への依存があり得ないように、バックエンド(キャッシュされた装置)との一貫性を保証することができる。
全ての得られたスライス所有権に関し、ノードは、キャッシュに存在するどんな既存データも削除することができる。この動作は、上記のように、失われたスライス所有権用のプロセスが、ノードが所有権を失ったスライスに属するデータを削除せずに汚染データをフラッシュするので、実行される。この動作は、どんな問題も引き起こさない。何故なら、所有権が失われたスライスに属するデータは、新しいデータがキャッシュされるときに、最終的にキャッシュから排除されるからである。例えば、スライスが新しい所有者に再マッピングされた場合に、古い所有者は、所有権変更の前に、スライスに関連するどんな汚染データもフラッシュすることができる。所有権変更後のリモートヒット期間に、新しい所有者は、キャッシュミスにおいてデータ用に古い所有者に問い合わせることができる。何故なら、バックエンドからデータを得る代わりに、古い所有者からデータを得ることが、より速くなり得るからである。これは、ネットワーク及びソリッドステートドライブアクセスが、ハードディスクドライブアクセスより速いので、一般に真である。所有権変更後の要求に基づいたキャッシングはまた、キャッシュ汚染を回避することができる。何故なら、古い所有者においてキャッシュされたスライスの全てのブロックが、新しい所有者によって必要とされるわけではないからである。リモートヒット期間は、有限の期間とすることができ、且つ新しい所有者のキャッシュのウォーミングアップ用にしようとすることができる。ブロックに対する読み出し要求に関し、新しい所有者は、ブロック用に古い所有者に問い合わせることができ、それをキャッシュすることができる。古い所有者がそのブロックを有しない場合に、新しい所有者は、バックエンドからそれをフェッチすることができる。その後の書き込み要求は、ブロックを修正することができ、それは、古い所有者におけるブロックのコピーを陳腐化することになろう。再マッピングの新しいラウンド中に、スライスがその古い所有者に再マッピングされる場合、古い所有者がまだ、そのブロックを自らのキャッシュに有している場合に、古い所有者は、読み出し要求に対して、陳腐化したデータを返すことになろう。この理由で、ノードが所有権を得るスライス用にノードが有している可能性があるどんな既存データも予め削除する。
このステップの完了後に、各ノードは、ステップの完了のステータス、例えば、ノードが汚染データをうまくフラッシュし、どんな既存データも削除したかどうか、又はこのステップにおいてエラーがあったかどうかに関して、マネージャノードに通知することができる。本開示の態様によれば、全てのノードが、ステップをうまく完了したことを示した場合に、マネージャノードは、更新処理の第2のステップに移るように全てのノードに命令することができる。少なくとも1つのノードが、第1のステップ中にエラーがあったことを示した場合に、マネージャノードは、更新処理を中止するように全てのノードに命令することができる。
第2のステップにおいて、マネージャノードは、全てのノードに、それらの要求のサービスを個々に休止するように(例えば受信した要求はキューに保持できる)、且つ新しいルーティングマップを適用するように命令することができる。このステップを完了した後で、各ノードは、ステップの完了のステータス、例えば、それらが新しいマップをうまく適用したかどうか、又はこのステップにエラーがあったかどうかに関してマネージャノードに通知することができる。ステップが成功だったことを全てのノードが示す場合に、マネージャノードは、更新処理の第3のステップに移るように全てのノードに命令することができる。少なくとも1つのノードが、第2のステップ中にエラーがあったことを示した場合に、マネージャノードは、更新処理を中止するように全てのノードに命令することができる。ノードが中止命令を受信した場合に、ノードは、新しいルーティングマップを廃棄することができ、且つ前のルーティングマップに従って、それらの要求の処理を再開することができる。本開示の代替の態様によれば、マネージャノードは、しばらくして最初からプロトコル再試行することができる。更新処理の第3のステップにおいて、全てのノードは、それらの要求のサービスを再開することができる。
図4は、本開示の態様に従ってルーティングマップを更新するための例示的な方法400を示す。具体的には、マネージャノードは、全てのノードに新しいルーティングマップを送信することができ、且つ更新プロセスを開始するように全てのノードに要求することができる402。ひとたびノードが新しいルーティングマップを受信すると、ノードは、新しいルーティングマップを現在のルーティングマップと比較することができる404。次に、ノードは、それらが得たか且つ/又は失ったスライスを決定することができる406。全ての失われたスライス所有権に関し、ノードは、キャッシュにおけるそれらのスライス用の汚染データをフラッシュし、且つそれらのスライスをライトスルーにする408。全ての得られたスライス所有権に関し、ノードは、キャッシュに存在する可能性があるどんな既存データも削除する410。ノードのいずれかでエラーが発生した場合に412、マネージャノードは、プロセスを中止することができる414。たとえエラーが発生しなくても、ノードは、それらの要求のサービスを中止し416、新しいルーティングマップを適用することができる418。ノードのいずれかでエラーが発生した場合に420、マネージャノードは、プロセスを中止することができる414。エラーが発生しない場合に、ノードは、要求のサービスを再開することができる。
全てのノードにわたってルーティングマップを更新した後で、スライスの新しい所有権は有効になる。しかしながら、新しい所有者は、所有権更新のちょうど終了したラウンド後に新しい所有者が得たスライス用のどんなデータも含まない。これは、どんなデータ整合性の問題ももたらさない。何故なら、所有権変更の前に、所有権が変わったスライスに属する全ての汚染データがフラッシュされ、従って、新しい所有者が、どんな要求もサービスするために、バックエンドからデータを常にフェッチすることができるからである。しかしながら、これは、待ち時間を増加させる可能性がある。何故なら、キャッシュは、再度ウォーミングする必要があり、それは、所有権変更の各ラウンド後に、鋸歯状の性能特性につながる可能性があるからである。
開示されるシステム及び方法は、この問題を緩和することができる。本開示の態様によれば、データは、所有権変更の前に、バックエンドにフラッシュされる代わりに、新しい所有者に転送することができる。本開示の代替の態様によれば、データは、所有権変更後に、古い所有者ノードから新しい所有者ノードへとバックグランドにおいて転送することができる。
これらの解決法は、特定のスライス用にキャッシュされた全てのデータが、頻繁にアクセスされるわけではないので、キャッシュ汚染に潜在的につながる可能性がある。例えば、スライスのサブセットだけが頻繁にアクセスされる可能性があり、残りは、まれにしかアクセスされず、それによって、キャッシュするには、残りをそれほど最新ではなくする。かかるシナリオに関し、特定のスライス用の全てのキャッシュされたデータを古い所有者ノードから新しい所有者ノードに転送することは、幾らかより頻繁にアクセスされるデータが新しい所有者から排除されることにつながる可能性がある。
本開示の態様によれば、要求に基づいたデータキャッシングは、鋸歯状性能を改善し、且つキャッシュ汚染を回避することができる。要求に基づいたデータキャッシングは、リモートヒット期間と呼ばれる、期限を定めたプロセスである。新しい及び古いルーティングマップを調べることによって、開示される方法は、スライスの現在の及び古い所有者を決定することができる。どんな要求に関しても、新しい所有者がデータを有しない場合に、開示される方法は、古い所有者を調べることができ、古い所有者が、そのキャッシュにまだデータを有するかどうかをチェックすることができる。これは、ルーティングマップの更新プロセス中に、失われたスライス用のデータが削除されないことを仮定する。データは、キャッシュにおいてクリーンであり、且つキャッシュガーベジコレクションポリシーによって最終的に排除することができるように、フラッシュすることができる。
本開示の態様によれば、古い所有者が、まだデータを有する場合に、要求は、サービスされ得る。データは、同様にキャッシュされ、新しい所有者に固定される。従って、データは、要求に基づいて古い所有者から新しい所有者に移動させることができ、それは、キャッシュ汚染を回避する。加えて、古い所有者からデータをフェッチすることは、バックエンドからデータをフェッチするより速くすることができ、従って、鋸歯状性能は、改善することができる。データは、それが修正され、古い所有者に陳腐化したデータを持たせる可能性があるので、新しい所有者に固定される必要がある。これは、リモートヒット期間中に、新しい所有者における、新しく得られたスライスに属するデータの排除を防ぐことができる。古い所有者が、そのキャッシュにデータを有していない場合に、データは、バックエンドからフェッチすることができ、且つ新しい所有者においてキャッシュし固定することができる。
リモートヒット期間が終わった後で、古い所有者は、もはや、どんなキャッシュミス用にも調べられず、データは、新しい所有者において固定を解除することができる。リモートヒット期間の持続時間は、様々な発見的方法を用いて、例えば、キャッシュをウォーミングするための過去の時間に基づいて、決定することができる。
当業者は、本明細書で説明される明細書及び図面における様々な実例が、電子ハードウェア、コンピュータソフトウェア又は両方の組み合わせとして実現され得ることを理解されるであろう。ハードウェア及びソフトウェアのこの互換性を説明するために、様々な実例的なブロック、モジュール、要素、コンポーネント、方法及びアルゴリズムが、それらの機能性の点から上記で一般的に説明された。かかる機能性が、ハードウェア、ソフトウェア、又は組み合わせとして実現されるかどうかは、全体的なシステムに課される特定の用途及び設計制約に依存する。当業者は、各特定の用途のために様々な方法で、説明された機能性を実現することができる。様々なコンポーネント及びブロックは、主題技術の範囲から逸脱することなしに、全て違った風に(例えば、異なる順序で配置されるか、又は異なる方法で分割される)配置することができる。
更に、通信プロトコルの実装形態は、1つのコンピュータシステムにおいて集中方式で、又は異なる要素が、幾つかの相互接続されたコンピュータシステムにわたって散在される分散方式で実現することができる。本明細書で説明される方法を実行するために適合された任意の種類のコンピュータシステム又は他の装置が、本明細書で説明される機能を実行するために適している。
ハードウェア及びソフトウェアの典型的な組み合わせは、コンピュータプログラム、即ちロードされ実行された場合に、本明細書で説明される方法を実行するようにコンピュータシステムを制御するコンピュータプログラムを備えた汎用コンピュータシステムとすることが可能である。通信プロトコル用の方法もまた、コンピュータプログラムプロダクトに埋め込むことができ、コンピュータプログラムプロダクトは、本明細書で説明される方法の実装形態を可能にする全ての特徴を含み、且つコンピュータシステムにロードされた場合に、これらの方法を実行することができる。
この文脈におけるコンピュータプログラム又はアプリケーションは、情報処理能力を有するシステムに、特定機能を直接、又は次のいずれか又は両方、即ちa)他の言語、コード又は表記法への変換、b)異なる材料形態における再現のいずれか又は両方の後で実行させるように意図された、任意の言語、コード又は表記法における、命令セットの任意の表現を意味する。意味深いことに、この通信プロトコルは、その趣旨又は本質的な属性から逸脱せずに、他の特定の形態において具体化することができ、従って、本発明の範囲を示すものとして、前述の明細書ではなく、以下の特許請求の範囲が参照されるべきである。
通信プロトコルは、これらの実例的な実施形態を特に参照して詳細に説明された。しかしながら、様々な修正及び変更が、前述の明細書で説明されているような本開示の趣旨及び範囲内で行われる得、かかる修正及び変更が、この開示の均等物及び一部と考えられるべきであることが明らかである。
100 クラスタ
102、104、106 コンピュータノード
108、112、116 サーバ
110、114、118 記憶装置
120 ネットワーク
200 クラスタ
202 スライス
204 ルーティングマップ
206、208 表
306 ルーティングマップ

Claims (24)

  1. ネットワークによって相互接続された複数のコンピュータノードを含むクラスタにおける分散キャッシュの適応分割用の方法であって、前記分散キャッシュが、キャッシュスライスに分割され、前記方法が、
    第1のルーティング表に基づいて、第1の複数のキャッシュスライスを第1のコンピュータノードに割り当てるステップと、
    第1の期間後に、前記コンピュータノードの前記キャッシュスライス用のアクセス統計に基づいて、第2の複数のキャッシュスライスを前記第1のコンピュータノードに、且つ前記第1の複数のキャッシュスライスの第1のサブセットを前記第1のコンピュータノード以外の少なくとも1つのコンピュータノードに再割り当てするステップと、
    前記第1の期間後に、キャッシュスライスの割り当てによる第2のルーティング表を前記コンピュータノードに提供するステップと、
    を含む方法。
  2. 前記アクセス統計が、各キャッシュスライス及び期間用のアクセスサイズに基づく前記キャッシュスライス用の転送速度を含む、請求項1に記載の方法。
  3. 前記第2の複数のキャッシュスライス、及び前記第1の複数のキャッシュスライスの前記第1のサブセットの前記再割り当てが、ネットワーク利用の低減に帰着する、請求項1に記載の方法。
  4. 前記第2の複数のキャッシュスライス、及び前記第1の複数のキャッシュスライスの前記第1のサブセットを決定するために、前記第1のルーティング表及び前記第2のルーティング表を比較することを更に含む、請求項1に記載の方法。
  5. (a)前記第1の複数のキャッシュスライスの前記第1のサブセットから汚染データをフラッシュするステップと、
    (b)前記第1の複数のキャッシュスライスの前記第1のサブセットをライトスルーキャッシュスライスにするステップと、
    (c)前記第2の複数のキャッシュスライスから既存データを削除するステップと、
    を更に含む、請求項4に記載の方法。
  6. (a)、(b)及び(c)の少なくとも1つの間に第1のエラーが発生したかどうかを決定することを更に含む、請求項5に記載の方法。
  7. 前記第1のエラーが発生した場合に、前記第1のルーティング表に基づいて、前記第1の複数のキャッシュスライスを前記第1のコンピュータノードに再割り当てすることを更に含む、請求項6に記載の方法。
  8. たとえ前記第1のエラーが発生しなかったとしても、前記第1のコンピュータノードにおいて、データ要求のサービスを中止することを更に含む、請求項6に記載の方法。
  9. 前記第1のコンピュータノードにおいて、前記第2のルーティング表に基づいてデータ要求の宛先を決定することを更に含む、請求項8に記載の方法。
  10. 前記第2のルーティング表に基づいたデータ要求の前記宛先の決定中に、第2のエラーが発生したかどうかを決定することを更に含む、請求項9に記載の方法。
  11. 前記第2のエラーが発生した場合に、前記第1のルーティング表に基づいて、前記第1の複数のキャッシュスライスを前記第1のコンピュータノードに再割り当てすることを更に含む、請求項10に記載の方法。
  12. 前記第1のエラーが発生しなかった場合に、前記第1のコンピュータノードにおいて、データ要求のサービスを再開することを更に含む、請求項11に記載の方法。
  13. ネットワークによって相互接続された複数のコンピュータノードを含むクラスタにおける分散キャッシュの適応分割用のシステムであって、
    キャッシュスライスに分割された前記分散キャッシュと、
    第1のコンピュータノードであって、
    第1のルーティング表に基づいて、第1の複数のキャッシュスライスを前記第1のコンピュータノードに割り当てるように、
    第1の期間後に、前記コンピュータノードの前記キャッシュスライス用のアクセス統計に基づいて、第2の複数のキャッシュスライスを前記第1のコンピュータノードに再割り当てし、前記第1の複数のキャッシュスライスの第1のサブセットを前記第1のコンピュータノード以外の少なくとも1つのコンピュータノードに再割り当てするように、且つ
    前記第1の期間後に、キャッシュスライスの割り当てによる第2のルーティング表を前記コンピュータノードに提供するように構成される第1のコンピュータノードと、
    を含むシステム。
  14. 前記アクセス統計が、各キャッシュスライス及び期間用のアクセスサイズに基づく前記キャッシュスライス用の転送速度を含む、請求項13に記載のシステム。
  15. 前記第2の複数のキャッシュスライス、及び前記第1の複数のキャッシュスライスの前記第1のサブセットの前記再割り当てが、ネットワーク利用の低減に帰着する、請求項13に記載のシステム。
  16. 前記第1のコンピュータノードが、前記第2の複数のキャッシュスライス、及び前記第1の複数のキャッシュスライスの前記第1のサブセットを決定するために、前記第1のルーティング表及び前記第2のルーティング表を比較するように更に構成される、請求項13に記載のシステム。
  17. 前記第1のコンピュータノードが、
    (a)前記第1の複数のキャッシュスライスの前記第1のサブセットから汚染データをフラッシュするように、
    (b)前記第1の複数のキャッシュスライスの前記第1のサブセットをライトスルーキャッシュスライスにするように、且つ
    (c)前記第2の複数のキャッシュスライスから既存データを削除するように、
    更に構成される、請求項16に記載のシステム。
  18. 前記第1のコンピュータノードが、(a)、(b)及び(c)の少なくとも1つの間に第1のエラーが発生したかどうかを決定するように更に構成される、請求項17に記載のシステム。
  19. 前記第1のコンピュータノードが、前記第1のエラーが発生した場合に、前記第1のルーティング表に基づいて、前記第1の複数のキャッシュスライスを前記第1のコンピュータノードに再割り当てするように更に構成される、請求項18に記載のシステム。
  20. たとえ前記第1のエラーが発生しなかったとしても、前記第1のコンピュータノードが、データ要求のサービスを中止するように更に構成される、請求項18に記載のシステム。
  21. 前記第1のコンピュータノードが、前記第2のルーティング表に基づいてデータ要求の宛先を決定するように更に構成される、請求項20に記載のシステム。
  22. 前記第1のコンピュータノードが、前記第2のルーティング表に基づいてデータ要求の前記宛先の決定中に第2のエラーが発生したかどうかを決定するように更に構成される、請求項21に記載のシステム。
  23. 前記第1のコンピュータノードが、前記第2のエラーが発生した場合に、前記第1のルーティング表に基づいて、前記第1の複数のキャッシュスライスを前記第1のコンピュータノードに再割り当てするように更に構成される、請求項22に記載のシステム。
  24. 前記第1のエラーが発生しなかった場合に、前記第1のコンピュータノードが、データ要求のサービスを再開するように更に構成される、請求項23に記載のシステム。
JP2016221690A 2015-11-13 2016-11-14 分散キャッシュメモリにおける適応分割用のシステム及び方法 Active JP6263596B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/941,125 2015-11-13
US14/941,125 US9832277B2 (en) 2015-11-13 2015-11-13 Systems and methods for adaptive partitioning in distributed cache memories

Publications (2)

Publication Number Publication Date
JP2017134817A true JP2017134817A (ja) 2017-08-03
JP6263596B2 JP6263596B2 (ja) 2018-01-17

Family

ID=58640181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016221690A Active JP6263596B2 (ja) 2015-11-13 2016-11-14 分散キャッシュメモリにおける適応分割用のシステム及び方法

Country Status (5)

Country Link
US (1) US9832277B2 (ja)
JP (1) JP6263596B2 (ja)
KR (1) KR101960138B1 (ja)
CN (1) CN107018172B (ja)
DE (1) DE102016013577B4 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160212198A1 (en) * 2015-01-16 2016-07-21 Netapp, Inc. System of host caches managed in a unified manner
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
CN109842636A (zh) * 2017-11-24 2019-06-04 阿里巴巴集团控股有限公司 云服务迁移方法、装置以及电子设备
CN112748867B (zh) * 2019-10-31 2024-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备以及计算机程序产品
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning
US11372761B1 (en) 2020-12-11 2022-06-28 International Business Machines Corporation Dynamically adjusting partitioned SCM cache memory to maximize performance
US11379369B1 (en) * 2021-01-15 2022-07-05 Coupang Corp. Systems and methods for dynamic in-memory caching of mappings into partitions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004139366A (ja) * 2002-10-18 2004-05-13 Hitachi Ltd キャッシュ配置方法
JP2004164606A (ja) * 2002-10-16 2004-06-10 Internatl Business Mach Corp <Ibm> キャッシュ・コントローラ
JP2014038494A (ja) * 2012-08-16 2014-02-27 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321238B1 (en) 1998-12-28 2001-11-20 Oracle Corporation Hybrid shared nothing/shared disk database system
US6754220B1 (en) 1999-05-31 2004-06-22 International Business Machines Corporation System and method for dynamically assigning routers to hosts through a mediator
US7069324B1 (en) * 2000-06-30 2006-06-27 Cisco Technology, Inc. Methods and apparatus slow-starting a web cache system
US6792509B2 (en) 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US7461146B2 (en) 2003-01-20 2008-12-02 Equallogic, Inc. Adaptive storage block data distribution
US7827353B2 (en) * 2003-07-15 2010-11-02 International Business Machines Corporation Self healing memory
US7277897B2 (en) 2003-08-01 2007-10-02 Oracle International Corporation Dynamic reassignment of data ownership
US7120651B2 (en) * 2003-08-01 2006-10-10 Oracle International Corporation Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US8145870B2 (en) * 2004-12-07 2012-03-27 International Business Machines Corporation System, method and computer program product for application-level cache-mapping awareness and reallocation
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8433851B2 (en) * 2007-08-16 2013-04-30 International Business Machines Corporation Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing
US8645965B2 (en) * 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
US8069322B2 (en) * 2008-08-15 2011-11-29 International Business Machines Corporation Active-active remote configuration of a storage system
JP5257843B2 (ja) 2008-12-12 2013-08-07 日本電気株式会社 分散キャッシュシステム、方法、プログラム、及び計算ノード
US8769049B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
WO2010138545A1 (en) 2009-05-27 2010-12-02 Yin Zhang Method and system for resilient routing reconfiguration
JP5381336B2 (ja) 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法
US8429346B1 (en) 2009-12-28 2013-04-23 Emc Corporation Automated data relocation among storage tiers based on storage load
US8954790B2 (en) * 2010-07-05 2015-02-10 Intel Corporation Fault tolerance of multi-processor system with distributed cache
JP5661355B2 (ja) 2010-07-09 2015-01-28 株式会社野村総合研究所 分散キャッシュシステム
CN101980192B (zh) * 2010-10-15 2014-03-12 中兴通讯股份有限公司南京分公司 一种基于对象的集群文件系统管理方法及集群文件系统
CN101989999B (zh) * 2010-11-12 2012-09-26 华中科技大学 一种分布式环境中的分级存储系统
US9336060B2 (en) * 2011-06-17 2016-05-10 Microsoft Technology Licensing, Llc Middleware services framework for on-premises and cloud deployment
US11178244B2 (en) * 2011-08-09 2021-11-16 Comcast Cable Communications, Llc Content delivery network routing using border gateway protocol
US8984162B1 (en) * 2011-11-02 2015-03-17 Amazon Technologies, Inc. Optimizing performance for routing operations
US9906436B2 (en) * 2013-08-05 2018-02-27 Futurewei Technologies, Inc. Scalable name-based centralized content routing
CN103616944B (zh) * 2013-10-18 2016-05-11 杭州电子科技大学 云存储系统中基于预判性绿色数据分类策略的降耗方法
US20150293699A1 (en) * 2014-04-11 2015-10-15 Graham Bromley Network-attached storage enhancement appliance
US9690706B2 (en) * 2015-03-25 2017-06-27 Intel Corporation Changing cache ownership in clustered multiprocessor
US9734070B2 (en) * 2015-10-23 2017-08-15 Qualcomm Incorporated System and method for a shared cache with adaptive partitioning
US9824030B2 (en) * 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164606A (ja) * 2002-10-16 2004-06-10 Internatl Business Mach Corp <Ibm> キャッシュ・コントローラ
JP2004139366A (ja) * 2002-10-18 2004-05-13 Hitachi Ltd キャッシュ配置方法
JP2014038494A (ja) * 2012-08-16 2014-02-27 Fujitsu Ltd 演算処理装置および演算処理装置の制御方法

Also Published As

Publication number Publication date
US9832277B2 (en) 2017-11-28
JP6263596B2 (ja) 2018-01-17
DE102016013577B4 (de) 2020-10-29
KR20170058293A (ko) 2017-05-26
DE102016013577A1 (de) 2017-05-18
CN107018172A (zh) 2017-08-04
KR101960138B1 (ko) 2019-03-19
CN107018172B (zh) 2020-04-21
US20170142217A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
JP6263596B2 (ja) 分散キャッシュメモリにおける適応分割用のシステム及び方法
JP5427630B2 (ja) 動的ページ再割当てストレージシステムにおけるアプリケーション及び階層構成の管理
US9529724B2 (en) Layered architecture for hybrid controller
US9477591B2 (en) Memory access requests in hybrid memory system
KR101038963B1 (ko) 캐쉬 할당을 위한 장치, 시스템, 방법 및 기계 액세스가능 매체
JP2020046963A (ja) メモリシステムおよび制御方法
US11169927B2 (en) Efficient cache management
US20140304452A1 (en) Method for increasing storage media performance
US20110145479A1 (en) Efficient use of hybrid media in cache architectures
US8868863B2 (en) Method and apparatus for a frugal cloud file system
US10102147B1 (en) Phased based distributed LRU for shared cache systems
TW201732603A (zh) 剖析快取替代
WO2011000260A1 (zh) 集群系统中内存资源的管理方法、设备及网络系统
US8484424B2 (en) Storage system, control program and storage system control method
JP2019057151A (ja) メモリシステムおよび制御方法
US10176098B2 (en) Method and apparatus for data cache in converged system
CN111124951A (zh) 管理数据访问的方法、设备和计算机程序产品
US10534712B1 (en) Service level agreement based management of a pre-cache module
US10359945B2 (en) System and method for managing a non-volatile storage resource as a shared resource in a distributed system
JP2003228461A (ja) ディスクアレイ装置のディスクキャッシュ管理方法
JPWO2017056310A1 (ja) 計算機および計算機の制御方法
WO2022250751A1 (en) Distributed cache management
US20140372706A1 (en) System and method for dynamic allocation of unified cache to one or more logical units
JP7403554B2 (ja) 情報処理装置
CN113821324B (zh) 处理器的高速缓存系统、方法、设备和计算机介质

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170808

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170825

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: 20171121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6263596

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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