(57)【要約】【課題】二層ないし三層構造のアプリケーション・システムにおいて、ＩＤと名称のみのような単純なテーブルを頻繁に読み出すアプリケーション・プログラムにおいてスループットをあげるためにアプリケーション層に持つキャッシュの読み出しを高速化することが課題である。【解決手段】データベースから問い合わせ言語で記述された検索文によってアプリケーション層に絞込んでキャッシュを生成する際、各種のデータタイプのデータを文字列型に変換し単純化し、キー・バリュー・ストアの各タプルのバリュー部に格納し、検索文と同時に発行されるキー候補となるカラムの識別ＩＤによって指定されるカラムの値をタプルごとに文字列結合し、キー・バリュー・ストアの各タプルのバリュー部に対応するキー部に格納し、キャッシュから検索する際のキーとすることによって解決する。【選択図】図２
2011008451.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された、
問い合わせ言語によって特定のロウを検索し特定できる１または２以上のデータベース・サーバ計算機と、
アプリケーション・ロジックを含むコンピュータ・プログラムが作動する１または２以上の、アプリケーション・サーバ計算機ないしクライアント用計算機と、
から構成されるコンピュータ・システムにおいて、
前記アプリケーション・ロジックを含むプログラムが作動する前記アプリケーション・サーバ計算機ないしクライアント用計算機は、その記憶装置上に、１または２以上の一対のキー及びバリューから構成されるキー・バリュー型データによって構成されるキー・バリュー・ストア装置を有し、
前記アプリケーション・サーバ計算機ないしクライアント用計算機上で作動する前記アプリケーション・ロジックを含むプログラムによって設定された検索を実施する、問い合わせ言語で記述された検索文を、データベース・サーバ計算機に送信し、該データベース・サーバ計算機内のデータベースから該当ロウを抽出し、該抽出されたロウの前記検索文に記載の選択対象カラムの値を、前記キー・バリュー・ストア装置のバリュー部分に前記検索文にカラム毎に記載順に格納し、
さらに、前記データベース内のカラムを他のカラムから識別するための１または２以上のカラムＩＤが、前記該検索文と同時に送信され、
１の前記カラムＩＤが渡される場合には、
対応するカラム値を、
文字列であればそのまま、数値または金額または日付または時刻であれば表示可能な文字列に変換してそのまま、
２以上の前記カラムＩＤが渡される場合には、
それぞれに対応する２以上のカラム値を、
文字列であればそのまま、数値または金額または日付または時刻であれば表示可能な文字列に変換した後、文字列結合を行って単一文字列とし、前記キー・バリュー・ストア装置のキー部分に格納し、
前記キー・バリュー・ストア装置のキー部分を文字列検索することによって特定されるキー・バリュー型データのバリュー部分から、前記該問い合わせ言語で記述された検索文によって指定された前記カラムＩＤに対応するカラム値を、前記アプリケーション・サーバ計算機ないしクライアント用計算機上で作動する前記アプリケーション・ロジックを含むプログラムが要求する都度、オリジナルを持つデータベース・サーバ装置内のデータベースに取得しに行かなくても、前記キー・バリュー・ストア装置から高速に取得すること、
を特徴とするキー・バリュー・ストアによるデータベース・キャッシュ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リレーショナル・データベースからのキー・バリュー・ストアを用いたデータ・キャッシュに関する。
【背景技術】
【０００２】
近年のハードウェアの高速化と大容量化には目覚しいものがある。特にＣＰＵの６４ビット化が一般的となり、アドレス・バスが大幅に拡張されたことにより、主記憶装置の低価格化と大容量化により、高速化のためのイン・メモリ・データベースの利用も伸びてきている。また、それに伴う基幹システムの汎用機からオープン・システムへの移行において、従来のシステム構築やプログラミングの手法では、近年のハードウェアやソフトウェアの性能を十分に引き出せないでいるケースも多くなってきている。特にイン・メモリ・データベースへのアクセスにおいて、単純なテーブルから単純な検索を非常にたくさんの回数行い、実際の検索以外に、セッションの接続、切断、問い合わせ文のパース等の付帯処理を何回も重複して行う無駄を、プログラミング工数を極小化するという視点において看過されている。特に旧式なアーキテクチャーであるクライアント／サーバ方式のシステム・アーキテクチャーを踏襲する場合には、強力なキャッシュ機能が要求される場合がある。  
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Ｋｅｙ−ｖａｌｕｅストア」，［季刊］ユニックス・マガジン，(株)アスキー・メディアワークス,２００９年４月号，ｐ．９０−９１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
二層ないし三層構造のアプリケーション・システムにおいて、ＩＤと名称のみのような単純なテーブルを頻繁に読み出すアプリケーション・プログラムにおいてスループットをあげるためにアプリケーション層に持つキャッシュからの対応データの取得を高速化することが課題である。
【課題を解決するための手段】
【０００５】
データベースから問い合わせ言語で記述された検索文によってアプリケーション層に絞込んでキャッシュを生成する際、各種のデータタイプのデータを文字列型に変換し単純化し、キー・バリュー・ストアの各タプルのバリュー部に格納し、検索文と同時に発行されるキー候補となるカラムの識別ＩＤによって指定されるカラムの値をタプルごとに文字列結合し、キー・バリュー・ストアの各タプルのバリュー部に対応するキー部に格納し、キャッシュから検索する際のキーとすることによって解決する。キー部分は単純な文字列であるため、Ｎグラム法を用いて更に高速化する手段を適用することも可能である。
【発明の効果】
【０００６】
データベースから問い合わせ言語で記述された検索文によってアプリケーション層に絞込んで生成されたキャッシュから、さらにキー・バリュー・ストアのキー部分をＮグラム法等で高速検索することにより、アプリケーション・ロジックを含むプログラムがマスタ・テーブルからＩＤをキーとして名称を得るだけのような単純な検索を数万回繰り返すような仕様である場合、キャッシュをイン・メモリ・リレーショナル・データベースとして生成し、問い合わせ言語で記述された検索文によって取得する場合と比較して、格段に、そのアプリケーション・ロジックを含むプログラムのスループットを向上することに寄与する。
【図面の簡単な説明】
【０００７】
【図１】図１は非特許文献１に記載のキー・バリュー型データ構造を示した構造図である。
【図２】図２はリレーショナル・データベースからキー・バリュー・ストアのバリュー要素を生成するための問い合わせ言語による検索文と、キー要素を特定するためのカラムＩＤと、を入力要素としてアプリケーション層にキー・バリュー・ストア型データ構造を持つキャッシュを生成するステップを示すシーケンス図である。
【図３】図３はデータベースから抽出生成されたキー・バリュー・ストア型データ構造を持つキャッシュから対応データを取得するステップを示すシーケンス図である。
【実施例１】
【０００８】
アプリケーション・ロジックを含むプログラムが作動するアプリケーション・サーバ装置とデータベース管理装置が同一の計算機に置かれ、アプリケーション層とデータベース層をＬＡＮ等のネットワークで繋ぐ必要のないシステム動作環境において、アプリケーション・ロジックを含むプログラムが無造作にデータベースをアクセスしている旧式のアーキテクチャーで設計され構築されたシステム中のプログラムを、最初の一回のみ、旧来のプログラムに含まれる問い合わせ言語による検索文を発行することによりアプリケーション層側にキャッシュを作成し、以降の同様な問い合わせは、比較的冗長な問い合わせ言語による検索文の発行ではなく、キー・バリュー構造データのキー部を構成する文字列キーに対するＮグラム法による文字列検索により、高速に対応データを取得するように変更ないし再作成してもよい。
【産業上の利用可能性】
【０００９】
アプリケーション・ロジックを含むプログラムが作動するアプリケーション・サーバ装置とデータベース管理装置が同一の計算機に置かれ、アプリケーション層とデータベース層をＬＡＮ等のネットワークで繋ぐ必要のないシステム動作環境において、アプリケーション・ロジックを含む大量のプログラムが無造作にデータベースをアクセスしている旧式のアーキテクチャーで設計され構築されたシステムを、アプリケーション層とデータベース層に分離した比較的新しいアーキテクチャーに置き換えるようなプロジェクトにおいて、旧システムのプログラムの変更を抑制しながら、高速に対応データを取得することを可能にする。
【符号の説明】
【００１０】
１  キー
２  バリュー
３  キー・バリュー型データ構造
【図２】
2011008451.tif 000003
【図１】
2011008451.tif 000004
【図３】
2011008451.tif 000005
【手続補正書】
【提出日】平成21年9月11日(2009.9.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リレーショナル・データベースからのキー・バリュー・ストアを用いたデータ・キャッシュに関する。
【背景技術】
【０００２】
近年のハードウェアの高速化と大容量化には目覚しいものがある。特にＣＰＵの６４ビット化が一般的となり、アドレス・バスが大幅に拡張されたことにより、主記憶装置の低価格化と大容量化により、高速化のためのイン・メモリ・データベースの利用も伸びてきている。また、それに伴う基幹システムの汎用機からオープン・システムへの移行において、従来のシステム構築やプログラミングの手法では、近年のハードウェアやソフトウェアの性能を十分に引き出せないでいるケースも多くなってきている。特にイン・メモリ・データベースへのアクセスにおいて、単純なテーブルから単純な検索を非常にたくさんの回数行い、実際の検索以外に、セッションの接続、切断、問い合わせ文のパース等の付帯処理を何回も重複して行う無駄を、プログラミング工数を極小化するという視点において看過されている。特に旧式なアーキテクチャーであるクライアント／サーバ方式のシステム・アーキテクチャーを踏襲する場合には、強力なキャッシュ機能が要求される場合がある。  
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Ｋｅｙ−ｖａｌｕｅストア」，［季刊］ユニックス・マガジン，(株)アスキー・メディアワークス,２００９年４月号，ｐ．９０−９１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
二層ないし三層構造のアプリケーション・システムにおいて、ＩＤと名称のみのような単純なテーブルを頻繁に読み出すアプリケーション・プログラムにおいてスループットをあげるためにアプリケーション層に持つキャッシュからの対応データの取得を高速化することが課題である。
【課題を解決するための手段】
【０００５】
データベースから問い合わせ言語で記述された検索文によってアプリケーション層に絞込んでキャッシュを生成する際、各種のデータタイプのデータを文字列型に変換し単純化し、キー・バリュー・ストアの各タプルのバリュー部に格納し、検索文と同時に発行されるキー候補となるカラムの識別ＩＤによって指定されるカラムの値をタプルごとに文字列結合し、キー・バリュー・ストアの各タプルのバリュー部に対応するキー部に格納し、キャッシュから検索する際のキーとすることによって解決する。キー部分は単純な文字列であるため、Ｎグラム法を用いて更に高速化する手段を適用することも可能である。
【０００６】
請求項１に記載のキー・バリュー・ストアによるデータベース・キャッシュ装置について説明する。
ネットワークに接続された、
問い合わせ言語によって特定のロウを検索し特定できる１または２以上のデータベース・サーバ計算機と、
アプリケーション・ロジックを含むコンピュータ・プログラムが作動する１または２以上の、アプリケーション・サーバ計算機ないしクライアント用計算機と、
から構成されるコンピュータ・システムにおいて、
前記アプリケーション・ロジックを含むプログラムが作動する前記アプリケーション・サーバ計算機ないしクライアント用計算機は、その記憶装置上に、１または２以上の一対のキー及びバリューから構成されるキー・バリュー型データによって構成されるキー・バリュー・ストア装置を有し、
前記アプリケーション・サーバ計算機ないしクライアント用計算機上で作動する前記アプリケーション・ロジックを含むプログラムによって設定された検索を実施する、問い合わせ言語で記述された検索文を、データベース・サーバ計算機に送信し、該データベース・サーバ計算機内のデータベースから該当ロウを抽出し、該抽出されたロウの前記検索文に記載の選択対象カラムの値を、前記キー・バリュー・ストア装置のバリュー部分に前記検索文にカラム毎に記載順に格納し、
さらに、前記データベース内のカラムを他のカラムから識別するための１または２以上のカラムＩＤが、前記該検索文と同時に送信され、
１の前記カラムＩＤが渡される場合には、
対応するカラム値を、
文字列であればそのまま、数値または金額または日付または時刻であれば表示可能な文字列に変換してそのまま、
２以上の前記カラムＩＤが渡される場合には、
それぞれに対応する２以上のカラム値を、
文字列であればそのまま、数値または金額または日付または時刻であれば表示可能な文字列に変換した後、文字列結合を行って単一文字列とし、前記キー・バリュー・ストア装置のキー部分に格納し、
前記キー・バリュー・ストア装置のキー部分を文字列検索することによって特定されるキー・バリュー型データのバリュー部分から、前記該問い合わせ言語で記述された検索文によって指定された前記カラムＩＤに対応するカラム値を、前記アプリケーション・サーバ計算機ないしクライアント用計算機上で作動する前記アプリケーション・ロジックを含むプログラムが要求する都度、オリジナルを持つデータベース・サーバ装置内のデータベースに取得しに行かなくても、前記キー・バリュー・ストア装置から高速に取得すること、
を特徴とするキー・バリュー・ストアによるデータベース・キャッシュ装置であってもよい。
【発明の効果】
【０００７】
データベースから問い合わせ言語で記述された検索文によってアプリケーション層に絞込んで生成されたキャッシュから、さらにキー・バリュー・ストアのキー部分をＮグラム法等で高速検索することにより、アプリケーション・ロジックを含むプログラムがマスタ・テーブルからＩＤをキーとして名称を得るだけのような単純な検索を数万回繰り返すような仕様である場合、キャッシュをイン・メモリ・リレーショナル・データベースとして生成し、問い合わせ言語で記述された検索文によって取得する場合と比較して、格段に、そのアプリケーション・ロジックを含むプログラムのスループットを向上することに寄与する。
【図面の簡単な説明】
【０００８】
【図１】図１は非特許文献１に記載のキー・バリュー型データ構造を示した構造図である。
【図２】図２はリレーショナル・データベースからキー・バリュー・ストアのバリュー要素を生成するための問い合わせ言語による検索文と、キー要素を特定するためのカラムＩＤと、を入力要素としてアプリケーション層にキー・バリュー・ストア型データ構造を持つキャッシュを生成するステップを示すシーケンス図である。
【図３】図３はデータベースから抽出生成されたキー・バリュー・ストア型データ構造を持つキャッシュから対応データを取得するステップを示すシーケンス図である。
【実施例１】
【０００９】
アプリケーション・ロジックを含むプログラムが作動するアプリケーション・サーバ装置とデータベース管理装置が同一の計算機に置かれ、アプリケーション層とデータベース層をＬＡＮ等のネットワークで繋ぐ必要のないシステム動作環境において、アプリケーション・ロジックを含むプログラムが無造作にデータベースをアクセスしている旧式のアーキテクチャーで設計され構築されたシステム中のプログラムを、最初の一回のみ、旧来のプログラムに含まれる問い合わせ言語による検索文を発行することによりアプリケーション層側にキャッシュを作成し、以降の同様な問い合わせは、比較的冗長な問い合わせ言語による検索文の発行ではなく、キー・バリュー構造データのキー部を構成する文字列キーに対するＮグラム法による文字列検索により、高速に対応データを取得するように変更ないし再作成してもよい。
【産業上の利用可能性】
【００１０】
アプリケーション・ロジックを含むプログラムが作動するアプリケーション・サーバ装置とデータベース管理装置が同一の計算機に置かれ、アプリケーション層とデータベース層をＬＡＮ等のネットワークで繋ぐ必要のないシステム動作環境において、アプリケーション・ロジックを含む大量のプログラムが無造作にデータベースをアクセスしている旧式のアーキテクチャーで設計され構築されたシステムを、アプリケーション層とデータベース層に分離した比較的新しいアーキテクチャーに置き換えるようなプロジェクトにおいて、旧システムのプログラムの変更を抑制しながら、高速に対応データを取得することを可能にする。
【符号の説明】
【００１１】
１  キー
２  バリュー
３  キー・バリュー型データ構造