JP2011198250A - リクエストを処理する情報処理装置、方法及びコンピュータプログラム - Google Patents

リクエストを処理する情報処理装置、方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2011198250A
JP2011198250A JP2010066391A JP2010066391A JP2011198250A JP 2011198250 A JP2011198250 A JP 2011198250A JP 2010066391 A JP2010066391 A JP 2010066391A JP 2010066391 A JP2010066391 A JP 2010066391A JP 2011198250 A JP2011198250 A JP 2011198250A
Authority
JP
Japan
Prior art keywords
data
user
request
master data
cache memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010066391A
Other languages
English (en)
Other versions
JP4575993B1 (ja
Inventor
Hirotaka Nakano
裕隆 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2010066391A priority Critical patent/JP4575993B1/ja
Application granted granted Critical
Publication of JP4575993B1 publication Critical patent/JP4575993B1/ja
Publication of JP2011198250A publication Critical patent/JP2011198250A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】マスタデータの更新頻度が高いリアルタイムシステムでキャッシュヒット率を高め、システム全体のスループットを向上させる。
【解決手段】キャッシュサーバ100は、データ参照リクエストを受け付けたとき、キャッシュヒットすれば、そのリクエストに係るデータをキャッシュメモリ130から取得して応答を返し、キャッシュミスすれば、リクエストに係るデータをデータベース16から取得して返すとともに、キャッシュメモリ130へ格納する参照処理部101と、マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータをデータベース16から取得して、キャッシュメモリ130に保存する照会処理部111と、を備える。
【選択図】図2

Description

本発明は、キャッシュメモリを効率的に利用するための技術に関し、特にマスタデータの更新頻度が高いリアルタイムシステムでキャッシュヒット率を高め、システム全体のスループットを向上させる技術に関する。
従来、リクエストに対する応答時間を短縮させるために、マスタデータをキャッシュメモリに保存することが行われる。例えば、特許文献1には、Webデータが更新されたときに、データ管理プロセスがその旨をキャッシュ管理プロセスへ通知すると、キャッシュ管理プロセスがキャッシュファイルを更新することが記載されている。これにより、Webクライアントからのリクエストに対する応答時間を飛躍的に短縮できる。
特開2001−5715号公報
ところで、ユーザからの有価証券の売買注文を、有価証券の取引所システムへ取り次ぐような取引管理システムでは、短時間に多数の売買注文及びデータ照会などのリクエストを受け付ける。特に、取引開始直後及び終了直前などにはリクエストが殺到する。そのため、この時間帯は極めて負荷が高くなり、リクエストに対する応答が遅れる原因となる。
特に、ヘビーユーザと呼ばれる一部の少数ユーザは、複数台のユーザ端末装置を使って、同時に多数の売買注文及びデータ照会リクエストを発行する。この一部のヘビーユーザが大量リクエストを発行するために、他の多くの一般のユーザの処理まで遅れてしまうという問題があった。
このように、マスタデータの更新頻度が高いリアルタイムシステムでは、マスタデータをキャッシュメモリに保存しても、キャッシュヒット率を高めることが難しく、実効性が乏しいという問題があった。
そこで、本発明の目的は、マスタデータの更新頻度が高いリアルタイムシステムでキャッシュヒット率を高め、システム全体のスループットを向上させることである。
本発明の一つの実施態様に従うリクエストを処理する情報処理装置は、ユーザ別のマスタデータを記憶するデータベースと、前記マスタデータの複製であるコピーデータを、ユーザ別に記憶するキャッシュメモリと、ユーザからデータ参照を要求するリクエストを受け付けたとき、キャッシュヒットすれば、前記リクエストに係るデータを前記キャッシュメモリから取得して前記リクエストに対する応答を返し、キャッシュミスすれば、前記リクエストに係るデータを前記データベースから取得して前記リクエストに対する応答を返すとともに、取得したデータをキャッシュメモリへ格納するリクエスト処理部と、ユーザ単位に、前記マスタデータが更新されたか否かを判定し、前記マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを前記データベースから取得して、前記キャッシュメモリに保存するキャッシュ管理部と、を備える。
好適な実施形態では、前記リクエスト処理部は、同一ユーザまたは複数のユーザからの複数のリクエストを受け付けると、前記複数のリクエストのそれぞれについて、キャッシュヒットすれば、前記キャッシュメモリから取得したデータを応答として返し、キャッシュミスすれば、前記リクエストに係るデータを前記データベースから取得して前記リクエストに対する応答を返すとともに、取得したデータをキャッシュメモリへ格納し、前記キャッシュ管理部は、前記リクエスト処理部が行う処理とは独立して、ユーザ単位に前記マスタデータが更新されたか否かを判定し、前記マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを取得して、前記キャッシュメモリに保存するようにしてもよい。
好適な実施形態では、前記キャッシュシステムは、有価証券取引のための取引所システムと接続されていて、ユーザからの売買注文を受け付けると、前記キャッシュメモリから、その売買注文を発注したユーザのコピーデータを消去するとともに、前記取引所システムに対して前記売買注文に係る注文指示を出力する注文受付部をさらに備え、前記キャッシュ管理部は、前記取引所システムからの通知に基づく前記売買注文の約定を検出すると、前記売買注文に係るユーザのマスタデータが更新されたと判定し、更新後のマスタデータを前記データベースから取得して、前記キャッシュメモリに保存するようにしてもよい。
好適な実施形態では、前記キャッシュ管理部は、第1のユーザのマスタデータが更新されたと判定されたときは、前記第1のユーザのマスタデータを前記データベースから取得中でないときに、前記データベースから前記第1のユーザの更新後のマスタデータの取得を開始して、取得後に前記キャッシュメモリに保存し、前記第1のユーザのマスタデータを前記データベースから取得中のときは、前記第1のユーザの更新後のマスタデータの取得を開始しないようにしてもよい。
好適な実施形態では、前記キャッシュ管理部は、ラウンドロビン方式で、前記ユーザ単位にマスタデータが更新されたか否かの判定を行うようにしてもよい。
好適な実施形態では、前記ユーザ別のマスタデータには、各ユーザの注文照会、預かり資産、及び買い付け余力に関するデータが含まれてもよい。
本発明の一実施形態に係る有価証券の取引管理システムを含む有価証券取引を行うコンピュータシステムの概要図である。 キャッシュサーバ100の詳細な構成図を示す。 キャッシュメモリ130のデータ構造の一例を示す。 注文受付処理のフローチャートである。 約定受付処理のフローチャートである。 キャッシュメモリの更新処理のフローチャートである。 データ参照処理のフローチャートである。
以下、本発明のリクエストを処理する情報処理装置を適用した、本発明の一実施形態に係る有価証券の取引管理システムについて、図面を参照して説明する。
図1は、本実施形態に係る有価証券の取引管理システム1を含む有価証券取引を行うコンピュータシステムの概要を示す図である。
本実施形態に係る有価証券の取引管理システム(以下、単に取引管理システムと称する)1は、有価証券取引のための取引所システム(以下、単に取引所システムと称する)3、及び複数のユーザ端末装置5,5,・・・と接続されている。
取引所システム3は、取引管理システム1から有価証券の売買注文を受け付ける。取引所システム3は、多数の売買注文を受け付けると、これらを付き合わせて売買注文を約定させる。取引所システム3は、取引管理システム1から受け付けた売買注文に基づく取引が約定すると、取引管理システム1に対してその約定内容を示す約定通知を行う。
ユーザ端末装置5,5,・・・は、通信機能を有する端末装置であればよく、例えば、携帯電話機、携帯情報端末、あるいは汎用的なパーソナルコンピュータなどでもよい。ユーザ端末装置5,5,・・・は、液晶パネルなどの表示装置、及びプッシュボタンあるいはポインティングデバイスなどの入力装置を有する。ユーザ端末装置5,5,・・・は、ユーザに対して所定のインタフェース画面を提供し、ユーザから売買注文などの指示入力を受け付けたり、現在の口座のステータスを表示したりする。
取引管理システム1は、複数のユーザの有価証券の取引口座に関する情報を管理して、取引所システム3に対する売買注文などを行い、取引口座に関する情報をリアルタイムに更新する。取引管理システム1は、複数のユーザ端末装置5,5,・・・から種々のリクエストを受け付けて、それぞれのリクエストへ応答を返す、いわゆるリアルタイムシステムである。例えば、複数の異なるユーザが、それぞれ異なるユーザ端末装置5,5,・・・からリクエスト送ることもできるし、同一のユーザが複数のユーザ端末装置5,5,・・・を利用して、それぞれ異なるリクエストを送信することもできる。ユーザ端末装置5が送信するリクエストは、例えば、有価証券の売買注文、及び現在の口座のステータス(たとえば、注文照会、預かり資産及び買い付け余力など)に係るデータの照会のリクエストなどがある。
取引管理システム1は、一つのリクエストが完了する前に次のリクエストを受け付ける。このとき、取引管理システム1は、複数のリクエストを同時に受け付けた状態となる。この複数のリクエストは、同一ユーザからのものであってもよいし、複数の異なるユーザからのものであってもよい。特に、取引が集中する時間帯には、取引管理システム1は、多数のリクエストを同時に受け付ける。
取引管理システム1は、図1に示すように、リクエスト処理サーバ11と、通知処理サーバ12と、キャッシュサーバ100と、取引管理サーバ15とを有する。
リクエスト処理サーバ11と、通知処理サーバ12と、キャッシュサーバ100と、取引管理サーバ15は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各サーバ11,12,100,15内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。このコンピュータプログラムは、コンピュータ読み取り可能な記録媒体に格納可能である。
リクエスト処理サーバ11は、ユーザ端末装置5,5,・・・からのリクエストを受け付けて、このリクエストに対する応答を返す。例えば、リクエスト処理サーバ11は、ユーザ端末装置5,5,・・・からリクエストを受け付けると、このリクエストをキャッシュサーバ100へ中継する。リクエスト処理サーバ11は、キャッシュサーバ100からリクエストの応答を受け付けると、要求元のユーザ端末装置5,5,・・・へその応答を返す。
通知処理サーバ12は、ユーザ端末装置5,5,・・・に対する通知を行う。例えば、取引管理システム1に対して取引所システム3から約定通知があると、通知処理サーバ12がその約定通知に係るユーザのユーザ端末装置5,5,・・・へ約定通知を示すデータを送信する。
取引管理サーバ15は、複数のユーザの口座を管理するとともに、各ユーザからの有価証券の取引注文を受け付けて、取引所システム3に対して取引注文を発注する。取引管理サーバ15は、データベース16を有する。取引管理サーバ15は、このデータベース16を用いて、複数のユーザの有価証券取引に係る口座情報、例えば売買注文、預かり資産及び買い付け余力などを管理する。
データベース16には、ユーザの識別情報であるユーザID別に、それぞれのユーザの売買注文履歴、預かり資産及び買い付け余力に関するデータが記憶されている。売買注文履歴には、例えば、約定した売買注文の履歴及び受付中で未約定の売買注文の履歴などが含まれる。取引管理サーバ15は、例えば、売買注文を受けると、その注文に関する情報を売買履歴に未約定の売買注文として追加して、取引所システム3に対してその売買注文を発行する。また、取引管理サーバ15は、取引所システム3から約定通知を受けると、その約定通知に対応する未約定の売買注文を約定済みに変更する売買履歴の更新を行うとともに、預かり資産及び買い付け余力等を更新する。
キャッシュサーバ100は、コピーデータを記憶するキャッシュメモリ130を有する。ここでは、取引管理サーバ15が保持しているデータベース16に格納されているデータをマスタデータとして、そのマスタデータの複製であるコピーデータがキャッシュメモリ130に格納される。
図2は、キャッシュサーバ100の詳細な構成図を示す。
キャッシュサーバ100は、キャッシュメモリ130と、参照処理部101と、注文受付処理部103と、約定受付処理部105と、照会処理部111と、除外処理部113と、バリデート処理部115とを備える。
キャッシュメモリ130は、データベース150のマスタデータの複製であるコピーデータを、ユーザ別に記憶する。例えば、キャッシュメモリ130は、ユーザ識別情報であるユーザID別に、各ユーザIDに関連するデータを記憶する領域が予め確保されている。
キャッシュメモリ130のデータ構造の一例を図3に示す。
キャッシュメモリ130には、ユーザID131別に、ユーザIDに関連するデータを記憶する領域であるデータエリア133が設けられている。データエリア133には、各ユーザID131に対応するコピーデータが格納される。データエリア133には、例えば、最終データ取得開始時刻T1と、最終約定通知時刻T2と、問い合わせ中フラグFと、コピーデータ本体Dとが記憶される。
最終データ取得開始時刻T1は、照会処理部111が取引管理サーバ15から、それぞれのユーザID131に係るユーザのマスタデータの取得処理を開始した時刻である。照会処理部111が行う処理の詳細については後述する。
最終約定通知時刻T2は、約定受付処理部105が、それぞれのユーザID131に係るユーザの売買注文が約定した旨の通知を受けた時刻のうち、最も新しい時刻(最近の時刻)を示す。約定受付処理部105が行う処理の詳細については後述する。
問い合わせ中フラグFは、照会処理部111が取引管理サーバ15から、それぞれのユーザID131に係るユーザのマスタデータを取得中であるか否かを示すフラグである。つまり、このフラグFが“0”であれば、照会処理部111はデータ取得中ではなく、このフラグFが“1”であれば、データ取得中であることを示す。
改めて図2を参照すると、参照処理部101は、リクエスト処理サーバ11を介してユーザ端末装置5からのデータ参照リクエストを受け付けて、これに対する応答を返す。例えば、参照処理部101は、データ参照を要求するリクエストを受け付けたとき、キャッシュヒットすれば、リクエストに係るデータをキャッシュメモリ130から取得してリクエストに対する応答を返す。一方、キャッシュミスすれば、リクエストに係るデータをデータベース150から取得してリクエストに対する応答を返すとともに、取得したデータをキャッシュメモリ130へ格納する。
また、参照処理部101は、同一ユーザまたは複数のユーザからの複数のリクエストを受け付けると、受付順に、それぞれのリクエストに対して独立に応答する。つまり、参照処理部101は、複数のリクエストのそれぞれについて、キャッシュヒットすれば、キャッシュメモリ130から取得したデータを応答として返し、キャッシュミスすれば、リクエストに係るデータをデータベース16から取得してリクエストに対する応答を返すとともに、取得したデータをキャッシュメモリ130へ格納する。
参照処理部101は、受け付けたリクエストに対する応答を返す前であっても、次のリクエストが来ればそれを受け付ける。従って、キャッシュヒット率が高いほど、平均の応答時間は短くなる。
注文受付処理部103は、リクエスト処理サーバ11を介してユーザ端末装置5からの売買注文を受け付けると、キャッシュメモリ130に保存されている、その売買注文を発行したユーザのコピーデータを消去するとともに、取引管理サーバ15を介して取引所システム3に対して売買注文に係る注文指示を出力する。例えば、注文受付処理部103は、リクエスト処理サーバ11から売買注文を受け付けると、その売買注文に含まれるユーザID(つまり、売買注文を発行したユーザのユーザID)と対応するキャッシュメモリ130のデータエリア133のコピーデータ本体Dを消去する。
売買注文が発行されると、取引管理サーバ15において、その売買注文に関連する処理が行われ、データベース16内のそのユーザに関連するマスタデータが更新される。従って、キャッシュメモリ130内のコピーデータをそのまま放置すると、マスタデータとコピーデータとが一致しなくなる。そこで、売買注文を発行する前に、注文受付処理部103が予めその注文を発行したユーザのコピーデータをキャッシュメモリ130から消去する。これにより、更新前のデータがキャッシュメモリ130に残ってしまうことを防止できる。
約定受付処理部105は、取引管理サーバ15から、売買注文が約定したことを示す約定通知を受け付ける。約定受付処理部105は、この約定通知を通知処理サーバ12へ転送する。約定受付処理部105は、このときに、約定通知に含まれるユーザIDに対応する、キャッシュメモリ130のデータエリア133内の最終約定通知時刻T2を更新する。
ここで、この約定通知は、データベース16が更新された後に取引管理サーバ15から通知される。つまり、この約定通知によって、約定通知に係るユーザのマスタデータが更新されたことがわかる。従って、約定通知に基づいて更新された最終約定通知時刻T2もまた、これに対応するユーザのマスタデータが更新されたことを示すものである。次に説明するように、照会処理部111は、最終約定通知時刻T2に基づいてマスタデータが更新されたか否かの判定を行う。
照会処理部111は、データベース16に保存されているマスタデータを取得して、キャッシュメモリ130に保存する。例えば、照会処理部111は、ユーザ単位に、マスタデータが更新されたか否かを判定し、マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータをデータベース16から取得して、キャッシュメモリ130に保存する。ここで、照会処理部111は、参照処理部101が参照リクエストを受け付けたか否かには依存せず、独立して上記の処理を行う。
照会処理部111は、最終データ取得開始時刻T1及び最終約定通知時刻T2からマスタデータが更新されたか否かを判定する。すなわち、最終約定通知時刻T2が最終データ取得開始時刻T1よりも後の時刻(T1<T2)であれば、現在格納されているコピーデータの取得を開始した時刻以降に約定があったということである。つまり、T1<T2であれば、マスタデータが更新され、コピーデータと一致しない状態となっていることを意味する。従って、このときには照会処理部111は、改めてデータベース16からマスタデータを取得して、キャッシュメモリ130に保存することにより、コピーデータをマスタデータと一致させることができる。
照会処理部111は、データベース16からマスタデータの取得を開始する際に、最終データ取得開始時刻T1を現在時刻に更新する。これにより、最終データ取得開始時刻T1は最も新しくマスタデータの取得を開始した時刻となる。照会処理部111は、さらに、マスタデータの取得を開始する際に、問い合わせ中フラグFに“1”をセットする。そして、マスタデータの取得が完了し、取得したデータをキャッシュメモリ130へ格納した後、問い合わせ中フラグFを“0”に戻す。これにより、照会処理部111が、データベース16からデータを取得中であるときは、問い合わせ中フラグFが“1”となっている。
照会処理部111は、参照処理部101(リクエスト処理部)が行う処理とは独立して、ユーザ単位にマスタデータが更新されたか否かを判定し、マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを取得して、キャッシュメモリ130に保存する。例えば、参照処理部101が同一ユーザから多数のリクエストをほぼ同じタイミングで受け付けたようなときであっても、そのリクエストを受け付けたタイミング及び回数に依存せずに、照会処理部111は、照会処理部111に対して予め定められたルールに従って、マスタデータの取得を行う。
例えば、照会処理部111は、ラウンドロビン方式で、ユーザ単位にマスタデータが更新されたか否かの判定を行い、更新されていた場合は更新後のマスタデータを取得して、キャッシュメモリ130に格納する。つまり、照会処理部111は、あるユーザIDについて、マスタデータの取得要否を判定し、必要であるときはデータベース16からマスタデータを取得し、取得不要であるときは取得しない。照会処理部111は、この処理をユーザID131ごとに、順次、繰り返して行う。
照会処理部111は、複数のタスクを用いて並列処理を行うようにしてもよい。この場合、照会処理部111の異なるタスクが、同時に同じユーザID131についてマスタデータ取得処理を行ってしまうおそれがある。それを回避するために問い合わせ中フラグFを用いる。すなわち、照会処理部111は、処理を開始する前に、問い合わせ中フラグFの状態を判定する。つまり、問い合わせ中フラグFが“1”であれば、他のタスクがマスタデータを取得する処理を実行中である。このときは、照会処理部111は処理を行わずに、次のユーザID131へ移行する。
除外処理部113は、ユーザ単位に、キャッシュメモリ130のデータを消去する。例えば、除外処理部113は、取引管理サーバ15に照会をして、ログアウトしたユーザIDを検出すると、そのユーザIDのデータがキャッシュメモリ130に残存していれば、それを消去する。
バリデート処理部115は、コピーデータ本体Dが所定時間以上更新されていないときは、これを強制的に更新させるために、最終約定通知時刻T2を現在時刻に更新する。これにより、上述した照会処理部111がデータベース16から最新のマスタデータを取得して、データエリア133のコピーデータ本体Dが更新される。
次に、上記のような構成を備えたキャッシュサーバ100の処理手順について、図4〜図7のフローチャートを用いて説明する。
図4は、注文受付処理のフローチャートである。
まず、ユーザ端末装置5がユーザから売買注文の入力を受け付けると、リクエスト処理サーバ11に対して売買注文リクエストが発行される。
キャッシュサーバ100は、リクエスト処理サーバ11を介してこの売買注文リクエストを受け付ける(S11)。
参照処理部101は、この売買注文リクエストを発行したユーザIDを特定すると、キャッシュメモリ130において、このユーザID131に対応するデータエリア133のコピーデータ本体Dを消去する(S13)。
その後、参照処理部101は、この売買注文を取引管理サーバ15へ送信する(S15)。
取引管理サーバ15がこの売買注文を受け付けると、所定の処理を行って取引所システム3へ売買注文が発行される。
これにより、売買注文をリクエストしたユーザに関連するコピーデータがキャッシュメモリ130から消去された状態で、取引所システム3に対して売買注文が発行される。これにより、マスタデータと一致しないことが明らかなコピーデータがキャッシュメモリ130に残存することがない。
図5は、約定受付処理のフローチャートである。
まず、取引管理サーバ15が取引所システム3から約定通知を受ける。取引管理サーバ15は、この約定通知に基づいてデータベース16を更新するなどの所定の処理を実行後、キャッシュサーバ100へ約定通知を行う。
キャッシュサーバ100は、取引管理サーバ15から約定通知を受け付ける(S21)。
約定受付処理部105は、この約定通知がどのユーザの取引に係るものであるかを、その約定通知に含まれるユーザIDで特定すると、キャッシュメモリ130において、このユーザID131に対応するデータエリア133の最終約定通知時刻T2を現在時刻に更新する(S23)。
その後、約定受付処理部105は、この約定通知を通知処理サーバ12へ送信する(S25)。
通知処理サーバ12は、その約定通知に含まれるユーザIDに対応するユーザ端末装置5へ、約定通知を送信する。
これにより、あるユーザの取引で約定があると、キャッシュメモリ130内のそのユーザの最終約定通知時刻T2が更新される。その結果、照会処理部111が最終データ取得開始時刻T1及び最終約定通知時刻T2を参照することにより、マスタデータが更新されたことを検出できる。
図6は、照会処理部111によるキャッシュメモリ130の更新処理のフローチャートである。
照会処理部111は、ラウンドロビン方式でユーザID131ごとにデータエリア133のコピーデータ本体Dの更新を行う。その具体的な処理手順を以下に説明する。
まず、照会処理部111が対象ユーザIDを特定する(S31)。
このユーザIDについて、最終約定通知時刻T2が最終データ取得開始時刻T1より後であるか否かを判定する(S33)。
ここで、最終約定通知時刻T2が最終データ取得開始時刻T1より後でないときは(S33:No)、そのユーザIDについては何も処理を行わず、ステップS31へ戻り次のユーザIDの処理へ移行する。これは、マスタデータが更新されていないので、データエリア133のコピーデータ本体Dを更新する必要がないからである。
最終約定通知時刻T2が最終データ取得開始時刻T1より後であるときは(S33:Yes)、照会処理部111は、対象ユーザIDについて、問い合わせ中フラグFが“0”であるか否かを判定する(S35)。
ここで、問い合わせ中フラグFが“0”でないときも(S35:No)、そのユーザIDについては何も処理を行わず、ステップS31へ戻り次のユーザIDの処理へ移行する。これは、既に別のタスクが対象ユーザのデータ更新を行っている最中なので、重複処理を回避するためである。
問い合わせ中フラグFが“0”であるときは(S35:Yes)、照会処理部111は、最終データ取得開始時刻T1に現在時刻をセットするとともに、問い合わせ中フラグFに“1”をセットする(S37)。その後、照会処理部111が取引管理サーバ15に対して、対象ユーザIDに関するデータの取得を要求する(S39)。照会処理部111は、取引管理サーバ15から取得した対象ユーザIDに関するデータを、順次キャッシュメモリ130のデータエリア133に格納する(S41)。そして、所望のデータの取得が完了すると(S43)、照会処理部111は、問い合わせ中フラグFを“0”に戻す(S45)。
ステップS45までの処理が完了すると、照会処理部111は、ステップS31へ戻って、次のユーザIDを特定して、上記の処理を繰り返し行う。
これにより、照会処理部111は、ユーザからのリクエストとは独立に、つまり、リクエストの多少に関わらず、マスタデータが更新されると、ほぼリアルタイムにマスタデータとコピーデータとを一致させることができる。
また、本実施形態では、照会処理部111は、上記の通り、マスタデータの取得処理をユーザID単位で行っている。その結果、参照処理部101が、同一のユーザ(いわゆるヘビーユーザ)から大量のリクエストを受け付けたときでも、そのヘビーユーザについてだけ、マスタデータを取得する回数が増加するということはない。つまり、参照処理部101が受け付けるリクエスト数に依存することなく、照会処理部111から取引管理サーバ15へのマスタデータの取得要求の回数は、全ユーザについて平等である。
よって、いわゆるヘビーユーザが大量のリクエストを発行した場合であっても、取引管理サーバ15にマスタデータの取得要求が集中し、取引管理サーバ15が過負荷状態となってスループットが低下するということがない。
図7は、データ参照処理のフローチャートである。
まず、ユーザから入力されたデータ更新指示、及び自動データ更新をトリガとして、ユーザ端末装置5がリクエスト処理サーバ11に対してデータ参照リクエストが発行する。
キャッシュサーバ100は、リクエスト処理サーバ11を介してこのデータ参照リクエストを受け付ける(S51)。
参照処理部101は、このデータ参照リクエストを発行したユーザIDを特定すると、キャッシュメモリ130にこのユーザID131のデータエリア133が存在し、所望のデータが存在するか否か、つまりキャッシュヒットしたか否かを判定する(S53)。
キャッシュヒットすれば(S53:Yes)、参照処理部101は、データ参照リクエストに係るデータを、キャッシュメモリ130のデータエリア133から取得し(S55)、ここで取得したデータを、通知処理サーバ12へ送信する(S61)。
一方、キャッシュミスすれば(S53:No)、参照処理部101が取引管理サーバ15に対して、データ参照リクエストを発行したユーザIDのマスタデータの取得要求を行う(S57)。参照処理部101は、キャッシュメモリ130上のユーザID131のデータエリア133に、取得したデータを保存する(S59)。
参照処理部101は、ここで取得したデータを、通知処理サーバ12へ送信する(S61)。
図6で説明した更新処理が継続的に行われているので、ここで説明した参照処理でのキャッシュヒット率は高くなる。つまり、ステップS55でキャッシュメモリ130からデータを取得する回数が増え、ステップS57で取引管理サーバ15にマスタデータの取得要求をする回数が減り、これによっても、取引管理サーバ15の負荷が軽減され、スループットの低下防止に貢献する。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
例えば、上述の実施形態では、本発明のリクエストを処理する情報処理装置を有価証券の取引管理システムに適用した場合を例にとって説明したが、これ以外の用途に適用することも可能である。
1 取引管理システム
3 取引所システム
5,5,・・・ ユーザ端末装置
11 リクエスト処理サーバ
12 通知処理サーバ
15 取引管理サーバ
16 データベース
100 キャッシュサーバ
101 参照処理部
103 注文受付処理部
105 約定受付処理部
111 照会処理部
113 除外処理部
115 バリデート処理部
130 キャッシュメモリ

Claims (8)

  1. ユーザ別のマスタデータを記憶するデータベースと、
    前記マスタデータの複製であるコピーデータを、ユーザ別に記憶するキャッシュメモリと、
    ユーザからデータ参照を要求するリクエストを受け付けたとき、キャッシュヒットすれば、前記リクエストに係るデータを前記キャッシュメモリから取得して前記リクエストに対する応答を返し、キャッシュミスすれば、前記リクエストに係るデータを前記データベースから取得して前記リクエストに対する応答を返すとともに、取得したデータをキャッシュメモリへ格納するリクエスト処理部と、
    ユーザ単位に、前記マスタデータが更新されたか否かを判定し、前記マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを前記データベースから取得して、前記キャッシュメモリに保存するキャッシュ管理部と、を備えたリクエストを処理する情報処理装置。
  2. 前記リクエスト処理部は、同一ユーザまたは複数のユーザからの複数のリクエストを受け付けると、前記複数のリクエストのそれぞれについて、キャッシュヒットすれば、前記キャッシュメモリから取得したデータを応答として返し、キャッシュミスすれば、前記リクエストに係るデータを前記データベースから取得して前記リクエストに対する応答を返すとともに、取得したデータをキャッシュメモリへ格納し、
    前記キャッシュ管理部は、前記リクエスト処理部が行う処理とは独立して、ユーザ単位に前記マスタデータが更新されたか否かを判定し、前記マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを取得して、前記キャッシュメモリに保存する、請求項1記載のリクエストを処理する情報処理装置。
  3. 前記キャッシュシステムは、有価証券取引のための取引所システムと接続されていて、
    ユーザからの売買注文を受け付けると、前記キャッシュメモリから、その売買注文を発注したユーザのコピーデータを消去するとともに、前記取引所システムに対して前記売買注文に係る注文指示を出力する注文受付部をさらに備え、
    前記キャッシュ管理部は、前記取引所システムからの通知に基づく前記売買注文の約定を検出すると、前記売買注文に係るユーザのマスタデータが更新されたと判定し、更新後のマスタデータを前記データベースから取得して、前記キャッシュメモリに保存する、請求項1または2に記載のリクエストを処理する情報処理装置。
  4. 前記キャッシュ管理部は、第1のユーザのマスタデータが更新されたと判定されたときは、
    前記第1のユーザのマスタデータを前記データベースから取得中でないときに、前記データベースから前記第1のユーザの更新後のマスタデータの取得を開始して、取得後に前記キャッシュメモリに保存し、
    前記第1のユーザのマスタデータを前記データベースから取得中のときは、前記第1のユーザの更新後のマスタデータの取得を開始しない、請求項1〜3のいずれかに記載のリクエストを処理する情報処理装置。
  5. 前記キャッシュ管理部は、ラウンドロビン方式で、前記ユーザ単位にマスタデータが更新されたか否かの判定を行う、請求項1〜4のいずれかに記載のリクエストを処理する情報処理装置。
  6. 前記ユーザ別のマスタデータには、各ユーザの注文照会、預かり資産、及び買い付け余力に関するデータが含まれる、請求項1〜5のいずれかに記載のリクエストを処理する情報処理装置。
  7. ユーザ別のマスタデータを記憶するデータベースと、前記マスタデータの複製であるコピーデータを、ユーザ別に記憶するキャッシュメモリと、を備えた情報処理装置が、
    ユーザからデータ参照を要求するリクエストを受け付けたとき、キャッシュヒットすれば、前記リクエストに係るデータを前記キャッシュメモリから取得して前記リクエストに対する応答を返す処理と、
    データ参照を要求するリクエストを受け付けたとき、キャッシュミスすれば、前記リクエストに係るデータを前記データベースから取得して前記リクエストに対する応答を返すとともに、取得したデータをキャッシュメモリへ格納する処理と、
    ユーザ単位に、前記マスタデータが更新されたか否かを判定し、前記マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを前記データベースから取得して、前記キャッシュメモリに保存する処理と、を実行するリクエスト処理のための方法。
  8. ユーザ別のマスタデータを記憶するデータベースと、前記マスタデータの複製であるコピーデータを、ユーザ別に記憶するキャッシュメモリと、を備えた情報処理装置がリクエスト処理のためのコンピュータプログラムであって、
    前記情報処理装置に、
    ユーザからデータ参照を要求するリクエストを受け付けたとき、キャッシュヒットすれば、前記リクエストに係るデータを前記キャッシュメモリから取得して前記リクエストに対する応答を返す処理と、
    データ参照を要求するリクエストを受け付けたとき、キャッシュミスすれば、前記リクエストに係るデータを前記データベースから取得して前記リクエストに対する応答を返すとともに、取得したデータをキャッシュメモリへ格納する処理と、
    ユーザ単位に、前記マスタデータが更新されたか否かを判定し、前記マスタデータが更新されたときは、ユーザ単位に更新後のマスタデータを前記データベースから取得して、前記キャッシュメモリに保存する処理と、を実行させるためのコンピュータプログラム。
JP2010066391A 2010-03-23 2010-03-23 リクエストを処理する情報処理装置、方法及びコンピュータプログラム Expired - Fee Related JP4575993B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010066391A JP4575993B1 (ja) 2010-03-23 2010-03-23 リクエストを処理する情報処理装置、方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010066391A JP4575993B1 (ja) 2010-03-23 2010-03-23 リクエストを処理する情報処理装置、方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP4575993B1 JP4575993B1 (ja) 2010-11-04
JP2011198250A true JP2011198250A (ja) 2011-10-06

Family

ID=43319607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010066391A Expired - Fee Related JP4575993B1 (ja) 2010-03-23 2010-03-23 リクエストを処理する情報処理装置、方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4575993B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021179994A (ja) * 2020-05-14 2021-11-18 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド ページリソースを取得する方法、装置、電子機器、及び読み取り可能な記憶媒体

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012216023A (ja) * 2011-03-31 2012-11-08 Toshiba Corp 通信装置、通信プログラム、及び通信システム
CN111475519B (zh) * 2020-04-01 2024-03-15 深圳市思迪信息技术股份有限公司 数据缓存方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267911A (ja) * 1999-03-15 2000-09-29 Nec Corp データベース装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2002351729A (ja) * 2001-05-22 2002-12-06 Nec Corp データ共有システム
JP2009095040A (ja) * 2008-11-26 2009-04-30 Kyocera Corp 無線通信システム、移動無線通信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267911A (ja) * 1999-03-15 2000-09-29 Nec Corp データベース装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2002351729A (ja) * 2001-05-22 2002-12-06 Nec Corp データ共有システム
JP2009095040A (ja) * 2008-11-26 2009-04-30 Kyocera Corp 無線通信システム、移動無線通信装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021179994A (ja) * 2020-05-14 2021-11-18 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド ページリソースを取得する方法、装置、電子機器、及び読み取り可能な記憶媒体
JP7275450B2 (ja) 2020-05-14 2023-05-18 阿波▲羅▼智▲聯▼(北京)科技有限公司 ページリソースを取得する方法、装置、電子機器、及び読み取り可能な記憶媒体

Also Published As

Publication number Publication date
JP4575993B1 (ja) 2010-11-04

Similar Documents

Publication Publication Date Title
US10387856B2 (en) Online payment method, system, and apparatus
US20170249606A1 (en) System and method for electronic currency mining
US9922319B2 (en) Credit card information processing system, credit card information processing method, order information receiving device, credit card transaction device, program, and information recording medium
CN109087116A (zh) 积分兑换方法、积分交易系统和计算机可读存储介质
US9760929B2 (en) Managing rights for installed software applications and items purchased therewith
AU2016373251A1 (en) Method for performing inter-system service operation, service platform, and target system
CN108564426B (zh) 理财产品的竞购方法、装置、设备及计算机可读存储介质
CN111105308B (zh) 一种资产数据处理方法、装置以及设备
JP4575993B1 (ja) リクエストを処理する情報処理装置、方法及びコンピュータプログラム
JP6431462B2 (ja) 仮想通貨を用いた取引システム
US11341474B2 (en) Systems, devices, and methods for network management at a point of sale (POS) device
CN111125138A (zh) 一种轮询查询数据的方法、装置、计算机设备及存储介质
CN108280134B (zh) 基于账户额度控制的数据流通系统及方法、存储介质、终端
JP6684291B2 (ja) データ処理方法及び装置
CN110597886A (zh) 一种数据处理方法、装置及计算机存储介质
JP5873219B2 (ja) 情報処理装置、電子クーポン処理方法およびプログラム
JP6999386B2 (ja) 情報処理装置、情報処理方法、プログラム及び情報処理システム
CN109300055A (zh) 投连险盈亏查询方法、装置、设备及可读存储介质
US20140379510A1 (en) Auction apparatus, auction method, storage medium, and auction system
WO2021197096A1 (zh) 一种业务处理方法、装置及电子设备
KR20150114604A (ko) 고객 보상 서비스를 적용한 설문 조사 시스템
CN108573446B (zh) 银行卡认证方法、装置、设备及可读存储介质
CN110263063B (zh) 一种资产的查询方法及服务器
CN111611077A (zh) 任务参数处理方法、终端和存储介质
JP6899647B2 (ja) データ提供システム、データ提供方法、およびデータ提供プログラム

Legal Events

Date Code Title Description
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: 20100817

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

R150 Certificate of patent or registration of utility model

Ref document number: 4575993

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

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

LAPS Cancellation because of no payment of annual fees