JP6269140B2 - アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 - Google Patents

アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 Download PDF

Info

Publication number
JP6269140B2
JP6269140B2 JP2014026056A JP2014026056A JP6269140B2 JP 6269140 B2 JP6269140 B2 JP 6269140B2 JP 2014026056 A JP2014026056 A JP 2014026056A JP 2014026056 A JP2014026056 A JP 2014026056A JP 6269140 B2 JP6269140 B2 JP 6269140B2
Authority
JP
Japan
Prior art keywords
access
data
partition
data group
devices
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.)
Active
Application number
JP2014026056A
Other languages
English (en)
Other versions
JP2015153123A (ja
Inventor
井上 和彦
和彦 井上
寿昭 千田
寿昭 千田
希望 南
希望 南
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014026056A priority Critical patent/JP6269140B2/ja
Priority to US14/612,378 priority patent/US10102267B2/en
Publication of JP2015153123A publication Critical patent/JP2015153123A/ja
Application granted granted Critical
Publication of JP6269140B2 publication Critical patent/JP6269140B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)

Description

本発明は、アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置に関する。
分散コンピューティングにおいて、複数のノードからの資源へのアクセス方式には、シェアードエブリシング方式とシェアードナッシング方式とがあり、各々一長一短がある。シェアードエブリシング方式は、システム内のすべてのノードが資源を共有するアクセス方式である。資源を共有する場合、データベースなどの資源へのアクセスの競合を回避するための排他制御を行うこととなり、処理効率の低下を招く。排他制御の負荷の増加は、システムが大規模となりノード数が増加するほど顕著となる。
他方、シェアードナッシング方式は、ノード間で資源を共有しないアクセス方式である。シェアードナッシング方式では、各ノードがデータベース資源を共有しないため、ノード間での競合が発生せず、ノードの追加によるリニアな性能向上が見込める。
シェアードナッシング方式では、例えばデータベースが複数のパーティションに分割される。またデータベースを構成するデータテーブルに含まれる複数のデータが、種別によってグループ化され、各グループがいずれかのパーティションに対応付けられる。そしてパーティションには、対応付けられたグループのデータが格納される。各パーティションは、いずれか1つのノードからのみアクセスされる。これにより、データへのアクセスの競合の発生が回避される。
なおシステムを運用していると、管理するデータ量が増大し、資源が足りなくなることがある。その場合、例えば新たにノードを追加するスケールアウトが行われる。スケールアウトを実施した場合、データベースのパーティション分割によるデータテーブルの分割と、パーティションの各ノードへの再配置を行うこととなる。
データの分割技術としては、例えば、ハッシュ関数を用いる技術がある。この技術では、データベースの一つ又は複数のデータ項目をパーティショニングキーとし、データベースのパーティショニングキーに対してハッシュ関数を適用し、複数のバケットに分割する。
特開2001−142752号公報
しかし、シェアードナッシング方式では各ノードでのアクセス負荷の差が小さくなるように、複数のパーティションに格納するデータを決定するのが難しい。例えばハッシュ関数などにより規則的にパーティションへのデータの振り分けを行った場合、データへのアクセスの傾向が考慮されない。そのため、アクセス頻度の高いデータが集中して格納されたパーティションへのアクセスが集中し、各ノードのアクセス負荷に関し、ノード間で偏りが生じる可能性がある。ノードのアクセス負荷に偏りがあると、負荷が大きいノードでの処理が遅くなり、システムの運用効率の低下を招いてしまう。
なお、データテーブルのパーティション分割と、パーティションの各ノードへの配置について、熟練の技術者が顧客の業務内容をヒアリングし長時間かけて設計すれば、ノード間のアクセス負荷の偏りを低減することができる。ただし、技術者が常に適切な判断を下すのは困難であり、データアクセス状況が想定と大きく異なる場合もある。その場合、各ノードのアクセス負荷に偏りが生じてしまう。
しかも業務による資源へのアクセスの傾向が変動することが十分に考えられる。このような場合、運用開始時点でのアクセス負荷を均等にすることができたとしても、システムを運用している間に、各ノードのアクセス負荷に偏りが生じてしまう。
1つの側面では、本件は、データにアクセスする複数の装置間のアクセス負荷の差を小さくすることを目的とする。
1態様によれば、コンピュータに、以下の処理を実行させるアクセス制御プログラムが提供される。このアクセス制御プログラムに従ってコンピュータは、複数のアクセス装置からアクセスされるストレージ装置内のデータを複数のデータグループに分け、データグループごとの、該データグループに属するデータへのアクセス頻度を取得する。次にコンピュータは、複数のデータグループそれぞれのアクセス頻度に基づいて、複数のアクセス装置それぞれがアクセス対象とするデータグループのアクセス頻度の合計の差が小さくなるように、複数のアクセス装置それぞれがアクセス対象とするデータグループの定義を変更する。
1態様によれば、データにアクセスする複数の装置間のアクセス負荷の差が小さくなる。
第1の実施の形態のシステム構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いるデータベースサーバのハードウェアの一構成例を示す図である。 パーティショニングの一例を示す図である。 データベース内のデータグループとストレージ装置内の記憶領域との関係を示す図である。 パーティションの作成処理の一例を示す図である。 パーティションとデータ格納領域との対応関係の一例を示す図である。 インデックス再創成の一例を示す図である。 データベースサーバの機能を示すブロック図である。 統計情報記憶部のデータ構造の一例を示す図である。 メタデータ内の情報の一例を示す図である。 パーティション作成処理の手順の一例を示すフローチャートである。 パーティション構成の決定例を示す図である。 パーティション構成決定処理の手順の一例を示すフローチャートである。 現状組み合わせ確認処理の手順の一例を示すフローチャートである。 現状パーティション情報の一例を示す図である。 処理済フラグの欄を追加したデータグループリストの一例を示す図である。 新規組み合わせ作成処理の手順の一例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態のシステム構成例を示す図である。第1の実施の形態に係るシステムには、ストレージ装置1、複数のアクセス装置2,3、およびアクセス制御装置10が含まれる。
ストレージ装置1では、アクセス装置2,3によりデータの入出力が行われる。複数のアクセス装置2,3からアクセスされるストレージ装置1内のデータは、例えば複数のデータグループに分けられている。各データグループのデータは、データ領域1a内のそのデータグループに対応する格納領域に格納される。またストレージ装置1は、管理情報1bを記憶している。管理情報1bには、複数のアクセス装置2,3それぞれがアクセス対象とするデータグループが定義されている。例えば管理情報1bには、アクセス装置に対応付けて、そのアクセス装置がアクセス対象とする1以上のデータグループが設定されていると共に、データグループに対応付けて、そのデータグループに属するデータを格納する記憶領域を示す情報が設定されている。
アクセス装置2,3は、ネットワークなどを経由したデータへのアクセス要求に応じて、ストレージ装置1内のデータにアクセスする。例えばアクセス装置2,3は、シェアードナッシング方式によりアクセスを行う。すなわちストレージ装置1内のアクセス単位の単位データは、いずれか1台のアクセス装置からのみアクセスされる。例えばアクセス装置2,3は、管理情報1bを参照することで、自己のアクセス対象とするデータグループを認識する。そしてアクセス装置2,3は、自己のアクセス対象のデータグループ内のデータに対してのみ参照または書き込みのアクセスを実行する。
またアクセス装置2,3は、それぞれアクセス頻度記憶手段2a,3aを有している。アクセス頻度記憶手段2a,3aには、アクセス装置2,3からストレージ装置1内のデータへの、データグループごとのアクセス頻度を示す情報が格納される。アクセス頻度は、例えば対応するデータグループ内のデータへの、所定期間内でのアクセス回数である。アクセス装置2,3は、ストレージ装置1内のデータにアクセスするごとに、アクセス対象のデータが属するデータグループのアクセス頻度を更新する。またアクセス装置2,3は、例えばアクセス制御装置10からの要求に応じて、アクセス頻度をアクセス制御装置10に送信する。
アクセス制御装置10は、アクセス装置2,3それぞれがアクセス対象とするデータグループを決定する。そのためにアクセス制御装置10は、取得手段11と変更手段12とを有する。
取得手段11は、アクセス装置2,3から、データグループごとの、データグループに属するデータへのアクセス頻度を示す情報を取得する。例えば取得手段11は、管理情報の更新要求が入力されると、アクセス装置2,3に対してアクセス頻度の取得要求を送信し、アクセス装置2,3からアクセス頻度を示す情報を受け取る。取得手段11は、取得した情報を変更手段12に渡す。
変更手段12は、複数のデータグループそれぞれのアクセス頻度に基づいて、複数のアクセス装置2,3それぞれがアクセス対象とするデータグループのアクセス頻度の合計の差が小さくなるように、管理情報1bを変更する。
例えば変更手段12は、複数のアクセス装置2,3それぞれが行ったデータアクセスのアクセス頻度の平均値を求め、アクセス頻度がその平均値から所定の範囲内のアクセス装置については、アクセス対象とするデータグループの変更を抑止することができる。これにより、構成するデータグループの変更に伴い再創成されるインデックスの数が削減され、処理が効率化される。
また変更手段12は、管理情報1bを変更する際には、データグループに対応付けられた記憶領域を示す情報を維持したまま、アクセス装置に対応付けて設定されている、そのアクセス装置がアクセス対象とするデータグループの構成を変更することができる。データグループに対応付けられた記憶領域を示す情報を変更せずに維持することで、データ領域1a内でのデータの移動をせずに済む。その結果、アクセス装置2,3からアクセス対象とするデータグループの変更が容易となる。
このようなシステムによれば、例えば、アクセス装置2,3は、アクセス要求を受信すると、管理情報1bを参照し、アクセス要求で指定されたデータが、自己のアクセス対象のデータグループに属しているかどうかを判断する。そしてアクセス装置2,3は、自己のアクセス対象のデータグループに属していれば、アクセス要求で指定されたストレージ装置1内のデータにアクセスする。アクセス装置2,3は、データアクセスを行うと、そのデータが属するデータグループのアクセス頻度を更新する。
その後、アクセス制御装置10に管理情報の更新要求が入力されると、取得手段11がアクセス装置2,3からアクセス頻度を示す情報を取得する。取得したアクセス頻度を示す情報は、変更手段12に渡される。
アクセス頻度を示す情報を受け取った変更手段12は、複数のアクセス装置2,3それぞれがアクセス対象とするデータグループのアクセス頻度の合計の差が小さくなるように、管理情報1bを変更する。図1の例では、2台のアクセス装置2,3があるため、変更手段12は、データグループの組み合わせを2組生成する。このとき、すべてのデータグループが、いずれかの組に含まれるようにする。この際、変更手段12は、各組に含まれるデータグループのアクセス頻度の合計の差が小さくなるようにする。変更手段12は、生成した2つの組それぞれを、2台のアクセス装置2,3それぞれのアクセス対象に決定する。そして変更手段12は、決定に従って、管理情報1bを更新する。
このようにして、アクセス装置間のアクセス負荷の差を小さくすることができる。例えば図1の例では、管理情報1bの更新前は、アクセス装置2のアクセス対象として、データグループ名「Group001,Group003,Group006」の3つのデータグループが設定されている。またアクセス装置のアクセス対象として、データグループ名「Group002,Group004,Group005」の3つのデータグループが設定されている。この場合、アクセス頻度の高い方から2つのデータグループ「Group002,Group005」が、共にアクセス装置3のアクセス対象となっている。そのため、アクセス装置2とアクセス装置3とのアクセス負荷を比較すると、アクセス負荷がアクセス装置3に偏っている。
図1の例において、更新後の管理情報1bでは、アクセス装置2のアクセス対象が、データグループ名「Group001,Group002,Group004」の3つのデータグループに変更されている。更新後のアクセス装置2のアクセス対象のデータグループのアクセス頻度の合計は、「1287」である。またアクセス装置のアクセス対象が、データグループ名「Group003,Group005,Group006」の3つのデータグループに変更されている。更新後のアクセス装置3のアクセス対象のデータグループのアクセス頻度の合計は、「1330」である。このように、アクセス制御装置10による管理情報1bの更新により、アクセス装置2,3がアクセス対象とするデータグループのアクセス頻度の合計の差が小さくなっている。その結果、アクセス装置2,3のアクセス負荷の差も小さくなる。アクセス装置2,3のアクセス負荷の差が小さくなることで、システム全体のデータアクセス効率が向上する。
なお、アクセス制御装置10やアクセス装置2,3は、例えばコンピュータで実現することができる。その場合、取得手段11と変更手段12は、例えばアクセス制御装置10が有するプロセッサにより実現される。また、アクセス頻度記憶手段2a,3aは、例えばアクセス装置2,3が有するメモリにより実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、複数のストレージ装置に格納されているデータに複数のデータベースサーバでアクセスする際に、複数のデータベースサーバのアクセス負荷の均等化を図るものである。なお、第2の実施の形態における負荷の均等化とは、負荷の差を小さくすることであり、最終的に負荷に多少の差が出ることは許容される。
第2の実施の形態では、シェアードナッシング方式により複数のデータベースサーバからアクセスが可能なように、RDB(Relational DataBase)が複数のパーティションに分割されている。パーティションは、論理的な複数のデータグループ(例えば商品コードのようなグループ)で構成される。そして、データグループごとのアクセス頻度に基づいて、少なくとも一部のデータグループを他のパーティションに移動させ、各パーティションのアクセス頻度が均一となるように、パーティションの再構成が行われる。ここでパーティションの再構成とは、パーティションに含まれるデータグループの組み合わせを変更する処理である。パーティションの再構成を行うことにより、複数のデータベースサーバ間の負荷バランスが均一化できる。
なお、パーティションの再構成を行う際は、例えば、アクセスが高いグループとアクセスが低いグループを組み合わせて、パーティションを構築することで、平均的なアクセス頻度を有するパーティションを構築できる。またパーティションの再構成の際は、テーブルデータの移動を伴わず、メタデータの変更で実施することができる。
図2は、第2の実施の形態のシステム構成例を示す図である。複数のアプリケーションサーバ31〜34が、ネットワーク20aを介して複数のデータベースサーバ100,200に接続されている。アプリケーションサーバ31〜34は、端末装置41,42,・・・からの処理要求に応じてアプリケーションプログラムを実行するコンピュータである。データベースサーバ100,200は、データベースを管理するコンピュータである。
ネットワーク20aには、さらに端末装置41,42,・・・が接続されている。端末装置41,42,・・・は、ユーザの操作に応じた処理を実行するコンピュータである。複数のデータベースサーバ100,200は、ネットワーク20bを介してストレージ装置300,400に接続されている。ストレージ装置300,400は、1以上のHDD(Hard Disk Drive)またはSSD(Solid State Drive)を内蔵している。
ストレージ装置300,400には、データベースを構成するデータが分散格納されている。データベースは、複数のパーティションに分割されている。またデータベース内のデータは複数のデータグループに分けられており、各データグループはいずれかのパーティションに対応付けられている。各パーティションは、いずれか1台のデータベースサーバに対応付けられている。パーティションに含まれるデータグループのデータは、そのパーティションに対応付けられたデータベースサーバからのみアクセスされる。
端末装置41,42,・・・は、ユーザからの入力に応じて、アプリケーションサーバ31〜34に対して処理要求を送信する。アプリケーションサーバ31〜34は、処理要求に応じて処理を実行する。またアプリケーションサーバ31〜34は、データベース内のデータの参照またはデータの更新のアクセスを伴う処理が発生すると、いずれか一方のデータベースサーバにデータのアクセス要求を送信する。データのアクセス要求を受信したデータベースサーバは、アクセス対象のデータが、自己のアクセス対象のデータであれば、そのストレージ装置内の該当データにアクセスする。またデータベースサーバは、アクセス対象のデータが自己のアクセス対象のデータでなければ、別のデータベースサーバにデータへのアクセスを依頼する。
このようなシステムにおいて、複数のデータベースサーバ100,200の処理負荷が均等化するように、パーティションの再構成が行われる。
図3は、第2の実施の形態に用いるデータベースサーバのハードウェアの一構成例を示す図である。データベースサーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、データベースサーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、データベースサーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSDのようなフラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、データベースサーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108a,108bは、それぞれネットワーク20a,20bに接続されている。ネットワークインタフェース108aは、ネットワーク20aを介して、アプリケーションサーバ31〜34との間でデータの送受信を行う。ネットワークインタフェース108bは、ネットワーク20bを介して、ストレージ装置300,400との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示したアクセス制御装置10およびアクセス装置2,3も、図3に示したデータベースサーバ100と同様のハードウェアにより実現することができる。
データベースサーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。データベースサーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、データベースサーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またデータベースサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
ここで、データベースのパーティショニングについて説明する。
図4は、パーティショニングの一例を示す図である。端末装置41,42,・・・は、ユーザからの操作に応じて、いずれかのアプリケーションサーバ31〜34に処理要求を送信する。アプリケーションサーバ31〜34は、処理要求時に応じた処理の実行過程でデータベース50内のデータを利用する処理が発生すると、いずれかのデータベースサーバ100,200に、利用するデータのアクセス要求を送信する。
データベース50内のデータは、複数のパーティション51,52に分割されている。データベースサーバ100,200は、それぞれアクセス対象とするパーティションが決められている。図4の例では、パーティション51はデータベースサーバ100のアクセス対象であり、パーティション52はデータベースサーバ200のアクセス対象である。
データベースサーバ100,200は、自身のアクセス対象とするパーティション内のデータへのアクセス要求を受信した場合、そのデータに対するアクセスを実行する。そしてデータベースサーバ100,200は、アクセス要求の送信元にアクセスの実行結果を応答する。例えばデータベースサーバ100は、アプリケーションサーバ31からパーティション51内のデータへのアクセス要求を受信すると、そのデータにアクセスし、アプリケーションサーバ31にアクセス結果を応答する。
またデータベースサーバ100,200は、他のデータベースサーバがアクセス対象とするパーティション内のデータへのアクセス要求を受信した場合、そのデータが属するパーティションをアクセス対象とするデータベースサーバにアクセス要求を転送する。この場合、転送されたアクセス要求を受信したデータベースサーバが、アクセス要求に示されたデータへのアクセスを行う。例えばデータベースサーバ100は、アプリケーションサーバ32からパーティション52内のデータへのアクセス要求を受信すると、アクセス要求をデータベースサーバ200に転送する。データベースサーバ200は、転送されたアクセス要求に応じて、パーティション52内のデータにアクセスし、データベースサーバ100にアクセス結果を応答する。データベースサーバ100は、データベースサーバ200からのアクセス結果の応答を、アプリケーションサーバ32に転送する。
このようなパーティショニング技術において、各データベースサーバ100,200のアクセス負荷が均一になるように、人手によりテーブルパーティショニングの設計を実施するのは困難である。例えばパーティション51内には、商品グループ番号が「1001〜2000」の各商品グループが属しているものとする。またパーティション52内には、商品グループ番号が「2001〜3000」の各商品グループが属しているものとする。この場合において、注文の90%を商品グループ番号「1001〜1010」の商品グループが占めている場合、2台のデータベースサーバ100,200の負荷分散が有効に行われない。従って、商品グループ数を均等にするといった単純な設計では、各データベースサーバ100,200のアクセス負荷を均一にできない。そこで第2の実施の形態では、データベースサーバ100,200においてデータグループごとのアクセス頻度が採取され、パーティショニングの際には、アクセス頻度に基づいて各パーティションに属するデータグループが決定される。
図5は、データベース内のデータグループとストレージ装置内の記憶領域との関係を示す図である。データベースを構成するデータテーブル内のデータは、複数のデータグループに分類されている。ストレージ装置300,400内のデータベース領域60には、データグループごとのデータ格納領域61が用意される。データグループごとの複数のデータ格納領域61は、それぞれストレージ装置300,400の記憶領域の一部である。データグループ内のデータは、そのデータグループに対応するデータ格納領域に格納される。1つのデータグループのデータを格納するデータ格納領域61は、連続した複数のページで構成される。これにより1つのデータグループのデータは、連続した記憶領域にまとめて格納される。同じデータグループのデータは、同じデータベースサーバからアクセスされるため、データをまとめることで、アクセス効率を向上させることができる。
ここで各データグループのデータ格納領域の空領域が少なくなると、データ格納領域が拡張される。例えば、データベースサーバ100,200が単位時間あたりの領域使用量を統計情報として保持し、その統計情報に基づいて1回の拡張量が決定される。この場合、使用量が多いデータグループのデータ格納領域ほど、1回の拡張量を大きくすることができる。このように領域使用量の統計情報を元に1回の領域拡張量を決定することにより、過大な量の拡張が行われることが抑止され、データベース領域60内の記憶領域の使用効率を高めることができる。
他方、データ格納領域がほとんど使用されていないデータグループについては、例えば空き領域の一部を返却させることができる。返却させるとは、データ格納領域の少なくとも一部のページについて、データグループへの割り当てを解除することである。このように、領域使用量が少ないデータ格納領域(例えば初期割付け領域)の返却を行うことで、データベース領域60内の記憶領域の使用効率を高めることができる。
また、第2の実施の形態では、採取した統計情報に基づいて、パーティションが作成される。
図6は、パーティションの作成処理の一例を示す図である。各データグループのアクセス数がデータベースサーバ100,200で統計情報62として採取され、保持される。そしてデータベースサーバ100,200のいずれかが、パーティション作成処理を行う。パーティション作成処理では、アクセス量が均一になるようにデータグループの組み合わせ(データグループ集合)が決定される。例えばデータグループが、アクセス数で降順にソートされる。その後、例えば、アクセス数が上位のデータグループと、下位のデータグループとを組み合わせたデータグループ集合が作成される。またアクセス数が平均的な複数のデータグループを組み合わせたデータグループ集合が作成される。そして、各データグループ集合にパーティション63,64が対応付けられる。
パーティション63,64それぞれに対応するデータグループ集合内のデータグループのデータを格納しているデータ格納領域が、各パーティションのデータを格納するデータ格納領域となる。作成されたパーティション63,64は、図4に示したように、それぞれ1台ずつのデータベースサーバからのアクセス対象とされる。
このように、複数のパーティションへのデータグループの振り分けを、アクセス数に基づいて適切に行うことで、データベースサーバ100,200間の均一な負荷分散を実現できる。
なお、運用中のシステムにおいてパーティションを作成し直す場合において、データベース50内のデータをすべて他の記憶装置に退避したのでは、データの再配置に時間がかかりすぎる。例えば、急激に商品グループ「1500〜1510」の注文が増加したことで、パーティション51をアクセス対象とするデータベースサーバ100のアクセス負荷が増加した場合を想定する。このとき、各データベースサーバ100,200の負荷分散を均一にするため、例えば、データのアンロード、パーティション定義の変更、変更後のパーティション定義に合わせたデータのロードといった処理を行うことが考えられる。この一連の処理では、データベース規模に応じて処理時間がかかる。例えばデータが10テラバイトの場合、100M/sのI/O性能で再編成を行っても約56時間かかる。
第2の実施の形態では、パーティションを再作成した場合、パーティションとデータグループとの対応関係を変更するものの、データを一端退避した上での再格納は行わない。これにより、パーティションを再作成した際にも、新しいパーティションによるデータアクセスに短時間で切り替えることができるようにする。パーティションとデータグループとの対応関係、およびデータグループとデータ格納領域との対応関係は、例えばメタデータに定義される。
図7は、パーティションとデータ格納領域との対応関係の一例を示す図である。メタデータ340には、パーティションごとに、そのパーティションに属するデータグループが定義されている。またメタデータ340には、データグループごとに、そのデータグループに属するレコードを格納するストレージ装置300,400内の記憶領域が定義されている。その結果、メタデータ340を参照すれば、アクセス対象となるデータを含むレコードが属するデータグループと、そのデータグループが属するパーティションとが判明する。
従って、メタデータ340の内容を更新すれば、データベースサーバ100,200がアクセスするパーティションに属するデータグループを変更することができる。そこで、第2の実施の形態では、データベースサーバ100,200間の負荷に偏りが生じた場合、パーティションとデータグループの関係をメタデータ340内で変更する。これにより、データの移動を伴わずに済み、データベースの規模に依存せず短時間でパーティションの設定変更が可能になる。
なお、第2の実施の形態では、複数のストレージ装置間でのI/Oの頻度の偏りの解消は目的としておらず、パーティションの再作成に伴ってデータの移動は行われない。そのため、複数のストレージ装置間でのI/Oの頻度の偏りが継続する可能性がある。しかし、近年のストレージ装置は進化しており、I/O速度が非常に高速になっているため、複数のストレージ装置間でのI/Oの頻度の偏りがシステム全体に与える影響は少ない。例えば、データベースデータ格納先としてSSD(メモリ)を使用することで、ストレージ装置のI/O速度が飛躍的に向上している。また、ディスクI/O負荷に応じて自動的にデータを再配置するストレージ装置もある。このように、ストレージ装置のI/Oの高速化技術の発達により、データの配置においてI/O負荷分散を意識せずに済む場合が多くなっている。
そうすると、データベースサーバ間での負荷の偏りを解消すれば、システム全体の処理効率を改善できることとなる。そこで、第2の実施の形態では、パーティションの再構成の際には、ストレージ装置間でのI/Oの偏りの解消を諦めることで、データベースサーバ間の負荷を均等化するためのパーティションへの切り替えに要する時間を短縮する。これにより、効率的なデータアクセス環境への変更が容易に実行可能となる。
なおパーティション構成の変更に伴い、各パーティションのインデックスが再創成される。インデックスは、例えばB木などのデータ構造を有する。B木は、データ構造を表す構造モデルの一種である。B木では、複数のノードが木構造で接続される。
図8は、インデックス再創成の一例を示す図である。図に示すように、パーティションの再作成により、各パーティションに含まれるデータグループの組み合わせが変更される。この場合、例えば変更前のインデックス71,72が読み込みまれ、新しいデータグループの組み合わせに応じて、レコードの集合が生成される。そしてパーティションごとのレコードの集合に対して、レコードのソートやページ組立などが行われ、インデックス73,74が生成される。生成されたインデックス73,74がメモリなどに書き込まれる。生成されたインデックス73,74を用いることで、新たなパーティション内のレコードを効率的に利用できるようになる。
次に、第2の実施の形態に係るパーティション作成処理を実現するための、データベースサーバ100,200の機能について説明する。
図9は、データベースサーバの機能を示すブロック図である。データベースサーバ100は、アクセス部110とパーティション管理部120とを有する。アクセス部110は、アプリケーションサーバ31,32からのアクセス要求に応じて、ストレージ装置300,400にアクセスする。アクセス部110は、統計情報記憶部111、要求処理部112、およびデーモン113を有する。
統計情報記憶部111は、データグループごとの、そのデータグループ内のデータに対するアクセス回数などの統計情報を記憶する。例えばメモリ102の記憶領域の一部が、統計情報記憶部111として使用される。統計情報記憶部111内の統計情報は、例えばデーモンによって統計情報退避ファイル330に定期的に格納される。
要求処理部112は、アプリケーションサーバ31,32からのアクセス要求に応じて起動され、アクセス要求に応じた処理を実行する。複数のアクセス要求が入力された場合、アクセス要求ごとの要求処理部112が起動される。起動された要求処理部112は、メタデータ340を参照し、アクセス要求で指定されたデータが、データベースサーバ100自身のアクセス対象としているパーティション内のデータなのか否かを判断する。データベースサーバ100自身がアクセス対象としているパーティション内のデータへのアクセス要求であれば、要求処理部112は、データベースアクセス用のデーモン113に該当データへのアクセスを依頼する。他方、他のデータベースサーバ200がアクセス対象としているパーティション内のデータへのアクセス要求であれば、要求処理部112は、データベースサーバ200に該当データのアクセス要求を送信する。要求処理部112は、デーモン113またはデータベースサーバ200から、データのアクセス結果を取得すると、アクセス要求の送信元であるアプリケーションサーバに、アクセス結果を応答する。
なお要求処理部112は、データベースサーバ200からアクセス要求を受信する場合がある。例えばアプリケーションサーバ33,34からデータベースサーバ200に、データベースサーバ100がアクセス対象とするパーティション内のデータへのアクセス要求が出された場合である。データベースサーバ200からデータのアクセス要求を受信した要求処理部112は、データベースアクセス用のデーモン113に該当データへのアクセスを依頼する。そして要求処理部112は、アクセス結果をデータベースサーバ200に応答する。
また要求処理部112は、データのアクセスを行うごとに、統計情報記憶部111内の統計情報を更新する。例えば要求処理部112は、データへのアクセスを行うごとに、アクセスされたデータが属するデータグループに対応付けられたアクセス回数の値をカウントアップする。
デーモン113は、ストレージ装置300,400に対して、データアクセス処理を行う。なお、デーモン113は、ストレージ装置300,400へのデータアクセスごとに起動される。複数のデータアクセスが並行して実行される場合、複数のデーモン113が起動される。
パーティション管理部120は、データベースのパーティション分割処理を行う。例えばパーティション管理部120は、端末装置41からのパーティション分割指示に従って、パーティション分割を行う。パーティション管理部120は、データベースの運用中にパーティション分割指示を受け取った場合、パーティションを再作成し、新たに作成したパーティションをデータベースサーバ100,200からのアクセス対象とする。
パーティション分割指示を受け取ったパーティション管理部120は、例えば、各データベースサーバ100,200のアクセス部110,210から、統計情報記憶部111,211内の統計情報を取得する。またパーティション管理部120は、ストレージ装置300,400に保存されている統計情報退避ファイル330,430から統計情報を取得してもよい。
パーティション管理部120は、取得した統計情報に基づいて、データベースサーバの台数分のパーティションを作成する。その際、パーティション管理部120は、各パーティションに対して、アクセス頻度が均等になるように1以上のデータグループが割り当てる。そしてパーティション管理部120は、作成したパーティションそれぞれを、いずれかのデータベースサーバ100,200のアクセス対象に決定する。パーティション管理部120は、作成したパーティションの情報をメタデータ340としてストレージ装置300に格納する。そして、パーティション管理部120は、パーティションを作成したことを、各データベースサーバ100,200のアクセス部110,210に通知する。アクセス部110,210は、その通知を受け、メタデータ340を参照し、新たに作成されたパーティションに従って、自身がサクセス対象とするパーティションを認識する。
なお、図9の例では、端末装置41からデータベースサーバ100にパーティション分割指示が出されているため、データベースサーバ100内にパーティション管理部120が存在している。端末装置41からデータベースサーバ200にパーティション分割指示が出された場合、パーティション管理部120と同じ機能を実行するプロセスが、データベースサーバ200内に生成される。
データベースサーバ200は、アクセス部210を有する。またアクセス部210は、統計情報記憶部211、要求処理部212、およびデーモン213を有する。アクセス部210内の各要素の機能は、データベースサーバ100のアクセス部110内の同名の要素と同じである。
ストレージ装置300は、DBデータ310、ログファイル320、統計情報退避ファイル330、メタデータ340を有する。またストレージ装置400は、DBデータ410、ログファイル420、および統計情報退避ファイル430を有する。DBデータ310,410は、データベースを構成する複数のデータグループの内の少なくとも一部のデータグループのデータである。ログファイル320,420は、トランザクションログなどの、データへのアクセスログである。統計情報退避ファイル330,430は、統計情報を含むファイルである。メタデータ340は、作成されたパーティションを示す情報である。
図9に示すデータベースサーバ100は、図1に示した第1の実施の形態におけるアクセス装置2とアクセス制御装置10とを包含する装置の一例である。データベースサーバ100内のアクセス部110がアクセス装置2の機能を実現し、パーティション管理部120がアクセス制御装置10の機能を実現している。また図9に示すストレージ装置300,400は、図1に示した第1の実施の形態におけるストレージ装置1の一例である。ストレージ装置300内のメタデータ340は、第1の実施の形態における管理情報1bの一例である。
なお図9に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図9に示したデータベースサーバ100,200内の各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次に、統計情報記憶部111に格納される統計情報について具体的に説明する。
図10は、統計情報記憶部のデータ構造の一例を示す図である。統計情報記憶部111には、統計情報管理テーブル111aが格納されている。統計情報管理テーブル111aには、ネットワーク20a,20bを介した通信のコネクションごとの統計情報が登録されている。統計情報管理テーブル111aには、コネクション、接続時刻、データグループ、レコード参照回数、およびレコード更新回数の欄が設けられている。コネクションの欄には、接続されたコネクションの識別子(コネクションID)が設定される。接続時刻の欄には、コネクションの接続が確立した時刻が設定される。データグループの欄には、コネクションを介して受信したアクセス要求に基づいてアクセスしたデータが属するデータグループの名称(データグループ名)が設定される。レコード参照回数の欄には、対応するデータグループ内のレコードの参照回数が設定される。レコード更新回数の欄には、対応するデータグループ内のレコードの更新回数が設定される。
次にメタデータ340の内容について具体的に説明する。
図11は、メタデータ内の情報の一例を示す図である。メタデータ340には、パーティション管理テーブル341、分類基準カラム情報342、およびデータグループ情報テーブル343が含まれている。
パーティション管理テーブル341は、パーティションとデータグループとの対応関係を保持するデータテーブルである。パーティション管理テーブル341には、パーティション名、ノード名、構成データグループ数、構成データグループ名などの情報が設定されている。パーティション名の欄には、パーティション名が設定される。ノード名の欄には、パーティション名で示されるパーティション内のデータをアクセス対象とするデータベースサーバの名称が設定される。構成データグループ数の欄には、パーティションに含まれるデータグループの数量が設定される。構成データグループ名の欄には、パーティションに含まれる1以上のデータグループの名称が設定される。なおデータベースが複数のテーブルで構成される場合、パーティション管理テーブル341は、テーブルごとに設けられる。
分類基準カラム情報342は、データベース内のレコードを複数のグループに分ける際の、分類基準として参照するカラムに関する情報である。分類基準カラム情報342には、カラム数、カラム名などの情報が含まれる。カラム数は、分類基準として参照するカラムの数である。カラム名は、分類基準として参照するカラムの名称である。なおデータベースが複数のテーブルで構成される場合、分類基準カラム情報342は、テーブルごとに設けられる。
データグループ情報テーブル343は、データグループに関する情報を保持するデータテーブルである。データグループ情報テーブル343には、データグループ名、データ値、及び格納域情報の欄が設けられている。データグループ名の欄には、データグループの名称が設定される。データ値の欄には、データグループに属するレコードの、分類基準として参照するカラムの値が設定される。格納域情報の欄には、データグループに属するレコードの格納領域に関する情報が設定される。格納域情報には、例えばスペース名、サイズ、先頭ブロック番号が含まれる。スペース名は、データグループに属するレコードが格納されたストレージ装置の識別情報である。サイズは、データグループに属するレコードの格納用に用意された記憶領域のサイズである。先頭ブロック番号は、データグループに属するレコードの格納用に用意された記憶領域の先頭のブロック番号である。
各データベースサーバ100,200の要求処理部112,212は、図11に示したようなメタデータ340を参照して、自身がアクセス対象とするデータグループ、およびそのデータグループのデータが格納された記憶領域を認識する。例えばアプリケーションサーバ31から要求処理部112にデータのアクセス要求が入力された場合を想定する。アクセス要求には、アクセス対象のデータを含むレコードの商品グループコードが示されているものとする。
この場合、要求処理部112は、分類基準カラム情報342に基づいて、商品グループコードの値によってデータグループが作成されていることを認識する。そして要求処理部112は、データグループ情報テーブル343を参照し、アクセス要求に示される商品グループコードのデータ値が設定されたデータグループのデータグループ名を取得する。次に要求処理部112は、パーティション管理テーブル341を参照し、取得したデータグループ名が、構成データグループ名として設定されたレコードのノード名を取得する。
要求処理部112は、取得したノード名が、データベースサーバ100の名称であれば、アクセス要求で指定されたデータがデータベースサーバ100からのアクセス対象であると判断する。データベースサーバ100からのアクセス対象であれば、要求処理部112は、デーモン113を介して、アクセス要求で指定されたデータへのリードまたはライトのアクセスを行う。
他方、取得したノード名が、データベースサーバ200の名称の場合、要求処理部112は、アクセス要求で指定されたデータがデータベースサーバ200のアクセス対象であると判断する。データベースサーバ200のアクセス対象であれば、要求処理部112は、データベースサーバ200のアクセス部210に、アクセス要求を転送する。するとデータベースサーバ200のアクセス部210により、アクセス要求で指定されたデータへのリードまたはライトのアクセスが行われる。
データベースサーバ100,200は、このようなアクセス手順でストレージ装置300,400内のデータへアクセスする。そのため、パーティション管理テーブル341におけるパーティション名と構成データグループ名との対応関係を変更すれば、各データベースサーバ100,200内のアクセス部110,210に対して、変更後のパーティションの構成を認識させることができる。
なおアクセス部110,210は、メタデータ340のコピーを、ローカルのメモリ内に格納しておくことができる。この場合、例えばパーティション管理部120は、メタデータ340の内容を更新したときに、アクセス部110,210に対して、メタデータが更新されたことを通知する。この通知に応じて、アクセス部110,210は、ストレージ装置300からメタデータ340を読み出し、自己の管理するメモリ領域にコピーする。これよりアクセス部110,210は、アクセス要求を受信するごとにストレージ装置300内のメタデータ340を参照せずに済み、処理が効率的にとなる。
次に、パーティション作成処理手順について詳細に説明する。
図12は、パーティション作成処理の手順の一例を示すフローチャートである。
[ステップS101]パーティション管理部120は、端末装置41からのパーティション分割指示に応答し、パーティション管理部120は、統計情報を集計する。例えばパーティション管理部120は、各データベースサーバ100,200のアクセス部110,210内の統計情報記憶部111,211から統計情報を取得する。そしてパーティション管理部120は、取得した統計情報に基づいて、データグループごとに、アクセス量を計算する。アクセス量は、データグループに対応するレコード参照回数とレコード更新回数との合計である。
[ステップS102]パーティション管理部120は、統計情報をソートする。例えばパーティション管理部120は、データグループを、アクセス量の大きい順(降順)にソートする。
[ステップS103]パーティション管理部120は、パーティションの構成を決定する。パーティション構成決定処理の詳細は後述する(図13参照)。
[ステップS104]パーティション管理部120は、新たに決定したパーティションの構成内容に合わせて、メタデータ340を更新する。
[ステップS105]パーティション管理部120は、パーティションを1つ選択する。
[ステップS106]パーティション管理部120は、選択したパーティションの構成に変更があるか否かを判断する。構成に変更があれば、処理がステップS107に進められる。構成に変更がなければ、処理がステップS108に進められる。
[ステップS107]パーティション管理部120は、パーティションの構成が変更された場合、そのパーティションのインデックスを再創成する。再創成されたインデックスは、例えばDBデータ310,410の格納領域に格納される。
[ステップS108]パーティション管理部120は、未選択のパーティションがあるか否かを判断する。未選択のパーティションがある場合、処理がステップS105に進められる。すべてのパーティションが選択済みの場合、パーティション作成処理が終了する。
次に、パーティション構成決定処理について詳細に説明する。
図13は、パーティション構成の決定例を示す図である。パーティションを構成するデータグループを決定する場合、図13に示すように、アクセス量でソートされたデータグループリスト80が用いられる。
パーティション管理部120は、アクセス量でソートされたデータグループリスト80に基づいて、1パーティション当たりのアクセス量の平均値を求める。平均値は、アクセス量の合計を、パーティション数で割った値である。そして、パーティション管理部120は、組み合わせたデータグループのアクセス量の合計が、平均値に近づくように、データグループを組み合わせる。
例えばパーティション管理部120は、データグループリスト80の上位から順にデータグループを選択し、選択したデータグループに対して、下位からの1または複数のデータグループを組み合わせる。図13の例では、最もアクセス量が多いデータグループと、最もアクセス量が少ないデータグループとを組み合わせている。また2番目にアクセス量が多いデータグループと、2番目と3番目にアクセス量が少ないデータグループとを組み合わせている。
なおパーティション管理部120は、パーティション変更時は、多少アクセス量の合計値が平均と違っても、平均値との違いが所定の範囲内にあるパーティションについては、現状の組み合わせを変更しないようにする。これによりインデックスの再創成数を最小に抑え、インデックスの創成時間を短縮できる。
以下、パーティション構成決定処理の手順について説明する。
図14は、パーティション構成決定処理の手順の一例を示すフローチャートである。
[ステップS121]パーティション管理部120は、各パーティションの現状のデータグループの組み合わせを確認する。この処理の詳細は後述する(図15参照)。
[ステップS122]パーティション管理部120は、現状のデータグループの組み合わせを元にして、データベースサーバ100,200間の負荷が均等化されるような新規の組み合わせを作成する。この処理の詳細は後述する(図17参照)。
次に、現状組み合わせ確認処理の詳細について説明する。
図15は、現状組み合わせ確認処理の手順の一例を示すフローチャートである。
[ステップS131]パーティション管理部120は、現状のパーティションを1つ選択する。例えばパーティション管理部120は、メタデータ340内のパーティション管理テーブル341を取得し、メモリ102上に展開する。次にパーティション管理部120は、展開したパーティション管理テーブルに組み合わせ決定フラグ欄を追加して、現状パーティション情報とする。そしてパーティション管理部120は、現状パーティション情報の上位から順に、パーティションを1つずつ選択し、以下のステップS132〜S135の処理を行う。
[ステップS132]パーティション管理部120は、選択したパーティションのアクセス量の合計値が、平均値から所定の範囲内(例えば上下10%以内)か否かを判断する。合計値が平均値から所定の範囲内であれば、処理がステップS133に進められる。また合計値が平均値から所定の範囲内になければ、処理がステップS135に進められる。
[ステップS133]パーティション管理部120は、選択したパーティションに対して組み合わせ決定済フラグを設定する。例えばパーティション管理部120は、メモリ102上に展開した現状パーティション情報における、選択したパーティションの組み合わせ決定フラグの欄に、決定済を示す値(決定済フラグ)を設定する。
[ステップS134]パーティション管理部120は、選択したパーティションを構成するデータグループに構成済フラグを設定する。例えばパーティション管理部120は、アクセス量でソートされたデータグループリスト80に、処理済フラグの欄を追加する。そしてパーティション管理部120は、選択したパーティションを構成するデータグループの処理済フラグの欄に、処理済であることを示す値(処理済フラグ)を設定する。
[ステップS135]パーティション管理部120は、未処理のパーティションがあるか否かを判断する。未処理のパーティションがあれば、処理がステップS131に進められる。未処理のパーティションがなければ、現状組み合わせ確認処理が終了する。
図16は、現状パーティション情報の一例を示す図である。現状パーティション情報81は、パーティション管理テーブル341(図11参照)に、組み合わせ決定フラグの欄を追加したものである。組み合わせ決定フラグには、対応するパーティションを構成するデータグループの組み合わせが決定したときに、決定済フラグが設定される。例えば、組み合わせ決定フラグの欄には初期値「0」が設定されており、パーティションの組み合わせが決定したときに、そのパーティションの組み合わせ決定フラグの欄の値が「1」に変更される。
図17は、処理済フラグの欄を追加したデータグループリストの一例を示す図である。データグループリスト82に追加された処理済フラグの欄には、対応するデータグループが属するパーティションが決定したときに、処理済フラグが設定される。例えば、処理済フラグの欄には初期値「0」が設定されており、データグループが属するパーティションが決定したときに、そのデータグループの処理済フラグの欄の値が「1」に変更される。
現状組み合わせ確認処理が終了すると、次に新規組み合わせ作成処理が行われる。
図18は、新規組み合わせ作成処理の手順の一例を示す図である。
[ステップS141]パーティション管理部120は、データグループの組み合わせが決定していないパーティションを1つ選択する。例えばパーティション管理部120は、現状パーティション情報81を参照し、決定済フラグが設定されていないパーティションの1つを選択する。
[ステップS142]パーティション管理部120は、降順でソート後のデータグループリスト82において処理済フラグが設定されていないデータグループを、上位から1つ選択する。
[ステップS143]パーティション管理部120は、降順でソート後のデータグループリスト82において処理済フラグが設定されていないデータグループを、下位から1つ選択する。
[ステップS144]パーティション管理部120は、選択したデータグループのアクセス量を合計する。
[ステップS145]パーティション管理部120は、選択したデータグループのアクセス量の合計値が、平均値以下か否かを判断する。合計値が平均値以下であれば、処理がステップS143に進められ、新たなデータグループの選択が行われる。また合計値が平均値より大きければ、処理がステップS146に進められる。
[ステップS146]パーティション管理部120は、選択したパーティションに属するデータグループを、ステップS142、S143で選択したデータグループの組み合わせに決定する。また、パーティション管理部120は、選択したパーティションに対して組み合わせ決定済フラグを設定する。またパーティション管理部120は、選択したデータグループに対して、処理済フラグを設定する。
[ステップS147]パーティション管理部120は、データグループの組み合わせの決定処理が未処理のパーティションがあるか否かを判断する。例えばパーティション管理部120は、決定済フラグが設定されていないパーティションが少なくとも1つあれば、未処理のパーティションがあると判断する。未処理のパーティションがあれば、処理がステップS141に進められる。未処理のパーティションがなければ、新規組み合わせ作成処理が終了する。
このようにして、すべてのパーティションのアクセス量を平均化することができる。その結果、データベースサーバ間でのデータアクセスの処理負荷が偏らずにすみ、システム全体の処理を効率化することができる。
しかも、パーティションに属するデータグループの組み合わせを変更するだけで、複数のデータベースサーバそれぞれが管理するデータ構成を変更することができ、パーティショニングの変更を迅速に行うことができる。すなわち、パーティションに属するデータグループを変更してもデータベース内でのデータの移動を行わずに済み、パーティショニングを短時間で変更することができる。
なお、データグループの構成が変更されたパーティションに関してはインデックスの再創成が行われることになる。そこで第2の実施の形態では、アクセス量の合計値が平均値に近いパーティションについては、現在のデータグループの組み合わせを維持するように決定している。これにより、データグループの組み合わせの変更に伴うインデックス創成を行うパーティション数を削減し、処理の効率化を図ることができる。
また、業務による実績データを元にデータベースのアクセス負荷を均一化するパーティション再構成をシステムで自動的に実施できるため、設計・運用コストも削減される。例えば、対象データ量が10TBの場合、ディスク間のデータコピーを伴うパーティションの再構成を行うと、設計時間+56時間(ディスクI/O性能100MB/sの場合)かかる。第2の実施の形態によれば、数分以内でパーティションを再構成することができる。
さらにパーティションを再構成に伴うストレージ装置間のデータの移動が行われないため、パーティションを再構成している間は、アクセス部110,210は、更新前のメタデータ340により、ストレージ装置300,400にアクセスすることができる。この場合、アクセス部110,210は、メタデータ340が更新された後に、更新後のメタデータ340を使用する。このように、パーティションを再構成している間は更新前のメタデータ340でデータアクセスを行うことで、パーティションの再構成をしても、データベースサーバ100,200によるデータアクセスのサービス停止期間は極めて短時間で済む。
なお第2の実施の形態では、パーティションの再構成をデータベースサーバ100で行っているが、データベースサーバ200がパーティションの再構成を実行してもよい。また、データベースサーバ100,200以外の装置が、パーティションの再構成を行うこともできる。例えばシステムに設けられた管理装置が、各データベースサーバ100,200から統計情報を収集し、パーティションを再構成してもよい。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 ストレージ装置
1a データ領域
1b 管理情報
2,3 アクセス装置
2a,3a アクセス頻度記憶手段
10 アクセス制御装置
11 取得手段
12 変更手段

Claims (4)

  1. コンピュータに、
    トレージ装置内の複数のデータ複数のデータグループに分けられており、前記ストレージ装置に格納されたデータにアクセスする複数のアクセス装置それぞれと、該アクセス装置がアクセス対象とするデータグループとの対応関係が設定された管理情報に基づいて、前記ストレージ装置内のアクセス対象のデータグループに属するデータへのアクセスを行う前記複数のアクセス装置それぞれから、データグループごとの、該データグループに属するデータへのアクセス頻度を取得し、
    前記複数のデータグループそれぞれのアクセス頻度に基づいて、前記複数のアクセス装置それぞれについて、該アクセス装置がアクセス対象とするデータグループそれぞれのアクセス頻度の合計値を計算し、
    前記複数のアクセス装置それぞれについて計算したアクセス頻度の合計値の平均値を計算し、
    前記平均値とアクセス頻度の合計値との差が所定範囲を超える複数の変更対象アクセス装置のアクセス対象のデータグループを組み合わせて、前記変更対象アクセス装置ごとに、アクセス頻度の合計が所定値以下となるデータグループの集合を生成し、
    前記管理情報における、前記変更対象アクセス装置それぞれのアクセス対象のデータグループを、前記変更対象アクセス装置に対応する前記集合に含まれるデータグループに変更する
    処理を実行させるアクセス制御プログラム。
  2. クセス頻度の合計値前記平均値から所定範囲内のアクセス装置については、前記管理情報における、アクセス対象とするデータグループの変更を抑止することを特徴とする請求項1記載のアクセス制御プログラム。
  3. コンピュータが、
    トレージ装置内の複数のデータ複数のデータグループに分けられており、前記ストレージ装置に格納されたデータにアクセスする複数のアクセス装置それぞれと、該アクセス装置がアクセス対象とするデータグループとの対応関係が設定された管理情報に基づいて、前記ストレージ装置内のアクセス対象のデータグループに属するデータへのアクセスを行う前記複数のアクセス装置それぞれから、データグループごとの、該データグループに属するデータへのアクセス頻度を取得し、
    前記複数のデータグループそれぞれのアクセス頻度に基づいて、前記複数のアクセス装置それぞれについて、該アクセス装置がアクセス対象とするデータグループそれぞれのアクセス頻度の合計値を計算し、
    前記複数のアクセス装置それぞれについて計算したアクセス頻度の合計値の平均値を計算し、
    前記平均値とアクセス頻度の合計値との差が所定範囲を超える複数の変更対象アクセス装置のアクセス対象のデータグループを組み合わせて、前記変更対象アクセス装置ごとに、アクセス頻度の合計が所定値以下となるデータグループの集合を生成し、
    前記管理情報における、前記変更対象アクセス装置それぞれのアクセス対象のデータグループを、前記変更対象アクセス装置に対応する前記集合に含まれるデータグループに変更する
    アクセス制御方法。
  4. トレージ装置内の複数のデータ複数のデータグループに分けられており、前記ストレージ装置に格納されたデータにアクセスする複数のアクセス装置それぞれと、該アクセス装置がアクセス対象とするデータグループとの対応関係が設定された管理情報に基づいて、前記ストレージ装置内のアクセス対象のデータグループに属するデータへのアクセスを行う前記複数のアクセス装置それぞれから、データグループごとの、該データグループに属するデータへのアクセス頻度を取得する取得手段と、
    前記複数のデータグループそれぞれのアクセス頻度に基づいて、前記複数のアクセス装置それぞれについて、該アクセス装置がアクセス対象とするデータグループそれぞれのアクセス頻度の合計値を計算し、前記複数のアクセス装置それぞれについて計算したアクセス頻度の合計値の平均値を計算し、前記平均値とアクセス頻度の合計値との差が所定範囲を超える複数の変更対象アクセス装置のアクセス対象のデータグループを組み合わせて、前記変更対象アクセス装置ごとに、アクセス頻度の合計が所定値以下となるデータグループの集合を生成し、前記管理情報における、前記変更対象アクセス装置それぞれのアクセス対象のデータグループを、前記変更対象アクセス装置に対応する前記集合に含まれるデータグループに変更する変更手段と、
    を有するアクセス制御装置。
JP2014026056A 2014-02-14 2014-02-14 アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 Active JP6269140B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014026056A JP6269140B2 (ja) 2014-02-14 2014-02-14 アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US14/612,378 US10102267B2 (en) 2014-02-14 2015-02-03 Method and apparatus for access control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014026056A JP6269140B2 (ja) 2014-02-14 2014-02-14 アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置

Publications (2)

Publication Number Publication Date
JP2015153123A JP2015153123A (ja) 2015-08-24
JP6269140B2 true JP6269140B2 (ja) 2018-01-31

Family

ID=53798364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014026056A Active JP6269140B2 (ja) 2014-02-14 2014-02-14 アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置

Country Status (2)

Country Link
US (1) US10102267B2 (ja)
JP (1) JP6269140B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387374B2 (en) 2015-02-27 2019-08-20 Exagrid Systems, Inc. Scalable grid deduplication
US10168941B2 (en) * 2016-02-19 2019-01-01 International Business Machines Corporation Historical state snapshot construction over temporally evolving data
KR20180046078A (ko) * 2016-10-27 2018-05-08 삼성에스디에스 주식회사 데이터베이스 리밸런싱 방법
JP2021144571A (ja) 2020-03-13 2021-09-24 富士通株式会社 情報処理装置、送信制御方法、および通信プログラム
EP4131016A1 (en) * 2021-08-03 2023-02-08 Amadeus S.A.S. Statistics-based dynamic database partitions
US11941002B1 (en) 2022-03-31 2024-03-26 Amazon Technologies, Inc. Dynamically sort data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139119A (ja) * 1992-10-28 1994-05-20 Hitachi Ltd データベース管理システムおよびデータベース管理方法
JPH09218858A (ja) * 1996-02-14 1997-08-19 Hitachi Ltd 分散型データベース管理システム
US5765204A (en) * 1996-06-05 1998-06-09 International Business Machines Corporation Method and apparatus for adaptive localization of frequently accessed, randomly addressed data
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
JP4199888B2 (ja) 1999-11-15 2008-12-24 株式会社日立製作所 データベース管理方法
JP4579000B2 (ja) 2005-02-14 2010-11-10 株式会社日立製作所 計算機システムにおけるデータ配置設定
JP2011215688A (ja) * 2010-03-31 2011-10-27 Mizuho Information & Research Institute Inc データベースアクセスシステム及び方法
US8510528B2 (en) * 2010-12-29 2013-08-13 Teradata Us, Inc. Differential data storage based on predicted access frequency
JP5573737B2 (ja) * 2011-03-17 2014-08-20 富士通株式会社 情報処理プログラム、情報処理装置、及び情報処理方法
JP2014026529A (ja) * 2012-07-27 2014-02-06 Fujitsu Ltd ストレージシステムおよびその制御方法
US9501426B1 (en) * 2013-02-08 2016-11-22 Workday, Inc. Dynamic two-tier data storage utilization

Also Published As

Publication number Publication date
US20150235038A1 (en) 2015-08-20
JP2015153123A (ja) 2015-08-24
US10102267B2 (en) 2018-10-16

Similar Documents

Publication Publication Date Title
US9740706B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
CN106030573B (zh) 半结构化数据作为第一等级数据库元素的实现
US9507800B2 (en) Data management in distributed file systems
JP5932043B2 (ja) 不揮発性記憶装置セットの揮発メモリ表現
US10180807B2 (en) Method and system for consolidating a plurality of heterogeneous storage systems in a data center
JP4733461B2 (ja) 計算機システム、管理計算機及び論理記憶領域の管理方法
US10866970B1 (en) Range query capacity allocation
US10356150B1 (en) Automated repartitioning of streaming data
US20100125715A1 (en) Storage System and Operation Method Thereof
US20150128150A1 (en) Data processing method and information processing apparatus
US10254993B2 (en) Selecting first data sets in a first storage group to swap with second data sets in a second storage group
US8904144B1 (en) Methods and systems for determining at risk index for storage capacity
US20100082546A1 (en) Storage Tiers for Database Server System
US20130007091A1 (en) Methods and apparatuses for storing shared data files in distributed file systems
US11836067B2 (en) Hyper-converged infrastructure (HCI) log system
US20050229032A1 (en) Method for rearranging logical volume
US20240004883A1 (en) Data ingestion with spatial and temporal locality
JP2012168781A (ja) 分散型データストアシステム及び分散型データストアシステムにおけるレコード管理方法
JP6823626B2 (ja) データベース管理システム及び方法
US10862922B2 (en) Server selection for optimized malware scan on NAS
US11429311B1 (en) Method and system for managing requests in a distributed system
JPWO2016157492A1 (ja) 共有リソース更新装置及び共有リソース更新方法
KR101378348B1 (ko) 프라이빗 클라우드 인프라 기반 하둡 클러스터의 기본 프로토타입
US9870152B2 (en) Management system and management method for managing data units constituting schemas of a database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170904

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6269140

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150