JP2004513414A - 極めて拡張性の高い同期データキャッシュ方法及びシステム - Google Patents
極めて拡張性の高い同期データキャッシュ方法及びシステム Download PDFInfo
- Publication number
- JP2004513414A JP2004513414A JP2002508674A JP2002508674A JP2004513414A JP 2004513414 A JP2004513414 A JP 2004513414A JP 2002508674 A JP2002508674 A JP 2002508674A JP 2002508674 A JP2002508674 A JP 2002508674A JP 2004513414 A JP2004513414 A JP 2004513414A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- query
- sub
- primary key
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2885—Hierarchically arranged intermediate devices, e.g. for hierarchical caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
関連出願
本願は、2000年7月7日に提出され、参照してここに組み込まれている米国特許出願番号第60/216,883号の利点を主張する。
【0002】
発明の分野
本発明はキャッシュに関し、更に詳細には、領域化したデータ及び無効トリガを用いて、拡張性の高い同期データキャッシュ方法及びシステムに関する。
【0003】
発明の背景
オンライントランザクション処理には、ネットワークを介した、株式取引や電子マネーによる支払いなどのトランザクションを実施するためのシステムがある。オンライントランザクションをサポートするための1つの共通したアーキテクチャは、ネットワークを経由してサーバと通信するコンピュータ側にいるユーザを有している。ユーザがサーバにトランザクションに対する要求を送信すると、サーバは要求を実行し、構成によってはユーザに確認を戻す。トランザクションを処理するために、サーバはユーザのアカウントやその要求を処理できる製品におけるデータにアクセスする。サーバは、データベース等の持続性のあるデータソースからこのようなデータを検索してよい。
【0004】
このようなシステムに、多くのユーザが追加されるにつれて、増加する要求数を処理するために、更なるサーバを追加することとなる。しかしながら、これらのサーバが要求を実行させるために同じデータソースにアクセスしなければならない場合、他のサーバがデータソースにアクセスしている際には、他のサーバは待機しなければならないので、遅延が生じることがある。システムが拡大し、サーバが追加されるに従い、遅延はいっそう大きくなり、システム性能は悪化する。トランザクションあたりに要する時間が増加するにつれ、ユーザはいらだつようになり、オンライントランザクション処理システムの使用をやめてしまう可能性がある。
【0005】
この問題に対する1つの共通した解決策は、データソースからのデータの一時的なコピーを格納するためにデータキャッシュを利用することである。複数のサーバが使用される場合、各々がデータソースから検索されたデータのキャッシュを維持できる。要求を処理するためには、サーバはまず要求されたデータがないか、そのデータキャッシュを検索する。要求されたデータがキャッシュの中で発見されると、サーバはデータソースにアクセスしなくてもその要求を処理できる。要求されたデータがキャッシュ内で発見されない場合にだけ、サーバは共用データソースにアクセスしなければならない。要求されたデータがデータソースから一度検索されると、サーバは将来の使用に備えて、データキャッシュの中にそのデータを格納する。CORBA及びEnterprise JavaBeans(EJB)は、このような分散トランザクション処理システムを実現する周知のアーキテクチャである。
【0006】
上述のように、データキャッシュ方式を追加したとしても、従来のオンライントランザクションシステムは安定性と遅延の問題がある。システムが非常に大規模に成長し、多くのサーバを利用するにつれ、それらのサーバが、データキャッシュ内で発見されないデータを取得するため、データソースにアクセスしなければならないので遅延が発生する。更に、データキャッシュ方式の成功はデータキャッシュに格納されるデータの精度に依存する。データソース内でデータ項目が変更するときに、サーバが要求を処理するために、古い(期限切れ)のデータを使用すると、その変更を各データキャッシュに伝達する際の遅延がエラーを引き起こすこととなる。
【0007】
発明の要約
従って、データソースの規模が大きくなるにつれ性能が劣化しないように、極めて拡張性の高いデータキャッシュを実現することが望まれる。また、データソース内のデータとキャッシュ内に存在するデータに食い違いがないようにデータソースと同期するデータキャッシュを提供することも望まれる。本発明における方法及びシステムは、データベース管理システムのような、持続性のあるデータソースと同期しながら極めて拡張性の高いデータキャッシュ技法を提供する。本発明では、データは、例えばアカウントによって領域化され、その結果、データキャッシュは主に一意の情報を格納し、そのデータキャッシュを維持するために必要な無効メッセージだけを受信する。
【0008】
本発明の態様に従って、ユーザの代わりにトランザクションを処理するためにシステムが実現される。このシステムは、要求ディストリビュータを介してユーザからアカウント番号を含むクエリーを受信し、結果を判断するためにそのクエリーを処理し、要求ディストリビュータを介してユーザに結果を返す、少なくとも1つのアプリケーションサーバを有する。システムは、更に、テーブルの中に、アカウント番号に対応するアカウントデータを格納するために構成された少なくとも1つのデータストアを有する。そのシステムは、更に、アカウント番号に対応するキャッシュ領域を維持し、上述の少なくとも1つのアプリケーションサーバにより処理されるクエリーに対して、キャッシュ領域内で結果を検索する、少なくとも1つのデータキャッシュを有する。キャッシュ領域の中で結果が発見されない場合は、データキャッシュはデータストアから結果を取得し、キャッシュ領域の中に結果を格納し、結果をアプリケーションサーバに返す。
【0009】
本発明に従って、データ処理方法は、それぞれがアカウント番号で特定されるキャッシュ領域群を維持する。値を含むクエリーが受信されると、そのクエリーに対応する、ある特定のキャッシュ領域が、クエリーの値と、その群の中の各キャッシュ領域を特定するために使用されるアカウント番号との関係性に基づいて、キャッシュ領域群の中から特定される。そのクエリーに対する結果は、上述の判断に基づいて行われる。本発明の更なる特徴は、以下の説明の中で部分的に述べられ、説明から部分的に明らかとなるか、あるいは本発明の実施により分かる。上述の概要と以下の詳細な説明の両方とも、例示的且つ説明的にすぎず、本発明を制限するものではない。
【0010】
本明細書に記載され、又、本明細書の一部を構成する添付図面は、本発明のいくつかの実施形態を示し、説明とともに、本発明の原理を説明するものである。
【0011】
詳細な説明
本発明における以下の実施形態の説明は、添付図面を参照する。該当する場合、さまざまな図面の同じ参照番号は、同じ要素または類似要素を示す。
【0012】
図1は、本発明を実施するためのシステムの全体的なブロック図の一例である。図示されるように、複数のユーザ102がネットワーク106を介してトランザクション処理システム104と通信するためにコンピュータを使用する。ネットワーク106は、インターネット、WAN(広域ネットワーク)、またはLAN(ローカルエリアネットワーク)等の任意の種類の通信媒体であってよい。ユーザ102は、トランザクション処理システム104にトランザクション要求を送信可能である。株式取引や電子マネーによる支払いを含む、任意の種類のトランザクションが本発明の原理によって処理できる。この要求を処理するために、トランザクション処理システム104は、持続性のあるデータソース108に格納されるデータにアクセスする。図1には3人のユーザ102が示されているが、任意の数のユーザが、本発明におけるトランザクション処理システム104と通信可能である。同様に、複数のデータソース108が使用されてもよい。
【0013】
図2は、本発明を実施するためのシステムの詳細なブロック図の一例である。トランザクション処理システム104は、ユーザ202からの要求を処理するためのいくつかの構成要素を有している。これらの構成要素は、要求ディストリビュータ204、1台または複数台のアプリケーションサーバ206、1つまたは複数のデータキャッシュ208、及び1つのデータソース108である。
【0014】
要求ディストリビュータ204は、ユーザ202から要求を受信し、処理のためにその要求をアプリケーションサーバに割り当てる。要求ディストリビュータ204は、要求の結果をユーザ202に返すこともできる。複数のアプリケーションサーバが使用される場合には、要求ディストリビュータ204は、公知の分散技法を使用して複数台のアプリケーションサーバの間で要求を分散することによって、負荷バランシングを実行する。更に、要求ディストリビュータ204が、アプリケーションサーバが適切に機能していないと判断する場合、要求ディストリビュータ204は、他のアプリケーションサーバに要求を送り直してよい。要求ディストリビュータ204の機能が、プロキシサーバによって実行されてもよい。更に、ユーザ202とトランザクション処理システム104間の他の通信方法が、本発明に於いて使用されてもよい。
【0015】
トランザクション処理システム104は、データソース108からのデータを用いて、ユーザの要求を処理するためにアプリケーションサーバ206を使用する。性能を向上させるために、アプリケーションサーバ206は、直接的にデータソース108にアクセスしなくても、1つまたは複数のデータキャッシュ208にアクセスし、データを取得できる。このプロセスは、図7Aと図7Bに詳細に後述する。1つまたは複数のデータソース、1つまたは複数のデータキャッシュ、及び1台または複数台のアプリケーションサーバが、本発明に於いて使用されても良い。
【0016】
図3は、本発明における、データソースの詳細なブロック図である。データソース108は、ユーザからの要求を処理するために必要なデータを格納する。例えば、オンライン株式取引システムや他のトランザクションシステムでは、一般的に、ユーザは、そのユーザに一意であるアカウント番号(アカウント番号は、口座番号、顧客番号、課金番号等を含む)を有する。本発明の1つの実施形態では、データストア108はその一意のアカウント番号に基づいて、独自のアカウントテーブル302の中に各アカウントのデータを格納する。製品やサービスに関係するデータなどの全てのアカウントに該当するデータは、マスタテーブル104に格納される。1つのアカウントテーブル302と1つのマスタテーブル304が図3に示されているが、複数のアカウントテーブル及び/またはマスタテーブルが、本発明に於いて使用出来る。
【0017】
データソース108は、全ての実行中のデータキャッシュのテーブル308、及びアカウントを実行中のデータキャッシュと関連づける関連リスト310も含む。これらは、後述するように、データキャッシュ206との同期を維持するために使用される。
【0018】
本発明の1つの実施形態では、一人のアカウントについてのデータは、1つのアカウントテーブルの中に格納され、1つのデータキャッシュの中にキャッシュされる。この実施形態を実現するために、関連リスト310は、各アカウントテーブルのリストを、そのアカウントテーブルからのデータのコピーを格納するデータキャッシュ208に対するリファレンスとともに格納する。それから、関連リスト310は、アカウントテーブル中のデータが変更すると、適切なデータキャッシュに通知するために用いられる。関連リスト310は、アカウントがデータキャッシュに割り当てられるたびに、要求ディストリビュータ204によって更新できる。この割り当ては、ユーザがシステムにログオンすると開始し、ユーザがシステムをログアウトするまで続行される。関連リスト310は、図7Aと図7Bで後述するように、クエリーをどのキャッシュに送るのかを決定するために要求ディストリビュータ204によってアクセスされる。
【0019】
テーブル308は、トランザクション処理システム104内で実行中である全てのデータキャッシュに対するリファレンスを有する。マスタテーブル中のデータが変更されると、それは全てのアカウントに影響を及ぼす可能性があるため、このような変更はテーブル308に一覧表示される全てのデータキャッシュ208に伝達できる。テーブル308は、新しいデータキャッシュが追加されるたびに、トランザクション処理システム208によって更新できる。このようにしてデータを格納すると、本発明は、例えばアカウント番号ごとにデータを領域化できるトランザクションシステムで特に役に立つ。
【0020】
本発明の1つの実施形態では、データソース108は、アカウント番号などのセレクタキーのロックを動作可能にするセレクタロックテーブルを有する。セレクタキーはセレクタロックテーブルを使用してロックされるが、そのセレクタキーに対応するデータに変更を加えることはできない。
【0021】
データソース108は、トランザクション処理システム104などのクライアントプロセスと通信するために、プロセス間通信チャネル306を用いる。プロセス間通信チャネル306は、例えば、Oracle(登録商標)DMBS−PIPE、Java(登録商標)RMI、またはデータソース108とデータキャッシュ208間での確実な情報の転送を実現する任意の他の技法を使用して実現できる。データソース108の追加機能は、リレーショナル方式でデータを格納することと、コミットされたデータを読み取ることと、プライマリーキーのクエリーを処理することと、必要に応じて行またはテーブルをロックすることと、データが変更するときにイベントを生成することとを有しても良い。これらは、数多くのデータベース管理システムの公知の機能である。従って、データソース108は、Java(登録商標) Database Connectivity(JDBC)、SQL、及びOracle(登録商標)Database Management System(DBMS)などの利用可能なソフトウェアを使用して実現できる。説明を容易にするために、本説明では、データソース108をこれらの特徴を持つデータベースとして扱う。ただし、これらの機能を実現する確立されたプロトコルに準拠するリモートサーバなどの、任意の持続性のあるデータソースが本発明を実施するには十分である。
【0022】
図4は、本発明における、サンプルアカウントテーブル402を示す。サンプルアカウントテーブル402に格納されるデータは、各行がプライマリーキーで特定される行で編成される。各プライマリーキーに対応するのは、レコードデータと行ロックである。アカウントテーブルの中では、プライマリーキーと、その対応するレコードデータは、以下のように定義されても良い。すなわち、プライマリーキー=アカウント番号、レコードデータ=現在残高、銀行支店番号である。行ロックが動作可能とされると、行の中の情報に変更を加えることはできない。他の実施形態では、テーブルロックや別個のロックテーブルが使用できるか、あるいは行ロックは完全に省略できる。レコードデータは、サンプルアカウントテーブル402に対応するデータセットを特定するセレクタキーも有する。例えば、アカウントに基づくシステムでは、セレクタキーがアカウント番号となる場合がある。他の実施形態では、テーブルがプライマリーキーを有していなくても良い。このような実施形態では、データソース108内の行を特定するために、データソースに特殊な識別子を使用できる。
【0023】
図5は、本発明における、サンプルマスタテーブルを示す。サンプルマスタテーブル502に格納されるデータは、プライマリーキーによって行で編成される。各プライマリーキーに対応するのはレコードデータである。マスタテーブルでは、プライマリーキー及びそれに対応するレコードデータは、以下のように定義されても良い。すなわち、プライマリーキー=製品SKU(在庫維持単位数)、レコードデータ=製品名、製造メーカ識別子である。サンプルマスタテーブルは、テーブルロックを有する。テーブルロックが動作可能とされると、テーブルの中の情報に変更を加えることはできない。他の実施形態では、このロックは、行ロック、別個のロックテーブを使用して実現できるか、あるいは完全に省略できる。レコードデータは、サンプルマスタテーブル502に対応するデータセットを特定するセレクタキーを有する。アカウントに基づくシステムでは、マスタデータは、全てのアカウントに当てはまるデータである場合がある。従って、マスタデータにとっては、セレクタキーは、データが全てのアカウントに当てはまることを示すための1または0などの公知の数である場合がある。
【0024】
図6は、データキャッシュを詳細に示すブロック図である。データキャッシュ602は、1つまたは複数の領域に分割される。本発明の1つの実施形態では、各領域は、データソース108に格納されるアカウントテーブルに相当する。この実施形態では、単一のデータキャッシュは、多くのアカウントをサポートすることができ、システムが追加アカウントをサポートする必要があるときには、追加のデータキャッシュを追加できる。データキャッシュ602の中の各領域は、その領域内のデータセットを特定するセレクタキー604を有する。例えば、ユーザのアカウントに対応するデータが領域に格納される場合、セレクタキーはアカウント番号となっても良い。セレクタキー604に加えて、データキャッシュの各領域は2つのサブキャッシュを有する。すなわち、Implキャッシュ806とEnumキャッシュ608である。これらのサブキャッシュは、データソース108から検索されるデータのコピーを格納する。
【0025】
Implキャッシュ606内のエントリは、プライマリーキー610と対応するレコードデータ612を有する。Implキャッシュ606は、データソース108にアクセスしなくてもデータアイテムに対する要求を容易にするために使用できる。例えば、ユーザが自分の口座残高の要求を送信すると、その要求を処理するアプリケーションサーバは、プライマリーキー「アカウント番号(口座番号)」で、適切なImplキャッシュ606から検索をし、対応するレコードデータ(例えば、現在残高、銀行支店番号)を返す。クエリーの処理は、図7Aと図7Bに詳述する。
【0026】
Enumキャッシュ608内のエントリは、クエリー614及びそのクエリーを満たすレコードが対応するリスト616を有する。Enumキャッシュ608は、データソース108にアクセスしなくても、より複雑なクエリーを容易にするために使用できる。例えば、ユーザが、自分の最も最近の株式購入のリストに対する要求を送信すると、その要求を処理するアプリケーションサーバは、クエリー「最新の株式購入」を、適切なEnumキャッシュ608から検索し、そのクエリーを満たすレコードが対応するリストを返す。クエリーの処理は、図7Aと図7Bに詳述する。
【0027】
図7Aと図7Bは、本発明における、データキャッシュ方式を使用してクエリーを処理するためのフローチャート図を示す。プロセスは、アプリケーションサーバ206が、ユーザ202からセレクタキーを含むクエリーを受信すると開始する(ステップ702)。このクエリーは、要求ディストリビュータ204によって、アプリケーションサーバ206に送信される。1つの実施形態では、要求ディストリビュータ204は、各アカウントが割り当てられているアプリケーションサーバ及び/またはデータキャッシュのレコードを維持する。従って、要求ディストリビュータ204はクエリーを受信すると、要求ディストリビュータ204は、適切なアプリケーションサーバ及び/またはデータキャッシュにクエリーを送信する。他にも、要求ディストリビュータ204及びアプリケーションサーバ206は、データストア108内の関連リスト310にアクセス可能である。クエリーを処理するために、アプリケーションサーバ206はクエリーからのセレクタキーを使用し、必要な情報を、どのデータキャッシュが格納している可能性があるのか、すなわちこのセレクタキーによって特定されるデータのサブセットを、どのデータキャッシュが格納しているのかを判断する。アカウントに基づく実施では、セレクタキーがユーザのアカウント番号となっても良く、アプリケーションサーバ206は、ユーザのアカウントのデータを、どのデータキャッシュ領域が格納するのかを判断するために、アカウント番号を使用する。そのデータキャッシュ内では、アプリケーションサーバ206が、クエリーからの、セレクタキーを含む領域内で1つまたは複数の検索を実行する。
【0028】
クエリー処理を開始する前に、セレクタキーについてセレクタロックを獲得する(ステップ703)。セレクタロックが入手できない場合、すなわち、他のプロセスがセレクタキーをロックしている場合は、クエリーはデータソースを使用して処理することができ、結果はキャッシュされない。このようにして、クエリーは、キャッシュが利用できなくても処理することができる。
【0029】
セレクタロックを獲得すると(ステップ703)、アプリケーションサーバ206は、セレクタキー(ステップ704)を含むキャッシュ領域内で、Enumキャッシュ内のクエリーを検索する。クエリーを満たすレコードのリストがEnumキャッシュ内に存在する場合には(ステップ706)、アプリケーションサーバ206はレコードのそのリストをユーザに返す(ステップ708)。存在しない場合は、アプリケーションサーバ206はデータソース108にクエリーを送信する(ステップ710)。データソース108は、公知のデータベースツールを使用してクエリーを処理し、クエリーの結果を示す1つまたは複数のプライマリーキーを返す(ステップ712)。
【0030】
従って、この処理を完了するためには、アプリケーションサーバ206は、1つまたは複数のプライマリーキーの各々に対応するレコードデータを取得しなければならない。これを行うために、アプリケーションサーバ206は、(依然としてセレクタキーを含むキャッシュ領域内の)Implキャッシュで、次のプライマリーキーを検索する(ステップ714)。次のプライマリーキーがImplキャッシュ内で発見されると、アプリケーションサーバ206は、対応するレコードデータを、Implキャッシュからクエリーの結果に追加する(ステップ716)。次のプライマリーキーが発見されない場合、アプリケーションサーバ206は、データソース108から、対応するレコードデータを取得する(ステップ718)。データソースは、公知のデータベースツールを使用して検索要求を処理し、次のプライマリーキーに対応するレコードデータを返す。その後、アプリケーションサーバ206は、次のプライマリーキー及びその対応するレコードデータをImplキャッシュの中に格納し(ステップ720)、レコードデータをクエリーの結果(ステップ716)に追加する。このようにして、Implキャッシュは、将来のクエリーの処理を改良するために更新される。
【0031】
ステップ712に於いて、データソース108によって複数のプライマリーキーが返されると、各プライマリーキーに対応するレコードデータが取得され、クエリーの結果に追加されるまで、プロセスを繰り返す(ステップ722)。次に、アプリケーションサーバ206は、クエリーを含むエントリ及びクエリーの結果をEnumキャッシュに追加し(ステップ724)、ユーザ202にクエリーの結果を返す(ステップ726)。このようにして、Enumキャッシュは、将来のクエリーの処理を改良するために更新される。最後に、セレクタロックが解放される(ステップ727)。
【0032】
上述したように、データソース108及びデータキャッシュ208内でのアカウントに従ったデータの領域化により、アプリケーションサーバ206は、基礎をなすデータについての知識がなくても非常に迅速にクエリーを処理することができる。このデータ領域化の他の利点は、データストア108内に格納されるデータに対するあらゆる変更が、図8、図9及び図10に関して後述するように、シームレス且つ効率的にデータキャッシュ208と共用されるように、データキャッシュ208をデータソース108と同期させることである。他の利点としては、データソースに対する変更が、図8に関して後述するように、データキャッシュから削除される項目の数を最小にするという点である。
【0033】
図8は、データソース108内のマスタデータが変更するときに、データキャッシュを更新するためのプロセスを示すフローチャート図である。このプロセスは、あるプロセスが、マスタテーブル内のプライマリーキーに対応する行でマスタデータ(すなわち、全てのアカウントに影響を及ぼすデータ)を変更しようとするときに開始する(ステップ802)。これは、例えば、システム管理者がトランザクション処理システムに新製品を付加するときに発生する可能性がある。データソース108は、変更する行を含むテーブルをロックし(ステップ804)、変更する行からセレクタキーを検索する(ステップ806)。ロックが使用できない場合、データソースは、ロックが使用できるようになるまで待機するか、あるいはトランザクションを打ち切ることができる。上述したように、マスタデータのセレクタキーは、例えば、データが全てのアカウントに影響を及ぼすことを示すために、0または−1などの予め定められた番号であってよい。
【0034】
変更をデータキャッシュ208に警告するために、データストア108は、全ての実行中のデータキャッシュのテーブル308内に一覧表示される全てのデータキャッシュに無効メッセージを送信する(ステップ808)。この無効メッセージは、変更している行のプライマリーキー、セレクタキー、及び行の変更の種類(すなわち、追加、変更、または削除)を有している。データストア108は、プロセス間通信チャネル306を介してデータキャッシュに無効メッセージを送信する。データストア108は、各データキャッシュから応答を受信するために、予め定められた時間待機する(ステップ810)。データキャッシュの全てが無事に応答すると(ステップ812)、キャッシュを無効にし、データストア108は、変更可能とするためにテーブルをアンロックする(ステップ814)。データキャッシュの全てが無事に応答しない場合には、トランザクションを打ち切る(ステップ816)。例えば、データキャッシュがクラッシュした場合に、データキャッシュは無事に応答できない。
【0035】
図9は、データソース108内のアカウントデータが変更するときに、データキャッシュを更新するためのプロセスを示すフローチャート図である。このプロセスは、あるプロセスが、アカウントテーブル内のプライマリーキーに対応する行の中のアカウントデータを変更しようとするときに開始する(ステップ902)。これは、例えば、株式取引が実行されるとき、または電子マネーによる支払いが素早く処理されたときに発生する可能性がある。データソース108は、変更している行をロックし(ステップ904)、変更している行からセレクタキーを検索する(ステップ906)。ロックが使用できない場合、データソース108は、ロックが使用できるようになるまで待機するか、あるいはトランザクションを打ち切る。行がロックされると、他のプロセスは行の中のデータを修正することはできない。データソース108は、関連リスト310を使用して、どのデータキャッシュがセレクタキーに対応するのか(すなわち、どのデータキャッシュがこのアカウントのためのデータを格納するのか)を判断する。
【0036】
適切なデータキャッシュに変更を警告するため、データストア108は、判断されたデータキャッシュに無効メッセージを送信する(ステップ910)。無効メッセージは、プライマリーキー、セレクタキー、及び変更の種類(すなわち、追加、変更、または削除)を有する。データストア108は、プロセス間通信チャネル306を介してデータキャッシュに無効メッセージを送信する。データストア108は、データキャッシュから応答を受信するために、予め定められた時間待機する(ステップ912)。データキャッシュが無事に応答すると(ステップ914)、キャッシュは無効にされ、データストア108が、変更可能とするために行をアンロックする(ステップ916)。データキャッシュが無事に応答しない場合には、トランザクションを打ち切る(ステップ918)。例えば、データキャッシュがクラッシュすると、データキャッシュは無事に応答できない。
【0037】
図10は、データソースの変更に対してキャッシュを無効にするプロセスを示したフローチャート図である。このプロセスは、無効メッセージがデータキャッシュによって受信されると開始する(ステップ1002)。上述したように、無効メッセージは、基礎をなすデータソースの中のデータが変更した旨を示す。無効メッセージはプライマリーキー、セレクタキーを有する。変更の種類が削除または更新のどちらかである場合には(ステップ1004)、プライマリーキーに対応する、基礎をなすレコードデータが変更され、データキャッシュはこのデータの全ての古い(期限切れの)コピーを削除する。これを実行するために、セレクタキーに対応するデータキャッシュの領域の中では、プライマリーキーを含む全てのエントリが削除される(ステップ1006)。これにより、プライマリーキーを含む、それ以降の要求で古いレコードデータが検索されないこととなる。更に、いったん基礎をなすレコードデータが変更されると、格納されるクエリーの結果が影響を受ける可能性がある。従って、セレクタキーに対応するキャッシュ領域内の全ての格納されるクエリーの結果が削除される。これを行うためには、セレクタキーに対応するデータキャッシュの領域内のEnumキャッシュから、全てのエントリが削除される(ステップ1010)。
【0038】
変更の種類が挿入である場合には(ステップ1008)、Implキャッシュ内の公知のレコードデータを変更する必要はないが、格納されているクエリーの結果は正確であると信頼できなくなる。従って、セレクタキーに対応するキャッシュ領域内の全ての格納されるクエリー結果は削除される。これを行うために、セレクタキーに対応するデータキャッシュの領域内のEnumキャッシュから、全てのエントリが削除される(ステップ1010)。
【0039】
ここに説明したように、本発明は、データサイズが極端に大きくなるにつれ、性能は劣化しないことを意味する、極めて拡張性の高いデータをキャッシュに入れるための技法を実現する。更に、上述の方法を使用して、データキャッシュは、基礎をなすデータソースと同期し、その結果データがコミットされるときと、それが最初にキャッシュ内で入手可能になるときの間に遅延はない。
【0040】
この技法は、ユーザごとのアカウント情報及びユーザ全体の製品情報がおもに分離できる、オンライン株式取引システムなどの高負荷(高容量)トランザクションシステムで特に役立つ。しかしながら、本発明は、容易に領域化されないデータを格納するためのシステムでもその効果を発揮する。
【0041】
本発明の実施形態の上述の説明は、図解及び説明の為に示している。それは全ての例ではなく、ここで開示した実施形態に限定するものではない。変型やバリエーションは、上述の記載から可能であり、あるいは本発明の実施から得られる。本発明の追加の変型やバリエーションは、例えば、説明した実施形態ではソフトウェアを含むが、本発明は、ハードウェアとソフトウェアの組み合わせ、あるいはハードウェアだけで実現されてもよい。本発明は、オブジェクト指向型と非オブジェクト指向型の両方のプログラミングシステムにより実現可能である。
【0042】
更に、当業者は他の構成により、本発明を実現可能である。例えば、データキャッシュは、性能向上を実現する為に、アプリケーションサーバと組み合わせることができる。他の実施形態では、無効メッセージは、アカウントデータが変更するのか、マスタデータが変更するのかに関係なく、全てのデータキャッシュに一斉送信できても良い。この場合、データのアカウントに特殊な領域かを用いることは必要ない場合もある。他の実施形態は、同時複数領域化方式を用いることも可能である。
【0043】
更に、本発明の態様はメモリに格納されると説明したが、これらの態様が、ハードディスク、磁気ディスク、またはCD−ROMのような二次格納装置などの他の種類のコンピュータ読取可能な媒体、インターネットや他の搬送媒体からの搬送波、あるいは他の形式のRAMまたはROMに格納できる。発明の範囲は、クレーム及びその同等物により定義される。
【図面の簡単な説明】
【図1】
図1は、本発明におけるシステム及び方法を実施するためのシステムの全体的なブロック図の一例である。
【図2】
図2は、本発明におけるシステム及び方法を実施するためのシステムの詳細なブロック図の一例である。
【図3】
図3は、本発明におけるデータソースの詳細なブロック図である。
【図4】
図4は、本発明におけるサンプルアカウントテーブルを示す。
【図5】
図5は、本発明におけるサンプルマスタテーブルを示す。
【図6】
図6は、本発明におけるデータキャッシュを更に詳細に示すブロック図である。
【図7】
図7は、本発明におけるデータキャッシュ方式を使用するクエリー処理のフローチャート図である。
【図8】
図8は、本発明の一実施形態におけるデータソース内のマスタデータが変更する際にデータキャッシュを更新するためのプロセスを示したフローチャート図である。
【図9】
図9は、本発明の一実施形態におけるデータソース内のアカウントデータが本変更する際に、データキャッシュを更新するためのプロセスを示したフローチャート図である。
【図10】
図10は、データソース内の変更に対するキャッシュを無効にするためのプロセスを示したフローチャート図である。
Claims (41)
- ユーザのためにトランザクションを処理するためのシステムであって、
前記システムは、
少なくとも一台のアプリケーションサーバと、少なくとも一つのデータストアと、少なくとも一台のアプリケーションサーバと少なくとも一つのデータストアと通信する少なくとも一つのデータキャッシュとを備え、
前記アプリケーションサーバは、
ユーザから要求ディストリビュータを介して、アカウント番号を含むクエリーを受信し、結果を求めるためにクエリーを処理し、要求ディストリビュータを介してユーザに結果を返し、
前記データストアは、
アカウント番号に対応するアカウントデータをテーブルに格納し、
前記データキャッシュは、
アカウント番号に対応するキャッシュ領域を維持し、少なくとも1台のアプリケーションサーバによって処理されるクエリーに対して、キャッシュ領域で結果を検索し、キャッシュ領域で結果が発見されない場合にはデータストアから結果を取得し結果をキャッシュ領域に格納し少なくとも1つのアプリケーションサーバに結果を返すことを特徴とするシステム。 - 前記システムは、
少なくとも1つのデータキャッシュが、キャッシュ領域内の第1サブキャッシュにアカウントデータ項目を格納し、
キャッシュ領域内の第2サブキャッシュに最新のクエリーの結果を格納するように更に構成することを特徴とする請求項1に記載のシステム。 - 前記システムは、
少なくとも1つのデータストアが、マスタデータテーブルの中に複数のアカウントに対応するマスタデータを格納するように更に構成することを特徴とする請求項1に記載のシステム。 - 前記システムは、
ユーザから要求を受信し、
少なくとも1台のアプリケーションサーバに要求を割り当て、
少なくとも1台のアプリケーションサーバからユーザに結果を返すように構成する要求ディストリビュータを、更に備えることを特徴とする請求項1に記載のシステム。 - 各領域がアカウントに対応する複数の領域のあるデータキャッシュを使用してアカウント情報を処理する方法であって、
前記方法は、
ユーザからクエリー及びアカウント番号を受信するステップと、
アカウント番号に対応するキャッシュ領域において、第1サブキャッシュでクエリーを検索するステップと、
第1サブキャッシュでクエリーが発見されない場合には処理Aを行うステップと、
第1サブキャッシュでクエリーが発見されない場合には第1サブキャッシュ内のクエリーとともに格納されるレコードデータをユーザに返すステップとからなり、
前記処理Aは、
データストアにクエリーを送信し、
データストアからクエリーに対する少なくとも1つのプライマリーキーを受信し、
少なくとも1つのプライマリーキーの各々について、
キャッシュ領域内の第2サブキャッシュでプライマリーキー及び対応するレコードデータを検索し、第2サブキャッシュでプライマリーキーが発見されない場合には、データストアからプライマリーキーに対応するレコードデータを取得し第2サブキャッシュにレコードデータ及びプライマリーキーを格納し、プライマリーキーに対応するレコードデータをユーザに返し、第1サブキャッシュに、クエリーとともにプライマリーキー及び対応するレコードデータを格納することを特徴とする方法。 - データストア内のマスタデータが変更した場合のデータキャッシュを更新するための方法であって、
前記方法は、
データストア内のマスタデータを変更するための、プライマリーキー及び変更の種類を含む要求を受信するステップと、
データストア内のテーブルにプライマリーキーを含む行を配置するステップと、
行からセレクタキーを検索するステップと、
行を含むテーブルをロックするステップと、
実行中のキャッシュサーバのテーブルに一覧表示される各キャッシュサーバにメッセージを送信するステップと、
各キャッシュサーバから肯定応答が受信されると、行を含むテーブルをアンロックし、要求を承認するステップとからなることを特徴とする方法。 - メッセージがプライマリーキー、セレクタキー、及び変更の種類を含むことを特徴とする請求項6に記載の方法。
- 各キャッシュサーバから応答を受信するために、予め定められた時間待機することを更に備えることを特徴とする請求項6に記載の方法。
- セレクタキーがアカウント番号であることを特徴とする請求項6に記載の方法。
- トランザクションを処理するための、データストアを備えるシステムであって、
前記データストアは、メモリと、プログラムを実行するように構成されたプロセッサとを備え、
前記メモリは、複数のアカウントに該当するマスタデータを含む複数のテーブルと、方法を実行するプログラムとを格納するように構成され、
前記方法は、
プライマリーキー及び変更の種類を含む、データストア内のマスタデータを変更するための要求を受信し、
データストア内のテーブルにプライマリーキーを含む行を配置し、
行からセレクタキーを検索し、
行を含んだテーブルをロックし、
実行中のキャッシュサーバのテーブルに一覧表示される各キャッシュサーバにメッセージを送信し、
各キャッシュサーバからの肯定応答受信時に行を含むテーブルをアンロックすることを特徴とするシステム。 - メッセージがプライマリーキー、セレクタキー、及び変更の種類を含むことを特徴とする請求項10に記載のシステム。
- 方法が、各キャッシュサーバから応答を受信するために、予め定められた時間待機することを更に備えることを特徴とする請求項10に記載のシステム。
- セレクタキーがアカウント番号であることを特徴とする請求項10に記載のシステム。
- データストア内のアカウントデータが変更した場合のデータキャッシュを更新するための方法であって、
前記方法は、
格納されているアカウントデータを変更するための、プライマリーキーと変更の種類を含む要求を受信するステップと、
データストア内のテーブルにプライマリーキーを含む行を配置するステップと、
行からセレクタキーを検索するステップと、
行をロックするステップと、
セレクタキーに対応するデータキャッシュを決定するステップと、
プライマリーキー、セレクタキー、及び変更の種類を含むメッセージを、決定されたデータキャッシュに送信するステップと、
決定されたサーバから肯定の応答が受信されると、行をアンロックし、要求を承認するステップとを備えることを特徴とする方法。 - 決定されたサーバから応答を受信するために、予め定められた時間待機することを更に備えることを特徴とする請求項14に記載の方法。
- 変更の種類がデータストアからレコードを削除することであることを特徴とする請求項14に記載の方法。
- 変更の種類がデータストアのレコードを更新することであることを特徴とする請求項14に記載の方法。
- 変更の種類がデータストアにレコードを追加することであることを特徴とする請求項14に記載の方法。
- トランザクションを処理するための、データストアを備えるシステムであって、
前記データストアは、メモリと、プログラムを実行するように構成されたプロセッサとを備え、
前記メモリは、各テーブルがアカウントに対応する複数のテーブルと、方法を実行するプログラムとを格納するように構成され、
前記方法は、
格納されているアカウントデータを変更するための、プライマリーキー及び変更の種類を含む要求を受信し、
データストア内のテーブルの中にプライマリーキーを含む行を配置し、
行からセレクタキーを検索し、
行をロックし、
セレクタキーに対応するデータキャッシュを決定し、
プライマリーキー、セレクタキー、及び変更の種類を含むメッセージを決定されたデータキャッシュに送信し、
決定されたサーバからの肯定応答の受信時に行をアンロックすることを特徴とするシステム。 - 方法が、決定されたサーバから応答を受信するために、予め定められた時間待機することを更に備えることを特徴とする請求項19に記載のシステム。
- 変更の種類がデータストアからレコードを削除することであることを特徴とする請求項19に記載のシステム。
- 変更の種類がデータストアのレコードを更新することであることを特徴とする請求項19に記載のシステム。
- 変更の種類がデータストアにレコードを追加することであることを特徴とする請求項19に記載のシステム。
- 各領域がアカウントに対応する複数の領域を有するデータキャッシュであって、
前記データキャッシュは、
少なくとも1つのクエリーを、少なくとも1つのクエリーに対する結果とともに格納するように構成され、アカウント番号に対応する領域内の第1サブキャッシュと、
プライマリーキーを含む少なくとも1つのエントリを、プライマリーキーに対応するレコードデータとともに格納するように構成され、アカウント番号に対応する領域内の第2サブキャッシュと、
プロセッサとからなり、
前記プロセッサは、
アカウント番号、ターゲットプライマリーキー、及び変更の種類を含むメッセージを受信し、
アカウント番号に対応する領域において、変更の種類が削除である場合にターゲットプライマリーキーを含む第2サブキャッシュからエントリを削除し、変更の種類が更新である場合に、ターゲットプライマリーキーを含む第2サブキャッシュからエントリを削除し、第1サブキャッシュのコンテンツを削除することを特徴とするデータキャッシュ。 - プロセッサが、
エントリが第1サブキャッシュから削除された後に、成功メッセージを送信するように更に構成されることを特徴とする請求項24に記載のデータキャッシュ。 - プロセッサが、エントリが第2サブキャッシュから削除された後に、成功メッセージを送信するように更に構成されることを特徴とする請求項24に記載のデータキャッシュ。
- プロセッサが、エントリが第1サブキャッシュから削除され、エントリが第2サブキャッシュから削除された後に、成功メッセージを送信するように更に構成されることを特徴とする請求項24に記載のデータキャッシュ。
- アカウント番号で各々が特定されるキャッシュ領域群を維持するステップと、
値を含むクエリーを受信するステップと、
キャッシュ領域の群の中から、クエリーの値と、群の各キャッシュ領域を特定するために使用されるアカウント番号の関係性に基づいて、クエリーに対応する特定のキャッシュ領域を特定するステップと、
決定に基づきクエリーに結果を送信するステップと
を備えることを特徴とするデータ処理方法。 - 群が特定のキャッシュ領域を含むかどうかを判断するステップと、
群が特定のキャッシュ領域を含むと判断されるときに特定のキャッシュ領域にクエリーを送るステップとによって特定を行うことを特徴とする請求項28に記載のデータ処理方法。 - データストア内のデータが変更した場合にデータキャッシュを更新するための方法であって、
前記方法は、
アカウント番号に対応する領域内の第1サブキャッシュに、少なくとも1つのクエリーを、少なくとも1つのクエリーに対応する結果とともに格納するステップと、
アカウント番号に対応するキャッシュ領域内の第2サブキャッシュに、プライマリーキーを含む少なくとも1つのエントリを、プライマリーキーに対応するレコードデータとともに格納するステップと、
アカウント番号、ターゲットプライマリーキー、及び変更の種類を含むメッセージを受信するステップと、
アカウント番号に対応する領域において、変更の種類が削除である場合にターゲットプライマリーキーを含む第2サブキャッシュからエントリを削除し、変更の種類が更新である場合にターゲットプライマリーキーを含む第2サブキャッシュからエントリを削除し、第1サブキャッシュのコンテンツを削除するステップとを備えることを特徴とする方法。 - エントリが第1サブキャッシュから削除された後に成功メッセージを送信することを更に備えることを特徴とする請求項30に記載の方法。
- エントリが第2サブキャッシュから削除された後に成功メッセージを送信することを更に備えることを特徴とする請求項30に記載の方法。
- エントリが第1サブキャッシュから削除され、エントリが第2サブキャッシュから削除された後に、成功メッセージを送信することを更に備えることを特徴とする請求項30に記載の方法。
- データストア内のマスタデータが変更した場合にデータキャッシュを更新するための方法であって、
前記方法は、
データストア内のマスタデータを変更するための、プライマリーキー及び変更の種類を含む要求を受信するステップと、
データストア内のデータ構造にプライマリーキーを含むエントリからセレクタキーを検索するステップと、
エントリを含むデータ構造をロックするステップと、
実行中のキャッシュサーバ群で特定される各キャッシュサーバにメッセージを送信するステップと、
各キャッシュサーバからの肯定応答受信時に、エントリを含むデータ構造をアンロックし、要求を承認するステップとを備えることを特徴とする方法。 - メッセージがプライマリーキー、セレクタキー、及び変更の種類を含むことを特徴とする請求項34に記載の方法。
- 各キャッシュサーバから応答を受信するために、予め定められた時間待機することを更に備えることを特徴とする請求項34に記載の方法。
- セレクタキーがアカウント番号であることを特徴とする請求項34に記載の方法。
- アカウントに対応する複数の領域を、各領域が有するデータキャッシュを使用してアカウント情報を処理するための方法であって、
前記方法は、
ユーザからクエリー及びアカウント番号を受信するステップと、
アカウント番号に対応するキャッシュ領域でクエリーを検索するステップと、
アカウント番号に対応するキャッシュ領域でクエリーが発見された場合、キャッシュ領域のクエリーとともに格納されているレコードデータを返すステップとを備えることを特徴とする方法。 - クエリーがキャッシュ領域で発見されない場合にデータストアにクエリーを送信するステップと、
データストアからクエリーに対する応答を受信するステップと、
ユーザに応答を返すステップと、
キャッシュ領域にクエリーとともに応答を格納するステップとを更に備えることを特徴とする請求項38に記載の方法。 - ユーザのためにトランザクションを処理するための、少なくとも1つのデータキャッシュを備えるシステムであって、
前記データキャッシュは、
アカウント番号に対応するキャッシュ領域を維持し、
アカウント番号を含むクエリーを受信し、
キャッシュ領域でクエリーを検索し、
クエリーとともに格納される結果を返すことを特徴とするシステム。 - データキャッシュが、
リモートデータストアから結果を取得し、
キャッシュ領域に結果を格納するように更に構成されることを特徴とする請求項40に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21688300P | 2000-07-07 | 2000-07-07 | |
US60/216,883 | 2000-07-07 | ||
PCT/US2001/016520 WO2002005134A2 (en) | 2000-07-07 | 2001-07-09 | Methods and systems for a providing a highly scalable synchronous data cache |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011114338A Division JP4956683B2 (ja) | 2000-07-07 | 2011-05-23 | トランザクション処理システムでの処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004513414A true JP2004513414A (ja) | 2004-04-30 |
JP4854169B2 JP4854169B2 (ja) | 2012-01-18 |
Family
ID=22808851
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002508674A Expired - Lifetime JP4854169B2 (ja) | 2000-07-07 | 2001-07-09 | 極めて拡張性の高い同期データキャッシュシステム |
JP2011114338A Expired - Lifetime JP4956683B2 (ja) | 2000-07-07 | 2011-05-23 | トランザクション処理システムでの処理方法 |
JP2012027502A Pending JP2012089180A (ja) | 2000-07-07 | 2012-02-10 | データキャッシュ処理方法およびトランザクション処理システム |
JP2012027503A Pending JP2012089181A (ja) | 2000-07-07 | 2012-02-10 | トランザクション処理システムおよび処理方法 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011114338A Expired - Lifetime JP4956683B2 (ja) | 2000-07-07 | 2011-05-23 | トランザクション処理システムでの処理方法 |
JP2012027502A Pending JP2012089180A (ja) | 2000-07-07 | 2012-02-10 | データキャッシュ処理方法およびトランザクション処理システム |
JP2012027503A Pending JP2012089181A (ja) | 2000-07-07 | 2012-02-10 | トランザクション処理システムおよび処理方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6615317B2 (ja) |
EP (2) | EP1405213A2 (ja) |
JP (4) | JP4854169B2 (ja) |
AT (1) | ATE553442T1 (ja) |
AU (1) | AU2001272918A1 (ja) |
HK (1) | HK1101207A1 (ja) |
WO (1) | WO2002005134A2 (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI226961B (en) * | 2003-01-30 | 2005-01-21 | Chi Mei Optoelectronics Corp | Multi-domain vertical alignment LCD using circular polarized light |
US20040193656A1 (en) * | 2003-03-28 | 2004-09-30 | Pizzo Michael J. | Systems and methods for caching and invalidating database results and derived objects |
US7302425B1 (en) * | 2003-06-09 | 2007-11-27 | Microsoft Corporation | Distributed pre-cached query results and refresh method |
US11392588B2 (en) * | 2003-09-04 | 2022-07-19 | Oracle International Corporation | Active queries filter extraction |
US8655755B2 (en) | 2003-10-22 | 2014-02-18 | Scottrade, Inc. | System and method for the automated brokerage of financial instruments |
JP4631301B2 (ja) * | 2004-03-31 | 2011-02-16 | 株式会社日立製作所 | 記憶装置のキャッシュ管理方法 |
US7383389B1 (en) | 2004-04-28 | 2008-06-03 | Sybase, Inc. | Cache management system providing improved page latching methodology |
US7469256B1 (en) | 2004-04-29 | 2008-12-23 | Sap Ag | Cached persistent data management through state tracking |
US7590639B1 (en) | 2004-04-29 | 2009-09-15 | Sap Ag | System and method for ordering a database flush sequence at transaction commit |
US7653651B1 (en) | 2004-04-29 | 2010-01-26 | Sap Ag | System and method for transparent persistence management |
US7296028B1 (en) | 2004-04-30 | 2007-11-13 | Sap Ag | System and method for mapping object-oriented program code to a database layer |
US7672932B2 (en) | 2005-08-24 | 2010-03-02 | Yahoo! Inc. | Speculative search result based on a not-yet-submitted search query |
US7844599B2 (en) * | 2005-08-24 | 2010-11-30 | Yahoo! Inc. | Biasing queries to determine suggested queries |
US7747639B2 (en) * | 2005-08-24 | 2010-06-29 | Yahoo! Inc. | Alternative search query prediction |
US9390019B2 (en) * | 2006-02-28 | 2016-07-12 | Violin Memory Inc. | Method and apparatus for providing high-performance and highly-scalable storage acceleration |
US7761805B2 (en) * | 2006-09-11 | 2010-07-20 | Yahoo! Inc. | Displaying items using a reduced presentation |
US7630970B2 (en) * | 2006-11-28 | 2009-12-08 | Yahoo! Inc. | Wait timer for partially formed query |
US7752219B2 (en) * | 2007-08-21 | 2010-07-06 | International Business Machines Corporation | Apparatus, system, and method for customized event processing using a JDBC resource adapter |
CN101430687B (zh) | 2007-11-09 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 基于oltp环境的统计表应用方法及系统 |
WO2009097586A1 (en) * | 2008-01-31 | 2009-08-06 | Bea Systems, Inc. | System and method for transactional cache |
ITTO20080434A1 (it) | 2008-06-05 | 2009-12-06 | Accenture Global Services Gmbh | Sistema di raccolta e di analisi di dati relativi agli acquisti di consumatori e acquirenti |
US8812533B1 (en) * | 2009-05-21 | 2014-08-19 | Salesforce.Com, Inc. | System, method and computer program product for automatically presenting selectable options in a lookup field |
US8762340B2 (en) | 2010-05-14 | 2014-06-24 | Salesforce.Com, Inc. | Methods and systems for backing up a search index in a multi-tenant database environment |
US8386431B2 (en) * | 2010-06-14 | 2013-02-26 | Sap Ag | Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor |
EP2453368B1 (en) | 2010-11-12 | 2017-05-31 | Accenture Global Services Limited | Custom web services data link layer |
US8402112B2 (en) | 2011-01-14 | 2013-03-19 | Microsoft Corporation | Inter-cache communication using HTTP resource |
US8612550B2 (en) | 2011-02-07 | 2013-12-17 | Microsoft Corporation | Proxy-based cache content distribution and affinity |
SG10201602914TA (en) * | 2011-11-18 | 2016-05-30 | Cytolon Ag | Central control of distributed organizational structures |
US9246998B2 (en) | 2012-10-16 | 2016-01-26 | Microsoft Technology Licensing, Llc | Load balancer bypass |
WO2014118938A1 (ja) * | 2013-01-31 | 2014-08-07 | 株式会社日立製作所 | 通信経路の管理方法 |
US10585896B2 (en) * | 2013-03-12 | 2020-03-10 | Red Hat, Inc. | Managing data in relational database management system |
US10284649B2 (en) * | 2013-05-31 | 2019-05-07 | Nec Corporation | Distributed processing system |
US10171501B2 (en) | 2013-09-20 | 2019-01-01 | Open Text Sa Ulc | System and method for remote wipe |
US10313256B2 (en) * | 2015-05-21 | 2019-06-04 | Intel Corporation | Apparatus and methods for adaptive data compression |
US11593075B2 (en) | 2015-11-03 | 2023-02-28 | Open Text Sa Ulc | Streamlined fast and efficient application building and customization systems and methods |
US11388037B2 (en) | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
US10721719B2 (en) * | 2017-06-20 | 2020-07-21 | Citrix Systems, Inc. | Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node |
KR102195838B1 (ko) * | 2019-04-10 | 2020-12-28 | 주식회사 티맥스 소프트 | 데이터 베이스 관리 방법 |
CN111159144B (zh) * | 2019-11-27 | 2023-09-08 | 北京中交兴路信息科技有限公司 | 一种缓存系统和方法 |
US11379369B1 (en) | 2021-01-15 | 2022-07-05 | Coupang Corp. | Systems and methods for dynamic in-memory caching of mappings into partitions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1115714A (ja) * | 1997-06-25 | 1999-01-22 | Mitsubishi Electric Corp | 情報取得端末、情報キャッシュサーバ及び情報取得方法 |
JPH11219312A (ja) * | 1998-02-04 | 1999-08-10 | Hitachi Ltd | データキャッシュ方法およびデータアクセス方法 |
JP2000089996A (ja) * | 1998-09-16 | 2000-03-31 | Nec Corp | 情報処理装置およびデータベースシステム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2755390B2 (ja) * | 1988-05-19 | 1998-05-20 | 株式会社日立製作所 | データベース処理装置及びデータベース処理方法 |
JPH06195252A (ja) * | 1992-12-22 | 1994-07-15 | Oki Electric Ind Co Ltd | キャッシング方式 |
US6154742A (en) * | 1996-07-02 | 2000-11-28 | Sun Microsystems, Inc. | System, method, apparatus and article of manufacture for identity-based caching (#15) |
IL118959A (en) * | 1996-07-26 | 1999-07-14 | Ori Software Dev Ltd | Database apparatus |
US6256675B1 (en) * | 1997-05-06 | 2001-07-03 | At&T Corp. | System and method for allocating requests for objects and managing replicas of objects on a network |
US6026413A (en) * | 1997-08-01 | 2000-02-15 | International Business Machines Corporation | Determining how changes to underlying data affect cached objects |
JPH11259346A (ja) * | 1998-03-12 | 1999-09-24 | Mitsubishi Electric Corp | クライアント・サーバ型データベースシステムにおけるトランザクション処理方法およびクライアント・サーバ型データベース用のクライアント・サーバ装置 |
JP2000020385A (ja) * | 1998-07-07 | 2000-01-21 | Hitachi Ltd | データ検索システムにおけるデータキャッシュ方法 |
JP4406944B2 (ja) * | 1998-11-11 | 2010-02-03 | 株式会社日立製作所 | 計算機システム及び問合せに対する処理分散システム |
US20010023414A1 (en) * | 1998-12-08 | 2001-09-20 | Srihari Kumar | Interactive calculation and presentation of financial data results through a single interface on a data-packet-network |
US6317816B1 (en) * | 1999-01-29 | 2001-11-13 | International Business Machines Corporation | Multiprocessor scaleable system and method for allocating memory from a heap |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US20010032154A1 (en) * | 1999-12-17 | 2001-10-18 | Eric Schummer | Internet communications and e-commerce platform |
US20020107770A1 (en) * | 2000-05-12 | 2002-08-08 | Meyer Chadwick M. | System for allocating funds in a plurality of stock portfolios |
-
2001
- 2001-07-06 US US09/899,234 patent/US6615317B2/en not_active Expired - Lifetime
- 2001-07-09 EP EP01952126A patent/EP1405213A2/en not_active Withdrawn
- 2001-07-09 JP JP2002508674A patent/JP4854169B2/ja not_active Expired - Lifetime
- 2001-07-09 AT AT06076789T patent/ATE553442T1/de active
- 2001-07-09 AU AU2001272918A patent/AU2001272918A1/en not_active Abandoned
- 2001-07-09 EP EP06076789A patent/EP1736899B1/en not_active Expired - Lifetime
- 2001-07-09 WO PCT/US2001/016520 patent/WO2002005134A2/en active Application Filing
-
2007
- 2007-06-26 HK HK07106837.7A patent/HK1101207A1/xx not_active IP Right Cessation
-
2011
- 2011-05-23 JP JP2011114338A patent/JP4956683B2/ja not_active Expired - Lifetime
-
2012
- 2012-02-10 JP JP2012027502A patent/JP2012089180A/ja active Pending
- 2012-02-10 JP JP2012027503A patent/JP2012089181A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1115714A (ja) * | 1997-06-25 | 1999-01-22 | Mitsubishi Electric Corp | 情報取得端末、情報キャッシュサーバ及び情報取得方法 |
JPH11219312A (ja) * | 1998-02-04 | 1999-08-10 | Hitachi Ltd | データキャッシュ方法およびデータアクセス方法 |
JP2000089996A (ja) * | 1998-09-16 | 2000-03-31 | Nec Corp | 情報処理装置およびデータベースシステム |
Also Published As
Publication number | Publication date |
---|---|
EP1736899A2 (en) | 2006-12-27 |
JP2012089180A (ja) | 2012-05-10 |
JP2012089181A (ja) | 2012-05-10 |
AU2001272918A1 (en) | 2002-01-21 |
US6615317B2 (en) | 2003-09-02 |
JP2011159326A (ja) | 2011-08-18 |
WO2002005134A2 (en) | 2002-01-17 |
EP1405213A2 (en) | 2004-04-07 |
EP1736899A3 (en) | 2011-02-16 |
ATE553442T1 (de) | 2012-04-15 |
WO2002005134A3 (en) | 2004-01-15 |
JP4956683B2 (ja) | 2012-06-20 |
EP1736899B1 (en) | 2012-04-11 |
HK1101207A1 (en) | 2007-10-12 |
JP4854169B2 (ja) | 2012-01-18 |
US20020035673A1 (en) | 2002-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4956683B2 (ja) | トランザクション処理システムでの処理方法 | |
US7162467B2 (en) | Systems and methods for managing distributed database resources | |
US10803047B2 (en) | Accessing data entities | |
US6820085B2 (en) | Web system having clustered application servers and clustered databases | |
US6219675B1 (en) | Distribution of a centralized database | |
US6711571B2 (en) | Partitioning ownership of a database among different database servers to control access to the database | |
US7853570B2 (en) | Method and system for data processing with parallel database systems | |
US6438562B1 (en) | Parallel index maintenance | |
US6564218B1 (en) | Method of checking the validity of a set of digital information, and a method and an apparatus for retrieving digital information from an information source | |
US20080098041A1 (en) | Server supporting a consistent client-side cache | |
US20080098173A1 (en) | Consistent client-side cache | |
EP1399847B1 (en) | Partitioning ownership of a database among different database servers to control access to the database | |
JPH11120066A (ja) | 基礎データの変更がオブジェクトにどのように影響するかの判定方法およびプログラム記憶装置 | |
JPH10222407A (ja) | プロセスオーバーヘッド及びデータベースサーバからの冗長な検索を減少するように同じプロセスにおける多数のデータベーストランザクションを処理する方法 | |
US8224837B2 (en) | Method and mechanism for supporting virtual content in performing file operations at a RDBMS | |
JPH05143435A (ja) | データベースシステム | |
JPH06195252A (ja) | キャッシング方式 | |
Choi et al. | Accelerating database processing at e-commerce sites | |
JP2000348063A (ja) | データベース管理方法およびシステム | |
JP2000347912A (ja) | データベース管理方法およびシステム | |
JP2000347911A (ja) | データベース管理方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060912 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110523 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20110523 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110921 |
|
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: 20111018 |
|
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: 20111025 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141104 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4854169 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
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 |
|
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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |