図面 (/)

技術 データベース管理装置、分散データベース管理システム、分散データベース管理方法および分散データベース管理プログラム

出願人 日本電信電話株式会社
発明者 鬼塚真内山寛之山室雅司
出願日 2005年6月16日 (14年9ヶ月経過) 出願番号 2005-177005
公開日 2006年12月28日 (13年2ヶ月経過) 公開番号 2006-350741
状態 特許登録済
技術分野 検索装置 計算機におけるファイル管理
主要キーワード 垂直分散 CPUコスト 水平分散 流通物品 分散関数 アクセス許可期間 部分検索 負荷情報収集
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2006年12月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (15)

課題

高速にデータの登録検索処理を行うことができるデータベース管理装置分散データベース管理システム分散データベース管理方法および分散データベース管理プログラムを提供する。

解決手段

データベース管理装置2は、水平垂直分散を組みあわせてデータを分散配置するデータベース装置であって、データを指定するキー値およびカラム名の入力により、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDとデータの一部である断片レコードIDを組み合わせたハッシュ値返却するハッシュ関数演算部15eと、カラム名の入力により、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを返却する分散関数演算部15fとを備える。

概要

背景

分散データベースシステムを実現する場合、分散データベースを構成するデータベース定義情報をサイト上にどのように配置するかということが重要である。この配置情報の違いにより分散データベース処理の手法は異なってくる。

従来の分散データベースの手法としては、リレーショナルデータモデル
オブジェクト指向データモデルに基づいたレコードフォーマットを用いるデータベース管理装置が知られている(特許文献1参照。)。また、水平・垂直分散などの観点でデータを分割して、分散するデータベース管理装置群を統括する大域サーバ登録データを受け付け、分散するデータベース管理装置群にデータを登録する等の処理を行う分散データベースシステム(集中型グローバルDD/D管理方式)が知られている(特許文献2参照。)。この特許文献2に更に記載される分散型グローバルDD/D管理方式では、大域サーバを使用せず分散する各データベース管理装置が自立的応用プログラムからの要求を処理する。
Raghu Ramakrishnan, Johannes Gehrke、“Database Management Systems”、 Second Edition、GcGraw-Hill、「レコードフォーマット(record formats)」、P221−224
特許第002969627号公報

概要

高速にデータの登録、検索処理を行うことができるデータベース管理装置、分散データベース管理システム、分散データベース管理方法および分散データベース管理プログラムを提供する。データベース管理装置2は、水平垂直分散を組みあわせてデータを分散配置するデータベース装置であって、データを指定するキー値およびカラム名の入力により、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDとデータの一部である断片レコードIDを組み合わせたハッシュ値返却するハッシュ関数演算部15eと、カラム名の入力により、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを返却する分散関数演算部15fとを備える。

目的

本発明は上記問題点を鑑み、断片レコードの登録処理を迅速に行い、ディスク上の記憶領域に空きが生じさせないようにし、分散するデータベース管理装置数の増加に従っても大域サーバが性能上のボトルネックにならず、データの登録・問い合わせ処理において格納するデータ・アクセスするデータがどのデータベース管理装置にあるかを高速に判断して、データの登録・問い合わせ処理を高速に実行することができるデータベース管理装置、分散データベース管理システム、分散データベース管理方法および分散データベース管理プログラムを提供することを目的とする。

効果

実績

技術文献被引用数
2件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

水平垂直分散を組みあわせてデータを分散配置するデータベース装置であって、前記データを指定するキー値およびカラム名の入力により、前記キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDと前記データの一部である断片レコードIDを組み合わせたハッシュ値返却するハッシュ関数演算部と、前記カラム名の入力により、前記カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを返却する分散関数演算部、とを備えるデータベース管理装置。

請求項2

前記断片レコードをデータとして登録するデータ断片登録部と、登録した断片レコードを追記方式で格納するデータベース部と、前記データベース部に格納された断片レコードを統合してレコードを構成するレコード統合部とを更に備える請求項1に記載のデータベース管理装置。

請求項3

水平垂直分散を組みあわせ、データを分散配置するための分散データベース管理システムであって、キー値およびカラム名の入力により、前記キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDと前記データの一部である断片レコードIDを組み合わせたハッシュ値を返却するハッシュ関数演算部と、前記カラム名の入力により、前記カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを返却する分散関数演算部とを有する複数のデータベース装置と、前記複数のデータベース管理装置の負荷情報収集する負荷情報収集部と、前記負荷情報収集部内の負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース管理装置とそのデータベース管理装置へのアクセス期間を含むアクセス権を決定するアクセス権管理部とを有する大域サーバとを備え、前記複数のデータベース装置へのアクセスは前記大域サーバが決定する前記アクセス権に基づいて許可されることを特徴とする分散データベース管理システム。

請求項4

前記複数のデータベース管理装置のうち前記断片レコードを登録すべきデータベース管理装置に前記断片レコードを登録する際には前記断片レコードが保持する前記キー値およびカラム名を入力し、前記ハッシュ関数を用いてデータを格納するべきデータベース管理装置のIDを特定し、特定された前記データベース管理装置に対して前記断片データを送信し登録するデータ登録処理部と、前記複数のデータベース管理装置内にて前記断片レコードを検索する際には前記検索の為の問い合わせ文記述された1つ以上のカラム名を特定し、前記分散関数を用いて、前記検索に必要となるデータを格納している少なくとも1つ以上のデータベース管理装置IDを特定し、特定された前記少なくとも1つ以上のデータベース管理装置が実行可能な前記問い合わせ文の一部を送信し、検索を実行する第1部分検索部と、前記検索を実行した中間結果より特定されたデータのキー値およびカラム名を基に、前記ハッシュ関数を用いて、検索に必要となるデータを格納しているデータベース管理装置のIDを特定し、特定された前記データベース管理装置が実行可能な部分問い合わせ分を送信し、検索を実行する第2部分検索部とを更に備えることを特徴とする請求項3に記載の分散データベース管理システム。

請求項5

水平垂直分散を組みあわせてデータを分散配置するための複数のデータベース管理装置を統合管理する分散データベース管理方法であって、前記複数のデータベース管理装置の負荷情報を負荷情報収集部が収集するステップと、前記負荷情報収集部内の負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース管理装置とそのデータベース管理装置へのアクセス期間を含むアクセス権をアクセス権管理部が決定するステップと、前記複数のデータベース装置へのアクセスを前記アクセス権に基づいて許可するステップと、前記データを分散保持する複数のデータベース管理装置にアクセスが行われ、キー値およびカラム名が入力されると、前記キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDと前記データの一部である断片レコードIDを組み合わせたハッシュ値をハッシュ関数演算部が返却するステップと、前記カラム名の入力により、前記カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを分散関数演算部が返却するステップとを備えることを特徴とする分散データベース管理方法。

請求項6

水平垂直分散を組みあわせてデータを分散配置するためのコンピュータにおいて、前記データを分散配置するための複数のデータベース管理装置の負荷情報を負荷情報収集部が収集する命令と、前記負荷情報収集部内の負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース管理装置とそのデータベース管理装置へのアクセス期間を含むアクセス権をアクセス権管理部が決定する命令と、前記複数のデータベース装置へのアクセスを前記アクセス権に基づいて許可する命令と、前記データを分散保持する複数のデータベース管理装置にアクセスが行われ、キー値およびカラム名が入力されると、前記キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDと前記データの一部である断片レコードIDを組み合わせたハッシュ値をハッシュ関数演算部が返却する命令と、前記カラム名の入力により、前記カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを分散関数演算部が返却する命令とを実行させることを特徴とする分散データベース管理プログラム

技術分野

0001

本発明は、複数のデータベースを分散構成したデータベース管理装置分散データベース管理システム分散データベース管理方法および分散データベース管理プログラムに関する。

背景技術

0002

分散データベースシステムを実現する場合、分散データベースを構成するデータベースの定義情報をサイト上にどのように配置するかということが重要である。この配置情報の違いにより分散データベース処理の手法は異なってくる。

0003

従来の分散データベースの手法としては、リレーショナルデータモデル
オブジェクト指向データモデルに基づいたレコードフォーマットを用いるデータベース管理装置が知られている(特許文献1参照。)。また、水平・垂直分散などの観点でデータを分割して、分散するデータベース管理装置群を統括する大域サーバ登録データを受け付け、分散するデータベース管理装置群にデータを登録する等の処理を行う分散データベースシステム(集中型グローバルDD/D管理方式)が知られている(特許文献2参照。)。この特許文献2に更に記載される分散型グローバルDD/D管理方式では、大域サーバを使用せず分散する各データベース管理装置が自立的応用プログラムからの要求を処理する。
Raghu Ramakrishnan, Johannes Gehrke、“Database Management Systems”、 Second Edition、GcGraw-Hill、「レコードフォーマット(record formats)」、P221−224
特許第002969627号公報

発明が解決しようとする課題

0004

しかしながら、特許文献1のデータベース管理装置では、リレーショナルデータモデルやオブジェクト指向データモデルに基づいており、断片的なレコードを登録する際には、更新対象となるレコードを検索した上で更新を実行しなければならないため、処理の手間がかかってしまうという問題があった。これは特にセンシングされたデータのように膨大な断片データを登録するような応用においては、高速にデータを書き込めないという問題があった。

0005

更に、特許文献2の集中型グローバルDD/D管理方式に基づく分散データベースシステムでは、データを格納する方法として水平・垂直分散などの観点でデータを分割して分散するデータベース管理装置群にデータを登録するが、検索を実行する際には大域サーバが問い合わせを受け付けて、分散するデータベース管理装置群へ問い合わせを実行する必要があった。このため、分散サーバ数の増加に従って大域サーバが性能上のボトルネックになってしまうという問題があった。また、分散型グローバルDD/D管理方式に基づく分散データベースシステムでは、データベース管理装置の負荷状況によらず応用プログラムが自由にアクセス対象であるデータベース管理装置を指定してしまうため、データベース管理装置の負荷を分散できずに性能が劣化してしまうという問題があった。

0006

この他にも、水平・垂直分散を組み合わせてデータベースを分散させる分散データベース装置では、キー値を指定した問い合わせもしくは問い合わせの処理の中間結果として得られる断片レコード群に含まれる個々の断片レコード毎に問い合わせ処理を継続する場合、通常の水平分散の方法では指定のカラム値の範囲(特許文献1には「レンジパーティショニング」と記載)やカラム値(ハッシュによるパーティショニング)によってデータベースを分散しているため、問い合わせにおいて指定されていないカラムに対する条件を処理する場合は、アクセスするべきデータがどのデータベース管理装置に分散配置されているか判断できないため、全てのデータベース管理装置に対してアクセスが発生してしまい、性能が劣化するという問題があった。

0007

本発明は上記問題点を鑑み、断片レコードの登録処理を迅速に行い、ディスク上の記憶領域に空きが生じさせないようにし、分散するデータベース管理装置数の増加に従っても大域サーバが性能上のボトルネックにならず、データの登録・問い合わせ処理において格納するデータ・アクセスするデータがどのデータベース管理装置にあるかを高速に判断して、データの登録・問い合わせ処理を高速に実行することができるデータベース管理装置、分散データベース管理システム、分散データベース管理方法および分散データベース管理プログラムを提供することを目的とする。

課題を解決するための手段

0008

上記目的を達成するために、本発明の第1の特徴は、[イ]水平垂直分散を組みあわせてデータを分散配置するデータベース装置であって、データを指定するキー値およびカラム名の入力により、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDとデータの一部である断片レコードIDを組み合わせたハッシュ値返却するハッシュ関数演算部(15e)と、[ロ]カラム名の入力により、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを返却する分散関数演算部(15f)とを備えるデータベース装置であることを要旨とする。

0009

更に本発明の第1の特徴は、[ハ]断片レコードをデータとして登録するデータ断片登録部(15g)と、[ニ]登録した断片レコードを追記方式で格納するデータベース部(3)と、[ホ]データベース部(3)に格納された断片レコードを統合してレコードを構成するレコード統合部(15k)とを更に加えてもよい。

0010

本発明の第2の特徴は、[イ]水平垂直分散を組みあわせ、データを分散配置するための分散データベース管理システムであって、キー値およびカラム名の入力により、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDとデータの一部である断片レコードIDを組み合わせたハッシュ値を返却するハッシュ関数演算部(15e)、カラム名の入力により、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを返却する分散関数演算部(15f)を有する複数のデータベース装置と、[ロ]複数のデータベース管理装置の負荷情報収集する負荷情報収集部(25a)、負荷情報収集部(25a)内の負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース管理装置とそのデータベース管理装置へのアクセス期間を含むアクセス権を決定するアクセス権管理部(25b)を有する大域サーバ(1)を備え、[ハ]複数のデータベース装置へのアクセスは大域サーバ(1)が決定するアクセス権に基づいて許可される分散データベース管理システムであることを要旨とする。

0011

更に本発明の第2の特徴は、[ニ]複数のデータベース管理装置のうち断片レコードを登録すべきデータベース管理装置に断片レコードを登録する際には断片レコードが保持するキー値およびカラム名を入力し、ハッシュ関数を用いてデータを格納するべきデータベース管理装置のIDを特定し、特定されたデータベース管理装置に対して断片データを送信し登録するデータ登録処理部と、[ホ]複数のデータベース管理装置内にて断片レコードを検索する際には検索の為の問い合わせ文記述された1つ以上のカラム名を特定し、分散関数を用いて、検索に必要となるデータを格納している少なくとも1つ以上のデータベース管理装置IDを特定し、特定された少なくとも1つ以上のデータベース管理装置が実行可能な問い合わせ文の一部を送信し、検索を実行する第1部分検索部(15h)、[ヘ]検索を実行した中間結果より特定されたデータのキー値およびカラム名を基に、ハッシュ関数を用いて、検索に必要となるデータを格納しているデータベース管理装置のIDを特定し、特定されたデータベース管理装置が実行可能な部分問い合わせ分を送信し、検索を実行する第2部分検索部(15i)とを更に備えてもよい。

0012

本発明の第3の特徴は、[イ]水平垂直分散を組みあわせてデータを分散配置するための複数のデータベース管理装置を統合管理する分散データベース管理方法であって、複数のデータベース管理装置の負荷情報を負荷情報収集部(25a)が収集するステップと、[ロ]負荷情報収集部(25a)内の負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース管理装置とそのデータベース管理装置へのアクセス期間を含むアクセス権をアクセス権管理部(25b)が決定するステップと、[ハ]複数のデータベース装置へのアクセスをアクセス権に基づいて許可するステップと、[ニ]データを分散保持する複数のデータベース管理装置にアクセスが行われ、キー値およびカラム名が入力されると、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDとデータの一部である断片レコードIDを組み合わせたハッシュ値をハッシュ関数演算部(15e)が返却するステップと、[ホ]カラム名の入力により、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを分散関数演算部(15f)が返却するステップを備える分散データベース管理方法であることを要旨とする。

0013

本発明の第4の特徴は、[イ]水平垂直分散を組みあわせてデータを分散配置するためのコンピュータにおいて、データを分散配置するための複数のデータベース管理装置の負荷情報を負荷情報収集部(25a)が収集する命令と、[ロ]負荷情報収集部(25a)内の負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース管理装置とそのデータベース管理装置へのアクセス期間を含むアクセス権をアクセス権管理部(25b)が決定する命令と、[ハ]複数のデータベース装置へのアクセスをアクセス権に基づいて許可する命令と、[ニ]データを分散保持する複数のデータベース管理装置にアクセスが行われ、キー値およびカラム名が入力されると、キー値およびカラム名により特定されるデータが格納されている若しくは格納すべきデータベース管理装置IDとデータの一部である断片レコードIDを組み合わせたハッシュ値をハッシュ関数演算部(15e)が返却する命令と、[ホ]カラム名の入力により、カラム名が指定するデータが格納されている1つ以上のデータベース管理装置IDを分散関数演算部(15f)が返却する命令を実行させる分散データベース管理プログラムであることを要旨とする。

発明の効果

0014

本発明のデータベース管理装置、分散データベース管理システム、分散データベース管理方法および分散データベース管理プログラムによると、応用プログラムは事前にアクセス権を大域サーバから発行してもらうため、データの登録・問い合わせの実行時には大域サーバへの負荷集中をさけることができる。また、大域サーバでは全データベース管理装置の負荷情報に基づきアクセス権を発行するため、データベース管理装置の負荷を分散することができる。

0015

データの登録の際は、ハッシュ関数を用いてそのデータを格納するべきデータベース管理装置を高速に特定し、追記方式で記憶領域にデータを書き込むため、高速にデータの登録処理を行うことができる。

0016

問い合わせ処理の際は、ハッシュ関数・分散関数を用いて問い合わせを処理する上で必要となるデータを格納するデータベース管理装置を高速に特定することができる。

発明を実施するための最良の形態

0017

以下、本発明の実施の形態に係るデータベース管理装置、分散データベース管理システム、分散データベース管理方法および分散データベース管理プログラムについて説明する。尚、本発明の実施の形態において使用される機器、手法等は一例であり、本発明はこれらに限定されるものでないことは勿論である。

0018

(実施の形態)
(分散データベース管理システム)
本発明の実施の形態に係る分散データベース管理システム100は、水平・垂直分散を組み合わせてデータベースを分散させる為のシステムであり、その装置して、図1に示すように、大域サーバ1、各々がデータベース2を備える複数のデータベース管理装置2、クライアント端末4等を備える。

0019

大域サーバ1は複数のデータベース管理装置2から成る分散データベース管理装置群5のアクセス状況を管理し、特定のデータベース管理装置2に負荷がかからないように、アクセス状況に応じて、応用プログラムがアクセスするデータベース管理装置2を特定したり、そのアクセス期間を設定したりする。クライアント端末4は利用者が使用する端末であり、分散データベース管理装置群5へ対してデータの登録処理や検索処理を行うための応用プログラムを備えている。尚、クライアント端末4は、入力装置出力装置通信装置主記憶装置、CPU等を備える通常のパーソナルコンピュータ等である。

0020

(データベース管理装置)
データベース管理装置2は、図2に示すように、入力装置11、出力装置12、通信制御装置13、通信インタフェース14、中央制御装置(以下、CPUと記載)15、主記憶装置16、データベース部3、ハッシュテーブル記憶部18、関数記憶部19およびキャッシュ部20等を備えている。

0021

入力装置11は、キーボードマウス入力信号を受信するインタフェース等である。フロッピー(登録商標)ディスク、ハードディスク等の外部記憶装置を介して入力されても良い。出力装置12は、処理結果等を出力するための装置であり、具体的にはプリンタ液晶ディスプレイCRTディスプレイ等を指す。通信制御装置13は、大域サーバ1、他のデータベース管理装置2およびクライアント端末4に対しデータを送受信する為の制御信号を生成する。通信インタフェース14は、大域サーバ1、他のデータベース管理装置2およびクライアント端末4との間においてデータを送受信するための装置である。

0022

CPU15はプロセス、各命令等の演算処理を行う。主記憶装置16は、主メモリとして、処理の手順を記述したプログラムや処理されるべきデータを一時的に記憶し、CPU15の要請に従ってプログラムの機械命令やデータを引き渡す。又、CPU15で処理されたデータは主記憶装置16に書き込まれる。主記憶装置16とCPU15はアドレスバスデータバス、制御信号等で結ばれている。キャッシュ部20は、主記憶装置17の補助メモリ作業用メモリである。

0023

データベース部3は、図3に示すようなID、カラム名、カラム値、時刻等の項目から構成される断片レコードを追記格納する。同一IDの断片レコードは統合され、まとまった1つの統合レコード3aと成る。

0024

例えば、図3の統合レコード3aは、RFIDが212である断片レコード群を統合したものであり、カラムとして温度,経路(IDリーダ番号)等がある。データベース部3の記憶領域では常に空き領域の先頭アドレスを管理するだけであり、データの追記では第1断片レコードの次に第2断片レコードを書き込むように、記憶領域の空き領域の先頭次々に追記する。連続領域にデータを書き込むことにより、記憶領域の無駄が出ず、また書き込みが高速に行える。

0025

ハッシュテーブル記憶部18は、ハッシュテーブルを格納するための記憶領域である。関数記憶部19は、ハッシュ関数、分散関数を格納するための記憶領域である。

0026

CPU15は、図2に示すように、データ登録処理部15a、検索処理部15b、ハッシュテーブル管理部15c、関数管理部15d、ハッシュ関数演算部15e、分散関数演算部15f、データ断片登録部15g、第1部分検索部15h、第2部分検索部15i、検索結果構成部15j、レコード統合部15kおよびプラン生成部15l等を備えている。

0027

データ登録処理部15aは、クライアント端末4の応用プログラムからのデータの登録命令を処理する。検索処理部15bは、応用プログラムからのデータの検索命令を処理する。ハッシュテーブル管理部15cは、ハッシュテーブル記憶部18を管理する。ハッシュテーブルはデータの登録時にエントリ登録され、データ検索時のエントリ検索において使用される。関数管理部15dは、データの登録や検索時に用いられるハッシュ関数や分散関数を管理する。

0028

ハッシュ関数演算部15eは、水平・垂直分散を組み合わせてデータベースを分散させる分散データベースにおいて、キー値(レコードID)とカラム名のペアの入力により、そのデータが格納されている若しくは格納すべきデータベース管理装置IDとデータ断片IDを組み合わせたハッシュ値を返却する関数を算出する。

0029

分散関数演算部15fは、カラム名を入力することで、そのデータが格納されている若しくは格納すべきデータベース管理装置IDの集合を返却する分散関数を算出する。

0030

データ断片登録部15gは、レコードの一部(断片レコード)をデータベース部3の記憶領域に追記方式で格納する。データを格納するべきデータベース管理装置2は上記のハッシュ関数を用いて特定される。

0031

第1部分検索部15hは、問い合わせ処理の際のWHEREの処理にて使用され、分散関数を用いて、検索に必要となるデータを格納している1つ以上のデータベース管理装置IDを特定し、このデータベース管理装置2が実行可能な問い合わせ分の部分を送信して検索を実行する。

0032

第2部分検索部15iは、問い合わせ処理の際のWHERE句の処理にて使用され、検索の中間結果より特定されたデータのキー値(レコードID)とカラム名のペアとハッシュ関数を用いて、検索に必要となるデータを格納している1つ以上のデータベース管理装置IDを特定する。更に、このデータベース管理装置2が実行可能な問い合わせ文(句)を送信して検索を実行する。

0033

検索結果構成部15jは、問い合わせ処理の際のSELECT句の処理にて、最終的な検索結果を構成する。レコード統合部15kは、断片レコードからレコードを復元して、問い合わせ処理を実行する。プラン生成部15lはWHERE句の処理を行う際のプランを生成する。

0034

(大域サーバ)
大域サーバ1は、図4に示すように、入力装置21、出力装置22、通信制御装置23、通信インタフェース24、CPU25、主記憶装置26、負荷情報記憶部27およびアクセス権情報記憶部28等を備えている。

0035

負荷情報記憶部27は、CPUコストIOコスト等の負荷情報を格納する。アクセス権情報記憶部28は、応用プログラムが使用可能なデータベース管理装置2およびそのデータベース管理装置2へのアクセス許可期間等のアクセス権情報を格納する。

0036

CPU25は、負荷情報収集部25aおよびアクセス権管理部25b等より構成される。負荷情報収集部25aは分散する全てのデータベース管理装置2のCPUコストやIOコスト等の負荷情報を定期的収集し、負荷情報記憶部27に書き込む。

0037

アクセス権管理部25bは、問い合わせやデータの登録時の大域サーバへのアクセスの集中を防ぐため、応用プログラムが負荷の低いデータベース管理装置を利用するよう制御し、問い合わせ処理、検索処理等を負荷分散する。アクセス権管理部25bは統計処理部25cおよびアクセス権算出部25d等を備えている。

0038

統計処理部25cは、最も負荷の低いデータベース管理装置2を決定する基準となる負荷情報を収集し、統計的にデータ処理する。

0039

アクセス権算出部25dは、応用プログラムからの要求に応じて、その応用プログラムがアクセス可能なデータベース管理装置2と、アクセスを許可する期間を算出して応用プログラムに返却する。アクセス可能なデータベース管理装置2としては、収集した負荷情報を基に、その時に負荷が軽いデータベース管理装置2が選択、決定される。

0040

他の装置については、データベース管理装置2と同様であるため説明を省略する。

0041

(分散データベース管理システムの動作)
分散データベース管理システム100の主な動作として、
1.データベース管理装置2の初期化処理
2.大域サーバ1の情報収集処理
3. 大域サーバ1のアクセス権発行処理
4. データベース管理装置2のデータ登録処理
5. データベース管理装置2の問い合わせ処理
6. データベース管理装置2のWHERE句処理
7. データベース管理装置2のWHERE句内の条件式処理
8. データベース管理装置2のSELECT句処理
が挙げられる。以下、これらの動作について各々図面を参照して説明する。

0042

(データベース管理装置の初期化処理)
以下、データベース管理装置2の初期化処理について図5フローチャートを参照して説明する。

0043

(a)先ずステップS11においては、1つのデータベース管理装置2のハッシュ関数演算部15eが、データ分散処理に使用するハッシュ関数を算出する。ハッシュ関数の算出では、既に入力された断片レコードの値のヒストグラムなどの統計情報を用いて、今後入力されると断片レコードのキー値の集合が均一にハッシュされるよう関数h1を決定する。ハッシュ関数の決定方法については、イントロクショントゥアルゴリズム(introduction to algorithms、著者: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein、出版社: TheMIT Press
)等の書籍や、SHA-1、MD5といったものが広く知られている。

0044

また分散関数演算部15fが、分散関数h2を算出する。ハッシュ関数h1、分散関数h2は、少なくとも以下のような入力と出力の対応表を個々のデータベース管理装置2の関数記憶部19が保持することで実装可能である。つまり、h1とh2は、
h1(入力:レコードのキー値,カラム名)→(出力:データベース管理装置ID,レコードのキー値のハッシュ値)
h2(入力:カラム名)→(出力:データベース管理装置ID)の集合
という関数となる。但し、h1(キー値,カラム名)によって得られるデータベース管理装置IDはh2(カラム名)により得られるデータベース管理装置ID群に含まれる。h1はレコードのキー値とデータベースのスキーマにおけるカラム名(もしくはテーブル名とカラム名)を入力とし、ハッシュ値を演算する。そのハッシュ値は複合的なハッシュ値であり、分散するデータベース管理装置2のIDと入力したレコードのハッシュ値である。

0045

h2はデータベース部3のスキーマにおけるカラム名、若しくはテーブル名とカラム名を入力とし、分散するデータベース管理装置2のIDの集合を返却する。

0046

(b)ステップS12においては、決定されたハッシュ関数を、通信網を介して、全てのデータベース管理装置2(分散データベース管理装置群5)へ送信する。

0047

(c)ステップS13においては、全てのデータベース管理装置2の関数管理部15dが、同じハッシュ関数を受け取り、関数記憶部19に格納する。更にハッシュテーブル管理部15cがこのハッシュ関数を基にハッシュテーブルを作成する。作成されたハッシュテーブルは各々のハッシュテーブル記憶部18に格納される。

0048

(大域サーバの情報収集処理)
次に大域サーバ1が分散データベース管理装置群5から負荷情報を収集する処理について図6のフローチャートを参照して説明する。

0049

(a)先ずステップS21において、負荷情報収集の収集契機を大域サーバ1の管理者が入力する。収集契機は、定期的な時間間隔空ける方法や、データベース管理装置2が一定の負荷以下の場合に契機とする方法等によって決定する。またこれらの基準は、分散データベース管理装置群5で統一したものを利用する方法、また個々のデータベース管理装置2毎に異なるものを利用する方法がある。

0050

(b)ステップS22においては、図4の負荷情報収集部25aは、指定された収集契機に従って、分散データベース管理装置群5からIOコストやCPUコスト等の負荷情報を収集して、大域サーバ1が有する図4の負荷情報記憶部27に書き込む。

0051

(c)ステップS22の処理はステップS23にて大域サーバ1の管理者が停止を指定しない限り実行される。停止が指定されたら、負荷情報の収集フローを終了する。

0052

(大域サーバのアクセス権発行処理)
次にクライアント端末4の応用プログラムからの要求に応じて、大域サーバ1がアクセス権を発行する処理について図7のフローチャートを参照して説明する。

0053

(a)先ずステップS31において、アクセス権管理部25bがクライアント端末4の応用プログラムからアクセス権の発行要求を受け付ける。

0054

(b)ステップS32においては、統計処理部25cが収集した全てのデータベース管理装置2のCPU/IO負荷情報を利用して、アクセス権算出部25dは、アクセス権として、応用プログラムがアクセスするべき最も負荷の低いデータベース管理装置2とそのデータベース管理装置2へのアクセス期間を算出する。算出されたアクセス権はアクセス権情報記憶部28に格納される。

0055

アクセス期間については、過去のデータベース管理装置のCPU/IO負荷情報と既に応用プログラムに対して割り当てているアクセス権とを参照し、各々のデータベース管理装置2の負荷の変化を予測する。これにより、負荷が低いアクセス期間を決定する。

0056

(c)ステップS33においては、通信網を介して、これらのアクセスが許可されたデータベース管理装置2とそのアクセス期間を、アクセス権として応用プログラムに返却する。

0057

(データベース管理装置のデータ登録処理)
次に、クライアント端末4の応用プログラムより登録要求を受け、アクセス権にて決定されたデータベース管理装置2がデータを登録する際の動作について図8のフローチャートを参照して説明する。

0058

(a)ステップS41において、クライアント端末4よりデータ登録要求を受けたデータ登録処理部15aは、入力された断片レコードのキー値とカラム名をハッシュ関数h1に入力し、データベース管理装置IDを得る。このデータベース管理装置IDを用いて、登録された断片レコードを登録するべきデータベース管理装置2が特定される。

0059

例えば、図3の第1断片レコードではキー値は212であり、カラム名は温度である。これらがハッシュ関数h1に入力されることになる。

0060

(b)ステップS42においては、登録するべきデータベース管理装置2が、自装置であるか他装置であるかを判定する。自装置である場合はデータ断片登録部15gが断片レコードを自装置のデータベース部3に登録する。またハッシュテーブル管理部15cはこのデータ登録をハッシュテーブルのエントリとしてハッシュテーブル記憶部18に追記する。ハッシュテーブルにおけるエントリの追加場所については、ハッシュ関数h1から得られるもう一つの結果であるレコードのキー値のハッシュ値を用いて決定される。

0061

(c)他装置である場合は、登録要求があった断片レコードを指定された他装置に送信し、他装置のデータベース部3に登録するよう依頼する。

0062

(データベース管理装置の問い合わせ処理)
次にクライアント端末4の応用プログラムより問い合わせを受けたデータベース管理装置2が、問い合わせを処理する際の動作について図9のフローチャートを参照して説明する。

0063

(a)ステップS51においては、受信した問い合わせを解析し、問い合わせのパース木を作成する。

0064

(b)ステップS52においては、問い合わせのWHERE句を処理するサブルーチンを実行する。

0065

(c)ステップS53においては、SELECT句を処理するサブルーチンを実行する。

0066

(データベース管理装置のWHERE句処理)
次にステップS52のWHERE句を処理するサブルーチンについて図10のフローチャートを参照して説明する。

0067

(a)ステップS61においては、プラン生成部15lがWHERE句を実行するプランを作成する。実行プランでは、WHERE句をAND/OR/括弧により分割された最小の条件式の処理を並列若しくは直列に組み合わせた実行プランを作成する。例えば、a=5 AND b>3 AND c=10というWHERE句の場合、最小の条件式は、a=5、b>3、c=10である。

0068

この例では可能な実行プランは、図11(a)に示す完全に直列なプラン1、図11(b)に示す一つの条件式だけを並列に実行するプラン2、図11(c9に示す2つの条件を並列に実行するプラン3である。

0069

条件式が3つあるためプラン2は3種類あるが、図11(b)ではb>3だけを並列に実行するプランを記述している。条件式が3以上ある場合は、平行に実行可能な条件式を3つ以上にするプランがある。一般的に知られている分散問い合わせ最適化技術を利用して、最も高速に処理できる実行プランを選択し、そのプランを実行する。

0070

(b)ステップS62においては、第1部分検索部15hおよび第2部分検索部15iによりWHERE句内の条件式処理が行われる。詳細は次項にて説明する。

0071

(データベース管理装置のWHERE句内の条件式処理)
次に第1部分検索部15hおよび第2部分検索部15iによる条件式の処理方法について図12のフローチャートを参照して説明する。

0072

(a)先ずステップS71において、WHERE句にキー値が指定されていない場合は、第1部分検索部15hを用いて検索対象となる断片レコードが登録されているデータベース管理装置2を判定する。またWHERE句にキー値が指定されている場合は、第2部分検索部15iを用いて検索対象となる断片レコードが登録されているデータベース管理装置2を判定する。

0073

(b)ステップS72においては、特定されたデータベース管理装置2が自装置他装置かを判定し、自装置であればステップS73において後述する条件式の処理を行う。

0074

(c)他装置と判定されるとステップS74にて特定された他装置(データベース管理装置2)に条件式を送信し、条件式結果値を送信するように依頼する。ステップS75では他装置より条件式結果値を受信する。

0075

条件式の処理について、プラン毎に説明すると、プラン1では、最初にa=5を処理して条件を満たす断片レコード群を特定する。これは後述するWHERE句中の条件式の処理において、分散関数h2にカラム名aを入力することで、その結果としてカラム名aのデータを管理する1つ以上のデータベース管理装置2を特定する。そして特定したデータベース管理装置2毎にa=2を処理して、結果として断片レコード群を得る。

0076

次に、個々の断片レコード毎にb>3を処理する。後述するWHERE句中の条件式の処理において、ハッシュ関数h1にキー値とカラム名bを入力することで、該当レコードのbのカラム断片を格納する1つ以上のデータベース管理装置2を特定する。そして特定したデータベース管理装置2毎にb>3を処理して、結果として断片レコード群を得る。

0077

最後に、個々の断片レコード毎にc=10を処理する。これは後述するWHERE句中の条件式の処理において、ハッシュ関数h1にキー値とカラム名cを入力することで、該当レコードのcカラム断片を格納する1つ以上のデータベース管理装置2を特定する。そして特定したデータベース管理装置2毎にc=10を処理して、結果として断片レコード群を得る。

0078

プラン2では、a=5の処理とb>3の処理を平行に実行する。次に、a=5の結果得られた断片レコード毎にc=10を処理する。最後に、b>3の結果得られる断片レコード群とc=10を処理して得られた断片レコードの積集合を演算する。

0079

プラン3では、全ての条件を平行に実行し、得られた断片レコード群の積集合を演算する。

0080

(データベース管理装置のSELECT句処理)
次にステップS53にて検索結果構成部15jがSELECT句を処理するサブルーチンについて図13のフローチャートを参照して説明する。

0081

(a)先ずステップS81において、検索結果構成部15jがWHERE句で算出された断片レコード毎にハッシュ関数h1を用いて、該当キー値とSELECT句で指定されたカラム名を入力し、該当レコードの指定されたカラム断片を格納するデータベース管理装置を1つ以上特定する。

0082

(b)ステップS82においては、特定されたデータベース管理装置2が自装置他装置かを判定し、自装置であればステップS83においてハッシュテーブルから、検索対象の断片レコードを特定し、カラム値を取得する。

0083

(c)他装置と判定されるとステップS84にて特定された他装置(データベース管理装置2)にハッシュテーブルから、検索対象の断片レコードを特定し、カラム値を取得するよう依頼する。ステップS85では他装置よりカラム値を受信する。最後にレコード統合部15kがデータベース部3に格納される断片レコードからレコードを復元して、問い合わせ処理を実行する。

0084

このため通常の問い合わせ処理を可能にしながら、連続領域にデータを追記でき、登録処理は高速に行われる。

0085

(実施例)
次に上記の分散データベース管理システム100の動作の実施例について図14を参照して説明する。図14サプライチェーンマネージメントにおける応用例であり、クライアント端末4が応用プログラムにて「物品,212の運搬(流通)経路において、室温30度以上であった区間(IDリーダ番号)を調べたい」といった問い合わせを実行している。これはSQLで、「SELECT
IDリーダ番号 FROM流通物品WHERERFID=212 AND 温度>30」と表記される。

0086

この問い合わせがデータベース管理装置2にて実行されるとすると、まずこのSQLをパースに問い合わせ木に変換する。次にWHERE句の処理を行う。この例では、温度>30の条件式を処理するため、キー値が212、カラム名が温度である断片レコードを格納するデータベース管理装置2をハッシュ関数h1を用いて特定し、結果として4を得る。

0087

そして4で指定されるデータベース管理装置2に対して、温度>30の条件式を送信し、条件を満たす断片レコード群(キー値が212)を特定し返却してもらう。

0088

最後にSELECT句の処理を行う。キー値が212、カラム名がIDリーダ番号ある断片レコードを格納するデータベース管理装置2をハッシュ関数h1を用いて特定し、結果として2を得る。そして2で指定されるデータベース管理装置2に対して、キー値が212に該当する断片レコードを特定し、カラム値を返却してもらう。

0089

このように、本発明によると、断片レコードの登録処理が遅いという問題とディスク上の記憶領域に空きが生じてしまうという問題を解決することができる。

0090

分散するデータベース管理装置数の増加に従って大域サーバが性能上のボトルネックになってしまうという問題を解決することができる。

0091

データの登録・問い合わせ処理において格納するデータ・アクセスするデータがどのデータベース管理装置にあるかを高速に判断して、データの登録・問い合わせ処理を高速に実行することができる。

図面の簡単な説明

0092

本実施形態の実施の形態に係る分散データベース管理システムの構成を示す図である。
本実施形態の実施の形態に係るデータベース管理装置の構成を示す図である。
データベース部のデータの内部構成を示す図である。
大域サーバ1の構成を示す図である。
データベース管理装置2の初期化処理を示すフローチャートである。
大域サーバ1の情報収集処理を示すフローチャートである。
大域サーバ1のアクセス権発行処理を示すフローチャートである。
データベース管理装置2のデータ登録処理を示すフローチャートである。
データベース管理装置2の問い合わせ処理を示すフローチャートである。
データベース管理装置2のWHERE句処理を示すフローチャートである。
各プランの条件式を示す図である。
データベース管理装置2のWHERE句内の条件式処理を示すフローチャートである。
データベース管理装置2のSELECT句処理を示すフローチャートである。
本発明の実施の形態の実施例を示す図である。

符号の説明

0093

1…大域サーバ
2…データベース管理装置
3…データベース部
3a…統合レコード
4…クライアント端末
5…分散データベース管理装置群
11…入力装置
12…出力装置
13…通信制御装置
14…通信インタフェース
15…CPU
15a…データ登録処理部
15b…検索処理部
15c…ハッシュテーブル管理部
15d…関数管理部
15e…ハッシュ関数演算部
15f…分散関数演算部
15g…データ断片登録部
15h…第1部分検索部
15i…第2部分検索部
15j…検索結果構成部
15k…レコード統合部
15l…プラン生成部
16…主記憶装置
17…主記憶装置
18…ハッシュテーブル記憶部
19…関数記憶部
20…キャッシュ部
21…入力装置
22…出力装置
23…通信制御装置
24…通信インタフェース
25…CPU
25a…負荷情報収集部
25b…アクセス権管理部
25c…統計処理部
25d…アクセス権算出部
26…主記憶装置
27…負荷情報記憶部
28…アクセス権情報記憶部
100…分散データベース管理システム

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 株式会社ソケッツの「 検索装置および方法」が 公開されました。( 2019/09/19)

    【課題】同一の感性ワードで加重的に絞り込み検索を行えるようにする。【解決手段】同一の感性ワードで加重的に絞り込み検索を行う場合、類似・関連ワード抽出部319が、感性ワードに類似・関連する別のワードを検... 詳細

  • ヤフー株式会社の「 情報処理装置、情報処理方法、及び情報処理プログラム」が 公開されました。( 2019/09/12)

    【課題】ユーザの移動の妨害に応じた適切な対応を可能にする。【解決手段】本願に係る情報処理装置は、取得部と、決定部とを有する。取得部は、ユーザの位置情報と、ユーザが位置するエリアにおいて発生する事象のう... 詳細

  • ヤフー株式会社の「 情報処理装置、情報処理方法、及び情報処理プログラム」が 公開されました。( 2019/09/12)

    【課題】類似のコンテンツを適切に抽出する。【解決手段】本願に係る情報処理装置は、取得部と、検索部とを有する。取得部は、複数のコンテンツの各々に対応する複数のノードが、複数のコンテンツの類似性に応じて連... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ