JP5567967B2 - データベースにおけるキャッシュ制御方法、システム及びプログラム - Google Patents
データベースにおけるキャッシュ制御方法、システム及びプログラム Download PDFInfo
- Publication number
- JP5567967B2 JP5567967B2 JP2010221450A JP2010221450A JP5567967B2 JP 5567967 B2 JP5567967 B2 JP 5567967B2 JP 2010221450 A JP2010221450 A JP 2010221450A JP 2010221450 A JP2010221450 A JP 2010221450A JP 5567967 B2 JP5567967 B2 JP 5567967B2
- Authority
- JP
- Japan
- Prior art keywords
- row
- search key
- index
- field
- invalidation index
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
http://db.cs.berkeley.edu/papers/ERL-M89-17.pdfあるいは、
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.5740などの文献に記述されている。
http://pages.cs.wisc.edu/~gangluo/partial_full.pdfに記述された技術がある。
UPDATE ITEM SET CC = 'S72' WHERE AA = 'css' AND CC = 'S71'
W = F('css','S71')
X = F('sjd','S71')
W = F('gh','S72')
W = F('sjd','S72')
....
のようになることを、図7の無効化用インデックスの例は示している。
SELECT * FROM ITEM WHERE AA = 'css' AND CC = 'S71'
XZ = F1(AAのフィールドの値,CCのフィールドの値) for ID=2,7,6,9,12となるような関数F1()を用意して、行1206のハッシュ値のフィールドには、ハッシュ値の計算に、F()でなくF1()を使うことを指示する目印をつけておく。あるいは、ハッシュ値のフィールドに、ハッシュ値の計算に使用される関数を入れておいてもよい。
W = F('css','S71') // ID = 1
W = F('gh','S72') // ID = 3
W = F('sjd','S72') // ID = 4
のように、ID = 1,3,4で同じハッシュ値Wとなるが、別の関数F2()を用意して、
W1 = F2('css','S71') // ID = 1
W2 = F2('gh','S72') // ID = 3
W2 = F2('sjd','S72') // ID = 4
のように、ID = 1のグループと、ID = 3,4のグループで分かれるようにする。
(1) 参照数×(参照数 / 更新数)
この場合は、値が高いほうが参照の割合と頻度が高い。
(2) キャッシュヒット率×参照数×(参照数 / 更新数)
これは、アプリケーションのふるまいの差を考慮して、キャッシュヒット率の差を入れた計算方式である。
(3) (キャッシュヒット数)×Chit / {更新数 × Cupdate + (キャッシュミス数) ×Cmiss }
これは、キャッシュヒット、キャッシュ無効化などのコストを考慮した計算方式であり、Chitはキャッシュヒットのコスト、Cupdateはキャッシュ無効化のコスト、Cmissはキャッシュミスのコストである。
302 通信インターフェース
306 CPU
308 主記憶
310 ハードディスク・ドライブ
402 アプリケーション・プログラム
404 データベース管理システム
406 データベース
408 データ・キャッシュ
410 無効化用インデックス
Claims (15)
- データベースと、該データベースのデータをキャッシュしたデータ・キャッシュと、データ・キャッシュのデータにアクセスするための無効化用インデックスをもつシステムにおいて、コンピュータの処理によって、無効化用インデックスを制御する方法であって、 参照クエリの検索条件を用いて作成される検索キーのフィールドと、前記検索条件に合致する前記データベースのレコードのIDのリストのフィールドと、カウント値のフィールドをもつ無効化用インデックスを、前記システムのメモリに用意するステップと、
参照クエリで取得したデータに基づき、検索キー作成に必要な検索条件を抽出して、前記無効化用インデックスの検索キーを作成するステップと、
前記作成された検索キーをもつ前記無効化用インデックスの行を検索するステップと、 前記作成された検索キーをもつ前記無効化用インデックスの行が見つかったことに応答して、前記カウント値を減少させるステップと、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つからなかったことに応答して、新たな前記無効化用インデックスの行を作成して、その検索キーのフィールドに、前記作成された検索キーを格納し、IDのリストのフィールドに、対応する前記検索条件に合致する前記データベースのレコードのIDを格納するステップと、
所定の時期に、前記カウント値が最小である、前記作成された検索キーをもつ前記無効化用インデックスの行を、前記データベースのレコードの値に関連する条件に基づき分割し、分割した各々の行のIDのリストのフィールドには、前記レコードの値に関連する条件に従い元の行のIDのリストに格納されていたIDの値を振り分けて格納し、分割した各々の行の検索キーのフィールドには、振り分けて格納されたIDの値に基づいて計算された異なる検索キーの値をそれぞれ格納する処理を、可能なインデックス・サイズ内で繰り返すステップを有する、
無効化用インデックスを制御する方法。 - 更新クエリの検索条件部分に基づき、前記無効化用インデックスの検索キーを作成するステップと、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つかったことに応答して、その行のIDのリストのフィールドに格納されているIDに対応するデータ・キャッシュのデータを無効化し、その行のカウント値を増加させるステップをさらに有する、 請求項1に記載の方法。 - 所定の時期に、前記カウント値が所定の閾値より大きい前記無効化用インデックスの行をまとめて、まとめられた行のIDのリストのフィールドのIDの値を合弁し、合弁されたIDの値に対応する検索キーを計算して、まとめられた行の検索キーのフィールドに格納するステップをさらに有する、請求項2に記載の方法。
- 前記カウント値を増加させるステップが、前記カウント値を1だけ増分させる、請求項2に記載の方法。
- 前記カウント値を増加または減少させるステップが、前記無効化用インデックスの各行のデータ更新と参照クエリの数を基に重みをつけた値を導出して、前記カウント値に格納する、請求項2に記載の方法。
- データベースと、該データベースのデータをキャッシュしたデータ・キャッシュと、データ・キャッシュのデータにアクセスするための無効化用インデックスをもつシステムにおいて、コンピュータの処理によって、無効化用インデックスを制御するプログラムであって、
前記コンピュータに、
参照クエリの検索条件を用いて作成される検索キーのフィールドと、前記検索条件に合致する前記データベースのレコードのIDのリストのフィールドと、カウント値のフィールドをもつ無効化用インデックスを、前記システムのメモリに用意するステップと、
参照クエリで取得したデータに基づき、検索キー作成に必要な検索条件を抽出して、前記無効化用インデックスの検索キーを作成するステップと、
前記作成された検索キーをもつ前記無効化用インデックスの行を検索するステップと、 前記作成された検索キーをもつ前記無効化用インデックスの行が見つかったことに応答して、前記カウント値を減少させるステップと、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つからなかったことに応答して、新たな前記無効化用インデックスの行を作成して、その検索キーのフィールドに、前記作成された検索キーを格納し、IDのリストのフィールドに、対応する前記検索条件に合致する前記データベースのレコードのIDを格納するステップと、
所定の時期に、前記カウント値が最小である、前記作成された検索キーをもつ前記無効化用インデックスの行を、前記データベースのレコードの値に関連する条件に基づき分割し、分割した各々の行のIDのリストのフィールドには、前記レコードの値に関連する条件に従い元の行のIDのリストに格納されていたIDの値を振り分けて格納し、分割した各々の行の検索キーのフィールドには、振り分けて格納されたIDの値に基づいて計算された異なる検索キーの値をそれぞれ格納する処理を、可能なインデックス・サイズ内で繰り返すステップを実行させる、
無効化用インデックスを制御するプログラム。 - 更新クエリの検索条件部分に基づき、前記無効化用インデックスの検索キーを作成するステップと、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つかったことに応答して、その行のIDのリストのフィールドに格納されているIDに対応するデータ・キャッシュのデータを無効化し、その行のカウント値を増加させるステップをさらに有する、 請求項6に記載のプログラム。 - 所定の時期に、前記カウント値が所定の閾値より大きい前記無効化用インデックスの行をまとめて、まとめられた行のIDのリストのフィールドのIDの値を合弁し、合弁されたIDの値に対応する検索キーを計算して、まとめられた行の検索キーのフィールドに格納するステップをさらに有する、請求項7に記載のプログラム。
- 前記カウント値を増加させるステップが、前記カウント値を1だけ増分させる、請求項7に記載のプログラム。
- 前記カウント値を増加または減少させるステップが、前記無効化用インデックスの各行のデータ更新と参照クエリの数を基に重みをつけた値を導出して、前記カウント値に格納する、請求項7に記載のプログラム。
- データベースと、該データベースのデータをキャッシュしたデータ・キャッシュと、データ・キャッシュのデータにアクセスするための無効化用インデックスをもつシステムにおいて、
メモリと、
参照クエリの検索条件を用いて作成される検索キーのフィールドと、前記検索条件に合致する前記データベースのレコードのIDのリストのフィールドと、カウント値のフィールドをもつ無効化用インデックスを、前記メモリに作成する手段と、
参照クエリで取得したデータに基づき、検索キー作成に必要な検索条件を抽出して、前記無効化用インデックスの検索キーを作成する手段と、
前記作成された検索キーをもつ前記無効化用インデックスの行を検索する手段と、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つかったことに応答して、前記カウント値を減少させる手段と、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つからなかったことに応答して、新たな前記無効化用インデックスの行を作成して、その検索キーのフィールドに、前記作成された検索キーを格納し、IDのリストのフィールドに、対応する前記検索条件に合致する前記データベースのレコードのIDを格納する手段と、
所定の時期に、前記カウント値が最小である、前記作成された検索キーをもつ前記無効化用インデックスの行を、前記データベースのレコードの値に関連する条件に基づき分割し、分割した各々の行のIDのリストのフィールドには、前記レコードの値に関連する条件に従い元の行のIDのリストに格納されていたIDの値を振り分けて格納し、分割した各々の行の検索キーのフィールドには、振り分けて格納されたIDの値に基づいて計算された異なる検索キーの値をそれぞれ格納する処理を、可能なインデックス・サイズ内で繰り返す手段を有する、
システム。 - 更新クエリの検索条件部分に基づき、前記無効化用インデックスの検索キーを作成する手段と、
前記作成された検索キーをもつ前記無効化用インデックスの行が見つかったことに応答して、その行のIDのリストのフィールドに格納されているIDに対応するデータ・キャッシュのデータを無効化し、その行のカウント値を増加させる手段をさらに有する、
請求項11に記載のシステム。 - 所定の時期に、前記カウント値が所定の閾値より大きい前記無効化用インデックスの行をまとめて、まとめられた行のIDのリストのフィールドのIDの値を合弁し、合弁されたIDの値に対応する検索キーを計算して、まとめられた行の検索キーのフィールドに格納する手段をさらに有する、請求項12に記載のシステム。
- 前記カウント値を増加させる手段が、前記カウント値を1だけ増分させる、請求項12に記載のシステム。
- 前記カウント値を増加または減少させる手段が、前記無効化用インデックスの各行のデータ更新と参照クエリの数を基に重みをつけた値を導出して、前記カウント値に格納する、請求項12に記載のシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010221450A JP5567967B2 (ja) | 2010-09-30 | 2010-09-30 | データベースにおけるキャッシュ制御方法、システム及びプログラム |
US13/251,131 US20120166419A1 (en) | 2010-09-30 | 2011-09-30 | Method, system and program for cache control in database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010221450A JP5567967B2 (ja) | 2010-09-30 | 2010-09-30 | データベースにおけるキャッシュ制御方法、システム及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012078927A JP2012078927A (ja) | 2012-04-19 |
JP5567967B2 true JP5567967B2 (ja) | 2014-08-06 |
Family
ID=46239140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010221450A Expired - Fee Related JP5567967B2 (ja) | 2010-09-30 | 2010-09-30 | データベースにおけるキャッシュ制御方法、システム及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120166419A1 (ja) |
JP (1) | JP5567967B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930627B2 (en) | 2012-06-14 | 2015-01-06 | International Business Machines Corporation | Mitigating conflicts for shared cache lines |
US9177026B2 (en) * | 2012-09-27 | 2015-11-03 | LogicBlox, Inc. | Leapfrog tree-join |
US9495400B2 (en) | 2012-10-01 | 2016-11-15 | International Business Machines Corporation | Dynamic output selection using highly optimized data structures |
US20140095508A1 (en) | 2012-10-01 | 2014-04-03 | International Business Machines | Efficient selection of queries matching a record using a cache |
US9747313B2 (en) * | 2012-12-19 | 2017-08-29 | Sap Se | Timeline index for managing temporal data |
US9489411B2 (en) * | 2013-07-29 | 2016-11-08 | Sybase, Inc. | High performance index creation |
CN103914565B (zh) * | 2014-04-21 | 2017-05-24 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
KR101613146B1 (ko) * | 2015-03-24 | 2016-04-18 | 주식회사 티맥스데이터 | 데이터베이스 암호화 방법 |
US10430408B2 (en) * | 2015-09-24 | 2019-10-01 | International Business Machines Corporation | Technology to reduce cost of concatenation for hash array |
CN107291756A (zh) * | 2016-04-01 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 数据缓存的方法及装置 |
US20210149866A1 (en) * | 2019-11-20 | 2021-05-20 | Google Llc | Universal data index for rapid data exploration |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2976896B2 (ja) * | 1996-07-31 | 1999-11-10 | 日本電気株式会社 | リモートファイルのキャッシュ装置 |
US7499907B2 (en) * | 2001-10-12 | 2009-03-03 | Teradata Us, Inc. | Index selection in a database system |
US7007015B1 (en) * | 2002-05-01 | 2006-02-28 | Microsoft Corporation | Prioritized merging for full-text index on relational store |
JP2004118482A (ja) * | 2002-09-26 | 2004-04-15 | Toshiba Corp | 記憶装置、および、キャッシュ方法 |
US7979425B2 (en) * | 2006-10-25 | 2011-07-12 | Google Inc. | Server-side match |
US7676451B2 (en) * | 2007-05-03 | 2010-03-09 | Teradata Us, Inc. | Selective database statistics recollection |
US7730070B2 (en) * | 2007-06-10 | 2010-06-01 | Apple Inc. | Index aging and merging |
US8275761B2 (en) * | 2008-05-15 | 2012-09-25 | International Business Machines Corporation | Determining a density of a key value referenced in a database query over a range of rows |
JP5229731B2 (ja) * | 2008-10-07 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 更新頻度に基づくキャッシュ機構 |
-
2010
- 2010-09-30 JP JP2010221450A patent/JP5567967B2/ja not_active Expired - Fee Related
-
2011
- 2011-09-30 US US13/251,131 patent/US20120166419A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20120166419A1 (en) | 2012-06-28 |
JP2012078927A (ja) | 2012-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5567967B2 (ja) | データベースにおけるキャッシュ制御方法、システム及びプログラム | |
EP2987096B1 (en) | Caching external data sources for sql processing | |
Ozcan et al. | A five-level static cache architecture for web search engines | |
US20140114944A1 (en) | Method for using dual indices to support query expansion, relevance/non-relevance models, blind/relevance feedback and an intelligent search interface | |
JP2002366549A (ja) | 選択的検索メタ探索エンジンおよび選択的検索を行う方法 | |
US10789262B2 (en) | Progressive chart rendering | |
US20140143501A1 (en) | Database search facility | |
JP3499105B2 (ja) | 情報検索方法および情報検索装置 | |
CN103198361A (zh) | 基于多种优化机制的xacml策略评估引擎系统 | |
US8150943B2 (en) | Methods and apparatus for dynamically generating web pages | |
JP2022137281A (ja) | データ照会方法、装置、電子デバイス、記憶媒体、及びプログラム | |
US20200409955A1 (en) | System and method for improved cache utilization using an organizational memory to generate a dashboard | |
Badawi et al. | Maintaining the search engine freshness using mobile agent | |
WO2016032574A1 (en) | Serialized child associations in parent record | |
US8200673B2 (en) | System and method for on-demand indexing | |
JP2014130492A (ja) | インデックスの生成方法及び計算機システム | |
JP5669638B2 (ja) | 文書管理装置、文書管理方法、プログラム。 | |
JP4573710B2 (ja) | データベース管理装置、データベース管理方法及びデータベース管理プログラム | |
JP7428250B2 (ja) | 文書検索の性能を評価する方法、システム、および装置 | |
Akhtar et al. | A cache-based method to improve query performance of linked Open Data cloud | |
Akhtar et al. | Change-aware scheduling for effectively updating linked open data caches | |
JP2015045995A (ja) | 仮想データベースシステム管理装置、管理方法及び管理プログラム | |
JP7365469B1 (ja) | Rdbに関する処理を行うためのシステム、キャッシュサーバ、方法、及びプログラム | |
Wu et al. | MOCache: A Cache Management Tool for Moving Object Databases | |
US10083235B2 (en) | Numeric value decay for efficient relevance computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140513 |
|
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: 20140603 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140620 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5567967 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |