JP4999833B2 - 複数の独立プロセスによってアクセス可能なキャッシュメモリの一貫性を維持する方法及びシステム - Google Patents
複数の独立プロセスによってアクセス可能なキャッシュメモリの一貫性を維持する方法及びシステム Download PDFInfo
- Publication number
- JP4999833B2 JP4999833B2 JP2008501275A JP2008501275A JP4999833B2 JP 4999833 B2 JP4999833 B2 JP 4999833B2 JP 2008501275 A JP2008501275 A JP 2008501275A JP 2008501275 A JP2008501275 A JP 2008501275A JP 4999833 B2 JP4999833 B2 JP 4999833B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- data
- entries
- cache memory
- selecting
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
−コードのサイズ(420)、
−ユーザデータのサイズ(430)、
−データを識別する固有コード(440)(一般に、このコードは、関連データのタイプを識別するのに十分な情報を含む数十バイトのフィールドである)
−ユーザデータ自体(450)(例えば、このユーザデータは、所定の行き先と所定の期間について航空会社から課される価格でよい。)を含む4つのフィールドを含む。
−データと関連付けられたコードのハッシュ値、
−データの挿入日、
−データの有効期限日、
−データテーブルの対応エントリに記憶されたデータのサイズ、
−制御テーブルとデータテーブルのエントリ(空き又は使用済み)の連鎖リスト内の次のエントリ、或いは他の連鎖エントリがない場合は値0、
−前の連鎖エントリ、或いは他の連鎖エントリがない場合は値0、
−図8で説明するハッシュテーブルの対応エントリ、或いは空きエントリの連鎖リストの場合は値0、
−制御テーブルのこのエントリと関連付けられたデータテーブルの数、
−データテーブル内の対応するエントリ、
−利用メータ(エントリのうちのどのエントリが最も最近使用されたかを決定する)、
−特に、対応するエントリが空いており使用できることを示すための2値インジケータを含む様々なパラメータを含む。
−制御テーブル内の対応する区分の最初のエントリのインデックス(720)、
−最後のエントリのインデックス(730)、
−この区分内のエントリの数、
−この区分内のエントリのサイズ
−空きエントリの数
−空きエントリの連鎖リスト内の最初のエントリ(740)
−区分ロッキングインジケータ
−取り出される可能性が高いエントリの次の検索が始まる制御テーブル内のインデックス。
−1度に1つのプロセスしか連鎖リスト(820)を変更できないようにするエントリのロッキングインジケータ(V)。(ハッシュテーブル内でこのエントリから始まる。)(本発明のこの様相については後で説明する。)
−制御テーブル内にあり、コードハッシュによって生じる可能性のある衝突を解決するために使用される連鎖リストの最初のエントリ(当然ながら、データコードのハッシングが、ハッシュテーブルの特定のエントリと衝突しない場合は、対応する連鎖リストは単一要素に縮小される。)
ハッシュテーブル内の0値(830)は、制御テーブル内のどのエントリも参照しない。データコードはどれもこのエントリについてハッシュ値を与えない。
−エントリと関連付けられたデータの有効性が終了する時間(時間/日付)(1140)。(この時間を現在時間と比較して、区分の全てのエントリを参照することによって、エントリの一つが既に有効期限切れになっていて削除することができるかを決定しなければならない。実際には、この時間は、図示したように、データの有効時間が終了したときに単純なカウンタが達しなければならない値の形をとる。)
−どのエントリが最も長い時間使用されてなかったかを決定することができるエントリの実際の使用状況(1150)(これらの主題に関する英語技術文献では「LRU(least recently used)」)。図11の例では、「使用状況」フィールドの最高値は、最も長い時間使用されなかったエントリを示す(即ち、制御テーブル内のアドレス7のエントリ(1155))。従って、置き換えられる可能性が高いのはこのエントリである。
本発明の使用のタイプによって、あるエントリを選択し取り出すための基準は、様々に設定することができる。これらのパラメータの通常の使用は、最初に、データの有効期限が切れたエントリがあるかどうかを決定することにある。この基準を満たす少なくとも1つのエントリがある場合、それは例えば全てのエントリを参照するとき最初に見つかったものであり、そのエントリが選択される(1160)。エントリに有効期限の切れたデータがない場合、最も長い時間未使用だったエントリを取り出すことができる(1155)。しかしながら、データを早過ぎる時期に削除しないように、この最後のパラメータを考慮するしきい値が設定されてもよい。この場合、エントリを削除する基準が、最初の期間内に満たされないことがあり、その場合は、アルゴリズムが、制限の少ないフォールバック戦略を提供しなければならず、その結果、できるだけ現在時間に近い期限終了時間を持つエントリを選択できるようになる。
−図8に既に示したように、ハッシュテーブルの各エントリは、2つのプロセスがCLEの1つのエントリを同時に変更しようするのを防ぐためのロッキングインジケータを含む。図9の段階(945)に詳しく示したように、データテーブルを変更しなければならないプロセスがそのエントリから既に実行されている場合は、アクセスが阻止される。しかしながら、ハッシュテーブル内にある様々なエントリと同じ数の同時アクセスをCLEに対して行うことができる。テーブルの変更を伴う動作のために同じハッシュ値からの複数のアクセスだけが不可能であり、その理由は、そのようなアクセスが、同じ連鎖リストを処理しなければならなくなるからである。
−図7に示した区分テーブルのエントリにはロッキングインジケータもある。このロックの目的は、同じ区分内で行われる独立プロセスが変更したい空きエントリの連鎖リストの更新を保護することである。区分テーブルのエントリは、特にスペースが開放されるとき、即ち図10に示した段階(1045)、(1050)又は(1025)でロックされ、またハッシュテーブルの条件と同じ条件下でロック解除される。
110 中央処理装置
130 マスメモリ
Claims (8)
- 共通データ(210)を共用する複数の独立プロセス(200)によってアクセス可能な少なくとも1つのキャッシュメモリ(150)の一貫性を維持する方法であって、
前記キャッシュメモリはエントリを含む複数の区分を有する制御テーブルを備え、それらエントリには異なるサイズを有するエントリが含まれており、前記複数のプロセスは区分中のデータについて同時に検索動作(900)を実行し、前記方法は区分の1つへの新しいデータの挿入動作(1030)を更に含み、
その挿入動作は、エントリを開放する段階であって、最大参照時間を定義する段階と、新しいデータのサイズを決定する段階と、区分のエントリを参照する段階と、最大参照時間に達したときにエントリの参照を中断する段階と、参照したエントリの中から新しいデータを収容するのに十分なサイズを有する最も適切なエントリを選択する段階と、最も適切なエントリを開放する段階とを含んでいる段階と、
最も適切なエントリに新しいデータを挿入し、それにより挿入動作は実行持続時間が制限される段階とを含む、方法。 - 前記の参照したエントリの中から最も適切なエントリを選択する段階は、新しいデータを収容するのに十分なサイズの参照したエントリの最後のエントリを無条件に選択する段階を含む、請求項1に記載の方法。
- 最後に参照したエントリのアドレスを記憶し(700)、区分中の更に新しいデータの新しい挿入動作を動作させる段階を更に含み、
その挿入動作は、エントリを開放する段階であって、最大参照時間を定義する段階と、最後に参照したエントリの次に位置するエントリから開始して区分のエントリを参照する段階と、最大参照時間に達したときにエントリの参照を中断する段階と、参照したエントリの中から最も適切なエントリを選択する段階と、最も適切なエントリを開放する段階とを含んでいる段階と、
最も適切なエントリに更に新しいデータを挿入する段階とを含む、請求項1に記載の方法。 - 前記の参照したエントリの中から最も適切なエントリを選択する段階は、最近最も使用されていなかったエントリを選択する段階を含む、請求項1に記載の方法。
- 前記の参照したエントリの中から最も適切なエントリを選択する段階は、有効期限が切れたエントリを選択する段階を含む、請求項1に記載の方法。
- 前記の最大参照時間を定義する段階は、エントリの連続読み出しの最大回数を指定する段階を含む、請求項1に記載の方法。
- マスメモリ(130)に記憶されたデータを処理する複数の中央処理装置(110)を使用可能にするために使用されるシステム、特にキャッシュメモリ(150)であって、請求項1から6のいずれか1項に記載の方法を実施するように適応された手段を含む、システム。
- 請求項1から6のいずれか1項に記載の方法を実施する、前記コンピュータによって実行可能なプログラムの命令を含む、コンピュータが読み出すことができる媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66191305P | 2005-03-16 | 2005-03-16 | |
EP05102054A EP1703404A1 (fr) | 2005-03-16 | 2005-03-16 | Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants |
EP05102054.3 | 2005-03-16 | ||
US60/661,913 | 2005-03-16 | ||
PCT/EP2006/060567 WO2006097424A1 (fr) | 2005-03-16 | 2006-03-08 | Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008533600A JP2008533600A (ja) | 2008-08-21 |
JP4999833B2 true JP4999833B2 (ja) | 2012-08-15 |
Family
ID=34938990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008501275A Expired - Fee Related JP4999833B2 (ja) | 2005-03-16 | 2006-03-08 | 複数の独立プロセスによってアクセス可能なキャッシュメモリの一貫性を維持する方法及びシステム |
Country Status (12)
Country | Link |
---|---|
US (1) | US7971000B2 (ja) |
EP (2) | EP1703404A1 (ja) |
JP (1) | JP4999833B2 (ja) |
KR (1) | KR101268437B1 (ja) |
CN (1) | CN100594483C (ja) |
AT (1) | ATE403187T1 (ja) |
AU (1) | AU2006224669B2 (ja) |
BR (1) | BRPI0607628A2 (ja) |
CA (1) | CA2596290C (ja) |
DE (1) | DE602006002032D1 (ja) |
ES (1) | ES2312119T3 (ja) |
WO (1) | WO2006097424A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100489814C (zh) * | 2007-08-01 | 2009-05-20 | 杭州华三通信技术有限公司 | 一种共享缓存系统及实现方法 |
US9436502B2 (en) * | 2010-12-10 | 2016-09-06 | Microsoft Technology Licensing, Llc | Eventually consistent storage and transactions in cloud based environment |
CN103136080B (zh) * | 2013-03-12 | 2016-07-13 | 青岛中星微电子有限公司 | 一种缓存锁定功能的测试方法和装置 |
US10049078B1 (en) * | 2015-06-25 | 2018-08-14 | Amazon Technologies, Inc. | Accessing a memory location using a two-stage hash scheme |
JP6674092B2 (ja) * | 2016-02-10 | 2020-04-01 | 富士通株式会社 | データ管理プログラム、データ管理装置、及びデータ管理方法 |
CN106020999B (zh) * | 2016-05-31 | 2017-10-17 | 广东欧珀移动通信有限公司 | 一种操作系统内部的通信方法及设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103794B2 (en) * | 1998-06-08 | 2006-09-05 | Cacheflow, Inc. | Network object cache engine |
US6044430A (en) * | 1997-12-17 | 2000-03-28 | Advanced Micro Devices Inc. | Real time interrupt handling for superscalar processors |
US6275832B1 (en) * | 1998-09-21 | 2001-08-14 | International Business Machines Corporation | Providing transaction undo without logging |
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US7203709B2 (en) * | 2000-05-12 | 2007-04-10 | Oracle International Corporation | Transaction-aware caching for access control metadata |
US6842832B1 (en) * | 2000-08-25 | 2005-01-11 | International Business Machines Corporation | Reclaim space reserve for a compressed memory system |
KR100832222B1 (ko) * | 2001-06-09 | 2008-05-23 | 자프 아게 | 메인 메모리 데이터베이스 시스템의 색인 구조를 위한캐쉬에 최적화된 동시성 제어방법 |
US7020746B2 (en) * | 2003-01-28 | 2006-03-28 | Microsoft Corporation | Method and system for an atomically updated, central cache memory |
US7558920B2 (en) * | 2004-06-30 | 2009-07-07 | Intel Corporation | Apparatus and method for partitioning a shared cache of a chip multi-processor |
US7590803B2 (en) * | 2004-09-23 | 2009-09-15 | Sap Ag | Cache eviction |
-
2005
- 2005-03-16 EP EP05102054A patent/EP1703404A1/fr not_active Withdrawn
-
2006
- 2006-03-08 JP JP2008501275A patent/JP4999833B2/ja not_active Expired - Fee Related
- 2006-03-08 CA CA2596290A patent/CA2596290C/fr active Active
- 2006-03-08 DE DE602006002032T patent/DE602006002032D1/de active Active
- 2006-03-08 CN CN200680016430A patent/CN100594483C/zh active Active
- 2006-03-08 EP EP06708695A patent/EP1866770B1/fr active Active
- 2006-03-08 AU AU2006224669A patent/AU2006224669B2/en active Active
- 2006-03-08 ES ES06708695T patent/ES2312119T3/es active Active
- 2006-03-08 WO PCT/EP2006/060567 patent/WO2006097424A1/fr active IP Right Grant
- 2006-03-08 AT AT06708695T patent/ATE403187T1/de not_active IP Right Cessation
- 2006-03-08 BR BRPI0607628-9A patent/BRPI0607628A2/pt active Search and Examination
- 2006-03-08 US US11/886,514 patent/US7971000B2/en active Active
- 2006-03-08 KR KR1020077023763A patent/KR101268437B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US7971000B2 (en) | 2011-06-28 |
EP1866770B1 (fr) | 2008-07-30 |
AU2006224669A1 (en) | 2006-09-21 |
ES2312119T3 (es) | 2009-02-16 |
ATE403187T1 (de) | 2008-08-15 |
EP1703404A1 (fr) | 2006-09-20 |
WO2006097424A1 (fr) | 2006-09-21 |
CN100594483C (zh) | 2010-03-17 |
JP2008533600A (ja) | 2008-08-21 |
CA2596290A1 (fr) | 2006-09-21 |
EP1866770A1 (fr) | 2007-12-19 |
CN101185068A (zh) | 2008-05-21 |
KR101268437B1 (ko) | 2013-06-04 |
BRPI0607628A2 (pt) | 2010-04-20 |
US20080183970A1 (en) | 2008-07-31 |
AU2006224669B2 (en) | 2011-09-08 |
DE602006002032D1 (de) | 2008-09-11 |
CA2596290C (fr) | 2014-08-19 |
KR20080023285A (ko) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190294545A1 (en) | Systems and methods for rebuilding a cache index | |
US5414840A (en) | Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory | |
US9130821B2 (en) | Hybrid locking using network and on-disk based schemes | |
US5261088A (en) | Managing locality in space reuse in a shadow written B-tree via interior node free space list | |
US9251162B2 (en) | Secure storage management system and method | |
US20100211616A1 (en) | Performance by Avoiding Disk I/O for Deduplicated File Blocks | |
JP4999833B2 (ja) | 複数の独立プロセスによってアクセス可能なキャッシュメモリの一貫性を維持する方法及びシステム | |
EP2983093A1 (en) | Apparatus and method for a hardware-based file system | |
US11580162B2 (en) | Key value append | |
US20090037456A1 (en) | Providing an index for a data store | |
CN107656834B (zh) | 用于基于事务日志恢复主机访问的系统和方法及存储介质 | |
US11048757B2 (en) | Cuckoo tree with duplicate key support | |
US8819059B2 (en) | Facilitation of search, list, and retrieval operations on persistent data set using distributed shared memory | |
US6952707B1 (en) | Efficient sequence number generation in a multi-system data-sharing environment | |
CN111240588B (zh) | 一种持久性内存对象存储系统 | |
US11468011B2 (en) | Database management system | |
US11163446B1 (en) | Systems and methods of amortizing deletion processing of a log structured storage based volume virtualization | |
JPH10133929A (ja) | データベース更新制御方式及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110927 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111221 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120104 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120126 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120202 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120223 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120327 |
|
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: 20120424 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120515 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4999833 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150525 Year of fee payment: 3 |
|
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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |