JP2014170574A - データベースサーバ - Google Patents

データベースサーバ Download PDF

Info

Publication number
JP2014170574A
JP2014170574A JP2014091232A JP2014091232A JP2014170574A JP 2014170574 A JP2014170574 A JP 2014170574A JP 2014091232 A JP2014091232 A JP 2014091232A JP 2014091232 A JP2014091232 A JP 2014091232A JP 2014170574 A JP2014170574 A JP 2014170574A
Authority
JP
Japan
Prior art keywords
database
database server
data
system call
monitoring module
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
JP2014091232A
Other languages
English (en)
Other versions
JP5820902B2 (ja
Inventor
Toru Hashimoto
亨 橋本
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.)
MUFG Bank Ltd
Original Assignee
Bank of Tokyo Mitsubishi UFJ Trust Co
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 Bank of Tokyo Mitsubishi UFJ Trust Co filed Critical Bank of Tokyo Mitsubishi UFJ Trust Co
Priority to JP2014091232A priority Critical patent/JP5820902B2/ja
Publication of JP2014170574A publication Critical patent/JP2014170574A/ja
Application granted granted Critical
Publication of JP5820902B2 publication Critical patent/JP5820902B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データベース管理システムを用いて情報の蓄積を行いつつ、データの配信のタイムラグを低減するデータベースサーバを提供する。
【解決手段】データベースの管理を行うためのデータベースサーバプロセス104を動作させるデータベースサーバ100であり、監視モジュール108を有する。監視モジュール108は、データベースサーバプロセス104の発行するシステムコール107がデータベースへの操作の内容を書き込むものであるかどうかを判断する判断部111と、判断部111によりシステムコールがデータベースに対する操作の内容を書き込むものであると判断された場合には、データベースに対する操作の内容をデータベースサーバプロセス104とは異なるプロセスに送信する送信部112とを備える。
【選択図】図1

Description

本発明は、データベース管理システムと他のシステムとを連携させるデータベースサーバ、モジュール、データベースサーバの動作方法などに関する。特に、本発明はデータベース管理システムとデータベース管理システムを用いないシステムとの連携を行うデータベースサーバ、モジュール、データベースサーバの動作方法などとして好適に実施することができる。
様々なデータがコンピュータシステムにより扱われるようになってきた。多くの場合、コンピュータシステムに入力されるデータは、データベース管理システムが管理するデータベースに一旦格納され、その後に、データを必要とする機器や他のシステムに送信される。データがこのようにデータベースに一旦格納される理由の一つとしては、データベースには強力なリカバリ機能が備わっていることである。これにより、障害が発生してもデータが喪失などしないようにできる。リカバリ機能が備わっているために、データベースを介してデータの配信などを確実に行うことができる。
また、リカバリ機能に加えて、データベースには、アクセスコントロール機能も備わっており、権限の無い者に対するデータアクセスの制限の設定を柔軟に行うことが可能である。これにより、データベースを介することにより、特定の種類のデータを特定の者にだけ提供することが可能となる。また、不正なアクセスがあったかどうかの監査業務も比較的容易に遂行できる(例えば、特許文献1参照。)。
米国特許第7,426,512号明細書
一方、証券取引業務や外国為替業務において、株価や外国為替レートなどの情報の蓄積が行われる一方、アルゴリズム取引に代表されるように、株価や外国為替レートなどの変化に応じて速やかに売買注文を行う必要も生じてきている。この場合、データベースを介して株価や外国為替レートなどの情報を配信すると、情報の配信にタイムラグが発生することがある。
そこで、本発明の一実施形態においては、データベースを用いて情報の蓄積を行いつつ、データの配信のタイムラグをより低減するデータベースサーバなどを提供することを目的とする。
本発明の一実施形態として、データベースの管理を行うためのデータベースサーバプロセスを動作させるデータベースサーバを提供する。そのデータベースサーバは、監視モジュールを有する。その監視モジュールは、データベースサーバプロセスの発行するシステムコールがデータベースへの操作の内容を書き込むものであるかどうかを判断する判断部と、判断部によりシステムコールがデータベースに対する操作の内容を書き込むものであると判断された場合には、データベースに対する操作の内容をデータベースサーバプロセスとは異なるプロセスに送信する送信部とを備える。
本発明の一実施形態によれば、データベースを用いて情報の蓄積を行いつつ、データの配信のタイムラグを低減することが可能となる。また、特定の形式またはモデルを有するデータベースから他の形式またはモデルのデータベースなどとのデータ更新の同期を確保することができる。
本発明の一実施形態に係るデータベースサーバの機能ブロック図である。 本発明の一実施形態に係るデータベースサーバの処理のフローチャートである。 本発明の一実施形態に係るシステムの機能ブロック図である。
本発明を実施するための形態について、以下、いくつかの実施形態として説明を行う。なお、本発明は、以下の実施形態に限定して解釈されることはなく、以下の実施形態を変形して実施することも可能である。
(実施形態1)
図1は、本発明の実施形態1に係るデータベースサーバの機能ブロック図を示す。図1は、特に、本発明の実施形態1に係るデータベースサーバが動作しているときに実現される装置としてのデータベースサーバの機能ブロック図を示す。本実施形態に係るデータベースサーバ100は、コンピュータを動作させて提供することができる。コンピュータは、ハードウェア101とカーネル空間102とユーザ空間103とを有する。
ハードウェア101は、コンピュータの物理的実体である。ハードウェア101は、例えば、CPU、ROM、RAM、二次記憶装置、入出力インターフェースなどを備える。CPUは、プログラムを構成する命令を実行する。ROMは、読出し専用のメモリであり、コンピュータの起動時に最初に実行されるプログラムなどを格納する。コンピュータが起動すると、最初に実行されるプログラムがROMより読み出され、そのプログラムを構成する命令がCPUにより実行されることにより、コンピュータがブートする作業が開始する。RAMは、読み書きが可能なメモリであり、CPUにより実行される命令により構成されるプログラムを一時的に格納したり、プログラムの実行に必要な一時的なデータを格納したりする。二次記憶装置は、プログラムやデータを永続的に記憶するための装置である。入出力インターフェースは、プログラムなどの入出力を行ったり、プログラムの実行に伴う表示やデータの入力を行ったりなどするための、コンピュータ外部とのインターフェースである。
カーネル空間102は、オペレーティングシステムが動作する記憶空間である。オペレーティングシステムは、プログラムの一種であり、ユーザ空間103に存在するプロセスにハードウェア101を抽象化して提供する機能を有する。また、オペレーティングシステムは、プロセスの管理やコンピュータの有する資源の管理も行う。
カーネル空間102にて動作するオペレーティングシステムの提供する機能の一つとして、プロセス間通信の機能がある。プロセス間通信は、複数のプロセスが通信を行い、情報の送受信を行うための機能である。例えば、パイプ、ソケット、共有メモリ、メッセージキューなどがプロセス間通信を実装するために用いられる。
ユーザ空間103は、カーネル空間102にて動作するオペレーティングシステムのプロセス管理の機能を用いて生成されるプロセスが存在するアドレス空間である。プロセスは、プログラムをユーザモードで実行するための単位である。これに対して、カーネル空
間102は、CPUのモードをカーネルモードあるいは特権モードなどにしてプログラムを実行するためのアドレス空間である。
プロセスは、ハードウェア101を使用する処理が生じたり、カーネル空間102の機能を使用する処理の必要が生じたりした場合には、システムコールを発行し、カーネル空間102にて動作するオペレーティングシステムに処理を依頼する。
図1においては、ユーザ空間103に、データベースサーバプロセス104、クライアントプロセス105および受信プロセス106が示されている。ただし、ユーザ空間103には、これ以外のプロセスが存在していてもよい。受信プロセス106は複数存在していてもよい。また、データベースサーバプロセス104、クライアントプロセス105および受信プロセス106が同時にユーザ空間103に存在する必要はない。少なくとも、データベースサーバプロセス104がデータベース管理システムとして管理するデータベースにクライアントプロセス105がアクセスするときには、データベースサーバプロセスが存在している必要がある。また、データベースサーバプロセス104が、そのデータベースに変更などの操作を加えるときには、受信プロセス106が存在していることが好ましい。
データベースサーバプロセス104は、データベース管理システムを実現するためのプログラムを実行するプロセスである。すなわち、データベースに対する操作を行うプログラムを実行し、具体的には、データを所定のスキーマに従ってRAMや二次記憶装置に格納し、読出し、変更あるいは削除を行うプログラムを実行するプロセスである。スキーマとはデータベースの構造である。リレーショナルデータベース管理システムにおいては、スキーマは、テーブルの構造を表わす情報を含む。例えば、このような情報にはテーブルの名前、テーブルを構成するフィールドの名前、データ型、索引の有無などの情報がある。また、このような情報には、テーブルなどに対するアクセス権限の状態などを表わす情報が含まれていてもよい。
なお、本発明の実施形態においては、データベースとしては、リレーショナルデータベースに限らず、XMLデータベース、オブジェクト指向データベース、ネットワーク型データモデルを用いるデータベース、階層型データモデルを用いるデータベースなど種々のデータベースを使用することができる。
データベースサーバプロセス104は、他のプロセス(例えば、図1のクライアントプロセス105)から、カーネル空間102にて動作するオペレーティングシステムの提供するプロセス間通信106の機能を用いて、データベースに対する操作の要求を受信し、その操作を実行した結果を返信する。例えば、他のプロセスからテーブルの作成の要求が受信されれば、データベースサーバプロセス104は、テーブルの作成の処理を実行しその実行の結果を返信し、データの追加の要求が受信されれば、データをテーブルに格納する処理を実行しその実行の結果を返信し、検索の要求が受信されれば、テーブルに格納されたデータから検索の条件を満たすデータを検索した結果を返信し、データの変更の要求が受信されれば、テーブルに格納されたデータの変更の処理を実行しその実行の結果を返信し、データの削除の要求が受信されれば、データの削除の処理を実行しその実行の結果を返信する。ここに「実行の結果」とは、処理の実行が成功したかどうかを示す情報を含む。例えば、データの削除の要求が受信された場合、「データの削除の処理の実行の結果」は、例えばデータの削除の処理の実行が成功したかどうか、また、成功した場合には、何個のデータが削除されたかを示す情報が含まれる。
データベースサーバプロセス104は、上述したようにデータベース管理システムを実現するためのプログラムを実行するプロセスであるので、データベースに対する操作に先
だって起動される。起動の後、必要な初期化を行った後、他のプロセスからの要求を受信するために待ち状態となる。必要な初期化の中には、カーネル空間102にて動作するオペレーティングシステムに対して、必要なプロセス間通信106を開始可能とする要求を行う。また、初期化後は、プロセス間通信106によって他のプロセスからのデータベースに対する操作の要求を受信するシステムコールを発行し、待ち状態に入る。
クライアントプロセス105は、データベースサーバプロセス104に対して、プロセス間通信106の機能を用いて、データベース操作の要求を送信し、その結果を受信するプロセスである。一般的には、データベースサーバプロセス104がリレーショナルデータベースを管理するのであれば、クライアントプロセス105は、SQLなどのデータベース言語を用いたデータベース操作の要求、あるいは、データベース言語に対応する関数呼び出しなどを行うことにより、システムコールが発行され、データベースサーバプロセス104との間で定められた通信プロトコルに基づいて、プロセス間通信106を介して、データベース操作の要求を送信し、その要求の処理の実行結果を受信する。
より具体的には、クライアントプロセス105が、プロセス間通信106を用いてデータベースに対する操作の要求を、データベースコマンドとして、システムコールを発行して送信する。すると、カーネル空間102のプロセス間通信106のモジュールが処理を開始し、データベースサーバプロセス104がデータベースコマンドを受信可能な状態とし、データベースサーバプロセス104を待ち状態から走行可能な状態とする。また、クライアントプロセス105は、データベースサーバプロセス104からの返信を受信するために待ち状態に入る。データベースサーバプロセス104が、データベースコマンドが表わす要求を実行する処理を行うと、その処理の結果を、システムコールを発行して送信する。これにより、カーネル空間102のプロセス間通信106のモジュールが処理を開始し、クライアントプロセス105が結果を受信可能な状態とし、クライアントプロセス105を待ち状態から走行可能な状態とする。
データベースサーバプロセス104が、クライアントプロセス105からデータベースコマンドを受信し、受信されたデータベースコマンドを実行するときには、データベースコマンドの内容を二次記憶装置などのハードウェアに記録するためにシステムコールを発行する。この目的の一つは、ログを取るためである。例えば、トランザクション中においてデータベースサーバプロセス104がデータベースに対する操作を行うときに、トランザクションをロールバック可能とするためである。すなわち、トランザクション中にデータベースに対する変更の操作を行った後に、変更を永続するものとするコミットや明示的にロールバックが行われるときに、操作により加えられた変更の逆の変更の操作を行い、変更の操作が無かったことにすることである。また、別の目的としては、障害が発生した時点以降に行われたデータベースに対する操作をデータベースに反映するために用いられる。
このような目的を達するために、ログには、ロールバックやリカバリなどを行うために実行するべきSQL文が記録される。例えば、ログには、クライアントプロセス105から受信したデータベースコマンドがそのまま書き込まれるようになっていてもよい。また、ログには、データベースコマンドそのものではなく、同等の情報が記録されてもよい。さらに時刻やトランザクションIDなどの付加的な情報も記録されてもよい。
したがって、データベースサーバプロセス104は、データベースに対する変更の操作を行う際に、データベースに対する変更の内容を、二次記憶装置などに保持されるログファイルなどに、書き込むためのシステムコールを発行する。ここに、変更の内容としては、通常、ロールバックのためには、変更前のデータを含む情報が書き込まれ、リカバリのためには、変更後のデータを含む情報が書き込まれる。なお、データの追加の操作につい
ては、追加の前のデータは存在しないので、追加の前のデータは、変更の内容に含まれる必要はない。また、データの削除の操作については、削除の後のデータは存在しないので、削除の後のデータは、変更の内容に含まれる必要はない。
なお、ログは、ログの目的別に分かれて複数のファイルとして構成されていてもよいし、あるいは、一つのログファイルとして構成されていてもよい。
図1に示すように、カーネル空間102には、監視モジュール108が含まれる。監視モジュール108は、データベースサーバプロセス104が発行するシステムコール107を監視する。この監視は、例えば、ファイルや装置などへのデータの書き込みを行うためのシステムコール107をフック109することにより実現できる。「システムコールをフックする(あるいはシステムコールがフックされる)」とは、システムコールが発行されると、特定のモジュール(例えば監視モジュール108)が動作し、システムコールに与えられたパラメータを、その特定のモジュールに取得可能とすることである。したがって、システムコール107がフックされていると、データベースサーバプロセス104がシステムコール107を発行すると、システムコール107の実質的な処理が行われる前に監視モジュール108が動作し、以降において説明する処理を行うことができる。また、フックの仕方によっては、システムコール107の処理が実質的に終了した後に監視モジュール108が動作するようにすることもできる。
監視モジュールは、判断部111および送信部112をサブモジュールとして有する。
判断部111は、まず、発行されたシステムコールが、データベースの変更の操作の前後のデータ含む情報を書き込むために発行されたかどうかを判断する。すなわち、システムコールがデータベースサーバプロセス104によって発行されたかどうかを判断し、また、システムコールによる書き込み先が、データベースの変更の内容を書き込むためなどのログファイルや装置などであるかどうかを判断する。
さらに判断部111は、データベースの変更が、データベースの特定エリアに格納されるデータに関する変更であるかどうかを判断することもできる。ここに、「データベースの特定エリアに格納されるデータ」とは、定められた条件を満たすエリアに格納されるデータである。定められた条件は、後述の受信プロセス106や受信プロセス106以外のプロセスが、監視モジュール108に対して、変更後のデータを、受信プロセス106や受信プロセス106以外のプロセスに、送信するように要求する場合に設定される条件である。また、定められた条件は、データベースサーバプロセス104が、監視モジュール108に対して、設定した条件であってもよい。
上述の「定められた条件」としては、リレーショナルデータベースの場合には、特定のテーブルに対して変更の操作が行われること、また、特定の行データの特定のカラムに対して変更の操作が行われること、を挙げることができる。前者としては、特定のテーブルに行データが追加されることや特定のテーブルの行データが削除されること、を挙げることができ、後者としては、特定のテーブルに格納されている行データの一部が変更されること、を挙げることができる。
判断部111は、データベースの特定エリアに格納されるデータに対する操作が行われると判断されると、変更後の値を送信部112に伝達する。また、変更の操作の種別も、判断部111から送信部112に伝達されてもよい。これにより、データの削除があったことを受信プロセス106に送信することができる。なお、以下では、主に変更後の値が送信部112に伝達されるとして説明を行う(したがって、以下の説明では、明示的な記載を行なわないが、変更の操作の種別が、送信部112に送信されてもよい)。
送信部112は、判断部111から渡された変更後のデータを、所定のプロセスである受信プロセス106に受信可能とする。受信プロセス106は、システムコールを発行することにより、受信可能となったデータを要求し、受信可能となったデータを受信する。
なお、受信プロセス106の例としては、クライアントプロセス105が外国為替のレート情報を受信したり、株価の情報を受信したりし、データベースサーバプロセス104へ受信した情報を送信する場合において、レート情報や株価の情報を用いて取引を行うプロセスにレート情報や株価の情報を配信するプロセスを挙げることができる。また、受信プロセス106が、レート情報や株価の情報を用いて取引を行うプロセスそのものであってもよい。
受信プロセス106の一般的な例としては、データベースサーバプロセス104が管理するデータベースとはデータの格納の形式やデータモデルが異なるシステムに受信したデータを送信するプロセスを挙げることができる。このようなデータの格納の形式やデータモデルが異なるシステムとしては、Hadoop、Key Value Storeなどを挙げることができる。また、このようなデータの格納の形式やデータモデルが異なるシステムは、データベースサーバ100にて動作していてもよいし、データベースサーバ100と異なるサーバにて動作していてもよい。このとき、受信プロセス106は、送信部112より送信されたデータを、Hadoop、Key Value Storeなどの送信先のシステムのデータの形式に適合するように変換を行ってから、送信先に送信してもよい。変換のルールが、データベースサーバ100の記憶装置などに記憶されており、受信プロセス106は、そのルールを読み取り、読み取られたルールに従って変換を行ってデータを送信してもよい。
以下では、INSERT文とUPDATE文とがデータベースサーバ100において実行される場合について説明する。例えば、列としてC1、C2およびC3を有するテーブルRにデータ(V1,V2,V3)が追加される場合に、クライアントプロセス105は、
INSERT INTO R(C1,C2,C3) VALUES (V1,V2,V3);
というSQL文あるいはそれに相当する関数を実行することになる。この場合、プロセス間通信106を介して、このSQL文を表わすデータベースコマンドが、クライアントプロセス105からデータベースサーバプロセス104へ送信される。
データベースサーバプロセス104は、上記のINSERT文を表わすデータベースコマンドを受信すると、テーブルRにデータ(V1,V2,V3)を追加するとともに、テーブルRにデータ(V1,V2,V3)が追加されるという変更の内容を書き込むためのシステムコールを発行する。
「データベースの特定エリアに格納されるデータ」が、テーブルRに追加されたデータとして設定されていると、監視モジュール108が動作を行い、テーブルRに対するデータの追加のためのシステムコールであると判断されるので、判断部111は、(V1,V2,V3)というデータを送信部112に渡し、送信部112は、(V1,V2,V3)というデータを受信プロセス106に伝達し受信可能にする。なお、判断部111は、(V1,V2,V3)というデータを送信部112に伝達する代わりに、V1、V2およびV3の一部を送信部112に伝達し、V1、V2およびV3の一部を受信プロセス106に受信可能としてもよい。なお、INSERT文により追加されたデータを特定できるようにするために、主キーの値が含まれていることが好ましい。
また、判断部111は、判断を行った時刻などの時刻データなどの付加データを上記のように伝達するデータに付加してもよい。さらに、上記のように送信部112に伝達されるデータは、システムコールの引数などから得られる情報を所定のアルゴリズムに従って処理したデータであってもよい。また、データベースサーバプロセス104が発行したシステムコールに基づいて、処理のアルゴリズムが選択されてもよい。例えば、データベースサーバプロセス104が発行し、監視モジュール108が動作を開始したときのシステムコールの種類、引数などに応じて、処理のアルゴリズムが選択されるようになっていてもよい。
また、テーブルRの列C1が主キーの列であれば、監視モジュール108は、主キーの列の値であるV1を記憶することもできる。このようにすることにより、テーブルRのもっとも最近にテーブルに追加されたデータは、C1の値がV1であることにより特定される。このとき、クライアントプロセス105が、
UPDATE R SET C2=V4,C3=V5 WHERE C1=V1;
というSQL文あるいはそれに相当する関数を実行したとすると、データベースサーバプロセス104は、これに対応するSQLコマンドを実行するとともに、データの変更後のデータを表わす(V1,V4,V5)の値を書き込むためにシステムコールを発行する。すると、監視モジュール108が動作し、テーブルRのデータのうち列の値がV1である行に対する変更を表わしていることを判断し、変更後のデータである(V1、V4、V5)を取得し、(V1、V4、V5)というデータを送信部112に伝達し、送信部112は、(V1,V4,V5)というデータを受信プロセス106に転送する。
なお、判断部111は、(V1,V4,V5)というデータを送信部112に伝達する代わりに、V4およびV5の一部またはすべてを送信部112に伝達し、V4およびV5の一部またはすべてが受信プロセス106に転送し受信可能としてもよい。上述したように、変更されたデータを特定できるようにするために、主キーの値が含まれていることが好ましい。また、判断部111は、判断を行った時刻などの時刻データなどの付加データを上記のように伝達するデータに付加してもよい。さらに、上記のように伝達するデータは、システムコールの引数などから得られる情報を所定のアルゴリズムに従って処理したデータであってもよい。
図2は、本実施形態に係る監視モジュール108の処理を説明するフローチャートである。
図2を参照すると、ステップS201の処理として、監視モジュール108は、データベースサーバプロセス104がデータベースへの操作の内容を書き込むまで待つ。言い換えると、監視モジュール108は、データベースサーバプロセス104がシステムコールを発行するまで待ち、データベースサーバプロセス104がシステムコールを発行すると、システムコールを解析し、ステップS202の処理として、特定のテーブルに対するデータ操作を表わしているかどうかを判断する。なお、ここでは、「データベースの特定エリアに格納されるデータ」であるかどうかの判断の例として「特定のテーブルに対するデータ操作が行われる」かの判断を記載している。
もし、ステップS202の判断の結果がYES(肯定的)であれば、ステップS203の処理として、操作後のデータを求める。そして、ステップS204の処理として、送信部112が、受信プロセス106へデータの転送を行う。その後、ステップS205の処理へ移行する。
また、ステップS202の判断の結果がNO(否定的)であれば、ステップS205の処理へ移行する。
ステップS205の処理として、監視モジュール108の処理を終了するべきかどうかを判断し、その結果がNO(否定的)であれば、ステップS201へ戻る。
このように、本実施形態においては、データベースサーバプロセス104の発行するシステムコールを解析し、データベースの特定のエリアに格納されるデータが変更されると判断された場合には、変更後のデータを求め、変更後のデータを、受信プロセス106に受信可能としている。これにより、受信プロセス106は、データベースサーバプロセス104がデータをデータベースに格納することを介さずにデータを得ることができ、データの配信のタイムラグを低減することができる。また、配信されるデータを受信プロセス106や監視モジュール108において変換することも可能となる。
(実施形態2)
本発明の実施形態2として、変更後のデータに加えて、トランザクションIDが受信プロセスに受信可能とする形態について説明する。
一般に、データベースサーバプロセス104は、複数のクライアントプロセス105と通信する。それぞれのクライアントプロセス105がトランザクションを同時に実行できるようにするために、データベースサーバプロセス104は、複数のトランザクションを同時に処理することができる。この場合、データベースサーバプロセス104の内部では、トランザクションを区別するために、トランザクションにIDが付される。
また、ログファイルには、どのトランザクションにより変更操作が行われたかが記録されるようになっている場合がある。この場合、監視モジュール108は、システムコールをフックなどして監視することにより、トランザクションIDを取得することができる。
そこで、本発明の実施形態2においては、判断部111によりデータベースの変更の操作の前後のデータを含む情報を書き込むために発行されたかどうかを判断された場合に、変更後のデータとともにトランザクションIDも取得され、送信部112により送信される。
したがって、受信プロセス106は、どのトランザクションにおいて変更されたデータであるかを判断することができ、特定のシステムなどに特定のトランザクションにおいて変更されたデータのみを配信することができる。これにより、例えばデータの配信範囲をトランザクションIDにより限定することが可能である。
また、クライアントプロセス105がトランザクションを開始するデータベースコマンドをデータベースプロセス104に送信した後に、データベースプロセス104よりトランザクションIDを取得する操作を行ってもよい。そして、取得されたトランザクションIDを受信プロセス106に送信してもよい。これにより、受信プロセス106は、トランザクションIDとクライアントプロセス105との対応関係を管理することができる。これにより、配信範囲をより精密に限定することが可能となる。
(実施形態2)
実施形態1においては、主に図1を参照して説明したが、本発明は、図1のように1台のコンピュータを用いる場合に限定されて実施されることはない。
例えば、図3に示すように、ハードウェア601とカーネル空間602とユーザ空間603とを有する第1のコンピュータがあり、また、ハードウェア611とカーネル空間612とユーザ空間613とを有する第2のコンピュータを用いて本発明を実施することが
できる。この場合、第1のコンピュータのユーザ空間603においてデータベースサーバプロセス606と受信プロセス607とが動作し、第2のコンピュータのユーザ空間61においてクライアントプロセス614が動作してもよい。
そして、クライアントプロセス614からデータベースサーバプロセス606へ送信されるデータベースコマンドは、第2のコンピュータのカーネル空間、ハードウェア611、通信網610、第1のコンピュータのハードウェア601およびカーネル空間602を介してデータベースサーバプロセス606に送信される。このとき、監視モジュール608は、データベースサーバプロセス606が変更の内容を書き込むために発行されるシステムコールの発行を監視し、データベースの特定エリアに格納されるデータについての操作を表わしているかどうかを判断し、そうであれば、受信プロセス607へデータを転送する。
また、データベースサーバプロセス606と受信プロセス607とは、異なるコンピュータにて動作するようになっていてもよい。
100 データベースサーバ
101 ハードウェア
102 カーネル空間
103 ユーザ空間
104 データベースサーバプロセス
105 クライアントプロセス
106 受信プロセス
108 監視モジュール
111 判断部
112 送信部

Claims (8)

  1. データベースの管理を行うためのデータベースサーバプロセスを動作させるデータベースサーバであり、
    前記データベースサーバは、監視モジュールを有し、
    前記監視モジュールは、
    前記データベースサーバプロセスの発行するシステムコールが前記データベースへの操作の内容を書き込むものであるかどうかを判断する判断部と、
    前記判断部により前記システムコールが前記データベースに対する操作の内容を書き込むものであると判断された場合には、前記データベースに対する操作の内容を前記データベースサーバプロセスとは異なるプロセスに送信する送信部と
    を備え、
    前記判断部は、前記システムコールが前記データベースの特定のテーブルに対するデータの追加によるものであるかどうかを判断し、
    前記異なるプロセスに送信される操作の内容は、追加されるデータの全てまたは一部であり、
    前記モジュールは、前記特定のテーブルに対して追加された主キーの値を記憶し、
    前記判断部は、前記記憶された主キーにより特定される前記特定のテーブルのデータの変更を表わすかどうか、を判断し、
    前記異なるプロセスに送信される操作の内容は、前記変更の後の値であるデータベースサーバ。
  2. 前記送信部は、前記データベースに対する操作が行われるトランザクションのIDを前記異なるプロセスに送信する請求項1に記載のデータベースサーバ。
  3. 前記判断部は、前記データベースサーバプロセスの発行するシステムコールが前記データベースへの操作の内容をログファイルへ書き込むものであるかどうかを判断する請求項1または2に記載のデータベースサーバ。
  4. 前記監視モジュールは、前記データベースプロセスの発行するシステムコールをフックする請求項1から3のいずれかに記載のデータベースサーバ。
  5. 前記システムコールに基づいて、前記送信部により送信されるデータの処理が選択される請求項1から4のいずれかに記載のデータベースサーバ。
  6. 前記異なるプロセスは、前記送信部より送信されたデータの形式を変更してさらに他のプロセスに送信する請求項1から5のいずれかに記載のデータベースサーバ。
  7. 特定形式のデータベースの管理を行うためのデータベースサーバプロセスを動作させるデータベースサーバに、
    前記データベースサーバプロセスの発行するシステムコールが前記データベースの特定のテーブルに対するデータの追加によるものであるかどうかを判断させ、
    前記特定のテーブルに対して追加された主キーの値を記憶させ、
    前記判断により前記システムコールが、前記記憶された主キーによる特定される前記データベースの特定のテーブルのデータの変更を表わすものであると判断された場合には、前記変更の後の値を受信プロセスに送信させるためのプログラムであり、 前記受信プロセスは、前記特定形式のデータベースとは異なる形式のデータベースに適合するようにデータ変換を行うプログラム。
  8. 前記データベースプロセスの発行するシステムコールを、前記データベースサーバにフックさせるための請求項7に記載のプログラム。
JP2014091232A 2014-04-25 2014-04-25 データベースサーバ Expired - Fee Related JP5820902B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014091232A JP5820902B2 (ja) 2014-04-25 2014-04-25 データベースサーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014091232A JP5820902B2 (ja) 2014-04-25 2014-04-25 データベースサーバ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012131849A Division JP5567069B2 (ja) 2012-06-11 2012-06-11 データベースサーバ

Publications (2)

Publication Number Publication Date
JP2014170574A true JP2014170574A (ja) 2014-09-18
JP5820902B2 JP5820902B2 (ja) 2015-11-24

Family

ID=51692857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014091232A Expired - Fee Related JP5820902B2 (ja) 2014-04-25 2014-04-25 データベースサーバ

Country Status (1)

Country Link
JP (1) JP5820902B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133927A (ja) * 1996-09-03 1998-05-22 Toshiba Corp コンピュータシステムおよびファイル管理方法
JP2001034518A (ja) * 1999-07-27 2001-02-09 Nec Software Chugoku Ltd 分散データベースシステムにおける主従関係情報同期方式
US20050114285A1 (en) * 2001-11-16 2005-05-26 Cincotta Frank A. Data replication system and method
JP2006127088A (ja) * 2004-10-28 2006-05-18 Toppan Printing Co Ltd データ変更履歴記録システム及び方法
JP2006202113A (ja) * 2005-01-21 2006-08-03 Tokyo Electric Power Co Inc:The 電子情報バックアップシステム
JP2007272648A (ja) * 2006-03-31 2007-10-18 Fujitsu Ltd データベースシステム運用方法,データベースシステム,データベース装置及びバックアッププログラム
JP2010204699A (ja) * 2009-02-27 2010-09-16 Tokyo Stock Exchange Inc 有価証券取引システム及びその処理方法
JP2010271963A (ja) * 2009-05-22 2010-12-02 Hitachi Ltd ファイル変更通知インタフェースを持ったストレージシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133927A (ja) * 1996-09-03 1998-05-22 Toshiba Corp コンピュータシステムおよびファイル管理方法
JP2001034518A (ja) * 1999-07-27 2001-02-09 Nec Software Chugoku Ltd 分散データベースシステムにおける主従関係情報同期方式
US20050114285A1 (en) * 2001-11-16 2005-05-26 Cincotta Frank A. Data replication system and method
JP2006127088A (ja) * 2004-10-28 2006-05-18 Toppan Printing Co Ltd データ変更履歴記録システム及び方法
JP2006202113A (ja) * 2005-01-21 2006-08-03 Tokyo Electric Power Co Inc:The 電子情報バックアップシステム
JP2007272648A (ja) * 2006-03-31 2007-10-18 Fujitsu Ltd データベースシステム運用方法,データベースシステム,データベース装置及びバックアッププログラム
JP2010204699A (ja) * 2009-02-27 2010-09-16 Tokyo Stock Exchange Inc 有価証券取引システム及びその処理方法
JP2010271963A (ja) * 2009-05-22 2010-12-02 Hitachi Ltd ファイル変更通知インタフェースを持ったストレージシステム

Also Published As

Publication number Publication date
JP5820902B2 (ja) 2015-11-24

Similar Documents

Publication Publication Date Title
US11507583B2 (en) Tuple extraction using dynamically generated extractor classes
JP5387757B2 (ja) 並列データ処理システム、並列データ処理方法及びプログラム
US7624116B2 (en) System and method for managing objects according to the common information model
US9020949B2 (en) Method and system for centralized issue tracking
KR20140112427A (ko) 아파치 하둡을 위한 로우 레이턴시 쿼리 엔진
AU2014233672A1 (en) System for metadata management
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
US8527995B2 (en) Synchronization system for entities maintained by multiple applications
US20200050785A1 (en) Database record access through use of a multi-value alternate primary key
US20180300369A1 (en) Secure query interface
US20190050266A1 (en) Software application runtime having dynamic evaluation functions and parameters
US9189299B2 (en) Framework for system communication for handling data
JP5820902B2 (ja) データベースサーバ
US20190179932A1 (en) Tracking and reusing function results
US10936572B2 (en) Method, apparatus, and computer program product for improved tracking of state data
JP5567069B2 (ja) データベースサーバ
US9870404B2 (en) Computer system, data management method, and recording medium storing program
JP5748711B2 (ja) データベースドライバおよびプログラム
JP5913440B2 (ja) サーバおよびプログラム
US20190347336A1 (en) System and method for scouting distributed file system metadata
US10133758B2 (en) Cell-based database management system
CN111373365A (zh) 模式语法
CN110442629B (zh) 大数据多中心异构动态数据转换方法
US20230237032A1 (en) On-demand ingestion of records from a staging storage into a primary database
JP6287396B2 (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151005

R150 Certificate of patent or registration of utility model

Ref document number: 5820902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees