JP2022126099A - 情報処理プログラム、情報処理方法及び情報処理装置 - Google Patents

情報処理プログラム、情報処理方法及び情報処理装置 Download PDF

Info

Publication number
JP2022126099A
JP2022126099A JP2021023978A JP2021023978A JP2022126099A JP 2022126099 A JP2022126099 A JP 2022126099A JP 2021023978 A JP2021023978 A JP 2021023978A JP 2021023978 A JP2021023978 A JP 2021023978A JP 2022126099 A JP2022126099 A JP 2022126099A
Authority
JP
Japan
Prior art keywords
storage
column
information processing
access frequency
data
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.)
Pending
Application number
JP2021023978A
Other languages
English (en)
Inventor
健 飯澤
Takeshi Iizawa
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 JP2021023978A priority Critical patent/JP2022126099A/ja
Priority to US17/524,773 priority patent/US20220261724A1/en
Publication of JP2022126099A publication Critical patent/JP2022126099A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Educational Administration (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】オブジェクトストレージにおける適切なデータ配置を行う情報処理プログラム、情報処理方法及び情報処理装置を提供する。【解決手段】情報処理プログラムは、データベースファイルを複数のデータ集合に分類させ、分類した前記データ集合を基にオブジェクトを生成させ、生成した各前記オブジェクトをオブジェクトストレージ30における管理条件が異なる第1階層31及び第2階層32に分割配置させる処理をコンピュータに実行させる。【選択図】図1

Description

本発明は、情報処理プログラム、情報処理方法及び情報処理装置に関する。
今日のコンピューティングに関する爆発的に拡大するデータ量と、従来とは異なる種類のデータの増加により、ストレージに対して従来とは異なる機能が要求されてきている。小さなファイルを対象とする処理が中心だった時代にはディレクトリ構造のファイルシステムが有効であったが、動画ファイルなどのデータ数の増大はストレージのI/O(Input/Output)にボトルネックを生じさせるようになった。こうした問題を解決するための技術の1つとして、オブジェクトストレージが注目を集めている。
オブジェクトストレージは、データをファイル単位やブロック単位ではなく、オブジェクトという単位で扱う。オブジェクトストレージでは、ディレクトリのような階層構造は存在せず、ストレージプールというオブジェクトの入れ物が作成され、メタデータによって管理される。オブジェクト同士はフラットな関係で、データの移動で階層構造が変わることはない。また、オブジェクト数に制限はない。このように、オブジェクトストレージは、ディレクトリ構造で管理するファイルストレージとは異なり、データサイズやデータ数の保存制限がないため、大容量データの保存に適している。そのため、オブジェクトストレージは、安価で長期保存に適したストレージとして広く普及している。
オブジェクトストレージは、一般にクライアントからのリクエストを、ゲートウェイと呼ばれるコンポーネントを介して受け付ける。リクエストは、クライアントがアクセスしたいオブジェクト名と、それに対する操作との組である。操作とは、具体的には、PutやGetなどのオブジェクトインタフェースである。
さらに、オブジェクトストレージには、データベースファイルのデータセットとして行と列からなる構造化データを保持するものがある。行と列からなる構造化データは、例えば、同一の列が記憶媒体上の連続領域に格納される列指向形式を有する。具体的な格納方法としては、列指向形式の構造化データは、列毎に含まれるデータが列における順番で記憶媒体上の連続するアドレスに格納される。
また、オブジェクトストレージ上のデータを用いるアプリケーションは、例えば、データベースマネージメントシステム(DBMS:Data Base Management System)経由でオブジェクトストレージに格納されたデータベースファイルへアクセスする。アプリケーションは、DBMSに対してSQL(Structured Query Language)等の標準化されたAPI(Application Programming Interface)を用いてアクセスを行なう。オブジェクトストレージは、各列の記憶媒体上の格納位置が記録されたインデックスを有する。データベースマネージメントシステムは、インデックスを参照することで、各列を直接読み出すことができる。
列指向形式の構造化データに対してDBMS経由でアクセスするアプリケーションを用いる場合、データへのアクセスは以下の特徴を有する。このようなアプリケーションは、ファイル全体ではなく、一部の列にアクセスを行なう。その結果、各列でアクセス頻度に差が生じる。すなわち、データベースファイルの中で、アクセス頻度が高い列群と、アクセス頻度が低い列群とが発生する。アクセス頻度が高い列群は、さらに、同時にアクセスされる複数のグループに分類することが可能である。
ここで、オブジェクトストレージは、目的に合わせて階層分割されて利用される場合がある。例えば、オブジェクトストレージを用いたサービスとして、従量課金制のパブリック・クラウド・ストレージがある。パブリック・クラウド・ストレージで発生する料金には、オブジェクトストレージへのアクセスに対して課金される「アクセス料金」と、保存データ量に対して課金される「保存料金」とが存在する。例えば、アクセス料金の単位は、円/回であり、保存料金の単位は、GB・月/円である。そして、パブリック・クラウド・ストレージには、例えば、性能は同じだが料金プランが異なる2つの階層が用意される。1つ目の階層である第1階層は、保存料金は高いがアクセス料金が安く、2つ目の階層である第2階層は、保存料金が安いがアクセス料金が高い。
このようなパブリック・クラウド・ストレージにおいてゲートウェイは、以下の2つの機能を備える場合がある。1つ目は、オブジェクトストレージに格納されたオブジェクトに対するPutやGetなどのアクセス履歴を分析して、アクセス頻度が高いオブジェクトを特定するプロファイラ(Profiler)と呼ばれる機能である。2つ目は、プロファイラが特定したアクセス頻度が高いオブジェクトを、定期的に第2階層から第1階層へ移動するデータムーバ(Data Mover)と呼ばれる機能である。ただし、クライアントは、ゲートウェイ経由でデータにアクセスするため、オブジェクトが存在する階層を意識せずアクセスすることができる。
なお、データアクセスの従来技術として、データブロック別にアクセス頻度を調査し、アクセス頻度が予め指定した上限を上回る場合は高性能グループの記憶装置に移動し、下限を下回る場合は低性能のグループの記憶装置に移動する技術がある。また、アクセス頻度の高いデータと、低いデータとに分類して、アクセス頻度の高いデータを格納する領域を特定のドライブに集中させ、アクセス頻度の低いデータを格納するドライブをスリーブ化させることによって省電力化を図る技術がある。さらに、記憶装置に対するアクセス要求により連続してアクセスされたデータのペア毎にアクセス頻度に基づくデータ間の関連度を監視し、関連度の分布の傾向の経時的変化に基づいて、データ配置処理を実行する技術がある。
特開2003-108317号公報 特開2009-110451号公報 国際公開第2016/147279号
しかしながら、従来は、データベースファイルは、1つのオブジェクトとして、アクセス頻度に応じて第1階層又は第2階層のいずれかに全体がまとめて格納されていた。これは、従来はプロファイラが取得するアクセス履歴のアクセス単位がファイル全体であるためであった。典型的には、プロファイラが、データベースファイルへのアクセス頻度が特定の閾値より高いと判定した場合は第1階層にそのデータベースファイルを格納し、特定の閾値より低いと判定した場合は第2階層にそのデータベースファイルを格納していた。この場合、以下の問題が生じるおそれがある。
データベースファイルが第1階層に格納される場合、アクセス頻度が低い列も第1階層に格納されることになる。そのため、そのアクセス頻度が低い列に関しては、アクセス料金が安いという第1階層の恩恵を受けないにも関わらず保存コストが高くなる。また、データベースファイルが第2階層に格納される場合、アクセス頻度が高い列も第2階層に格納される。そのため、そのアクセス頻度が高い列に関しては、第2階層はアクセス料金が高いためコストが高くなる。このように、従来のオブジェクトストレージへの格納技術では、格納場所の階層分割による利益を十分に受けるための適切なデータ配置を行なうことが困難であった。
これらは、アクセス頻度に応じて高性能グループの記憶装置又は低性能のグループの記憶装置に移動するデータアクセスの技術や、アクセス頻度の高いデータを格納する領域を特定のドライブに集中させるデータアクセスの技術でも同様である。また、データのペア毎のアクセス頻度に基づいてデータ配置を行なう技術を用いても、格納場所の条件に応じた適切なデータ配置やオブジェクトの取り扱いは考慮されておらず、同様の問題が発生する。
開示の技術は、上記に鑑みてなされたものであって、オブジェクトストレージにおける適切なデータ配置を行う情報処理プログラム、情報処理方法及び情報処理装置を提供することを目的とする。
本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の一つの態様において、情報処理プログラムは、データベースファイルを複数のデータ集合に分類させ、分類した前記データ集合を基にオブジェクトを生成させ、生成した各前記オブジェクトをオブジェクトストレージにおける管理条件が異なる階層に分割配置させる処理をコンピュータに実行させる。
1つの側面では、本発明は、オブジェクトストレージにおける適切なデータ配置を行うことができる。
図1は、ストレージシステムのブロック図である。 図2は、実施例1に係るゲートウェイの詳細を示すブロック図である。 図3は、データベースファイルの一例を示す図である。 図4は、実施例1におけるデータベースファイルの格納状態を表す図である。 図5は、実施例1に係るゲートウェイによるオブジェクトストレージへの格納処理のフローチャートである。 図6は、実施例2に係るゲートウェイの詳細を示すブロック図である。 図7は、実施例2におけるデータベースファイルの第1階層への格納状態を表す図である。 図8は、実施例2に係るゲートウェイによるオブジェクトストレージへの格納処理のフローチャートである。 図9は、アクセス頻度の高い列群を最適な分割サイズで等分してオブジェクトとした場合の格納例を示す図である。 図10は、アクセス頻度の高い列群の各列を1つのオブジェクトとした場合の格納例を示す図である。 図11は、ゲートウェイのハードウェア構成の一例を示す図である。
以下に、本願の開示する情報処理プログラム、情報処理方法及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理プログラム、情報処理方法及び情報処理装置が限定されるものではない。
図1は、ストレージシステムのブロック図である。ストレージシステム1は、ゲートウェイ10、端末装置20及びオブジェクトストレージ30を有する。
端末装置20は、オブジェクトストレージ30に格納されたデータベースファイルを利用するアプリケーションが動作する。端末装置20で動作するアプリケーションは、オブジェクトストレージ30に対して、ゲートウェイ10を介してリクエストを送信することで、データベースファイルの読み出し及び書き込みを行なう。リクエストでは、アクセス対象となるオブジェクトの列が指定される。具体的には、リクエストにより、アクセス対象となるオブジェクトのオフセットが指定され、そのオフセットの値によりアクセス対象となる列が指定される。
オブジェクトストレージ30は、オブジェクト単位でデータを扱うストレージである。オブジェクトストレージ30は、データを管理する領域として第1階層31及び第2階層32の2つの領域を有する。第1階層31及び第2階層32は、それぞれでのデータの管理条件が異なる。
例えば、本実施例に係るオブジェクトストレージ30は、従量課金制のパブリック・クラウド・ストレージである。第1階層31及び第2階層32は、性能は同じだが料金プランが異なる。第1階層31は、データの保存料金は高いがデータに対するアクセス料金が安い。また、第2階層32は、データの保存料金は安いがデータに対するアクセス料金が高い。
オブジェクトストレージ30は、ゲートウェイ10が有するデータムーバ14からの指示を受けて、データをオブジェクト毎に第1階層31又は第2階層32のいずれかに配置する。そして、オブジェクトストレージ30は、配置して各オブジェクトに含まれる列の位置の情報を後述するゲートウェイ10が有するDBMS12に通知する。また、オブジェクトストレージ30は、ゲートウェイ10が有するDBMS12からリクエストを受けて、指定されたオブジェクトの読み出し又は書き込みを、各オブジェクトが格納された第1階層31又は第2階層32に対して行う。
ゲートウェイ10は、端末装置20とオブジェクトストレージ30との間のデータの送受信を仲介する。また、ゲートウェイ10は、オブジェクトストレージ30における第1階層31と第2階層32との間のデータベースファイルの配置を管理する。ゲートウェイ10は、プロファイラ11、DBMS12、データリオーガナイザ13及びデータムーバ14を有する。図2は、実施例1に係るゲートウェイの詳細を示すブロック図である。図2を参照してゲートウェイ10の詳細について説明する。
図3は、データベースファイルの一例を示す図である。ここでは、図3に示すデータベースファイル200を取り扱う場合を例に説明する。データベースファイル200は、列数が16であり列指向形式を有する構造化データである。初期状態ではデータベースファイル200は、どの様な状態でオブジェクトストレージ30に格納されていてもよい。ここでは、一例として、データベースファイル200が1つのオブジェクトとして第1階層31又は第2階層32のいずれかにまとめて格納されている状態を初期状態として説明する。
図2に戻って説明を続ける。プロファイラ11は、データベースファイル200の各列へのアクセス履歴を基に各列のアクセス状況を判定する。プロファイラ11は、リクエスト取得部111、アクセス履歴収集部112及び列群分類部113を有する。
リクエスト取得部111は、端末装置20から送信されたデータベースファイル200に対するアクセスを要求するリクエストを取得する。そして、リクエスト取得部111は、取得したリクエストを、アクセス履歴収集部112及びDBMS12へ出力する。
アクセス履歴収集部112は、リクエストの入力をリクエスト取得部111から受ける。そして、アクセス履歴収集部112は、リクエストで指定されたオブジェクトのアクセス対象となった列の情報を収集して蓄積する。ここで、アクセス履歴収集部112は、保存したアクセス履歴が格納領域のサイズを超えた場合、古いものから削除して新しい情報を追加する。
列群分類部113は、オブジェクトストレージ30の第1階層31と第2階層32とに格納する列を分類するためのアクセス頻度閾値を予め有する。列群分類部113は、1日1回の決まった時刻など周期的にアクセス履歴をアクセス履歴収集部112から取得する。そして、列群分類部113は、取得したアクセス履歴を解析して、データベースファイル200の列毎のクセス頻度を求める。
次に、列群分類部113は、各列のアクセス頻度とアクセス頻度閾値とを比較して、アクセス頻度がアクセス頻度閾値以上である列をアクセス頻度の高い列として抽出する。例えば、列群分類部113は、図3のデータベースファイル200において、斜線のパターンで表される列201及びドットのパターンで表される列202をアクセス頻度の高い列として抽出する。
また、列群分類部113は、アクセス頻度がアクセス頻度閾値未満である列をアクセス頻度の低い列として抽出する。例えば、列群分類部113は、図3のデータベースファイル200において、無地のパターンで表される列203をアクセス頻度が低い列として抽出する。
そして、列群分類部113は、データベースファイル200をアクセス頻度が高い列とアクセス頻度が低い列とに分類したプロファイル結果をデータリオーガナイザ13へ出力する。
DBMS12は、データベースファイル200を形成するオブジェクトの各列のオブジェクトストレージ30における位置を表すインデックスを有する。DBMS12は、データベースファイル200に対するアクセスを要求するリクエストの入力をリクエスト取得部111から受ける。次に、DBMS12は、リクエストで指定されたオブジェクト及びその列の情報を取得する。次に、DBMS12は、インデックスを参照して、アクセス対象であるオブジェクトの列のオブジェクトストレージ30における位置を特定する。そして、DBMS12は、特定した位置に格納されたデータベースファイル200のデータに対してリクエストで指定された処理を行う。例えば、リクエストがGet命令である場合、DBMS12は、特定した位置に格納されたデータベースファイル200のデータをオブジェクトストレージ30から取得する。そして、DBMS12は、リクエストの送信元である端末装置20に応答を返す。
また、DBMS12は、データベースファイル200に含まれる各列の情報の取得要求をオブジェクト生成部132から受ける。そして、DBMS12は、データベースファイル200に含まれる各列のオブジェクトストレージ30における位置を表す情報をインデックスから取得してオブジェクト生成部132へ出力する。その後、DBMS12は、移動後の各オブジェクトの各列の位置を表す情報をオブジェクトストレージ30から取得してインデックスを更新する。
データリオーガナイザ13は、データベースファイル200を各列のアクセス頻度に応じて分割して複数のオブジェクトを作成し、各オブジェクトをオブジェクトストレージ30の第1階層31又は第2階層32に格納させる。データリオーガナイザ13は、プロファイル結果取得部131、オブジェクト生成部132及びオブジェクト移動指示部133を有する。
プロファイル結果取得部131は、データベースファイル200の各列のアクセス頻度による分類結果を表すプロファイル結果の入力を列群分類部113から取得する。次に、プロファイル結果取得部131は、取得したプロファイル結果をオブジェクト生成部132へ出力する。
オブジェクト生成部132は、データベースファイル200の列毎のクセス頻度による分類結果を表すプロファイル結果の入力をプロファイル結果取得部131から受ける。また、オブジェクト生成部132は、データベースファイル200に含まれる各列の情報の取得要求をDBMS12へ行う。その後、オブジェクト生成部132は、データベースファイル200に含まれる各列のオブジェクトストレージ30における位置を表す情報をDBMS12から取得する。
そして、オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の高い列をまとめて1つのオブジェクトとする。さらに、オブジェクト生成部132は、このオブジェクトの配置先を第1階層31と決定する。また、オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の低い列をまとめて1つのオブジェクトとする。さらに、オブジェクト生成部132は、このオブジェクトの配置先を第2階層32と決定する。
その後、オブジェクト生成部132は、各オブジェクトに含まれる列を表す情報を含むオブジェクトの情報及び各オブジェクトを配置する階層の情報をオブジェクト移動指示部133へ出力する。すなわち、オブジェクト生成部132は、アクセス頻度が高い列群を含むオブジェクトの情報及びそのオブジェクトの配置先として第1階層31を指定する情報をオブジェクト移動指示部133へ出力する。また、オブジェクト生成部132は、アクセス頻度が低い列群を含むオブジェクトの情報及びそのオブジェクトの配置先として第2階層32を指定する情報をオブジェクト移動指示部133へ出力する。
オブジェクト移動指示部133は、オブジェクト生成部132により生成されたオブジェクトの情報及び各オブジェクトの格納先の階層の入力を受ける。そして、オブジェクト移動指示部133は、指定された階層への各オブジェクトの格納をデータムーバ14に指示する。
データムーバ14は、各オブジェクトの格納の指示をオブジェクト移動指示部133から受ける。そして、データムーバ14は、各オブジェクトに含まれるデータベースファイル200の列をまとめて、オブジェクトストレージ30の指定された階層に移動してオブジェクトとして格納する。すなわち、データムーバ14は、アクセス頻度の高い列群のオブジェクトを第1階層31に移動し、アクセス頻度の低い列群のオブジェクトを第2階層32に移動する。
例えば、オブジェクトストレージ30が従量課金制のパブリック・クラウド・ストレージの場合、ゲートウェイ10は、保存料金が高くアクセス料金が安い階層を第1階層31として、保存料金が安くアクセス料金が高い階層を第2階層32とする。そして、ゲートウェイ10は、アクセス頻度が高い列群を含むオブジェクトを第1階層31に格納させ、アクセス頻度が低い列群を含むオブジェクトを第2階層32に格納させる。
図4は、実施例1におけるデータベースファイルの格納状態を表す図である。例えば、図3に示すデータベースファイル200であれば、アクセス頻度が高い列201及び202がまとめられて1つのオブジェクト301として第1階層31に格納される。また、アクセス頻度が低い列203がまとめられて1つのオブジェクトとして第2階層32に格納される。
次に、図5を参照して、本実施例に係るゲートウェイ10によるデータベースファイル200のオブジェクトストレージ30への格納処理の流れを説明する。図5は、実施例1に係るゲートウェイによるオブジェクトストレージへの格納処理のフローチャートである。
プロファイル結果取得部131は、各列のアクセス頻度をアクセス履歴収集部112から取得する。そして、プロファイル結果取得部131は、各列のアクセス頻度とアクセス頻度閾値とを比較して、アクセス頻度がアクセス頻度閾値以上であるアクセス頻度の高い列とアクセス頻度閾値未満であるアクセス頻度の低い列とに分類する(ステップS101)。
プロファイル結果取得部131は、データベースファイル200の列毎のクセス頻度による分類結果を表すプロファイル結果の入力を列群分類部113から取得する。そして、プロファイル結果取得部131は、取得したプロファイル結果をオブジェクト生成部132へ出力する。オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の高い列とアクセス頻度の低い列とをそれぞれ1つのオブジェクトにまとめる(ステップS102)。
オブジェクト生成部132は、各オブジェクトに含まれる列を表す情報を含むオブジェクトの情報及び各オブジェクトを配置する階層の情報をオブジェクト移動指示部133へ出力する。オブジェクト移動指示部133は、指定された階層への各オブジェクトの格納をデータムーバ14に指示する。データムーバ14は、アクセス頻度の高い列群のオブジェクトを第1階層31に移動し、アクセス頻度の低い列群のオブジェクトを第2階層32に移動する(ステップS103)。
以上に説明したように、本実施例に係るストレージシステムは、列指向形式を有する構造化データの各列のアクセス頻度に応じてデータを分類して個別にオブジェクトを生成し、それぞれのオブジェクトを管理条件が異なる階層に格納する。これにより、格納場所の階層分割による利益を十分に受けるための適切なデータ配置を行なうことが可能となる。
例えば、従量課金制のパブリック・クラウド・ストレージでは、ゲートウェイは、保存料金が高くアクセス料金が安い階層に高アクセス頻度の列群のオブジェクトを格納し、保存料金が安くアクセス料金が高い階層に低アクセス頻度の列群のオブジェクトを格納する。これにより、保存コストとアクセスコストとの合計である利用コストを低く抑えることが可能となる。
図6は、実施例2に係るゲートウェイの詳細を示すブロック図である。本実施例に係るゲートウェイ10は、同時にアクセスされるアクセス頻度が高い列群をグループ化しさらに最適な分割サイズに分割し、それぞれを1つのオブジェクトとしてオブジェクトストレージ30に格納することが実施例1と異なる。以下の説明では、実施例1と同様の各部の機能については説明を省略する。
本実施例に係るプロファイラ11は、リクエスト取得部111、アクセス履歴収集部112及び列群分類部113に加えて、グループ分類部114を有する。
列群分類部113は、データベースファイル200の列毎のアクセス履歴及びアクセス頻度閾値を用いて、アクセス頻度が高い列群とアクセス頻度が低い列群とにデータベースファイル200の各列を分類する。そして、列群分類部113は、アクセス頻度が低い列群の情報をプロファイル結果取得部131へ出力する。また、列群分類部113は、アクセス頻度が高い列群の情報をグループ分類部114へ出力する。
グループ分類部114は、アクセス頻度が高い列群の情報の入力を列群分類部113から受ける。次に、グループ分類部114は、アクセス頻度が高い列群に含まれる各列のアクセス履歴をアクセス履歴収集部112から取得する。そして、グループ分類部114は、取得したアクセス履歴を解析して、同時にアクセスされる頻度の高い列を抽出してグループ化する。例えば、グループ分類部114は、クラスター解析などを利用して列のグループ化を行なう。その後、グループ分類部114は、グループ毎の属する列の情報を含む各グループの情報をプロファイル結果取得部131へ出力する。
例えば、図3に示すデータベースファイル200の場合、グループ分類部114は、斜線パターンで表される列201のグループと、ドットパターンで表される列202のグループという2つのグループを生成する。
本実施例に係るデータリオーガナイザ13は、プロファイル結果取得部131、オブジェクト生成部132及びオブジェクト移動指示部133に加えて、パラメータ取得部134を有する。
プロファイル結果取得部131は、アクセス頻度が低い列群の情報の入力を列群分類部113から受ける。また、プロファイル結果取得部131は、グループ化されたアクセス頻度が高い列群の各グループの情報の入力をグループ分類部114から受ける。そして、プロファイル結果取得部131は、アクセス頻度が低い列群の情報及びグループ化されたアクセス頻度が高い列群の各グループの情報をプロファイル結果としてオブジェクト生成部132へ出力する。
パラメータ取得部134は、最適な分割サイズを含むパラメータの情報の入力を管理者端末40から受ける。ここで、最適な分割サイズとは、オブジェクトストレージ30における読み出し性能が最大となる分割サイズを表し、これ以上小さなサイズに分割しても読み出し性能は向上しない分割サイズである。具体的には、最適な分割サイズは、オブジェクトストレージ30においてファイルのサイズと分割したオブジェクトのサイズとを変更しつつファイルの読み出し性能を測定することで求められる。パラメータ取得部134は、取得したパラメータの情報をオブジェクト生成部132へ出力する。
オブジェクト生成部132は、プロファイル結果の入力をプロファイル結果取得部131から受ける。また、オブジェクト生成部132は、パラメータの情報の入力をパラメータ取得部134から受ける。
オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の低い列を1つのオブジェクトにまとめる。また、オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の高い列を各グループにまとめる。次に、オブジェクト生成部132は、各グループを最適な分割サイズに分割して、それぞれを1つのオブジェクトとする。
その後、オブジェクト生成部132は、アクセス頻度の低い列群のオブジェクトの第2階層32への格納の指示をオブジェクト移動指示部133へ出力する。また、オブジェクト生成部132は、アクセス頻度の高い列群の各グループを最適な分割サイズに分割して生成したオブジェクトのそれぞれの第1階層31への格納の指示をオブジェクト移動指示部133へ出力する。
データムーバ14は、各オブジェクトの格納の指示をオブジェクト移動指示部133から受ける。そして、データムーバ14は、アクセス頻度の低い列群のオブジェクトをオブジェクトストレージ30の第2階層32へ格納する。また、データムーバ14は、アクセス頻度の高い列群の各グループを最適な分割サイズに分割することで生成されたオブジェクトをそれぞれのオブジェクトストレージ30の第1階層31へ格納する。
図7は、実施例2におけるデータベースファイルの第1階層への格納状態を表す図である。例えば、図3に示すデータベースファイル200であれば、アクセス頻度が高く同時にアクセスされる頻度の高い列201のグループがオブジェクト311及び312に分割されて、第1階層31に格納される。また、アクセス頻度が高く同時にアクセスされる頻度の高い列202のグループがオブジェクト313及び314に分割されて、第1階層31に格納される。
このように、同時にアクセスされる頻度の高い列をグループ化して最適な分割サイズで分割したものをそれぞれ1つのオブジェクトとすることで、1回のアクセスでの複数列の読み出しを増やすことができ、アクセス回数を減らすことが可能となる。また、最適な読み出し性能を実現する並列アクセス数での読み出しを行なうことができ、読み出し性能を向上させることができる。
次に、図8を参照して、本実施例に係るゲートウェイ10によるデータベースファイル200のオブジェクトストレージ30への格納処理の流れを説明する。図8は、実施例2に係るゲートウェイによるオブジェクトストレージへの格納処理のフローチャートである。
プロファイル結果取得部131は、各列のアクセス頻度をアクセス履歴収集部112から取得する。そして、プロファイル結果取得部131は、各列のアクセス頻度とアクセス頻度閾値とを比較して、アクセス頻度がアクセス頻度閾値以上であるアクセス頻度の高い列とアクセス頻度閾値未満であるアクセス頻度の低い列とに分類する(ステップS201)。
グループ分類部114は、アクセス頻度が高い列群の情報の入力を列群分類部113から受ける。次に、グループ分類部114は、アクセス頻度が高い列群に含まれる各列のアクセス履歴を解析して、アクセス相関に基づきグループ化する(ステップS202)。
プロファイル結果取得部131は、アクセス頻度が低い列群の情報を列群分類部113から取得する。また、プロファイル結果取得部131は、グループ化されたアクセス頻度が高い列群の情報をグループ分類部114から取得する。オブジェクト生成部132は、アクセス頻度が低い列群の情報及びグループ化されたアクセス頻度が高い列群の情報を含むプロファイル結果をプロファイル結果取得部131から取得する。そして、オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の低い列を1つのオブジェクトにまとめる(ステップS203)。
また、オブジェクト生成部132は、DBMS12から取得した各列の情報を用いてデータベースファイル200を列毎に分割して、アクセス頻度の高い列を各グループにまとめる。次に、オブジェクト生成部132は、各グループを最適な分割サイズに分割して、それぞれを1つのオブジェクトとする(ステップS204)。
オブジェクト生成部132は、各オブジェクトに含まれる列を表す情報を含むオブジェクトの情報及び各オブジェクトを配置する階層の情報をオブジェクト移動指示部133へ出力する。オブジェクト移動指示部133は、指定された階層への各オブジェクトの格納をデータムーバ14に指示する。データムーバ14は、アクセス頻度の高い列群のオブジェクトを第1階層31に移動し、アクセス頻度の低い列群のオブジェクトを第2階層32に移動する(ステップS205)。
以上に説明したように、本実施例に係るストレージシステムは、同時にアクセスされる頻度の高い列をグループ化して最適な分割サイズで分割したものをそれぞれ1つのオブジェクトとして、第1階層に格納する。これにより、1回のアクセスでの複数列の読み出しを増やすことができ、アクセス回数を減らすことが可能となる。
また、データベースファイルを1つのオブジェクトとして格納する従来技術では読み出し性能が出ないおそれがある。オブジェクトストレージは、一般に高い並列アクセス性能を有し、同一データを複数のオブジェクトに分割して格納して、読み出し時にはオブジェクトを並列に読み出すことで読み出し性能が向上する。しかし、ファイル全体を1つのオブジェクトとして格納した場合、並列アクセス数が1つに制限されため、読み出し性能の向上が見込めないためである。このように、従来のオブジェクトストレージへの格納技術では、読み出し性能を向上させることが困難であった。これに対して、本実施例に係るストレージシステムの場合、最適な読み出し性能を実現するアクセスを並列で行うことができ、読み出し性能を向上させることができる。したがって、本実施例に係るストレージシステムは、読み出し回数及び読み出しコストの増大を押さえつつ、各グループを最大の読み出し性能で読み出すことが可能となる。
さらに、本実施例に係る格納手法と他の格納手法とを比較して、本実施例に係る格納手法の効果を数量的に説明する。上述したように、本実施例に係るストレージシステムでは、最適な分割サイズのオブジェクトからのデータの最大読み出し性能でデータを読み出すことができる。したがって、1つのグループに属する複数のオブジェクトからデータを読み出す場合、オブジェクトの個数に応じた最大の読み出し性能をbとすると、bでデータを読み出すことが可能となる。ただし、異なるグループを読み出す場合は、それぞれのグループにおいて、それぞれ最大の読み出し性能であるbに制限される。
ここで、データベースファイルをオブジェクトに分割する他の方法として、例えば、同時にアクセスされる頻度の高い列群を考慮せず、アクセス頻度の高い列群を最適な分割サイズで等分する手法が考えられる。図9は、アクセス頻度の高い列群を最適な分割サイズで等分してオブジェクトとした場合の格納例を示す図である。この場合、オブジェクト321は、どれも同時にアクセスされる頻度の低い列のデータが含まれる。
図9のレイアウトの場合、コストの問題が発生する。図9のレイアウトでは、アクセス頻度の高い列群全体を読み出す場合であれば高速に読み出すことができ、最大の読み出し性能であるbで読み出すことが可能である。ただし、実際にはアクセスはグループ単位で行われるため、各グループの四出し性能は、図9の場合であれば、(4列)/(8列)×b=b/2まで低下する。また、各グループのデータが全てのオブジェクト321に分散しているため、各グループを読み出すためには全てのオブジェクトにアクセスすることになり、アクセスコストがかさむという問題もある。
他のレイアウトとして、各列を1つのオブジェクトすることも可能である。図10は、アクセス頻度の高い列群の各列を1つのオブジェクトとした場合の格納例を示す図である。図10では、アクセス頻度の高い列201及び202がそれぞれ個別に1つのオブジェクトとして第1階層31に格納される。この場合、各列のサイズは最適な分割サイズよりも小さいため、各グループの読み出し性能はbとなる。ただし、この場合でも、各グループを読み出すためには、図9の場合と同様に4回のアクセスが行われる。したがって、アクセスコストが嵩むという問題がある。
これに対して、本実施例に係る格納方法では、いずれのグループについても図9及び10の場合の半分の2回のアクセスで読み出すことが可能である。したがって、本実施例に係る各右脳方法の場合、アクセス回数を低減させて、アクセスコストを抑えることが可能である。
(ハードウェア構成)
図11は、ゲートウェイのハードウェア構成の一例を示す図である。ゲートウェイ10は、例えば、図11に示すように、CPU(Central Processing Unit)91、メモリ92、記憶装置93及び通信インタフェース94を有する。CPU91は、メモリ92、記憶装置93及び通信インタフェース94とバスで相互に接続される。
通信インタフェース94は、ゲートウェイ10と外部装置との間で通信を行うためのインタフェースである。通信インタフェース94は、例えば、端末装置20、オブジェクトストレージ30及び管理者端末40とCPU91との間の通信を中継する。
記憶装置93は、例えば、ハードディスクやSSD(Solid State Drive)である。記憶装置93は、図1、2及び6に例示したプロファイラ11、DBMS12、データリオーガナイザ13及びデータムーバ14の機能を実現するためのプログラムを含む各種プログラムを格納する。
CPU91は、記憶装置93から各種プログラムを読み出してメモリ92に展開して実行することで、図1、2及び6に例示したプロファイラ11、DBMS12、データリオーガナイザ13及びデータムーバ14の機能を実現する。
1 ストレージシステム
10 ゲートウェイ
11 プロファイラ
12 DBMS
13 データリオーガナイザ
14 データムーバ
20 端末装置
30 オブジェクトストレージ
31 第1階層
32 第2階層
40 管理者端末
111 リクエスト取得部
112 アクセス履歴収集部
113 列群分類部
114 グループ分類部
131 プロファイル結果取得部
132 オブジェクト生成部
133 オブジェクト移動指示部
134 パラメータ取得部

Claims (7)

  1. データベースファイルを複数のデータ集合に分類し、
    分類した前記データ集合を基にオブジェクトを生成し、
    生成した各前記オブジェクトをオブジェクトストレージにおける管理条件が異なる階層に分割配置する
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2. 前記データベースファイルの各列に対するアクセス履歴を取得し、
    取得した前記アクセス履歴を基に前記データベースファイルを複数の前記列が属する前記データ集合に分割する
    処理をコンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記データベースファイルに含まれる各データが行列で表され、且つ、列毎に連続する前記データが格納され、
    前記アクセス履歴を基に算出したアクセス頻度が所定の閾値以上であるアクセス頻度が高い列群と前記アクセス頻度が前記閾値未満であるアクセス頻度が低い列群とに分類し、
    前記アクセス頻度が高い列群を基に生成される前記オブジェクトを第1階層に配置し、
    前記アクセス頻度が低い列群を基に生成される前記オブジェクトを第2階層に配置する
    処理をコンピュータに実行させることを特徴とする請求項2に記載の情報処理プログラム。
  4. 前記アクセス履歴に基づくアクセス相関を基に、前記データ集合に含まれる前記列をグループ化して複数のグループを作成し、
    前記グループ化された前記データ集合については前記グループ毎にオブジェクトを作成する
    処理をコンピュータに実行させることを特徴とする請求項2又は3に記載の情報処理プログラム。
  5. 前記オブジェクトストレージにおいて読み出し性能が最大となるサイズで各前記グループを分割してそれぞれを前記オブジェクトとする処理をコンピュータに実行させることを特徴とする請求項4に記載の情報処理プログラム。
  6. データベースファイルを複数のデータ集合に分類し、
    分類した前記データ集合からオブジェクトを生成し、
    生成した各前記オブジェクトをオブジェクトストレージにおける管理条件が異なる階層に分割配置する
    ことを特徴とする情報処理方法。
  7. データベースファイルを複数のデータ集合に分類するプロファイラと、
    前記プロファイラにより分類された前記データ集合からオブジェクトを生成するオブジェクト生成部と、
    前記オブジェクト生成部により生成された各前記オブジェクトをオブジェクトストレージにおける管理条件が異なる階層に分割配置するオブジェクト移動指示部と
    を備えたことを特徴とする情報処理装置。
JP2021023978A 2021-02-18 2021-02-18 情報処理プログラム、情報処理方法及び情報処理装置 Pending JP2022126099A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021023978A JP2022126099A (ja) 2021-02-18 2021-02-18 情報処理プログラム、情報処理方法及び情報処理装置
US17/524,773 US20220261724A1 (en) 2021-02-18 2021-11-12 Computer-readable recording medium storing information processing program, information processing method, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021023978A JP2022126099A (ja) 2021-02-18 2021-02-18 情報処理プログラム、情報処理方法及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2022126099A true JP2022126099A (ja) 2022-08-30

Family

ID=82800432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021023978A Pending JP2022126099A (ja) 2021-02-18 2021-02-18 情報処理プログラム、情報処理方法及び情報処理装置

Country Status (2)

Country Link
US (1) US20220261724A1 (ja)
JP (1) JP2022126099A (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671680B1 (en) * 2000-01-28 2003-12-30 Fujitsu Limited Data mining apparatus and storage medium storing therein data mining processing program
JP2004078631A (ja) * 2002-08-20 2004-03-11 Fujitsu Ltd オブジェクト指向データベースにおける検索装置及び検索方法
JP4752623B2 (ja) * 2005-06-16 2011-08-17 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US8386444B2 (en) * 2006-12-29 2013-02-26 Teradata Us, Inc. Techniques for selective compression of database information
US7890480B2 (en) * 2008-02-11 2011-02-15 International Business Machines Corporation Processing of deterministic user-defined functions using multiple corresponding hash tables
US9805077B2 (en) * 2008-02-19 2017-10-31 International Business Machines Corporation Method and system for optimizing data access in a database using multi-class objects
US20190236415A1 (en) * 2018-01-30 2019-08-01 Beamr Imaging Ltd. Method of classification of an object and system thereof

Also Published As

Publication number Publication date
US20220261724A1 (en) 2022-08-18

Similar Documents

Publication Publication Date Title
US11429630B2 (en) Tiered storage for data processing
US9223820B2 (en) Partitioning data for parallel processing
US10922316B2 (en) Using computing resources to perform database queries according to a dynamically determined query size
US10061834B1 (en) Incremental out-of-place updates for datasets in data stores
Carniel et al. A generic and efficient framework for flash-aware spatial indexing
No et al. Integrating parallel file I/O and database support for high-performance scientific data management
CN110704431A (zh) 一种海量数据的分级存储管理方法
Zhou et al. Hierarchical consistent hashing for heterogeneous object-based storage
Shi et al. ByteSeries: an in-memory time series database for large-scale monitoring systems
Carniel et al. Analyzing the performance of spatial indices on hard disk drives and flash-based solid state drives
CN107346342A (zh) 一种基于存储计算的文件调用方法与系统
JP2022126099A (ja) 情報処理プログラム、情報処理方法及び情報処理装置
Lin et al. Optimizing fastquery performance on lustre file system
US11537616B1 (en) Predicting query performance for prioritizing query execution
US9323768B2 (en) Anticipatorily retrieving information in response to a query of a directory
Liu et al. Closing the performance gap between leveling and tiering compaction via bundle compaction
JP2021197010A (ja) 分散型ストレージシステム及びリバランス処理方法
KR101694299B1 (ko) 클라우드 스토리지의 저장장치를 관리하기 위한 방법 및 메타데이터 서버
Mazumdar et al. An index scheme for fast data stream to distributed append-only store
Song et al. A distributed self-adaption cube building model based on query log
Zhou et al. PAHDFS: preference-aware HDFS for hybrid storage
Carniel et al. Spatial index structures for modern storage devices: A survey
Yan et al. Optimizing the restoration performance of deduplication systems through an energy-saving data layout
Zhang et al. DeStager: feature guided in-situ data management in distributed deep memory hierarchies
Li et al. Performance optimization of small file I/O with adaptive migration strategy in cluster file system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231109