JP2017510925A - 分散型共有メモリアプリケーションのメモリ破損の検出サポート - Google Patents
分散型共有メモリアプリケーションのメモリ破損の検出サポート Download PDFInfo
- Publication number
- JP2017510925A JP2017510925A JP2017502751A JP2017502751A JP2017510925A JP 2017510925 A JP2017510925 A JP 2017510925A JP 2017502751 A JP2017502751 A JP 2017502751A JP 2017502751 A JP2017502751 A JP 2017502751A JP 2017510925 A JP2017510925 A JP 2017510925A
- Authority
- JP
- Japan
- Prior art keywords
- cache line
- node
- memory
- source
- version
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0763—Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本願は、Zoran Radovic等によって2014年3月28日に出願され、「分散型共有メモリアプリケーションのメモリ破損の検出サポート」と題された米国仮特許出願番号第61/972082号に基づいて優先権を主張し、その出願の内容が参照により本明細書に援用される。本願は、2013年3月15日に出願され、「個別の物理ドメインアドレス空間内のノードの間にクラスタの形成を可能にするメモリバスプロトコル」と題された米国特許出願番号第13/838542号(代理人整理番号50277−4032)、2013年3月15日に出願され、「リモート鍵に基づいたメモリバッファアクセス制御メカニズム」と題された米国特許出願番号第13/839525号(代理人整理番号50277−4091)、および2013年3月14日に出願され、「分散ノード間にメモリの共有」と題された米国特許出願番号第13/828555号(代理人整理番号50277−4072)に関連し、これらの出願の各々の内容が参照により本明細書に援用される。
本開示は、一般的に、分散ノードシステムにおいてメモリ破損を検出するための技術に関する。
一クラスタ以上の分散コンピューティングノードは、インターネットまたは企業ネットワークを介して、多くの機能およびサービスを提供することができる。例えば、大規模なビジネスを実行するために使用されるデータベースは、複数のデータベースサーバによって維持され、これらのデータベースサーバを介して利用可能である。これらの複数のデータベースサーバは、クラスタに形成された複数の分散コンピューティングノード上で実行される。コンピューティングノードクラスタを使用して機能またはサービスを提供することは、多くの利点を有する。例えば、クラスタを使用する場合、増加する需要を満たすために、別のノードを追加することによって、システムの性能を比較的に容易に増加することができる。クラスタを使用することによって、負荷をさまざまなノード間に分散することができる。したがって、1つのノードが過負荷になった場合、作業を他のノードに割り当てることができる。また、クラスタを使用することによって、1つ以上のノードが故障した場合、故障を許容することができ、機能またはサービスの使用が可能である。さらに、クラスタ内のノードは、例えば、協同作業、取引の実行、負荷の分散、故障の防止および回復等を行うために、情報を共有することができる。
以下の記載には、説明の目的で、本発明の実施形態を完全に理解できるようにするために、多くの具体的な詳細を記載する。しかしながら、これらの具体的な詳細がなくても本発明を実施できることは明らかであろう。本発明を明瞭にするために、必要に応じて、一部の周知の構造および装置は、ブロック図で示される。
本明細書に記載の実施形態によれば、分散ノードシステム内のノードは、ノード間でメモリを共有する場合、メモリ破損の検出をサポートするように構成されている。本明細書において、分散ノードシステム内のノードがメモリの単位でデータを共有することを「共有キャッシュライン」として称する。ノードは、バージョン値を共有キャッシュラインのデータに関連付ける。バージョン値およびデータは、ノードのメインメモリ内の共有キャッシュラインに格納されてもよい。ノードは、メモリ操作を実行する場合、バージョン値を使用して、メモリ破損が発生したか否かを判断することができる。例えば、ポインタにバージョン値を関連付けることができる。ポインタを用いてメモリにアクセスする場合、ポインタのバージョン値は、メモリ位置の予期バージョン値を示すことができる。これらのバージョン値が一致しない場合、メモリ破損が発生している。
図1は、一実施形態に従って、例示的な分散ノードシステム100を示すブロック図である。分散ノードシステム100は、3つのノード、すなわち、第1ノード102A、第2ノード102Bおよび第3ノード102Cを含む。図示には3つのノードが示されているが、システム100は、より多くのノードまたはより少ないノードを含んでもよい。
メモリを共有するようにシステム100内のノード102を準備するために、ノード102を初期化する。一実施形態において、以下のようにノード102を初期化することができる。ノード102は、任意数のメモリ部分を共有することができ、他のノードに共有される任意数のメモリ部分をコピーすることができる。ノード102は、決定した実行内容に応じて、説明された操作の一部または全部を実行してもよく、何も実行しなくてもよい。
一実施形態において、ノード102は、メモリを割り当てる際に、メモリ位置にバージョン値を与える。例えば、アプリケーションがmalloc要求を実行する際に、ノード102は、要求されたメモリ量を割り当て、割り当てられたメモリに関連付けるバージョン値を生成し、アプリケーションにポインタを返送する。一実施形態において、割り当てられたメモリは、1つ以上の共有キャッシュラインを含む。バージョン値は、各共有キャッシュラインのバージョンビットにより示されてもよい。
図3は、ポインタに関連付けられたバージョン値を用いて、ノード102内のメモリ破損を検出するための手順を示すフローチャートである。この手順は、バージョン値に関連付けられたポインタによって参照される共有キャッシュラインに関与するメモリ操作を実行する際に、行われてもよい。以下、この手順は、ポインタに基づくメモリ破損の検出として呼ばれる。
一実施形態において、共有キャッシュラインのバージョン値を用いて、ノード間の共有キャッシュラインのコヒーレンシを管理することができる。ソースノードがソースキャッシュラインを更新すると、リモートノードに位置する複製キャッシュラインが古くなる。しかしながら、リモートノードは、複製キャッシュラインを直ちに更新せず、その代わりに、複製キャッシュラインが無効であることを示すように、各複製キャッシュラインのバージョン値を設定する。その後、リモートノードが複製キャッシュラインにアクセスしようとする際に、ノードは、複製キャッシュラインが無効であることを発覚し、複製キャッシュラインを更新する。
一実施形態において、ソースノードが対応するソースキャッシュラインを更新する際に、ノードは、複製キャッシュラインを更新しない。ノードは、複製キャッシュラインをノードにロードする際に、複製キャッシュラインを更新する。複製キャッシュラインが無効であることを示すバージョン値は、更新をトリガする。複製キャッシュラインを更新した後、メモリ破損の検出が行われる。図4は、ノード102が複製キャッシュラインを要求した場合、共有キャッシュラインを更新するための手順を示すフローチャートである。
前述したように、一実施形態において、リモートノードは、ストアをソースノードに送信する前に、ストアバッファを用いてストアを記録する。図5Aは、分散ノードシステム100内のリモートノード102によって実行されるストアを説明するフローチャートである。ストアを実行することによって、ストアコマンドを実行することができる。コマンドは、メインメモリ108に位置する複製キャッシュラインのポインタを含むことができる。ポインタに、バージョン値を関連付けてもよい。
アップデートの伝播
一実施形態において、リモートノードは、ストアをストアバッファに記録するが、このストアを対応のソースキャッシュラインを含むソースノードに送信しない。ノードは、ストアをストアバッファに記録した後、ストアをソースノードに伝播する必要がある。ストアの伝播は、ストアバッファを記録する手順と同様の手順の一部として実行されてもよく、または別々に実行されてもよい。一実施形態において、ノードは、ストア伝播操作を含むコマンドを受け取ることができる。例えば、ストアコマンドは、ストアを伝播するための命令を含んでもよい。ストアは、トラップ操作が完了した後、ストアコマンドの再開実行の一部として、伝播されてもよい。別の実施形態において、ノード102は、エントリを共有キャッシュラインに書き込む前に、ストアバッファにエントリを検索することができる。図5Bは、分散ノードシステム100におけるストアの伝播を示すフローチャートである。ストアは、別の実行スレッドによって、非同期的に伝播されてもよい。
一実施形態において、これらのステップは、ストアバッファ内の各エントリに対して、繰り返して行われる。
一実施形態において、ソースノードは、ストアバッファを使用せず、ストアコマンドを実行することによって、共有キャッシュラインを格納する。図6は、分散ノードシステム100内のストアコマンドを実行するように、ソースノード102によって行われたステップを示すフローチャートである。ストアコマンドは、メインメモリ108に位置するソースキャッシュラインのポインタを含むことができる。ポインタには、バージョン値を関連付けてもよい。
ハードウェアの概要
一実施形態によれば、本明細書に記載された技術は、1つ以上の専用コンピューティング装置によって実現される。専用コンピューティング装置は、本発明の技術を実行するために配線で連結されてもよく、または本発明の技術を実行するように反復にプログラムされる1つ以上の特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのデジタル電子機器を含んでもよく、またはファームウェア、メモリ、他の記憶装置、またはその組み合わせに記憶されたプログラム命令に従って、本発明の技術を実行するようにプログラムされる1つ以上の汎用ハードウェアプロセッサを含んでもよい。これらの専用コンピューティング装置は、本発明の技術を達成するために、カスタムハードワイヤードロジック、ASIC、またはカスタムプログラミングを備えるFPGAと併用することができる。本発明の技術を実現するために、専用コンピューティング装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯式装置、ネットワーク装置、またはハードワイヤードジックおよび/またはプログラムロジックを組み込んだ他の任意の装置であってもよい。
Claims (17)
- 方法であって、
ローカルノードのメモリにおいて、ソースノード上のソースキャッシュラインのコピーである複製キャッシュラインを生成するステップを備え、前記複製キャッシュラインは、バージョンビットとデータビットとを含み、前記バージョンビットは、バージョン値に設定され、
前記複製キャッシュラインを指し示すポインタを生成するステップを備え、前記ポインタの値は、前記バージョン値を含み、
前記ポインタを用いて、前記複製キャッシュラインに対してメモリ操作を実行するステップを備え、
前記メモリ操作を実行するステップは、
前記ポインタに含まれるバージョン値と、前記複製キャッシュラインの前記バージョンビットが設定された前記バージョン値とを比較するステップと、
前記比較に基づいて、メモリ破損が発生しているか否かを判断するステップとを含む、方法。 - 前記複製キャッシュラインを生成するステップは、
前記ソースキャッシュラインのバージョン値を判断するステップと、
前記バージョンビットを前記ソースキャッシュラインのバージョン値に設定するステップとを含む、請求項1に記載の方法。 - 前記バージョン値は、メモリ割り当て要求に応答して、前記ソースノードによって生成される、請求項2に記載の方法。
- 前記バージョン値を比較するステップは、
前記複製キャッシュラインが無効であるか否かを判断するステップと、
前記複製キャッシュラインが無効であるという決定に応答して、前記ソースキャッシュラインを前記複製キャッシュラインにコピーするステップとを含む、請求項1に記載の方法。 - 前記ローカルノードによって、前記ソースキャッシュラインに伝播されていない複製キャッシュラインの1つ以上のアップデートをストアバッファに格納するステップと、
前記複製キャッシュラインが無効であるという決定に応答して、前記1つ以上のアップデートを前記複製キャッシュラインに伝播するステップとをさらに備える、請求項4に記載の方法。 - メモリ破損が発生した場合、トラップ操作を実行するステップをさらに備える、請求項1に記載の方法。
- 前記トラップ操作を実行するステップは、メモリ破損が発生したことをアプリケーションに通知するステップを含む、請求項6に記載の方法。
- 前記トラップ操作を実行するステップは、前記メモリ操作を終了させるステップを含む、請求項6の方法。
- コンピュータシステムであって、
1つ以上のコンピューティングノードを備え、前記1つ以上のコンピューティングノードの各コンピューティングノードは、
前記各コンピューティングノードのメモリにおいて、前記1つ以上のコンピューティングノードに属するソースノード上のソースキャッシュラインのコピーである複製キャッシュラインを生成するように構成され、前記複製キャッシュラインは、バージョンビットとデータビットとを含み、前記バージョンビットは、バージョン値に設定され、
前記複製キャッシュラインを指し示すポインタを生成するように構成され、前記ポインタの値は、前記バージョン値を含み、
前記ポインタを用いて、前記複製キャッシュラインに対してメモリ操作を実行するように構成され、
前記メモリ操作は、
前記ポインタに含まれるバージョン値と、前記複製キャッシュラインの前記バージョンビットが設定された前記バージョン値とを比較するステップと、
前記比較に基づいて、前記複製キャッシュラインが破損しているか否かを判断するステップとを含む、システム。 - 複製キャッシュラインを生成するために、前記1つ以上のコンピューティングノードの各コンピューティングノードは、前記ソースキャッシュラインのバージョン値を判断し、前記バージョンビットを前記ソースキャッシュラインのバージョン値に設定するように構成されている、請求項9に記載のシステム。
- 前記バージョン値は、ソースノードによって、前記1つ以上のコンピューティングノードのコンピューティングノード毎に生成され、
前記ソースノードは、メモリ割り当て要求に応答して、バージョン値を生成するように構成されている、請求項10に記載のシステム。 - 前記1つ以上のコンピューティングノードのコンピューティングノード毎に前記バージョン値を比較するために、各コンピューティングノードは、前記複製キャッシュラインが無効であるか否かを判断し、前記複製キャッシュラインが無効である場合、前記ソースキャッシュラインを前記複製キャッシュラインにコピーするように構成されている、請求項9に記載のシステム。
- 各コンピューティングノードは、前記1つ以上のコンピューティングノードのコンピューティングノード毎に、
前記ソースキャッシュラインに伝播されていない複製キャッシュラインの1つ以上のアップデートをストアバッファに格納し、
前記複製キャッシュラインが無効であるという決定に応答して、前記1つ以上のアップデートを前記複製キャッシュラインに伝播するように構成されている、請求項9に記載のシステム。 - 前記1つ以上のコンピューティングノードのコンピューティングノード毎にトラップ操作を実行するために、1つ以上のコンピューティングノードは、メモリ破損が発生した場合、トラップ操作を実行するように構成されている、請求項9に記載のシステム。
- 前記1つ以上のコンピューティングノードのコンピューティングノード毎にトラップ操作を実行するために、1つ以上のコンピューティングノードは、メモリ破損が発生したことをアプリケーションに通知するように構成されている、請求項14に記載のシステム。
- トラップ操作を実行するために、前記1つ以上のコンピューティングノードの各コンピューティングノードは、メモリ操作を終了させるように構成されている、請求項14に記載のシステム。
- 1つ以上のプロセッサによって実行されると、請求項1〜8のいずれか1項に記載の方法を実行される命令を格納する1つ以上の非一時的記憶媒体。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201461972082P | 2014-03-28 | 2014-03-28 | |
| US61/972,082 | 2014-03-28 | ||
| US14/530,354 US9898414B2 (en) | 2014-03-28 | 2014-10-31 | Memory corruption detection support for distributed shared memory applications |
| US14/530,354 | 2014-10-31 | ||
| PCT/US2015/019587 WO2015148100A1 (en) | 2014-03-28 | 2015-03-10 | Memory corruption detection support for distributed shared memory applications |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2017510925A true JP2017510925A (ja) | 2017-04-13 |
| JP2017510925A5 JP2017510925A5 (ja) | 2018-03-08 |
| JP6588080B2 JP6588080B2 (ja) | 2019-10-09 |
Family
ID=54190571
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017502751A Active JP6588080B2 (ja) | 2014-03-28 | 2015-03-10 | 分散型共有メモリアプリケーションのメモリ破損の検出サポート |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9898414B2 (ja) |
| EP (1) | EP3123331B1 (ja) |
| JP (1) | JP6588080B2 (ja) |
| CN (1) | CN106164870B (ja) |
| WO (1) | WO2015148100A1 (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
| US9679084B2 (en) | 2013-03-14 | 2017-06-13 | Oracle International Corporation | Memory sharing across distributed nodes |
| US9858140B2 (en) | 2014-11-03 | 2018-01-02 | Intel Corporation | Memory corruption detection |
| US10073727B2 (en) * | 2015-03-02 | 2018-09-11 | Intel Corporation | Heap management for memory corruption detection |
| US9619313B2 (en) | 2015-06-19 | 2017-04-11 | Intel Corporation | Memory write protection for memory corruption detection architectures |
| US10162694B2 (en) | 2015-12-21 | 2018-12-25 | Intel Corporation | Hardware apparatuses and methods for memory corruption detection |
| US10191791B2 (en) | 2016-07-02 | 2019-01-29 | Intel Corporation | Enhanced address space layout randomization |
| US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
| EP3502898A1 (en) * | 2017-12-20 | 2019-06-26 | Vestel Elektronik Sanayi ve Ticaret A.S. | Devices and methods for determining possible corruption of data stored in a memory of an electronic device |
| US10452547B2 (en) | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| US10467139B2 (en) | 2017-12-29 | 2019-11-05 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| CN111198746B (zh) * | 2018-11-20 | 2023-05-30 | 中标软件有限公司 | 在虚拟化集群中基于共享存储的主机间的通信方法及系统 |
| CN113312385B (zh) * | 2020-07-07 | 2025-02-28 | 阿里巴巴集团控股有限公司 | 缓存操作方法、装置及系统,存储介质和操作设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002019115A2 (en) * | 2000-08-31 | 2002-03-07 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
| JP2004054906A (ja) * | 2003-05-21 | 2004-02-19 | Hitachi Ltd | メモリアクセス方法およびその実施コンピュータシステム |
| US20130013843A1 (en) * | 2011-07-07 | 2013-01-10 | Zoran Radovic | Efficient storage of memory version data |
| US20130036332A1 (en) * | 2011-08-05 | 2013-02-07 | Gove Darryl J | Maximizing encodings of version control bits for memory corruption detection |
| US20130036276A1 (en) * | 2011-08-02 | 2013-02-07 | Zoran Radovic | Instructions to set and read memory version information |
Family Cites Families (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4817140A (en) | 1986-11-05 | 1989-03-28 | International Business Machines Corp. | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
| US5133053A (en) | 1987-02-13 | 1992-07-21 | International Business Machines Corporation | Interprocess communication queue location transparency |
| JPH0619785A (ja) | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
| DE69424597T2 (de) | 1993-06-17 | 2001-03-01 | Sun Microsystems, Inc. | Erweiterbares Dateiensystem |
| US5684977A (en) | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
| KR0175499B1 (ko) | 1996-09-11 | 1999-04-01 | 양승택 | 다중태그 구조의 계층 상호연결망에서의 브로드캐스트 전송방법 |
| US6148377A (en) | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
| US6151688A (en) | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
| US6292705B1 (en) | 1998-09-29 | 2001-09-18 | Conexant Systems, Inc. | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system |
| US6230240B1 (en) | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
| JP3583657B2 (ja) | 1998-09-30 | 2004-11-04 | 株式会社東芝 | 中継装置及び通信装置 |
| US6295571B1 (en) | 1999-03-19 | 2001-09-25 | Times N Systems, Inc. | Shared memory apparatus and method for multiprocessor systems |
| US6697919B2 (en) * | 2000-06-10 | 2004-02-24 | Hewlett-Packard Development Company, L.P. | System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system |
| US6917987B2 (en) | 2001-03-26 | 2005-07-12 | Intel Corporation | Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications |
| US7013353B2 (en) | 2001-03-30 | 2006-03-14 | Intel Corporation | Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem |
| US6789143B2 (en) | 2001-09-24 | 2004-09-07 | International Business Machines Corporation | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries |
| US6854032B2 (en) | 2001-12-04 | 2005-02-08 | Sun Microsystems, Inc. | System for accessing a region of memory using remote address translation and using a memory window table and a memory region table |
| US6757790B2 (en) | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
| US7197647B1 (en) * | 2002-09-30 | 2007-03-27 | Carnegie Mellon University | Method of securing programmable logic configuration data |
| US20060098649A1 (en) | 2004-11-10 | 2006-05-11 | Trusted Network Technologies, Inc. | System, apparatuses, methods, and computer-readable media for determining security realm identity before permitting network connection |
| US7664938B1 (en) * | 2004-01-07 | 2010-02-16 | Xambala Corporation | Semantic processor systems and methods |
| US20060095690A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method, and storage medium for shared key index space for memory regions |
| US8255922B1 (en) | 2006-01-09 | 2012-08-28 | Oracle America, Inc. | Mechanism for enabling multiple processes to share physical memory |
| US20080010417A1 (en) | 2006-04-28 | 2008-01-10 | Zeffer Hakan E | Read/Write Permission Bit Support for Efficient Hardware to Software Handover |
| US20080065835A1 (en) * | 2006-09-11 | 2008-03-13 | Sun Microsystems, Inc. | Offloading operations for maintaining data coherence across a plurality of nodes |
| US8504791B2 (en) * | 2007-01-26 | 2013-08-06 | Hicamp Systems, Inc. | Hierarchical immutable content-addressable memory coprocessor |
| US7882210B2 (en) | 2007-08-02 | 2011-02-01 | Sap Ag | Dynamic agent formation for efficient data provisioning |
| US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
| US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
| US8108361B2 (en) | 2008-07-31 | 2012-01-31 | Microsoft Corporation | Efficient column based data encoding for large-scale data storage |
| US8275815B2 (en) * | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
| US20100088309A1 (en) | 2008-10-05 | 2010-04-08 | Microsoft Corporation | Efficient large-scale joining for querying of column based data encoded structures |
| US8195891B2 (en) * | 2009-03-30 | 2012-06-05 | Intel Corporation | Techniques to perform power fail-safe caching without atomic metadata |
| US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
| US8516268B2 (en) | 2010-08-23 | 2013-08-20 | Raytheon Company | Secure field-programmable gate array (FPGA) architecture |
| US8972746B2 (en) * | 2010-12-17 | 2015-03-03 | Intel Corporation | Technique for supporting multiple secure enclaves |
| US8601473B1 (en) | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
| WO2014033606A2 (en) * | 2012-08-31 | 2014-03-06 | Pradeep Varma | Systems and methods of memory and access management |
| US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
| US8954391B2 (en) | 2012-10-15 | 2015-02-10 | Oracle International Corporation | System and method for supporting transient partition consistency in a distributed data grid |
| US9043559B2 (en) * | 2012-10-23 | 2015-05-26 | Oracle International Corporation | Block memory engine with memory corruption detection |
| US9244829B2 (en) | 2012-12-20 | 2016-01-26 | Oracle International Corporation | Method and system for efficient memory region deallocation |
| US9471590B2 (en) | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
| US9679084B2 (en) | 2013-03-14 | 2017-06-13 | Oracle International Corporation | Memory sharing across distributed nodes |
-
2014
- 2014-10-31 US US14/530,354 patent/US9898414B2/en active Active
-
2015
- 2015-03-10 WO PCT/US2015/019587 patent/WO2015148100A1/en not_active Ceased
- 2015-03-10 EP EP15714996.4A patent/EP3123331B1/en active Active
- 2015-03-10 CN CN201580016557.7A patent/CN106164870B/zh active Active
- 2015-03-10 JP JP2017502751A patent/JP6588080B2/ja active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002019115A2 (en) * | 2000-08-31 | 2002-03-07 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
| JP2004054906A (ja) * | 2003-05-21 | 2004-02-19 | Hitachi Ltd | メモリアクセス方法およびその実施コンピュータシステム |
| US20130013843A1 (en) * | 2011-07-07 | 2013-01-10 | Zoran Radovic | Efficient storage of memory version data |
| US20130036276A1 (en) * | 2011-08-02 | 2013-02-07 | Zoran Radovic | Instructions to set and read memory version information |
| US20130036332A1 (en) * | 2011-08-05 | 2013-02-07 | Gove Darryl J | Maximizing encodings of version control bits for memory corruption detection |
Also Published As
| Publication number | Publication date |
|---|---|
| CN106164870B (zh) | 2019-05-28 |
| EP3123331A1 (en) | 2017-02-01 |
| US20150278103A1 (en) | 2015-10-01 |
| WO2015148100A1 (en) | 2015-10-01 |
| JP6588080B2 (ja) | 2019-10-09 |
| CN106164870A (zh) | 2016-11-23 |
| EP3123331B1 (en) | 2021-08-25 |
| US9898414B2 (en) | 2018-02-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6588080B2 (ja) | 分散型共有メモリアプリケーションのメモリ破損の検出サポート | |
| US9536104B2 (en) | Managing global cache coherency in a distributed shared caching for clustered file systems | |
| US8429134B2 (en) | Distributed database recovery | |
| US10599535B2 (en) | Restoring distributed shared memory data consistency within a recovery process from a cluster node failure | |
| CN108021338B (zh) | 用于实现两层提交协议的系统和方法 | |
| US20150089137A1 (en) | Managing Mirror Copies without Blocking Application I/O | |
| JP2565658B2 (ja) | リソースの制御方法及び装置 | |
| US10127054B2 (en) | Bootstrapping server using configuration file stored in server-managed storage | |
| CN108228481B (zh) | 用于保证数据一致性的方法和设备 | |
| US20150135004A1 (en) | Data allocation method and information processing system | |
| US11960742B1 (en) | High-performance, block-level fail atomicity on byte-level non-volatile media |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180126 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180126 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181130 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190108 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190314 |
|
| 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: 20190820 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190911 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6588080 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 |