JP6690829B2 - 計算機システム、省電力化方法及び計算機 - Google Patents

計算機システム、省電力化方法及び計算機 Download PDF

Info

Publication number
JP6690829B2
JP6690829B2 JP2015169171A JP2015169171A JP6690829B2 JP 6690829 B2 JP6690829 B2 JP 6690829B2 JP 2015169171 A JP2015169171 A JP 2015169171A JP 2015169171 A JP2015169171 A JP 2015169171A JP 6690829 B2 JP6690829 B2 JP 6690829B2
Authority
JP
Japan
Prior art keywords
storage device
volume
power consumption
data
management system
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
JP2015169171A
Other languages
English (en)
Other versions
JP2017045381A (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.)
University of Tokyo NUC
Original Assignee
University of Tokyo NUC
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 University of Tokyo NUC filed Critical University of Tokyo NUC
Priority to JP2015169171A priority Critical patent/JP6690829B2/ja
Priority to US15/755,917 priority patent/US10649519B2/en
Priority to PCT/JP2016/074893 priority patent/WO2017038652A1/ja
Publication of JP2017045381A publication Critical patent/JP2017045381A/ja
Application granted granted Critical
Publication of JP6690829B2 publication Critical patent/JP6690829B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Operations Research (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Sources (AREA)

Description

本発明は、計算機システムの消費電力を調整する技術に関し、特に、データベース管理システムにおける消費電力を調整する技術に関する。
データベース管理システムでは、データを入出力するクエリの実行要求を受け付けると、クエリの実行計画を作成し、データの入出力と処理が実行される。従来技術においては、主記憶容量又は二次記憶容量などの利用可能な計算機資源の制約下において、処理性能が最大化されるようにクエリ実行計画が生成されていた。
近年、計算機システムには、性能の向上に加え、電力消費の低減が強く求められており、ディスクドライブのスピンダウンなど、多様な省電力化機能がストレージ装置に具備されるようになりつつある(特許文献1、特許文献2、非特許文献1、非特許文献2参照)。
特開2003−108317号公報 特開2007−102322号公報
S.W.Son、他2名、"Disk Layout Optimization for Reducing Energy Consumption."、In Proc. Int'l Conf. on Supercomputing、2005、p274-283 J.Gray、他2名、"Parity Striping of Disc Arrays: Low-Cost Reliable Storage with Acceptable Throughput."、In Proceedings of the 16th Very Large Database Conference、1990、p148-160
しかし、データベース管理システムにおいて、クエリ実行計画は、計算機システムの省電力機能を考慮せずに生成されるため、消費電力を低減させるには不十分であった。
本発明は、データベース管理システムにおいて、省電力化機能を考慮してクエリ実行計画を最適化することによって、消費電力を低減させることを可能とする計算機システムを提供することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムであって、前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される複数の演算装置と、前記演算装置に接続される主記憶装置と、を備え、前記主記憶装置には、前記データベース管理システムが記憶され、前記データベース管理システムは、前記演算装置の消費電力を低減するスリープ状態と、前記データの処理を可能とするアクティブ状態とを切り替える演算装置省電力機能を備え、前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが作成され、前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、前記データベース管理システムは、前記演算装置に実行されることによって、前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、前記選択された実行計画に基づいて、前記制御部にデータの読み書きを指示するための処理を実行し、前記複数の演算装置から一の演算装置を選択し、当該選択された演算装置とは異なる演算装置に、当該選択された演算装置で実行されている処理を割り当て、前記選択された演算装置で処理が実行されていない場合には、当該選択された演算装置を前記アクティブ状態から前記スリープ状態に移行させる
本発明の代表的な実施形態によると、計算機システムの省電力機能が有効に機能するように実行計画を生成することによって消費電力を低減させることができる。
本発明の第1実施形態の計算機システムの構成を示す図である。 本発明の第1実施形態の計算機システムにおける処理手順の概要を説明する図である。 本発明の第1実施形態のクエリ受付処理の手順を示すフローチャートである。 本発明の第1実施形態のクエリ実行計画生成処理の手順を示すフローチャートである。 本発明の第1実施形態のストレージ電力特性情報取得処理の手順を示すフローチャートである。 本発明の第1実施形態のストレージ電力特性情報送信処理の手順を示すフローチャートである。 本発明の第1実施形態のストレージ電力特性情報生成処理の手順を示すフローチャートである。 本発明の第1実施形態の実行コスト見積式構成処理の手順を示すフローチャートである。 本発明の第1実施形態のクエリ実行計画最適化処理の手順を示すフローチャートである。 本発明の第1実施形態のクエリ実行計画管理表の一例を示す図である。 本発明の第1実施形態のクエリ実行計画決定処理の手順を示すフローチャートである。 本発明の第1実施形態のクエリ実行処理の手順を示すフローチャートである。 本発明の第1実施形態の電力制御命令発行処理の手順を示すフローチャートである。 本発明の第1実施形態のアウトオブオーダ実行処理とデータタスク駆動処理の手順を示すフローチャートである。 本発明の第1実施形態のタスク生成処理の手順を示すフローチャートである。 本発明の第1実施形態のインオーダ実行処理との手順を示すフローチャートである。 本発明の第1実施形態の入出力処理の手順を示すフローチャートである。 本発明の第1実施形態のボリューム状態情報の一例を示す図である。 本発明の第1実施形態の電力制御処理の手順を示すフローチャートである。 本発明の第1実施形態のスリープ処理の手順を示すフローチャートである。 本発明の第1実施形態のデータベースの表及び索引を格納するボリュームの構成を説明する図である。 本発明の第1実施形態のデータベースの各表の構成を説明する図である。 本発明の第1実施形態の外部ストレージ装置のストレージ電力特性情報を示す図である。 本発明の第1実施形態のデータベースサーバで実行され、外部ストレージ装置からデータを取得するためのクエリの例を示す図である。 本発明の第1実施形態のハッシュ結合によってクエリ1を処理するクエリ実行計画案1を説明する図であり、(A)はクエリ実行計画案1の内容、(B)は各ボリュームの状態を時系列順に示す図である。 本発明の第1実施形態の索引結合(インオーダ実行)によってクエリ1を処理するクエリ実行計画案2を説明する図であり、(A)はクエリ実行計画案2の内容、(B)は各ボリュームの状態を時系列順に示す図である。 本発明の第1実施形態の索引結合(アウトオブデータ実行)によってクエリ1を処理するクエリ実行計画案3を説明する図であり、(A)はクエリ実行計画案3の内容、(B)は各ボリュームの状態を時系列順に示す図である。 本発明の第1実施形態において閾値を指定せずに実行時間の低減を優先してクエリ1を処理した場合のクエリ実行計画表の一例を示す図である。 本発明の第1実施形態において最大消費電力を250Wとする閾値を指定し、実行時間の低減を優先してクエリ1を処理した場合のクエリ実行計画表の一例を示す図である。 本発明の第1実施形態において閾値を指定せずに実行時間の低減を優先してクエリ2を処理した場合のクエリ実行計画表の一例を示す図である。 本発明の第2実施形態の計算機システムの構成を示す図である。 本発明の第2実施形態のサーバ電力特性情報生成処理の手順を示すフローチャートである。 本発明の第2実施形態の電力制御命令発行処理の手順を示すフローチャートである。 本発明の第2実施形態のCPU電力制御処理の手順を示すフローチャートである。 本発明の第2実施形態の主記憶電力制御処理の手順を示すフローチャートである。 本発明の第2実施形態のCPU・主記憶状態情報の一例を示す図であり、(A)はCPUの状態、(B)は主記憶の状態を示している。 本発明の第2実施形態のタスク生成処理の手順を示すフローチャートである。 本発明の第2実施形態のデータベースサーバのCPU・主記憶電力特性情報を示す図である。 本発明の第2実施形態のデータベースサーバにおけるCPUに対する電力制御による消費電力の低減を説明する図であり、(A)は電力制御実行前、(B)は電力制御実行後を示す。 本発明の第2実施形態のデータベースサーバにおける主記憶に対する電力制御による消費電力の低減を説明する図であり、(A)は電力制御実行前、(B)は電力制御実行後を示す。 本発明の第3実施形態の計算機システムの構成を示す図である。 本発明の第3実施形態のクエリ実行計画生成処理の手順を示すフローチャートである。 本発明の第3実施形態の部分処理クエリ実行計画案生成処理の手順を示すフローチャートである。 本発明の第3実施形態のボリューム状態情報取得処理の手順を示すフローチャートである。 本発明の第3実施形態のボリューム状態情報送信処理の手順を示すフローチャートである。 本発明の第3実施形態のボリューム及びCPUのスリープ計画表の一例を示す図である。 本発明の第3実施形態のアウトオブオーダ実行処理の手順を示すフローチャートである。 本発明の第3実施形態のインオーダ実行処理の手順を示すフローチャートである。 本発明の第3実施形態のデータベースの構成を説明する図である。 本発明の第3実施形態の外部ストレージ装置のストレージ電力特性情報を示す図である。 本発明の第3実施形態のデータベースサーバで実行されるクエリの一例を示す図である。 本発明の第3実施形態の索引結合(アウトオブオーダ実行)によってクエリ1を処理するクエリ実行計画案3を説明する図である。 本発明の第3実施形態において部分実行を行わない場合のクエリ実行計画案3による処理性能を示す図であり、(A)は各ボリュームの性能情報、(B)は各ボリュームの状態を示す。 本発明の第3実施形態において部分実行を行う場合のクエリ実行計画案3による処理性能を示す図であり、(A)はスリープ計画表、(B)は各ボリュームの性能情報、(C)は各ボリュームの状態を示す。 本発明の第4実施形態の計算機システムの構成を示す図である。 本発明の第4実施形態の入出力命令発行処理の手順を示すフローチャートである。 本発明の第4実施形態の入出力処理の手順を示すフローチャートである。 本発明の第4実施形態の入出力命令保留処理の手順を示すフローチャートである。 本発明の第4実施形態の保留入出力命令再開処理の手順を示すフローチャートである。 本発明の第4実施形態の保留入出力情報の一例を示す図である。 本発明の第4実施形態において遅延可能フラグを付与せずに入出力命令を発行した場合の各ボリュームの状態を説明する図である。 本発明の第4実施形態において遅延可能フラグを付与して入出力命令を発行した場合の各ボリュームの状態を説明する図である。
(第1実施形態)
本発明の第1実施形態のデータベースシステム(計算機システム10)では、アプリケーションプログラム130によって業務処理を実行し、データベースサーバ100を介して外部ストレージ装置200に格納されたデータを読み書きする。以下、本発明の第1実施形態の計算機システム10の構成について説明する。
図1は、本発明の第1実施形態の計算機システム10の構成を示す図である。本発明の第1実施形態の計算機システム10は、データベースサーバ100及び外部ストレージ装置200を含む。データベースサーバ100及び外部ストレージ装置200は、それぞれ複数含まれるようにしてもよい。データベースサーバ100及び外部ストレージ装置200はそれぞれ、別の筐体にあってもよく、もしくは、同一の筐体にあってもよい。また、データベースサーバ100及び外部ストレージ装置200はそれぞれ、計算機システムもしくはクラウド上に構成された仮想的な計算機及びストレージであってもよい。
データベースサーバ100及び外部ストレージ装置200は、ネットワーク20及びネットワーク30の2種類のネットワークによって接続されている。ネットワーク20は、データを送受信するためのネットワークであり、本実施形態では大容量のデータの送受信に適したSAN(Storage Area Network)である。ネットワーク30は、コマンドなどの制御情報が送受信されるネットワークであり、例えば、インターネットプロトコル(IP)ネットワークである。なお、ネットワーク20及びネットワーク30を双方の機能を兼ねる単一のネットワークとしてもよい。また、ネットワーク20及びネットワーク30は、有線あってもよいし、無線であってもよい。ネットワーク20及びネットワーク30は、SCSI(Small Computer System Interface)等のバスであってもよい。
データベースサーバ100は、データの入出力要求(クエリ)を受け付けて、外部ストレージ装置200に格納されたデータを読み書きする。データの入出力要求は、ネットワークを介して接続された他の計算機からの入力であってもよいし、データベースサーバ100で実行されるアプリケーションプログラムからの入力であってもよい。
データベースサーバ100は、CPU(演算装置)110、主記憶(主記憶装置)120、ホストバスアダプタ(HBA)160、ネットワークインターフェイスカード(NIC)161、ストレージ装置180、電源監視部190及び電源191を含む。
CPU110は、主記憶120に記憶されたプログラムを実行することによって、各種処理を実行する。主記憶120は、CPU110によって実行されるプログラムを記憶する。主記憶120に記憶されるプログラムは、例えば、ストレージ装置180に格納されたプログラムを読み出してもよいし、図示しない読み出し専用メモリ(ROM)に記憶されているプログラムを読み出してもよい。本実施形態では、図1に示すように、主記憶120は、アプリケーションプログラム130と、オペレーティングシステム(OS)140と、データベース管理システム(DBMS)150と、を記憶する。また、主記憶120は、各プログラムの実行に必要なデータを一時的に記憶する。
アプリケーションプログラム130は、CPU110に実行されることによって、データベースサーバ100に業務処理を実行させる。アプリケーションプログラム130は、例えば、Webアプリケーションなどである。なお、データベースサーバ100にアプリケーションプログラム130を配置せずに、アプリケーションプログラム130を実行するための計算機(アプリケーションサーバ)を配置して当該計算機がデータベースサーバ100に入出力要求を送信し、データベースサーバ100を介して外部ストレージ装置200に格納されたデータを読み書きするようにしてもよい。
オペレーティングシステム(OS)140は、アプリケーションプログラム130が各種資源(リソース)を利用するためのインターフェイスを提供したり、リソースを管理したりする。
DBMS150は、外部ストレージ装置200に格納されたデータを管理する。また、DBMS150は、外部ストレージ装置200だけでなく、データベースサーバ100に備えられたストレージ装置180に格納されたデータを管理してもよく、図示しない他の外部ストレージ装置に格納されたデータを管理するようにしてもよい。
DBMS150は、クエリ受付部151、クエリ実行計画生成部152、クエリ実行部153及びクエリ実行特性情報154を含む。クエリ受付部151、クエリ実行計画生成部152及びクエリ実行部153は、CPU110によって実行されるプログラムを含む。
クエリ受付部151は、外部の計算機から又はアプリケーションプログラム130の実行により、入力されたデータの入出力要求を受け付け、クエリ実行計画生成部152、クエリ実行部153によってクエリを実行し、クエリの実行結果を要求元に送信する。クエリは、例えば、SQLによって記載されている。
クエリ実行計画生成部152は、クエリ受付部151によって受け付けられたクエリを解析し、外部ストレージ装置200に格納されたデータにアクセスするための手順(クエリ実行計画)を生成する。本実施形態では、クエリ実行計画生成部152は、指定されたポリシーに基づいてクエリ実行計画を生成する。クエリ実行計画生成部152による処理の詳細については図4から図11にて後述する。
クエリ実行部153は、クエリ実行計画生成部152によって生成されたクエリ実行計画に基づいて外部ストレージ装置200からデータを取得する。クエリ実行部153による処理の詳細については図12から図16にて後述する。
ホストバスアダプタ(HBA)160は、ネットワーク20に接続するためのインターフェイスである。ネットワークインターフェイスカード(NIC)161は、ネットワーク30に接続するためのインターフェイスである。
ストレージ装置180は、データベースサーバ100に備えられる記憶装置である。ストレージ装置180は、不揮発性の記憶媒体であり、主記憶120にロードされて実行されるアプリケーションプログラム130などのプログラム、当該プログラムの実行に必要な制御情報などが格納される。また、アプリケーションプログラム130、OS140、DBMS150によって管理されるデータを格納してもよい。
電源監視部190は、電源191からの電力の供給状態を監視する。例えば、電源191からの電力供給の遮断を検知した場合にはデータベースサーバ100の電源を停止させるための処理(シャットダウン)を実行する。電力供給の遮断は、例えば、所定の電圧以下の状態が所定時間継続した場合に検知される。電源191は、例えば、複数の電源モジュールによって構成される。また、電源191には、無停電電源装置(UPS)などのバックアップ電源を含み、外部からの電源の供給が遮断された後も所定時間電源の供給を継続することができるように構成されている。これにより、電源の供給が遮断された後にバックアップ電源から電源が供給されている間に安全にデータベースサーバ100の電源を遮断することができる。また、電源監視部190は、電源191からの電源の供給状態を計測する。電源監視部190が計測する項目は、電力供給の消費電力や(積算)電力量等である。電源監視部190及び電源191は、データベースサーバ100の筐体内に構成されていてもよく、また、電力分配装置(PDU)等の別の筐体内に構成されていてもよい。
外部ストレージ装置200は、データベースサーバ100によって読み書きされるデータを格納する。外部ストレージ装置200は、制御部210、ホストバスアダプタ(HBA)260、ネットワークインターフェイスカード(NIC)261、ストレージ装置群280、電源監視部290及び電源291を含む。また、外部ストレージ装置200には、図示しない冷却部などが含まれる。冷却部は、例えば、複数の冷却ファンによって構成される。なお、外部ストレージ装置200は、データベースサーバ100に読み書きされるデータ以外のデータを格納してもよい。
制御部210は、データベースサーバ100から送信されたデータの入出力要求に基づいて、ストレージ装置群280に格納されたデータを読み書きする。制御部210は、外部ストレージ装置200を制御し、演算装置及び記憶装置などのハードウェアと演算装置によって実行されるプログラムなどのソフトウェアによって構成される。
また、制御部210は、ストレージ装置群280によって提供される一又は複数の記憶領域を論理的に一つのボリュームとして、データベースサーバ100などの外部の計算機に提供する。外部ストレージ装置200は、一又は複数のボリュームを提供する。データベースサーバ100は、各ボリュームに対してデータを読み書きする。
制御部210は、入出力処理部211、ストレージ電力制御部212、ボリューム状態情報213、ストレージ電力特性情報管理部214及びストレージ電力特性情報215を含む。
入出力処理部211は、データベースサーバ100などから送信されたストレージ装置群280に格納されたデータの入出力要求を受け付ける。また、入出力処理部211は、データの入出力要求の結果をデータの要求元に送信する。
ストレージ電力制御部212は、主としてストレージ装置群280の消費電力を制御する。例えば、一定時間アクセスされなかったストレージ装置のディスクドライブの回転を減速させたり、停止させたりするなどして、消費電力を削減する(省電力機能)。
ボリューム状態情報213は、ストレージ装置群280によって提供されるボリュームの情報を格納する。ボリューム状態情報213には、例えば、省電力機能が実行されているか否かを示す電力情報などが含まれる。ボリューム状態情報213の詳細は、図18にて後述する。
ストレージ電力特性情報管理部214は、ストレージ装置群280によって提供される各ボリュームの電力特性情報を管理する。具体的には、所定のタイミングでボリュームごとの消費電力などの電力特性情報を取得し、ストレージ電力特性情報215として記録する。ストレージ電力特性情報管理部214による処理の詳細については図19及び図20にて後述する。ストレージ電力特性情報215の詳細は図23にて後述する。
ホストバスアダプタ(HBA)260は、ネットワーク20に接続するためのインターフェイスである。ネットワークインターフェイスカード(NIC)261は、ネットワーク30に接続するためのインターフェイスである。
ストレージ装置群280は、大容量の記憶資源が用いられた複数の記憶装置によって構成される。本実施形態では、記憶装置としてハードディスクドライブ(HDD)などの磁気ディスク装置が用いられるが、光ディスクドライブ、半導体記憶装置(ソリッドステートドライブ;SSD)などの不揮発性記憶媒体であってもよい。また、信頼性(対障害性)を向上させるために、複数の記憶装置によって冗長性を持たせた構成とするようにしてもよい。ストレージ装置群280によって提供されるボリュームには、表(関係表)及び索引などのデータベースを構成するオブジェクトが格納されている。データベースオブジェクトは、一のボリュームに格納されていてもよいし、複数のボリュームに分散して格納されていてもよい。
また、ストレージ装置群280は、各ボリュームに格納されたデータの読み書きを高速化するために一時的にデータを格納する補助記憶装置(キャッシュメモリ)を備えるようにしてもよい。例えば、アクセスされる可能性の高いデータを予測して、あらかじめ補助記憶装置に格納しておくことによって、ストレージ装置群280を構成する記憶装置から直接データを取得することなく、要求されたデータを高速に提供することが可能となる。
電源監視部290は、データベースサーバ100の電源監視部190と同様に、電源291からの電力の供給状態を監視する。例えば、電力供給の遮断を検知した場合には、ストレージ装置群280に格納されたデータベースオブジェクトの破損を防ぐために安全に電源を遮断する停電処理が実行される。また、電源監視部290は、電源291からの電源の供給状態を計測する。電源監視部290が計測する項目は、電力供給の消費電力や(積算)電力量等である。電源監視部290及び電源291は、外部ストレージ装置200の筐体内に構成されていてもよく、また、電力分配装置(PDU)等の別の筐体内に構成されていてもよい。また、電源監視部290及び電源291は、電源監視部190及び電源191と共用してもよい。
以上、本実施形態の計算機システム10の全体構成について説明した。続いて、本実施形態の計算機システム10における処理の概要について説明する。図2は、本発明の第1実施形態の計算機システム10における処理手順の概要を説明する図である。図2では、アプリケーションプログラム130によってデータベース管理システム150を介して外部ストレージ装置200からデータを取得する手順を示している。
データベースサーバ100のCPU110は、アプリケーションプログラム130が実行されると、データベース管理システム150のクエリ受付部151にデータを取得するためのクエリ(問い合わせ)を送信する。
CPU110は、クエリを受信すると、クエリ実行計画生成部152を実行し、受信したクエリに基づいてクエリ実行計画を生成する。さらに、生成したクエリ実行計画に基づいて、クエリ実行部153を実行する。クエリ実行部153では、生成されたクエリ実行計画に基づき、データの入出力命令を生成する。クエリ実行部153では、データの入出力命令を、順次、外部ストレージ装置200に送信する。
クエリ実行計画は、データの入出力命令、演算処理などを含むオペレーションを組み合わせて構成されている。また、オペレーションの先行関係が必要に応じて定義されている。例えば、複数の異なるデータを取得するクエリを実行する場合、異なるデータに対する入出力命令を含むオペレーションがクエリ実行計画に複数含まれていることがある。
外部ストレージ装置200の制御部210は、入出力処理部211にデータベースサーバ100から送信されたデータの入出力命令を受け付けると、ボリュームの構成情報などに基づいて、ストレージ装置群280に格納されたデータベースから要求されたデータの格納場所を特定し、当該データにアクセスする。そして、データにアクセスした結果(入出力結果)を入出力処理部211によってデータベースサーバ100に応答する。このとき、入出力結果はHBA260及びネットワーク30を介して送信される。
CPU110は、外部ストレージ装置200から入出力結果を受信すると、クエリ実行部153によって受信した入出力結果及びクエリ実行計画に基づいて、クエリ実行結果を生成する。すべての入出力結果を受信すると、最終的なクエリ実行結果を生成し、クエリ受付部151によってアプリケーションプログラム130に応答する。アプリケーションプログラム130では、応答されたクエリ結果に基づいて業務処理を実行する。
続いて、本発明の第1実施形態の計算機システム10における処理について説明する。図2に示した手順に沿って各処理について説明する。
図3は、本発明の第1実施形態のクエリ受付処理の手順を示すフローチャートである。クエリ受付処理は、データベースサーバ100で実行されるDBMS150に含まれるクエリ受付部151によって実行される。クエリ受付処理は、外部ストレージ装置200に格納されたデータに対する入出力要求(クエリ)を受け付けた場合に実行される。
データベースサーバ100のCPU110は、クエリ受付部151において、アプリケーションが発行したクエリ(入出力要求)を受信する(ステップS101)。さらに、受信したクエリをクエリ実行計画生成部152に送信する(ステップS102)。
CPU110は、クエリ実行計画生成部152によってクエリ実行計画生成処理を実行することでクエリ実行計画を生成する。クエリ実行計画生成処理の詳細については、図4にて後述する。そして、CPU110は、生成されたクエリ実行計画をクエリ実行部153に送信し、受信したクエリを実行する。クエリの実行が完了すると、クエリ受付部151において、クエリ実行部153からクエリ結果を受信する(ステップS103)。その後、受信したクエリ結果をアプリケーションに送信する(ステップS104)。
続いて、クエリ実行計画生成処理について説明する。図4は、本発明の第1実施形態のクエリ実行計画生成処理の手順を示すフローチャートである。クエリ実行計画生成処理は、データベースサーバ100で実行されるDBMS150に含まれるクエリ実行計画生成部152によって実行される。
データベースサーバ100のCPU110は、クエリ受付部151によってクエリ実行計画生成処理が実行されると、まず、クエリ受付部151が送信したクエリを受信する(ステップS111)。さらに、受信したクエリに基づいて、一以上のクエリ実行計画案を生成する(S112)。
クエリ実行計画は、受信したクエリに基づいて、データを格納する表(関係表)からレコードを抽出したり、抽出されたレコードを整列したりするための手順を定義するものである。本実施形態では、複数のクエリ実行計画案を生成し、後述するように、各クエリ実行計画案の実行コストを算出してパラメータを最適化し、実際に実行するクエリ実行計画を決定する。
ここで、クエリ実行計画の例について説明する。結合演算処理に関して例を挙げると、クエリ実行計画案には、例えば、ハッシュ結合、ネステッドループ結合、整列併合(ソート&マージ)結合などがあり、それぞれに長所短所があり、必要とされる性能に応じて選択される。
ハッシュ結合では、ステップ1として、関係表Rからハッシュ表R’を作成する。次に、ステップ2として、関係表Sを走査し、ハッシュ表R’と照合する。最後に、ステップ3として、照合結果を整列する。
ネステッドループ結合では、ステップ1として、関係表Rを走査し、各行について、索引S’を参照して関係表Sを検索する。そして、ステップ2として、検索結果を整列する。
整列併合(ソート&マージ)結合では、ステップ1として、関係表Rを整列する。そして、ステップ2として、整列された関係表Rと、索引S’を参照して関係表Sを走査して照合する。
続いて、クエリ実行計画案が生成されると、CPU110は、クエリ実行計画を決定するための処理を実行する。本実施形態では、クエリの実行に伴う消費電力をクエリの評価に含めるため、まず、外部ストレージ装置200における電力特性情報を取得するためのストレージ電力特性情報取得処理を実行する(ステップS113)。ストレージ電力特性情報取得処理の詳細については図5にて後述する。なお、本実施形態では、クエリを受け付けるたびに外部ストレージ装置200から電力特性情報を取得しているが、定期的に外部ストレージ装置200から電力特性情報を取得して主記憶120に記憶し、クエリ実行時に参照するようにしてもよい。
次に、CPU110は、生成されたクエリ実行計画案の実行コスト見積式を構成する実行コスト見積式構成処理を実行する(ステップS114)。実行コストの見積式は、処理速度などの性能評価するための見積式と、消費電力を評価する見積式とが含まれる。実行コスト見積式構成処理の詳細については図8にて後述する。
次に、CPU110は、ステップS114の処理で構成された実行コスト見積式に基づいて、各クエリ実行計画案の実行コストの見積値を算出し、各クエリ実行計画案を最適化するクエリ実行計画最適化処理を実行する(ステップS115)。クエリ実行計画最適化処理の詳細については図9にて後述する。
さらに、CPU110は、ステップS115の処理で最適化された各クエリ実行計画案の実行コストの見積値に基づいて、実行するクエリ実行計画案を決定するクエリ実行計画決定処理を実行する(ステップS116)。クエリ実行計画決定処理の詳細については図11にて後述する。
最後に、CPU110は、決定されたクエリ実行計画をクエリ実行部153に送信し(ステップS117)、本処理を終了する。
続いて、外部ストレージ装置200によって提供される各ボリュームの消費電力などの電力特性情報を取得するストレージ電力特性情報取得処理について説明する。図5は、本発明の第1実施形態のストレージ電力特性情報取得処理の手順を示すフローチャートである。ストレージ電力特性情報取得処理は、データベースサーバ100で実行されるDBMS150に含まれるクエリ実行計画生成部152によって実行される。
CPU110は、ストレージ電力特性情報取得処理が実行されると、外部ストレージ装置200にストレージ電力特性情報取得命令を発行する(ステップS121)。外部ストレージ装置200は、ストレージ電力特性情報取得命令を受信すると、要求された電力特性情報を取得し、データベースサーバ100に応答する。そして、CPU110は、外部ストレージ装置200からストレージ電力特性情報を受信し(ステップS122)、主記憶120(クエリ実行計画生成部152)に記憶する。その後、取得したストレージ電力特性情報に基づいてクエリ実行計画案の実行コストの見積値の算出などを行う。
次に、ストレージ電力特性情報送信処理について説明する。図6は、本発明の第1実施形態のストレージ電力特性情報送信処理の手順を示すフローチャートである。ストレージ電力特性情報送信処理は、外部ストレージ装置200の制御部210に含まれるストレージ電力特性情報管理部214によって実行される。
制御部210は、データベースサーバ100からストレージ電力特性情報取得命令を受信すると(ステップS131)、ストレージ電力特性情報215をデータベースサーバ100に送信する(ステップS132)。なお、ストレージ電力特性情報取得命令に取得する電力特性情報の指定が含まれている場合には指定された情報を送信するようにしてもよいし、取得可能なストレージ電力特性情報215を常に送信するようにしてもよい。本実施形態におけるストレージ電力特性情報の生成タイミングは図7にて後述する。
次に、ストレージ電力特性情報生成処理について説明する。図7は、本発明の第1実施形態のストレージ電力特性情報生成処理の手順を示すフローチャートである。ストレージ電力特性情報生成処理は、外部ストレージ装置200の制御部210に含まれるストレージ電力特性情報管理部214によって実行される。
また、ストレージ電力特性情報生成処理は、ストレージ電力特性情報取得命令を受信したタイミングで実行されるようにしてもよいが、本実施形態では、ストレージ電力特性情報送信処理の実行タイミングに関わらず、独立したタイミングで実行してもよい。具体的には、制御部210の負荷を検出し、無負荷状態の場合にストレージ電力特性情報を生成する。また、ストレージ電力特性情報を生成する処理を定期的に実行し、処理実行時に制御部210が無負荷状態でない場合には無負荷状態になるまで待機し、その後、ストレージ電力特性情報を生成するようにしてもよい。
制御部210は、ストレージ電力特性情報生成処理が開始されると、まず、制御部210が無負荷状態であるか否かを判定する(ステップS141)。制御部210の無負荷状態とは、例えば、データベースサーバ100などから受信した入出力要求を処理していない状態である。制御部210は、制御部210が無負荷状態でない場合には(ステップS141の結果が「F」)、制御部210が無負荷状態になるまで待機する(ステップS142)。
制御部210が無負荷状態である場合には(ステップS141の結果が「T」)、制御部210は、各ボリュームに対してステップS144からステップS146までの処理を実行する(ステップS143)。
制御部210は、まず、ストレージ電力特性情報を生成する対象のボリュームをスリープ状態(スリープ化)及びアクティブ状態(アクティブ化)に移行させ、各状態への移行が完了するまでに要する時間及び消費電力量を計測する(ステップS144)。アクティブ状態とは、格納されたデータに即座にアクセス可能な状態であり、例えば、ディスクドライブについて言えば、通常の回転速度を維持している状態であり、フラッシュメモリについて言えば、フラッシュチップとコントローラが動作している状態である。一方、スリープ状態とは、消費電力を低減している状態であり、例えば、ディスクドライブについて言えば、ディスクの回転を停止又は低速にしている状態であり、フラッシュメモリについて言えば、フラッシュチップとコントローラのいずれかが停止もしくは休眠している状態である。スリープ状態のボリュームからデータを入出力する場合には、一旦アクティブ状態に移行させる必要がある。ここでは、ボリュームの状態として、アクティブとスリープの2種類を述べているが、これ以外の状態、例えば、アクティブ状態より低速でアクセス可能であってアクティブ状態より消費電力が低い状態があってもよい。
次に、制御部210は、複数種類の負荷量となる入出力を対象のボリュームに対して実行し、負荷量ごとにスループット及び消費電力を計測する(ステップS145)。
ステップS144及びステップS145の処理が終了すると、制御部210は、対象のボリュームに対応するストレージ電力特性情報215を更新する(ステップS146)。以上の処理をすべてのボリュームに対して実行し、ストレージ電力特性情報215を生成する。
続いて、クエリ実行計画案の実行コストを算出するための見積式を構成する実行コスト見積式構成処理について説明する。図8は、本発明の第1実施形態の実行コスト見積式構成処理の手順を示すフローチャートである。実行コスト見積式構成処理は、データベースサーバ100で実行されるDBMS150に含まれるクエリ実行計画生成部152によって実行される。
CPU110は、実行コスト見積式構成処理が開始されると、生成されたすべてのクエリ実行計画案について、ステップS152及びステップS153の処理を実行する(ステップS151)。この際、生成されたすべてのクエリ実行計画案について、同処理を行うのではなく、事前に定めたルールを用いる等によって、一部のクエリ実行計画案を除外してもよい。
CPU110は、まず、性能情報の見積式を構成する(ステップS152)。性能情報は、クエリの実行速度や実行時間などに関する情報であり、実行多重度やメモリ消費量などであってもよい。次に、CPU110は、消費電力情報の見積式を構成する(ステップS153)。消費電力情報は、クエリ実行時の消費電力に関する情報であり、例えば、単位時間当たりの平均消費電力量、最大消費電力量、総消費電力量などがある。
続いて、各クエリ実行計画案の実行コストの見積式が構成されると、見積式に基づいてクエリ実行計画案のパラメータを最適化する。図9は、本発明の第1実施形態のクエリ実行計画最適化処理の手順を示すフローチャートである。クエリ実行計画最適化処理は、データベースサーバ100で実行されるDBMS150に含まれるクエリ実行計画生成部152によって実行される。
CPU110は、すべてのクエリ実行計画案について、指定された優先度(クエリ優先度)に適するようにクエリ実行計画案のパラメータを調整する(ステップS161)。本実施形態では、例えば、総消費電力量の低減を優先してパラメータを調整したり、最大消費電力の低減を優先してパラメータを調整したりする。特に優先度が指定されていない場合には、例えば、実行時間が短くなるようにパラメータを調整する。また、優先度が指定される項目にはそれぞれ閾値を設定することが可能となっており、閾値を満たす範囲で優先度が指定された項目を最適化する。この際、すべてのクエリ実行計画案について、上記の処理を行うのではなく、事前に定めたルールを用いる等によって、一部のクエリ実行計画案を除外してもよい。
CPU110は、まず、クエリ優先度が指定されているか否かを判定する(ステップS162)。クエリ優先度は、クエリを示すSQLに指示子として指定するようにしてもよいし、DBMS150の設定ファイルに含ませるようにしてもよい。SQLの指示子としてクエリ優先度を指定する場合には、例えば、負荷の大きい特定のクエリを実行する場合にのみ消費電力を調整することが可能となる。一方、DBMS150の設定ファイルにクエリ優先度を指定する場合には、例えば、計算機システム全体の消費電力量を調整することが可能となる。
CPU110は、クエリ優先度に総消費電力量の低減が指定されている場合には、指定された閾値を満たす範囲で総消費電力消費量を最小化するようにクエリ実行計画案のパラメータを調整する(ステップS163)。このとき、閾値としては、例えば、最大消費電力の上限及び実行時間の上限が指定される。
また、CPU110は、クエリ優先度が指定されていない場合、又は、実行時間の低減が指定されている場合には、指定された閾値を満たす範囲で実行時間を最小化するようにクエリ実行計画案のパラメータを調整する(ステップS164)。このとき、閾値は、最大消費電力の上限及び総消費電力消費量の上限が指定される。
さらに、CPU110は、クエリ優先度に最大消費電力の低減が指定されている場合には、指定された閾値を満たす範囲で最大消費電力を最小化するようにクエリ実行計画案のパラメータを調整する(ステップS165)。このとき、閾値は、最大消費電力の上限及び実行時間の上限が指定される。
クエリ実行計画案のパラメータは、例えば、後述するアウトオブオーダ実行形式でクエリを実行する場合にデータにアクセスするタスクの生成可能数(外部ストレージ装置200に同時にアクセス可能な上限数)である。
なお、クエリ実行計画案のパラメータの調整には、外部ストレージ装置200に送信する電力制御命令を付加することも含まれる。例えば、クエリ実行計画において後続のオペレーションで特定のボリュームにアクセスしない場合には、スリープ化を指示する電力制御命令を付加する。これにより、アクセスしないボリュームの省電力機能を早期に起動させることができる。
クエリ実行計画案のパラメータの調整が終了すると、CPU110は、クエリ実行計画案を実行コストの見積式に適用し、性能情報及び消費電力情報の見積値を算出する(ステップS166)。そして、すべてのクエリ実行計画案についてステップS162からステップS165までの処理を実行すると、本処理を終了する。
生成されたクエリ実行計画案のすべての性能情報と消費電力情報を算出すると、クエリ実行計画管理表を作成する。図10は、本発明の第1実施形態のクエリ実行計画管理表の一例を示す図である。クエリ実行計画管理表は、クエリ実行計画案のパラメータ、実行コストの見積式及び見積値が格納される。
本実施形態では、クエリ実行計画案のパラメータは、アウトオブオーダ実行を行うか否か、アウトオブオーダ実行を行う場合の多重度が設定される。アウトオブオーダ実行を行う場合の多重度とは、データを取得するためのタスクを同時に生成可能な上限数である。
実行コストの見積式及び見積値が格納される。実行コストの見積式は、実行時間、消費電力量、最大消費電力について、クエリの実行形式、パラメータなどに基づいて定義される。見積値は、実行するクエリを実行コストの見積式に適用した結果である。
なお、クエリ実行計画管理表を実行計画案生成時に作成し、実行コスト見積式構成処理の実行時に見積り式を書き込み、クエリ実行計画最適化処理の実行時に見積り式の算出結果を書き込むようにしてもよい。
クエリ実行計画管理表が作成されると、生成されたクエリ実行計画案から実行するクエリ実行計画案を決定する。図11は、本発明の第1実施形態のクエリ実行計画決定処理の手順を示すフローチャートである。
CPU110は、まず、クエリの評価尺度に閾値が指定されているか否かを判定する(ステップS171)。閾値が指定されている場合には(ステップS171の結果が「T」)、閾値を満たさないクエリ実行計画案を除外する(ステップS172)。
次に、CPU110は、クエリの評価尺度に優先度(クエリ優先度)が指定されているか否かを判定する(ステップS173)。クエリ優先度に総消費電力量の低減が指定されている場合には、総消費電力量が最も少ないクエリ実行計画案を選択する(ステップS174)。また、クエリ優先度が指定されていない場合、又は、実行時間の低減が指定されている場合には、実行時間が最も短いクエリ実行計画案を選択する(ステップS175)。さらに、クエリ優先度に最大消費電力の低減が指定されている場合には、最大消費電力が最も少ないクエリ実行計画案を選択する(ステップS176)。
以上のように、クエリ実行計画を決定すると、クエリ実行部153によってクエリを実行する。図12は、本発明の第1実施形態のクエリ実行処理の手順を示すフローチャートである。
CPU110は、クエリ実行計画生成部152によって決定されたクエリ実行計画をクエリ実行部153に送信する(ステップS181)。クエリ実行計画は、一又は複数の実行計画ステップで構成されており、実行計画ステップごとに、順次、ステップS183からステップS189までの処理を実行する(ステップS182)。
CPU110は、実行計画ステップの実行直前に電力制御命令を発行するように指定されているか否かを判定する(ステップS183)。実行計画ステップの実行直前に電力制御命令を発行する場合には(ステップS183の結果が「T」)、指定された電力制御命令を発行する電力制御命令発行処理を実行する(ステップS184)。例えば、アクセス先のボリュームをあらかじめアクティブ化させるための電力制御命令を発行する。電力制御命令発行処理の詳細については図13にて後述する。
次に、CPU110は、実行する実行計画ステップをアウトオブオーダ実行形式で処理するかがパラメータに設定されているか否かを判定する(ステップS185)。アウトオブオーダ実行形式で実行計画ステップを実行する場合には(ステップS185の結果が「T」)、当該実行計画ステップに対してアウトオブオーダ実行処理を実行する(ステップS186)。なお、アウトオブオーダ実行処理の詳細については、図14にて後述する。
一方、CPU110は、アウトオブオーダ実行形式で実行計画ステップを実行しない場合には(ステップS185の結果が「F」)、当該実行計画ステップに対してインオーダ実行処理を実行する(ステップS187)。なお、インオーダ実行処理の詳細については、図15にて後述する。
CPU110は、実行計画ステップを実行すると、当該実行計画ステップの実行直後に電力制御命令を発行するように指定されているか否かを判定する(ステップS188)。実行計画ステップの直後に電力制御命令を発行する場合には(ステップS188の結果が「F」)、指定された電力制御命令を発行する電力制御命令発行処理を実行する(ステップS189)。例えば、アクセスが完了したボリュームをスリープ化させるための電力制御命令を発行する。
クエリ実行計画のすべての実行計画ステップを実行すると、CPU110は、クエリの実行結果をクエリ受付部151に送信し(ステップS190)、本処理を終了する。
続いて、電力制御命令を制御対象に対して発行する電力制御命令発行処理について説明する。図13は、本発明の第1実施形態の電力制御命令発行処理の手順を示すフローチャートである。
CPU110は、クエリ実行計画に指定されている電力制御命令が、ストレージに対する電力制御命令を含むか否かを判定する(ステップS201)。クエリ実行計画に指定されている電力制御命令が、ストレージに対する電力制御命令を含む場合には(ステップS201の結果が「T」)、外部ストレージ装置200にストレージ電力制御命令を発行する(ステップS202)。
続いて、クエリ実行計画の各実行計画ステップにおいてアウトオブオーダ実行形式でデータにアクセスする方法について説明する。アウトオブオーダ実行形式では、クエリ実行計画を構成する各オペレーションを順次実行して外部ストレージ装置200からデータを取得するためのタスクを生成し、複数のタスクを並行して実行する。同時に生成されるタスクの数の上限はパラメータとして設定される。パラメータの設定は、クエリ実行計画最適化処理(図9)で決定される。
図14は、本発明の第1実施形態のアウトオブオーダ実行処理とデータタスク駆動処理の手順を示すフローチャートである。
CPU110は、まず、クエリ実行計画のステップで最初に実行されるオペレーションを選択する(ステップS211)。続いて、選択されたオペレーションを実行するデータタスク駆動処理を実行する(ステップS212)。データタスク駆動処理はタスクが生成されてから実行され、図15にて後述するタスク生成処理が実行される。タスクが生成できない場合には、生成可能になるまでデータタスク駆動処理の実行を待機する。
データタスク駆動処理では、CPU110は、まず、オペレーションを実行するために必要な新たなデータを取得する(ステップS221)。新たなデータは、外部ストレージ装置200にデータの入出力命令を送信することによって取得される。
次に、CPU110は、データの入出力の結果に基づいて、データの加工・集計などの処理(オペレーション)を実行する(ステップS222)。さらに、実行されたオペレーションに後続のオペレーションが存在するか否かを判定する(ステップS223)。後続のオペレーションとは、例えば、先行するオペレーションによって取得されたデータに基づいて次のオペレーションを実行するために新たにデータを取得する場合などである。
CPU110は、後続のオペレーションが存在する場合には(ステップS223の結果が「T」)、当該後続のオペレーションを実行するためのデータタスク駆動処理を実行する(ステップS224)。このように、データタスク駆動処理は、後続のオペレーションを処理するために再帰的に呼び出される。
CPU110は、後続のオペレーションを処理するデータタスク駆動処理の実行が終了した場合、又は、後続のオペレーションが存在しない場合には(ステップS223の結果が「F」)、処理中のオペレーションにさらに取得が必要なデータがあるか否かを判定する(ステップS225)。取得が必要なデータがある場合には(ステップS225の結果が「T」)、データタスク駆動処理を再度実行する。一方、取得が必要なデータがない場合には(ステップS225の結果が「F」)、本処理を終了する。
続いて、データタスク駆動処理を実行するためのタスクを生成するタスク生成処理について説明する。図15は、本発明の第1実施形態のタスク生成処理の手順を示すフローチャートである。
CPU110は、まず、生成するタスク数の上限を設定ファイルによって指定していないか否かを判定する(ステップS231)。設定ファイルによってタスク数の上限を指定していない場合には(ステップS231の結果が「T」)、生成するタスク数に制限がないため、新たにタスクを生成し、いずれかのCPU110に割り当てて生成されたタスクの実行を開始する(ステップS235)。
一方、CPU110は、設定ファイルによってタスク数の上限を指定している場合には(ステップS231の結果が「F」)、さらに、クエリ実行計画のパラメータによってタスク数の上限を指定していないか否かを判定する(ステップS232)。クエリ実行計画のパラメータによってタスク数の上限を指定していない場合には(ステップS232の結果が「T」)、新たにタスクを生成し、いずれかのCPU110に割り当てて生成されたタスクの実行を開始する(ステップS235)。
さらに、CPU110は、クエリ実行計画のパラメータによってタスク数の上限を指定している場合には(ステップS231の結果が「T」)、新たにタスクを生成することによって設定ファイル又はクエリ実行計画のパラメータで指定されたタスク数の上限を超えるか否かを判定する(ステップS233)。タスク数の上限を超える場合には(ステップS233の結果が「T」)、現在実行中のタスクが完了し、消滅するまで待機する(ステップS234)。一方、タスク数の上限を超えない場合には(ステップS233の結果が「F」)、新たにタスクを生成し、いずれかのCPU110に割り当てて生成されたタスクの実行を開始する(ステップS235)。
続いて、クエリ実行計画のステップにおいてインオーダ実行形式でデータにアクセスする方法について説明する。インオーダ実行形式では、各オペレーションを順次実行し、後続のオペレーションが存在する場合には実行中のオペレーションの実行状態をスタックに退避し、後続のオペレーションを実行する。そして、後続のオペレーションの実行が完了すると、スタックに退避されたオペレーションを継続する。後続のオペレーション及びスタックに退避されたオペレーションがなくなると、クエリの実行が完了する。図16は、本発明の第1実施形態のインオーダ実行処理との手順を示すフローチャートである。
CPU110は、まず、クエリ実行計画のステップで最初に実行されるオペレーションを選択する(ステップS241)。続いて、選択されたオペレーションを実行するために必要な新たなデータを取得する(ステップS242)。新たなデータは、外部ストレージ装置200にデータの入出力命令を送信することによって取得される。
次に、CPU110は、データの入出力の結果に基づいて、オペレーションを実行する(ステップS243)。さらに、実行されたオペレーションに後続のオペレーションが存在するか否かを判定する(ステップS244)。
CPU110は、後続のオペレーションが存在する場合には(ステップS244の結果が「T」)、現在のオペレーションの実行状態をスタックに退避し、後続のオペレーションを選択する(ステップS245)。そして、選択されたオペレーションを実行するために必要な新たなデータを取得する(ステップS242)。
一方、CPU110は、後続のオペレーションが存在しない場合には(ステップS244の結果が「F」)、処理中のオペレーションにさらに取得が必要なデータがあるか否かを判定する(ステップS246)。取得が必要なデータがある場合には(ステップS2の結果が「T」)、新たなデータを取得する(ステップS242)。
CPU110は、取得が必要なデータがない場合には(ステップS2の結果が「F」)、スタックに退避されたオペレーションが存在するか否かを判定する(ステップS247)。スタックに退避されたオペレーションが存在する場合には(ステップS247の結果が「T」)、最後に退避されたオペレーションを取り出し(ステップS248)、さらに取得が必要なデータがあるか否かを判定し(ステップS246)、以降の処理を実行する。スタックに退避されたオペレーションが存在しない場合には(ステップS247の結果が「F」)、本処理を終了する。
以上、クエリ実行部153によって外部ストレージ装置200からデータを取得する手順について説明した。続いて、外部ストレージ装置200が入出力命令を受信した場合に実行される入出力処理について説明する。図17は、本発明の第1実施形態の入出力処理の手順を示すフローチャートである。入出力処理は、外部ストレージ装置200の制御部210に含まれる入出力処理部211によって実行される。
制御部210は、データベースサーバ100から入出力命令を受信すると(ステップS251)、ボリューム状態情報213の電力モード2132を参照し、データの入出力の対象となるボリュームがスリープ状態であるか否かを判定する(ステップS252)。ボリューム状態情報213は、ストレージ装置群280によって提供される各ボリュームの状態を示す情報が格納される。以下、図18を参照しながらボリューム状態情報213について説明する。
図18は、本発明の第1実施形態のボリューム状態情報213の一例を示す図である。ボリューム状態情報213は、ボリューム2131、電力モード2132及び最終アクセス時間2133を含む。ボリューム2131は、各ボリュームの識別情報を格納する。電力モード2132は各ボリュームの状態を示し、具体的には、格納されたデータに即座にアクセス可能で通常の電力を消費するアクティブ状態と、ディスクドライブの回転を停止又は低速にすることで消費電力を低減するスリープ状態とがある。最終アクセス時間2133は、対応するボリュームに最後にアクセスされた時刻である。本実施形態では、図19にて後述する電力制御処理によって所定の条件下でアクティブ状態とスリープ状態とを切り替えるように制御する。
ここで、図17の入出力制御処理の説明に戻る。制御部210は、入出力の対象となるボリュームがスリープ状態である場合には(ステップS252の結果が「T」)、対象ボリュームをアクティブ化し(ステップS253)、さらに、ボリューム状態情報213を更新する(ステップS254)。具体的には、ボリューム状態情報213の対象ボリュームに対応する電力モード2132をアクティブ状態に変更する。
入出力対象のボリュームがアクティブ状態になると、制御部210は、ボリューム状態情報213の対象ボリュームの最終アクセス時間2133を更新する(ステップS255)。その後、対象ボリュームに入出力命令を発行し(ステップS256)、データベースサーバ100に入出力結果を送信する(ステップS257)。
続いて、外部ストレージ装置200が電力制御命令を受信した場合に実行される電力制御処理について説明する。図19は、本発明の第1実施形態の電力制御処理の手順を示すフローチャートである。電力制御処理は、外部ストレージ装置200の制御部210に含まれるストレージ電力制御部212によって実行される。
制御部210は、データベースサーバ100から電力制御命令を受信すると(ステップS261)、受信した電力制御命令の種類を判定し(ステップS262)、電力制御命令の種類に応じて分岐する。
制御部210は、受信した電力制御命令がスリープ化であった場合には、対象のボリュームをスリープ化する(ステップS263)。さらに、ボリューム状態情報213を更新する(ステップS264)。具体的には、ボリューム状態情報213の対象ボリュームに対応する電力モード2132をスリープ状態に変更する。
一方、制御部210は、受信した電力制御命令がアクティブ化であった場合には、対象のボリュームをアクティブ化する(ステップS265)。さらに、ボリューム状態情報213を更新する(ステップS266)。具体的には、ボリューム状態情報213の対象ボリュームに対応する電力モード2132をアクティブ状態に変更する。
続いて、外部ストレージ装置200が所定時間アクセスされていないボリュームをスリープ化するスリープ処理について説明する。図20は、本発明の第1実施形態のスリープ処理の手順を示すフローチャートである。スリープ処理は、外部ストレージ装置200の制御部210に含まれるストレージ電力制御部212によって実行され、所定のタイミングで実行される。所定のタイミングは、例えば、対象ボリュームに最後にアクセスされてから所定時間経過した後であったり、一定時間毎であったりする。
制御部210は、各ボリュームに対して以下の処理を実行する(ステップS271)。まず、対象ボリュームがアクティブ状態になってから(最後に対象ボリュームがアクセスされてから)N秒間以上経過したか否かを判定する(ステップS272)。対象ボリュームがアクティブ状態になっていない場合、又は、アクティブ状態になってからN秒間以上経過していない場合には(ステップS262の結果が「F」)、別のボリュームを対象とする。
一方、制御部210は、アクティブ状態になってからN秒間以上経過した場合には(ステップS272の結果が「T」)、対象ボリュームをスリープ化する(ステップS273)。さらに、ボリューム状態情報213を更新する(ステップS274)。具体的には、ボリューム状態情報213の対象ボリュームに対応する電力モード2132をスリープ状態に変更する。
以上が本発明の第1実施形態の構成及び制御である。ここで、本発明の第1実施形態の適用例を図21から図30を参照しながら説明する。まず、本発明の第1実施形態を適用するデータベースの構成について説明する。図21及び図22は、本発明の第1実施形態のデータベースの構成を説明する図であり、図21は表及び索引を格納するボリュームの構成、図22は各表の構成を説明する図である。
図21に示すように、外部ストレージ装置200によってボリューム1及びボリューム2が提供される。ボリューム1には、表R及び索引IRが格納される。また、ボリューム2には、表S及び索引ISが格納される。
図22(A)に示すように、表Rは、フィールドR1、R2及びR3によって構成される。また、フィールドR1に対して索引IRが作成されている。さらに、表Rのレコード長は100B(バイト)、レコード数は1000000000(1G)である。表Rの表長(サイズ)は100GBである。
一方、図22(B)に示すように、表Sは、フィールドS1、S2及びS3によって構成される。また、フィールドS2に対して索引ISが作成されている。さらに、表Sのレコード長は100B(バイト)、レコード数は100000000000(100G)となっている。表Sの表長(サイズ)は10TBである。
さらに、表Rと表Sとは、フィールドR2及びフィールドS2を結合キーとして結合可能であり、フィールドR2に格納された値は必ずフィールドS2に存在する。結合率は100であり、即ち、表Rの1のレコードに対して、表Sの100のレコードが結合可能である。
次に、本発明の第1実施形態における外部ストレージ装置200のストレージ電力特性情報215について説明する。図23は、本発明の第1実施形態の外部ストレージ装置200のストレージ電力特性情報215を示す図である。本実施形態では、ボリューム1及びボリューム2は同じ性能となっており、アクセス性能に関連する性能特性と消費電力に関連する電力特性について説明する。
性能特性は、主に、ボリュームにデータを入出力(I/Oアクセス)する速度を示している。また、性能特性には、ボリュームに格納されたデータに順次アクセスする場合のシーケンシャルアクセス性能と、格納されたデータをランダムにアクセスする場合のランダムアクセス性能とが含まれる。本実施形態の各ボリュームのシーケンシャルアクセスでは、1秒間当り100MBのデータの入出力が可能となっている(100MB/s)。
一方、本実施形態の各ボリュームのランダムアクセスでは、1秒間に最大10000回の入出力が可能となっている(10000IOPS)。なお、ランダムアクセスの場合には、1回の入出力に要する時間は平均アクセス時間とデータ転送時間を足したものとなる。また、ランダムアクセス性能は、多重度によって変化する。この場合の多重度とは、ボリュームに対する同時アクセス数である。図23に示すように、多重度が大きくなるほどスループット(ランダムアクセス性能)が大きくなり、多重度が1(同時アクセス数が1)の場合には100IOPSとなっている一方、多重度が100以上の場合には10000IOPSとなっている。すなわち、外部ストレージ装置200は、各ボリュームに対して同時に100の入出力を並列して処理することが可能となっている。
次に、電力特性について説明する。前述のように、各ボリュームには入出力が可能なアクティブ状態と、ディスクの回転が停止又は低速となっているスリープ状態の2種類の電力モードがある。
アクティブ状態で入出力がない場合の消費電力は100Wとなっている。また、シーケンシャルアクセス時の消費電力は200Wとなる。ランダムアクセス時の消費電力は100Wから200Wの間となり、多重度に依存する。具体的には、多重度をx、ランダムアクセス性能をf(x)とすると、消費電力g(x)=100W+(200W−100W)×f(x)÷10000IOPSとなる。すなわち、多重度が大きい場合には消費電力が大きくなる。一方、スリープ時の消費電力は10Wとなっている。
また、アクティブ状態からスリープ状態に遷移するための時間は10秒間であり、その間、500ジュール(J)のエネルギーを必要とする。この場合、平均電力としては50Wとなる。同様に、スリープ状態からアクティブ状態に遷移するための時間は10秒間であり、500ジュール(J)のエネルギーを必要とする(平均50W)。
続いて、外部ストレージ装置200の性能を計測する手順及び具体例について図24から図30を参照しながら説明する。まず、実行時の性能を計測するためのクエリについて説明する。図24は、本発明の第1実施形態のデータベースサーバ100で実行され、外部ストレージ装置200からデータを取得するためのクエリの例を示す図である。本実施形態では、クエリはSQLによって表現されており、表R及び表Sを結合する2種類のクエリを示している。
(A)に示すクエリ1は表RのフィールドR2と表SのフィールドS2が一致するレコードについて、表RのフィールドR1、表SのフィールドS3の値を取得する。このとき、表RのフィールドR1の値がx1からy1の間であることを条件式としてレコードを取得する。なお、条件式に該当するレコードの選択率は0.1%を想定している。
(B)に示すクエリ2は、クエリ1とは異なり、表RのフィールドR2と表SのフィールドS2が一致するすべてのレコードについて、表RのフィールドR1、表SのフィールドS3の値を取得する。
まず、クエリ1について説明する。ここでは、3種類のクエリ実行計画案を作成し、実行時間及び消費電力に関するコストを算出し、最適なクエリ実行計画案を選択する。作成されるクエリ実行計画案は、具体的には、ハッシュ結合、索引結合(インオーダ実行)、索引結合(アウトオブオーダ実行)の3種類である。以下、各クエリ実行計画案について説明する。
図25は、本発明の第1実施形態のハッシュ結合によってクエリ1を処理するクエリ実行計画案1を説明する図であり、(A)はクエリ実行計画案1の内容、(B)は各ボリュームの状態を時系列順に示す図である。
ハッシュ結合によるクエリ実行計画案1では、図25(A)に示すように、まず、表Rをスキャン(走査)し、ハッシュ表を作成する(ステップ#1)。この際、(B)に示すように、ステップ開始後に表S(ボリューム2)をスリープ化し、ステップ終了前に表S(ボリューム2)をアクティブ化する。続いて、表Sをスキャンし、ハッシュ表をプローブ(検索)して、結果を出力する(#2)。この際、(B)に示すように、ステップ開始後に表R(ボリューム1)をスリープ化する。
次に、クエリ実行計画案1によってクエリ結果を取得した場合の性能を算出する。まず、実行時間について計算する。ステップ#1の実行時間T1は、前述のように、表Rのサイズが100GB、読み込み速度が100MB/Sであるため、100GB÷100MB/S=1000秒となる。一方、ステップ#2の実行時間T2は、表Sのサイズが10TB、読み込み速度が100MB/Sであるため、10TB÷100MB/S=100000秒となる。したがって、クエリ実行計画案1の実行時間は、1000秒+100000秒=101000秒となる。
続いて、消費電力量について計算する。各ステップのボリュームごとに消費電力を計算する。ステップ#1のボリューム1の消費電力量は、表Rにアクセスしている間の消費電力であり、前述のように、実行時間T1が1000秒、アクティブ状態では1秒間当り200Wの消費電力であるため、1000秒×200W=200000Jとなる。
一方、ステップ#1のボリューム2の消費電力量は、ボリューム2をスリープ化するための消費電力(500J、10秒)、ステップ#2を実行するためにスリープ化されたボリューム2をアクティブ化するための消費電力(500J、10秒)、及び、スリープ化されている間の消費電力である。スリープ状態の経過時間は1000秒(=T1)−10秒−10秒であり、スリープ状態では1秒間当り10Wの消費電力であるため、スリープ状態における消費電力は980秒×10W=9800Jとなる。したがって、ステップ#1のボリューム2の消費電力量は、500J+500J+9800J=10800Jとなる。
以上より、ステップ#1の消費電力量J1=200000J+10800J=210800Jとなる。
次に、ステップ#2のボリューム1の消費電力量は、ボリューム1をスリープ化するための消費電力(500J、10秒)、ステップ#2が終了するまでスリープ状態で待機している間の消費電力である。スリープ状態の経過時間は100000秒(=T2)−10秒であるため、スリープ状態における消費電力は99990秒×10W=999900Jとなる。したがって、ステップ#2のボリューム1の消費電力量は、500J+999900J=1000400Jとなる。
一方、ステップ#2のボリューム2の消費電力量は、表Sにアクセスしている間の消費電力であり、前述のように、実行時間T2が100000秒、100000秒×200W=20000000Jとなる。
以上より、ステップ#2の消費電力量J2=1000400J+20000000J=21000400Jとなる。したがって、クエリ実行計画案1の消費電力は、ステップ#1及びステップ#2の消費電力を合計すると、21211200Jとなる。
続いて、最大消費電力について計算する。ステップ#1のボリューム1の最大消費電力はアクティブ状態であるため200Wとなる。また、ボリューム2の最大消費電力はスリープ化及びアクティブ化されているか、スリープ状態であるため、50Wとなる。したがって、ステップ#1の最大消費電力P1は200W+50W=250Wとなる。
一方、ステップ#2のボリューム1の最大消費電力はスリープ化されているか、スリープ状態であるため、50Wとなる。また、ボリューム2の最大消費電力はアクティブ状態であるため、200Wとなる。したがって、ステップ#2の最大消費電力P2は50W+200W=250Wとなる。
以上より、クエリ実行計画案1の最大消費電力は、各ステップの最大消費電力の最大値となるため、250Wとなる。
図26は、本発明の第1実施形態の索引結合(インオーダ実行)によってクエリ1を処理するクエリ実行計画案2を説明する図であり、(A)はクエリ実行計画案2の内容、(B)は各ボリュームの状態を時系列順に示す図である。
索引結合によるクエリ実行計画案2では、図26(A)に示すように、表Rをスキャン(走査)しながら、索引ISを参照して表Sを検索し、結果を出力する(#1)。
次に、クエリ実行計画案2によってクエリ結果を取得した場合の性能を算出する。まず、実行時間について計算する。フィールドR1には索引が作成されており、選択率が0.1%であることから、表Rの全レコード(レコード数:1G)の0.1%のレコードを取得する。このとき、表Rから取得されたレコードに含まれるフィールドR2に基づいて、索引ISを経由して表Sからレコード(フィールドS3)が取得される。したがって、表Rの全レコード(レコード数:1G)の0.1%のレコードをランダムアクセスし、アクセス後、表Sから全レコード(レコード数:100G)の0.1%のレコードをランダムアクセスすることになる。したがって、ボリューム1及びボリューム2にアクセスする時間はほぼ同じ時間となる。以上より、ステップ#1の実行時間T1は、(1G×0.1%÷100IOPS)+(100G×0.1%÷100IOPS)=1010000秒となる。
続いて、消費電力量について計算する。前述のように、ボリューム1とボリューム2にアクセスする時間はほぼ同じであるため、レコード数の関係からボリューム2に対するアクセス速度はボリューム1に対するアクセス速度の100倍となる。ここで、ボリューム1に対するアクセス速度が1IOPSであるとすると、ボリューム2に対するアクセス速度は100IOPSとなる。また、ランダムアクセス性能の最大値が10000IOPSであるのに対し、ボリューム1(表R)には1IOPSでアクセスしているため、アクティブ状態の無負荷状態とみなすことができ、消費電力は100Wとなる。また、ボリューム2は100IOPS(=f(x))であるため、消費電力は100W+(200W−100W)÷10000IOPS=101Wとなる。したがって、消費電力量J1は、100W×1010000秒+101W×1010000秒=203010000Jとなる。
続いて、最大消費電力について計算する。前述のように、クエリを実行している間、ボリューム1の消費電力は100W、ボリューム2の消費電力は101Wとなる。したがって、クエリ実行計画案2の最大消費電力は、各ボリュームの合計消費電力の最大値となるため、100+101=201Wとなる。
図27は、本発明の第1実施形態の索引結合(アウトオブデータ実行)によってクエリ1を処理するクエリ実行計画案3を説明する図であり、(A)はクエリ実行計画案3の内容、(B)は各ボリュームの状態を時系列順に示す図である。
索引結合によるクエリ実行計画案3では、アウトオブデータ実行の場合であっても、インオーダ実行の場合と同様に、表Rをスキャン(走査)しながら、索引ISを参照して表Sを検索し、結果を出力する(#1)。
次に、クエリ実行計画案3によってクエリ結果を取得した場合の性能を算出する。多重度xはパラメータの最適化時に決定するため、変数xの状態で各性能を算出する。まず、実行時間について計算する。図26に示したインオーダ実行の場合と同様に、表Rの全レコード(レコード数:1G)の0.1%のレコードを取得し、表Sについても同様に0.1%のレコードを取得する。
また、表Rから表Sの結合率が100であるため、表Rから1レコードが読み出されると、表Sから平均100レコードが読み出され、合計101レコードが読み出されることになる。したがって、ボリューム1のスループットはf(x×1÷101)、ボリューム2のスループットはf(x×100÷101)となる。したがって、ボリューム1の実行時間は、1G×0.1%÷f(x×1÷101)IOPS、ボリューム2の実行時間は、100G×0.1%÷f(x×100÷101)IOPSとなる。ボリューム1とボリューム2のアクセスは並行して実行されるので、各ボリュームの実行時間の最大値が全体の実行時間となる。
続いて、消費電力量について計算する。前述した各ボリュームの実行時間、表Rから表Sの結合率及び図23に示した消費電力の計算式g(x)から、消費電力量J1はg(x×1÷101)×(ボリューム1の実行時間)+g(x×100÷101)×(ボリューム2の実行時間)となる。
最後に、最大消費電力について計算する。アウトオブデータ実行の場合には、各ボリュームが並列してアクセスされるため、各ボリュームの最大消費電力の和が全体の最大消費電力となる。したがって、最大消費電力P1はg(x×1÷101)+g(x×100÷101)となる。
以上のように、クエリ実行計画1から3についてコストを計算した結果をクエリ実行計画管理表に書き込む。図28は、本発明の第1実施形態において閾値を指定せずに実行時間の低減を優先してクエリ1を処理した場合のクエリ実行計画表の一例を示す図である。
図28に示す場合には、消費電力等に閾値が設定されていないため、実行時間(全体)が最短のクエリ実行計画案が選択される。クエリ実行計画案1の実行時間が101000秒、クエリ実行計画案2の実行時間が1010000秒、クエリ実行計画案3の実行時間が10100秒であるため、クエリ実行計画案3が選択される。なお、クエリ実行計画案3では実行時間がもっとも短くなるように多重度xは100に決定される。
なお、多重度xが100の場合について実行時間を近似的に計算すると、前述の計算式から、ボリューム1の実行時間は、1G×0.1%÷(10000×1÷101)IOPS=10100秒、ボリューム2の実行時間は、100G×0.1%÷(10000×100÷101)IOPS=10100秒となる。したがって、クエリ実行計画案3の全体の実行時間T1は10100秒となる。
さらに別の条件の場合について説明する。図29は、本発明の第1実施形態において最大消費電力を250Wとする閾値を指定し、実行時間の低減を優先してクエリ1を処理した場合のクエリ実行計画表の一例を示す図である。
各クエリ実行計画案は、図28に示した例と同じである。クエリ実行計画案3については、最大消費電力が250W以下になるように多重度xを設定する。その結果、多重度xが50以下の場合に最大消費電力が250W以下となる。クエリ1では、多重度xが100以下であれば多重度が大きいほど実行時間が短縮されるため、多重度xには50が決定される。
ここで、多重度xが50の場合の各性能を近似的に計算すると、前述の計算式から、ボリューム1の実行時間は、1G×0.1%÷(5000×1÷101)IOPS=20200秒、ボリューム2の実行時間は、100G×0.1%÷(5000×100÷101)IOPS=20200秒となる。したがって、クエリ実行計画案3の全体の実行時間T1は20200秒となる。また、消費電力量J1は(250×1÷101)×20200+(250×100÷101)×20200=5050000Jとなる。最大消費電力P1は(250×1÷101)+(250×100÷101)=250Wとなる。
続いて、クエリ2についてクエリ実行計画案管理表を作成する場合について説明する。作成するクエリ実行計画案はクエリ1の場合と同様に、ハッシュ結合、索引結合(インオーダ実行)、索引結合(アウトオブオーダ実行)の3種類であり、実行時間及び消費電力に関するコストを算出し、最適なクエリ実行計画案を選択する。以下、各クエリ実行計画案のコストを算出する。
ハッシュ結合によるクエリ実行計画案1では、クエリ1の場合と同様に、まず、表Rをスキャン(走査)し、ハッシュ表を作成する(ステップ#1)。続いて、表Sをスキャンし、ハッシュ表をプローブ(検索)して、結果を出力する(#2)。各ボリュームの状態遷移もクエリ1の場合と同様である。ハッシュ結合によるクエリ実行計画に基づいてクエリを処理する場合、レコードの選択率に依存せずに表のサイズによって一定の実行時間となるため、クエリ1の場合と同じく、クエリ実行計画案1の実行時間は、101000秒となる。また、消費電力量及び最大消費電力についてもクエリ1の場合と同様であり、クエリ実行計画案1の消費電力量は21211200J、最大消費電力は250Wとなる。なお、各コストの計算手順はクエリ1の場合と同様である。
索引結合(インオーダ実行)によるクエリ実行計画案2では、クエリ1の場合と同様に、表Rをスキャン(走査)しながら、索引ISを参照して表Sを検索し、結果を出力する(#1)。
次に、クエリ実行計画案2によってクエリ結果を取得した場合の性能を算出する。まず、実行時間について計算する。フィールドR1には索引が作成されており、クエリ1とは異なり選択率が100%であることから、表Rの全レコード(レコード数:1G)を取得し、さらに、索引ISを経由して表Sからレコード(フィールドS3)が取得される。したがって、表Rの全レコード(レコード数:1G)の全レコードをランダムアクセスし、その後、表Sから全レコード(レコード数:100G)の全レコードをランダムアクセスすることになる。したがって、ボリューム1及びボリューム2にアクセスする時間はほぼ同じ時間となる。以上より、ステップ#1の実行時間T1は、(1G÷100IOPS)+(100G÷100IOPS)=1010000000秒となる。
続いて、消費電力量について計算する。消費電力については、クエリ1の場合と同様であり、ボリューム1(表R)の消費電力は100W、ボリューム2の消費電力は101Wとなる。したがって、消費電力量J1は、100W×1010000000秒+101W×1010000000秒=203010000000Jとなる。
続いて、最大消費電力について計算する。前述のように、クエリを実行している間、ボリューム1の消費電力は100W、ボリューム2の消費電力は101Wとなる。したがって、クエリ実行計画案2の最大消費電力は、クエリ1の場合と同じく、各ボリュームの合計消費電力の最大値となるため、100+101=201Wとなる。
索引結合によるクエリ実行計画案3では、アウトオブデータ実行の場合であっても、インオーダ実行の場合と同様に、表Rをスキャン(走査)しながら、索引ISを参照して表Sを検索し、結果を出力する(#1)。また、クエリ1の場合と同様に、多重度xはパラメータの最適化時に決定するため、変数xの状態で各性能を算出する。
実行時間は、クエリ実行計画案2の場合と同様に、表Rの全レコードを取得し、表Sについても同様に全レコードを取得し、各ボリュームのスループットは、クエリ1の場合と同じである。したがって、ボリューム1の実行時間は、1G÷f(x×1÷101)IOPS、ボリューム2の実行時間は、100G÷f(x×100÷101)IOPSとなり、各ボリュームの実行時間の最大値が全体の実行時間となる。
消費電力量J1は、クエリ1の場合と同様に、g(x×1÷101)×(ボリューム1の実行時間)+g(x×100÷101)×(ボリューム2の実行時間)となる。また、最大消費電力P1はg(x×1÷101)+g(x×100÷101)となる。
以上のように、クエリ実行計画1から3についてコストを計算した結果をクエリ実行計画管理表に書き込む。図30は、本発明の第1実施形態において閾値を指定せずに実行時間の低減を優先してクエリ2を処理した場合のクエリ実行計画表の一例を示す図である。この場合、実行時間(全体)が最短のクエリ実行計画案が選択される。クエリ実行計画案1の実行時間が101000秒、クエリ実行計画案2の実行時間が1010000000秒、クエリ実行計画案3の実行時間が10100000秒であるため、クエリ実行計画案1が選択される。なお、クエリ実行計画案3では実行時間がもっとも短くなるように多重度xには100が決定される。
以上のように、本発明の第1実施形態の計算機システム10では、データベース管理システム150の制御によって電力消費量を調整することができる。したがって、ハードウェアに対して大規模な投資を必要とせずにソフトウェアの制御で消費電力量を調整できるため、電力消費に伴うランニングコストの増大を抑制することができる。
また、本発明の第1実施形態の計算機システム10では、最大消費電力量を抑制することができるため、瞬間的に使用可能な電力量の上限を超過することによって電源供給が不安定になることを防止することができる。
さらに、本発明の第1実施形態の計算機システム10では、時間ごとに消費電力量の閾値を設定することによって、電力使用量を平準化することが可能となる。例えば、電力の使用量の多い昼間には消費電力量を抑制し、電力の使用量の少ない夜間には消費電力量を多く使用できるようにすることができる。これにより、気温や天気などの外的な要因による電力消費量の変化にも柔軟に対応することが可能となる。
(第2実施形態)
本発明の第1実施形態では、外部ストレージ装置200の電力特性情報に基づいて消費電力等の実行コストを算出していたが、第2実施形態では、データベースサーバ100の消費電力を考慮して実行コストを算出する例について説明する。
図31は、本発明の第2実施形態の計算機システム10の構成を示す図である。本発明の第2実施形態の計算機システム10は、第1実施形態の計算機システムと同様に、データベースサーバ100及び外部ストレージ装置200を含む。なお、第1実施形態の計算機システム10と共通の構成については説明を省略し、相違する構成について説明する。
本実施形態のデータベースサーバ100には、第1実施形態のデータベースサーバ100の構成に加えてデータベース管理システム(DBMS)150に、サーバ電力制御部155、CPU・主記憶状態情報156、サーバ電力特性情報管理部157及びサーバ電力特性情報158が含まれている。
サーバ電力制御部155は、データベースサーバ100の消費電力を制御する。本実施形態では、CPU110及び主記憶120を複数備えており、必要に応じて1又は複数のCPU110及び主記憶120が使用される。なお、CPU110は、CPUスロットと呼ばれる接続端子を有する電子部品によって搭載される。また、主記憶120は、同様に、主記憶スロットと呼ばれる接続端子を有する電子部品によって搭載される。CPU110及び主記憶120はスロット単位で管理するようにしてもよい。
サーバ電力制御部155は、使用するCPU110、主記憶120の数を増減させることによって実行性能及び消費電力を調整する。CPU・主記憶状態情報156は、CPU110、主記憶120の状態を管理するための情報である。CPU・主記憶状態情報156の詳細については図37にて後述する。
サーバ電力特性情報管理部157は、データベースサーバ100の電力特性情報を管理する。具体的には、CPU110及び主記憶120による消費電力などの電力特性情報を取得し、サーバ電力特性情報158として記録する。サーバ電力特性情報管理部157による処理の詳細については図32にて後述する。サーバ電力特性情報158の詳細は図38にて後述する。
なお、第2実施形態の外部ストレージ装置200の構成は、第1実施形態の外部ストレージ装置の構成と同じである。
続いて、本発明の第2実施形態の計算機システム10における処理について説明する。第1実施形態と共通の処理については説明を省略する。
図32は、本発明の第2実施形態のサーバ電力特性情報生成処理の手順を示すフローチャートである。サーバ電力特性情報生成処理は、データベースサーバ100で実行されるDBMS150に含まれるサーバ電力特性情報管理部157によって実行される。サーバ電力特性情報生成処理は、データベースサーバ100で所定のタイミングで実行され、例えば、定時に実行するようにしてもよいし、所定の時間間隔で実行するようにしてよいし、データベースサーバ100が所定の状態になった場合に実行するようにしてもよい。
データベースサーバ100のCPU110は、サーバ電力特性情報生成処理が開始されると、まず、CPU110が無負荷状態であるか否かを判定する(ステップS301)。CPU110の無負荷状態とは、クエリなどを処理していない状態である。CPU110が無負荷状態でない場合には(ステップS301の結果が「F」)、CPU110は、無負荷状態になるまで待機する(ステップS302)。
CPU110が無負荷状態である場合には(ステップS301の結果が「T」)、CPU110は、各CPU110に対してステップS304からステップS306までの処理を実行する(ステップS303)。
CPU110は、まず、電力特性情報を生成する対象のCPU110をスリープ状態(スリープ化)及びアクティブ状態(アクティブ化)に移行させ、各状態の消費電力量を計測する(ステップS304)。アクティブ状態とは、演算処理を実行可能な状態である。一方、スリープ状態とは、演算処理を実行できないかわりに供給する電力を削減して消費電力を低減している状態である。なお、省電力状態として、アクティブ状態よりも演算処理が低速になる代わりに消費電力を抑制する状態を設けてもよい。消費電力を抑制するためには、例えば、供給する電力を削減させたり、周波数を低減させたりする。
次に、CPU110は、周波数、供給電力を変更し、各状態における複数種類の負荷量となる処理を実行し、負荷量ごとにスループット及び消費電力を計測する(ステップS305)。
ステップS304及びステップS305の処理が終了すると、CPU110は、対象のCPU110に対応するサーバ電力特性情報158を更新する(ステップS306)。以上の処理をすべてのCPU110に対して実行し、サーバ電力特性情報158を生成する。
続いて、CPU110は、主記憶120を設置する主記憶スロットに対してステップS308及びステップS309の処理を実行する(ステップS307)。
CPU110は、電力特性情報を生成する対象の主記憶120をスリープ状態(スリープ化)及びアクティブ状態(アクティブ化)に移行させ、各状態に移行するための時間と各状態における消費電力量を計測する(ステップS308)。アクティブ状態とは、電力が供給されており、主記憶120にデータを読み書きできる状態である。一方、スリープ状態とは、電力が供給されておらず、主記憶120にデータを読み書きできない状態である。ここでは、主記憶120の状態として、アクティブとスリープの2種類を述べているが、これ以外の状態、例えば、アクティブ状態より低速でアクセス可能であってアクティブ状態より消費電力が低い状態があってもよい。
CPU110は、対象の主記憶スロットに対応するサーバ電力特性情報158を更新する(ステップS306)。以上の処理をすべての主記憶スロットに対して実行し、サーバ電力特性情報158を生成する。
続いて、電力制御命令を制御対象に対して発行する電力制御命令発行処理について説明する。図33は、本発明の第2実施形態の電力制御命令発行処理の手順を示すフローチャートである。電力制御命令発行処理は、データベースサーバ100で実行されるDBMS150に含まれるサーバ電力制御部155によって実行される。
CPU110は、まず、外部ストレージ装置200に対する電力制御命令を発行する(ステップS201、ステップS202)。ステップS201及びステップS202の処理については第1実施形態と同じ処理なので説明を省略する。
次に、CPU110は、クエリ実行計画に指定されている電力制御命令が、CPU電力制御命令を含むか否かを判定する(ステップS203)。クエリ実行計画に指定されている電力制御命令が、CPU電力制御命令を含む場合には(ステップS203の結果が「T」)、CPU電力制御処理を実行する(ステップS204)。なお、CPU電力制御処理の詳細については、図34にて後述する。
最後に、CPU110は、クエリ実行計画に指定されている電力制御命令が、主記憶電力制御命令を含むか否かを判定する(ステップS205)。クエリ実行計画に指定されている電力制御命令が、主記憶電力制御命令を含む場合には(ステップS205の結果が「T」)、主記憶電力制御処理を実行する(ステップS206)。なお、主記憶電力制御処理の詳細については、図35にて後述する。
ここで、データベースサーバ100における電力制御処理について説明する。まず、CPU110に対する電力制御について説明する。図34は、本発明の第2実施形態のCPU電力制御処理の手順を示すフローチャートである。CPU電力制御処理は、データベースサーバ100で実行されるDBMS150に含まれるサーバ電力制御部155によって実行される。
CPU110は、まず、CPU電力制御命令の内容を判定する(ステップS311)。本実施形態では、CPU110のスリープ化、周波数・電圧変更、CPU110のアクティブ化の3種類が設定可能となっている。
CPU110は、CPU電力制御命令の内容が「スリープ化」の場合には、スリープ化の対象となるCPU110が処理しているタスクがあるか否かを判定する(ステップS312)。CPU110が処理しているタスクがある場合には(ステップS312の結果が「T」)、処理中のタスクを他のアクティブなCPUに移動させる(ステップS313)。
CPU110は、処理中のタスクがない場合(ステップS312の結果が「F」)、又は、処理中のタスクを他のアクティブなCPUに移動させた場合には、対象のCPUをスリープ化する(ステップS314)。さらに、CPU・主記憶状態情報156の対応するCPU110のモードをスリープ状態に更新する(ステップS315)。
また、CPU110は、CPU電力制御命令の内容が「周波数・電圧変更」の場合には、対象となるCPU110の周波数・電圧を変更する(ステップS316)。さらに、CPU・主記憶状態情報156の対応するCPU110の情報を更新する(ステップS317)。
CPU110は、CPU電力制御命令の内容が「アクティブ化」の場合には、対象のCPU110をアクティブ化する(ステップS318)。さらに、他のアクティブなCPU110によって処理中のタスクを対象のCPU110に移動させる(ステップS319)。例えば、負荷の高いCPU110から移動させてもよいし、待機している処理が割り当てられているCPU110から移動させてもよい。最後に、CPU・主記憶状態情報156の対応するCPU110のモードをアクティブ状態に更新する(ステップS320)。
続いて、主記憶120に対する電力制御について説明する。図35は、本発明の第2実施形態の主記憶電力制御処理の手順を示すフローチャートである。主記憶電力制御処理は、データベースサーバ100で実行されるDBMS150に含まれるサーバ電力制御部155によって実行される。
CPU110は、まず、主記憶電力制御命令の内容を判定する(ステップS331)。本実施形態では、主記憶120のスリープ化又はアクティブ化が設定可能となっている。
CPU110は、主記憶電力制御命令の内容が「スリープ化」の場合には、スリープ化の対象となる主記憶120にデータが記憶されているか否かを判定する(ステップS332)。主記憶120にデータが記憶されている場合には(ステップS332の結果が「T」)、記憶されているデータを他のアクティブな主記憶120に移動させる(ステップS333)。
CPU110は、対象となる主記憶120にデータが記憶されていない場合(ステップS332の結果が「F」)、又は、記憶されているデータを他のアクティブな主記憶120に移動させた場合には、対象の主記憶をスリープ化する(ステップS334)。さらに、CPU・主記憶状態情報156の対応する主記憶120のモードをスリープ状態に更新する(ステップS335)。
一方、主記憶電力制御命令の内容が「スリープ化」の場合には、対象の主記憶120をアクティブ化する(ステップS336)。さらに、他のアクティブなCPU110によって処理中のタスクを対象のCPU110に移動させる(ステップS337)。例えば、各主記憶120に記憶されているデータ量を平準化させるようにしてもよいし、空き容量の少ない主記憶120からデータを移動させてもよい。最後に、CPU・主記憶状態情報156の対応する主記憶120のモードをアクティブ状態に更新する(ステップS338)。
続いて、CPU・主記憶状態情報156の構成について説明する。図36は、本発明の第2実施形態のCPU・主記憶状態情報156の一例を示す図であり、(A)はCPU110の状態、(B)は主記憶120の状態を示している。
CPU・主記憶状態情報156は、CPU110の識別子1561及びCPU110の電力モード1562、主記憶スロットの識別子1563及び主記憶スロットの電力モード1564によって構成される。CPU110は、CPUスロットに装着され、CPUスロットごとに管理するようにしてもよい。主記憶120は、一又は複数の記憶媒体が収容される主記憶スロットごとに管理される。
CPU110の電力モード1562には、アクティブ状態、スリープ状態などが設定可能となっており、周波数・電圧の変更に応じた省電力状態などを設定可能としてもよい。周波数・電圧を複数段階設定可能な場合には、複数の省電力状態を設定可能としてもよいし、周波数・電圧に対応する項目をCPU・主記憶状態情報156に追加してもよい。また、主記憶スロットの電力モード1564には、アクティブ状態、スリープ状態などが設定可能となっている。
以上がデータベースサーバ100における電力制御の説明である。補足として、本実施形態におけるクエリ実行部153によるタスク生成処理について説明する。図37は、本発明の第2実施形態のタスク生成処理の手順を示すフローチャートである。ステップS231からステップS234までの処理は、第1実施形態と同じである。第2実施形態では、いずれかのCPU110に生成されたタスクを割り当てるのではなく、スリープ状態のCPU110を除くアクティブ状態のCPU110に生成されたタスクを割り当て、当該生成されたタスクの実行を開始する(ステップS236)。
以上が本発明の第2実施形態の構成及び制御である。続いて、本発明の第2実施形態の適用例を図38から図40を参照しながら説明する。まず、本発明の第2実施形態におけるデータベースサーバ100のサーバ電力特性情報158について説明する。外部ストレージ装置200のストレージ電力特性情報215は第1実施形態と同じである。
図38は、本発明の第2実施形態のデータベースサーバ100のサーバ電力特性情報158を示す図である。本実施形態では、各CPU110及び各主記憶スロットは同じ性能となっており、処理速度に関連する性能特性と消費電力に関連する電力特性について説明する。データベースサーバ100には、CPU110及び主記憶スロットがそれぞれ4個備えられている。また、電力モードは、CPU110及び主記憶スロットいずれもアクティブ状態とスリープ状態のいずれかが設定可能となっている。
まず、CPU110について説明する。CPU110は、それぞれ同じ性能となっている。データベースアクセス時には、実行しているタスクの多重度xに応じて利用率が決定する。1CPUの多重度xは最大50となっており、一のタスクを実行するごとに利用率が2%加算され、利用率s(x)はx×2%となる。
CPU110の電力特性は、各CPU110について、アクティブ状態、かつ、無負荷の場合には100Wの消費電力となっている。データベースアクセス時には、最大150Wの消費電力となり、多重度xに対して消費電力t(x)は100W+(150W−100W)×s(x)となる。また、スリープ状態の消費電力は10Wとなっている。なお、CPU110の状態の遷移に要する時間及び電力は、無視できるほど小さくなっている。
続いて、主記憶120について説明する。主記憶120は、所定の電力が供給されていない場合にはデータの保持を継続することができないため、アクティブ状態の場合にのみ性能を発揮することができる。電力特性としては、アクティブ状態では10W、スリープ状態では1Wとなっている。また、主記憶120の状態の遷移に要する時間及び電力は、CPU110の場合と同様に、無視できるほど小さくなっている。
以上示したサーバ電力特性情報158に基づいてCPU110及び主記憶120の電力を制御した一例を図39及び図40に示す。図39は、本発明の第2実施形態のデータベースサーバ100におけるCPU110に対する電力制御による消費電力の低減を説明する図であり、(A)は電力制御実行前、(B)は電力制御実行後を示す。図40は、本発明の第2実施形態のデータベースサーバ100における主記憶120に対する電力制御による消費電力の低減を説明する図であり、(A)は電力制御実行前、(B)は電力制御実行後を示す。
図39を参照すると、電力制御を実行する前には、CPU1からCPU4すべてのCPUがアクティブ状態になっており、CPU1及びCPU2の利用率が60%、CPU3及びCPU4の利用率が40%となっている。消費電力は、CPU1及びCPU2が160W、CPU3及びCPU4が140Wとなり、全体で600Wとなる。
これに対し、本実施形態の電力制御を実行することによって、CPU1及びCPU2の多重度xを50として利用率を高くしてCPU3及びCPU4の多重度xを0とし、さrない、スリープ状態に移行させることで、消費電力は、CPU1及びCPU2が200W、CPU3及びCPU4が10Wとなる。この結果、消費電力は全体で420Wとなり、180Wの電力を削減することができる。
以上のように、各CPUの利用率(多重度)を調整することによって、消費電力を削減することが可能となる。CPUをスリープ状態に移行すると、大幅に消費電力を削減することができるため、利用率の低いCPUで実行されているタスクを他のCPUで実行するように制御することによって全体の消費電力を削減することができる。また、パラメータとして設定された多重度に応じて使用可能なCPUを限定してもよい。
図40を参照すると、電力制御を実行する前には、主記憶スロット1から主記憶スロット4すべての主記憶がアクティブ状態になっている。ここで、使用する主記憶120を主記憶スロット1及び主記憶スロット2に集中させることによって主記憶スロット3及び主記憶スロット4をスリープ状態に移行させることができる。これにより、主記憶スロット3及び主記憶スロット4の消費電力を10Wから1Wに削減することが可能となり、全体として18Wの消費電力を削減することができる。
本発明の第2実施形態によれば、外部ストレージ装置200だけでなく、データベースサーバ100の消費電力を削減することができるので、計算機システム全体の消費電力をより削減することができる。
(第3実施形態)
第2実施形態では、外部ストレージ装置200の電力を制御するとともに、データベースサーバ100の消費電力を制御していた。第3実施形態では、さらに、クエリの精度を低下させることによって消費電力を制御する例について説明する。本実施形態では、クエリの精度を指定する特殊な入出力命令(「部分処理」可能指示子)を発行する。
図41は、本発明の第3実施形態の計算機システム10の構成を示す図である。本発明の第3実施形態の計算機システム10は、第2実施形態の計算機システムと同様に、データベースサーバ100及び外部ストレージ装置200を含む。なお、第2実施形態の計算機システム10と共通の構成については説明を省略し、相違する構成について説明する。
第3実施形態のデータベースサーバ100は、第2実施形態のDBMS150の構成にスリープ計画表159を追加したものである。その他の構成については、第2実施形態と同じである。スリープ計画表159は、データベースサーバ100のCPU110及び外部ストレージ装置200によって提供されるボリュームをスリープ化させるタイミングを設定するための情報である。スリープ計画表159の詳細については図46にて後述する。
本実施形態では、クエリの精度の調整は、クエリ実行計画生成部152及びクエリ実行部153によって行われる。なお、外部ストレージ装置200の構成は、第2実施形態と同じである。以下、クエリ実行計画生成部152及びクエリ実行部153による処理について説明する。
まず、クエリ実行計画生成処理について説明する。図42は、本発明の第3実施形態のクエリ実行計画生成処理の手順を示すフローチャートである。本実施形態のクエリ実行計画生成処理は、第1実施形態のクエリ実行計画生成処理のステップS112とステップS113の処理の間に部分処理を実行するための処理が追加される。
部分処理の実行についてさらに説明すると、本実施形態では、クエリを示すSQLに部分処理可能指示子を含ませることができる。部分処理は、一部のボリュームをクエリの実行範囲から除外する。これにより、クエリの実行を高速化及び省電力化することが可能となるが、検索結果の精度が低下する。例えば、平均値などを算出する集計関数を利用して検索結果を取得する場合に、概算した結果を把握できれば十分で、迅速に処理結果を取得したい場合などに利用することができる。
データベースサーバ100のCPU110は、一以上のクエリ実行計画案を作成すると(ステップS112)、受信したクエリに部分処理可能指示子を含むか否かを判定する(ステップS401)。部分処理可能指示子を含む場合には(ステップS401の結果が「T」)、受信したクエリに対し、一以上の部分処理クエリ実行計画案を生成する部分処理クエリ実行計画案生成処理を実行する(ステップS402)。部分処理クエリ実行計画案生成処理の詳細については、図43にて後述する。CPU110は、部分処理クエリ実行計画案生成処理実行後、ステップS113以降の処理を実行する。なお、受信したクエリに部分処理可能指示子を含むか否かを判定は、受信したクエリを表すSQL文字列が、部分処理可能指示子を表す文字列(例えば、/* ENABLE_PARTIAL_PROCESSING */)を含むか否かで判定してもよく、または、DBMS150の設定ファイル等に部分処理可能指示子を表す命令を含むか否かで判定してもよい。DBMS150の設定ファイルで部分処理可能指示子を指定する場合には、例えば、計算機システム全体で部分処理可能であることを指示することになる。
次に、部分処理クエリ実行計画案生成処理について説明する。図43は、本発明の第3実施形態の部分処理クエリ実行計画案生成処理の手順を示すフローチャートである。部分処理クエリ実行計画案生成処理は、データベースサーバ100で実行されるDBMS150に含まれるクエリ実行計画生成部152によって実行される。
CPU110は、まず、外部ストレージ装置200からボリューム状態情報213を取得するボリューム状態情報取得処理を実行する(ステップS411)。ボリューム状態情報取得処理の詳細については、図44にて後述する。
次に、CPU110は、部分処理可能指示子に基づいて、ボリューム状態情報213及びCPU・主記憶状態情報156を参照し、ボリューム及びCPU110のスリープ計画を作成する(ステップS412)。
さらに、CPU110は、生成済みの各クエリ実行計画案に対し、ステップS414以降の処理を実行する(ステップS413)。
CPU110は、まず、クエリ実行計画案を複製する(ステップS414)。さらに、複製されたクエリ実行計画案の各ステップに関し(ステップS415)、部分処理を実行するための設定を行う。具体的には、部分処理を実行するためのステップの実行直前の電力制御命令、実行直後の電力制御命令、及び部分処理フラグを付与する(ステップS416)。
続いて、ボリューム状態情報213を取得するための処理を説明する。図44は、本発明の第3実施形態のボリューム状態情報取得処理の手順を示すフローチャートである。ボリューム状態情報取得処理、データベースサーバ100で実行されるDBMS150に含まれるクエリ実行計画生成部152によって実行される。
CPU110は、ボリューム状態情報取得処理が開始されると、まず、外部ストレージ装置200にボリューム状態情報取得命令を発行する(ステップS421)。その後、外部ストレージ装置200から送信されたボリューム状態情報を受信する(ステップS422)。
次に、ボリューム状態情報取得命令を受信した外部ストレージ装置200によるボリューム状態情報送信処理について説明する。図45は、本発明の第3実施形態のボリューム状態情報送信処理の手順を示すフローチャートである。ボリューム状態情報送信処理は、外部ストレージ装置200の制御部210に含まれるストレージ電力制御部212によって実行される。
外部ストレージ装置200の制御部210は、データベースサーバ100からボリューム状態情報取得命令を受信すると(ステップS431)、ボリューム状態情報213を取得し、データベースサーバ100に送信する(ステップS432)。なお、ボリューム状態情報取得命令にボリュームが指定されている場合には、指定されたボリュームの情報のみを送信するようにしてもよい。
続いて、ボリューム及びCPU110のスリープ計画表159について説明する。図46は、本発明の第3実施形態のボリューム及びCPU110のスリープ計画表159の一例を示す図である。スリープ計画表159は、前述のように、データベースサーバ100のDBMS150に含まれる。
スリープ計画表159は、ボリューム・CPUを識別する識別子1591とスリープ計画1592とを含む。スリープ計画1592では、図46に示すように、対象のボリューム又はCPUをスリープ化させるタイミングなどが格納される。なお、スリープ計画表159の各レコードは、常時アクティブ化する場合には作成を省略し、ボリューム又はCPU110をスリープ化させる場合にのみ対応するレコードを作成するようにしてもよい。
続いて、クエリ実行部153における処理について説明する。図47は、本発明の第3実施形態のアウトオブオーダ実行処理の手順を示すフローチャートである。第1実施形態のアウトオブオーダ実行処理との相違点は、データタスク駆動処理の開始時に、オペレーションを実行するために必要な新たなデータがスリープ対象に指定されたボリュームに格納されているか否かを判定する点である。この点を除き、第1実施形態のデータタスク駆動処理と同じ処理である。
CPU110は、データタスク駆動処理が開始されると、最初にオペレーションを実行するために必要な新たなデータがスリープ対象に指定されたボリュームに格納されているか否かを判定する(ステップS441)。新たなデータがスリープ対象に指定されたボリュームに格納されている場合には(ステップS441の結果が「T」)、当該オペレーションを実行せずに後続のオペレーションを処理する(ステップS223)。
図48は、本発明の第3実施形態のインオーダ実行処理の手順を示すフローチャートである。第1実施形態のインオーダ実行処理との相違点は、選択されたオペレーションを処理する前に、当該オペレーションを実行するために必要な新たなデータがスリープ対象に指定されたボリュームに格納されているか否かを判定する点である。この点を除き、第1実施形態のインオーダ実行処理と同じ処理である。
CPU110は、選択されたオペレーションを処理する前に、当該オペレーションを実行するために必要な新たなデータがスリープ対象に指定されたボリュームに格納されているか否かを判定する(ステップS451)。新たなデータがスリープ対象に指定されたボリュームに格納されている場合には(ステップS451の結果が「T」)、当該オペレーションを実行せずに後続のオペレーションを処理する(ステップS244)。
以上が本発明の第3実施形態の構成及び制御である。続いて、本発明の第3実施形態の適用例を図49から図54を参照しながら説明する。まず、本発明の第3実施形態におけるデータベースの構成について説明する。図49は、本発明の第3実施形態のデータベースの構成を説明する図である。
本例では、ボリューム1からボリューム4までの4個のボリュームが提供され、表R及び索引IRはボリューム1に格納されている。一方、表S及び索引ISはボリューム2からボリューム4にハッシュ鍵をS2とするハッシュ分散で格納されている。ボリューム2には表S1及び索引IS1、ボリューム3には表S2及び索引IS2、ボリューム4には表S3及び索引IS3が格納されている。また、ハッシュ分散でデータが格納されているため、ボリューム2からボリューム4に表Sのデータは均等に格納されている。表R、索引IR、表S及び索引ISの構成は、図22に示した第1実施形態と同じである。
次に、本発明の第3実施形態における外部ストレージ装置200のストレージ電力特性情報215について説明する。図50は、本発明の第3実施形態の外部ストレージ装置200のストレージ電力特性情報215を示す図である。本実施形態では、ボリューム1からボリューム4はすべて同じ性能となっており、図23に示した第1実施形態の各ボリュームと同じ性能である。
続いて、実行時の性能を計測するためのクエリについて説明する。図51は、本発明の第3実施形態のデータベースサーバ100で実行されるクエリの一例を示す図である。なお、図51に示したクエリは、図24(A)に示した第1実施形態のクエリ1と同じであるため説明を省略する。
また、第1実施形態と同様に、ハッシュ結合、索引結合(インオーダ実行)、索引結合(アウトオブオーダ実行)の3種類のクエリ実行計画案を作成する。ここでは、ハッシュ結合及び索引結合(インオーダ実行)についての説明は省略し、索引結合(アウトオブオーダ実行)の実行計画案3に対して第3実施形態を適用する例について説明する。図52は、本発明の第3実施形態の索引結合(アウトオブオーダ実行)によってクエリ1を処理するクエリ実行計画案3を説明する図である。なお、実行計画案3については、第1実施形態の実行計画案3と同じである。
ここで、図51に示したクエリを、図52に示したクエリ実行計画案3に基づいて処理した場合の性能について説明する。なお、アウトオブオーダ実行における多重度xは100とする。図53は、本発明の第3実施形態において部分実行を行わない場合のクエリ実行計画案3による処理性能を示す図であり、(A)は各ボリュームの性能情報、(B)は各ボリュームの状態を示す。
部分実行を行わない場合には、(A)に示すように、平均IOPSがボリューム1に対して99IOPS、ボリューム2からボリューム4に対して3300IOPSとなり、合計9999IOPSとなる。また、(B)に示すようにすべてのボリュームがアクティブ状態となっている。さらに、消費電力については、ボリューム1が101W、ボリューム2からボリューム4がそれぞれ133Wとなり、合計500Wとなる。
図54は、本発明の第3実施形態において部分実行を行う場合のクエリ実行計画案3による処理性能を示す図であり、(A)はスリープ計画表159、(B)は各ボリュームの性能情報、(C)は各ボリュームの状態を示す。
図54に示す例では、(A)及び(C)に示すように、ボリューム4をスリープ化して部分実行を行う。そして、(B)に示すように、平均IOPSがボリューム1に対して99IOPS、ボリューム2及びボリューム3に対して3300IOPSとなり、合計6699IOPSとなる。また、消費電力については、ボリューム1が101W、ボリューム2及びボリューム3がそれぞれ133W、ボリューム4が10Wとなり、合計377Wとなる。
以上のように、本発明の第3実施形態によれば、クエリの部分実行を行うことによって、一部の処理結果を取得できないために精度が低下するが、アクセス対象のボリュームを限定し、アクセス対象でないボリュームをスリープ化することによって消費電力を削減することが可能となる。本実施形態のようにハッシュ分散で各ボリュームに均等にデータが分散して配置されている場合には、例えば、データの平均値を取得する場合に精度が低下する可能性があるものの少ない誤差で概算した結果を得ることが可能となる。このとき、必要な精度は部分実行を行う範囲によって決定すればよい。
(第4実施形態)
第1実施形態では、外部ストレージ装置200がデータベースサーバ100から送信された入出力命令をそのまま処理してデータの入出力を行っていたが、第4実施形態では、受信した入出力命令の処理を遅延することによって省電力化を図る例について説明する。
図55は、本発明の第4実施形態の計算機システム10の構成を示す図である。本発明の第4実施形態の計算機システム10は、外部ストレージ装置200の制御部210に保留入出力情報216を保持する点で第1実施形態の計算機システムと相違する。なお、その他の構成については、第1実施形態の計算機システム10と共通であり、説明を省略する。
保留入出力情報216は、データベースサーバ100から送信された入出力命令のうち、保留されている(実行されていない)入出力命令を管理するテーブルである。保留入出力情報216の詳細は図60にて後述する。
本実施形態の計算機システム10では、前述のように、入出力命令を遅延して処理可能な遅延入出力モードを備える。遅延入出力モードは、データベース管理システム150のクエリ実行部153が遅延可能フラグを付与した入出力命令を外部ストレージ装置200に発行することによって指定される。
図56は、本発明の第4実施形態の入出力命令発行処理の手順を示すフローチャートである。入出力命令発行処理は、クエリ実行部153によって実行され、アウトオブオーダ実行処理のステップS221及びインオーダ実行処理のステップS242の処理で実行される。
データベースサーバ100のCPU110は、遅延入出力モードでクエリ処理を実行しているか否かを判定する(ステップS501)。遅延入出力モードでクエリ処理を実行している場合には(ステップS501の結果が「T」)、遅延可能フラグ付きの入出力命令を外部ストレージ装置200に発行する(ステップS502)。一方、遅延入出力モードでクエリ処理を実行していない場合には(ステップS501の結果が「F」)、通常モード、すなわち、遅延可能フラグを付与していない入出力命令を外部ストレージ装置200に発行する(ステップS503)。
続いて、外部ストレージ装置200の制御部に備えられる入出力処理部211による処理について説明する。第4実施形態の入出力処理では、第1実施形態の入出力処理(図17)に、遅延入出力を実行するための処理が追加される。図57は、本発明の第4実施形態の入出力処理の手順を示すフローチャートである。
制御部210は、データベースサーバ100から入出力命令を受信すると(ステップS251)、ボリューム状態情報213の電力モード2132を参照し、データの入出力の対象となるボリュームがスリープ状態であるか否かを判定する(ステップS252)。入出力の対象となるボリュームがスリープ状態である場合には(ステップS252の結果が「T」)、さらに、受信した入出力命令に遅延可能フラグが付与されているか否かを判定する(ステップS511)。受信した入出力命令に遅延可能フラグが付与されていない場合には(ステップS511の結果が「F」)、ステップS253以降の処理を実行する。
一方、制御部210は、受信した入出力命令に遅延可能フラグが付与されている場合には(ステップS511の結果が「T」)、入出力命令保留処理を実行し(ステップS512)、本処理を終了する。入出力命令保留処理では、受信した入出力命令を保留したり、保留されている入出力命令を処理したりすることを決定する。入出力命令保留処理の詳細については、図58にて後述する。
図58は、本発明の第4実施形態の入出力命令保留処理の手順を示すフローチャートである。入出力命令保留処理は、外部ストレージ装置200の制御部210に含まれる入出力処理部211によって実行される。
制御部210は、まず、入出力命令の対象ボリュームに対して所定数(N個)以上の入出力命令が保留中であるか否かを判定する(ステップS521)。入出力命令の対象ボリュームに所定値以上の入出力命令が保留中でない場合には(ステップS521の結果が「F」)、入出力命令の処理を保留するために、当該入出力命令を保留入出力情報216に格納し(ステップS528)、本処理を終了する。
制御部210は、入出力命令の対象ボリュームに対して所定数以上の入出力命令が保留中である場合には(ステップS521の結果が「T」)、対象ボリューム以外の一以上のボリュームをスリープ化する(ステップS522)。さらに、対象ボリュームをアクティブ化する(ステップS523)。そして、ボリューム状態情報213の電力モード2132を更新し(ステップS524)、最終アクセス時間2133を更新する(ステップS525)。
次に、制御部210は、対象ボリュームにおいて保留されていた入出力命令と、新たに受信した入出力命令を発行する(ステップS526)。その後、これらの入出力命令による入出力結果をデータベースサーバ100に送信する(ステップS527)。
以上のように、本実施形態では、遅延対象のボリュームであっても所定数以上の入出力命令が保留されている場合には、スループットを向上させるために、対象のボリュームをアクティブ化している。このとき、一以上のアクティブ状態のボリュームをスリープ化することによって、消費電力低減の効果を維持している。なお、スリープ化するボリュームは、入出力命令を受信した回数の少ないボリュームを選択してもよいし、最終アクセス時間2133がもっとも古いボリュームを選択してもよい。
入出力命令保留処理では、対象ボリュームに対する入出力命令が所定数以上の場合には、遅延命令に関わらず保留を解除し、入出力命令を処理するように制御していたが、入出力命令を長時間保留状態にしたままにすると、クエリ全体の処理が遅延する可能性がある。そのため、一定時間以上、入出力命令の処理が保留されているボリュームに対しては、アクティブ化を実行し、入出力命令を処理(再開)するように制御する。
図59は、本発明の第4実施形態の保留入出力命令再開処理の手順を示すフローチャートである。保留入出力命令再開処理は、外部ストレージ装置200の制御部210に含まれる入出力処理部211によって実行される。
制御部210は、まず、一定時間以上保留された入出力命令を有するボリュームがあるか否かを判定する(ステップS531)。一定時間以上保留された入出力命令を有するボリュームがない場合には(ステップS531の結果が「F」)、本処理を終了する。
一方、制御部210は、一定時間以上保留された入出力命令を有するボリュームがある場合には(ステップS531の結果が「T」)、当該ボリューム以外の一以上のボリュームをスリープ化する(ステップS532)。さらに、当該ボリュームをアクティブ化する(ステップS533)。そして、ボリューム状態情報213の電力モード2132を更新し(ステップS534)、最終アクセス時間2133を更新する(ステップS535)。
次に、制御部210は、当該ボリュームにおいて保留されていた入出力命令を発行する(ステップS536)。最後に、保留されていた入出力命令による入出力結果をデータベースサーバ100に送信する(ステップS537)。
続いて、保留中の入出力命令を格納する保留入出力情報216について説明する。図60は、本発明の第4実施形態の保留入出力情報216の一例を示す図である。保留入出力情報216は、前述のように、実行が保留されている入出力命令を格納するテーブルである。保留入出力情報216は、対象ボリューム2161、入出力種別2162、アドレス・サイズ・データ等2163、発行元2164及び発行時間2165を含む。
対象ボリューム2161は、ボリュームを識別する情報を格納する。入出力種別2162は、データの入出力を区別するための種別を格納する。入出力種別2162には、入力又は出力のみを格納してもよいし、データの読み出し、更新、追加、削除などの内容を格納してもよい。なお、後続の処理で参照する予定のデータを更新する入出力命令が保留されていると、データに不整合が生じてしまう可能性があるため、更新などの入力処理の場合には優先して処理するようにしてもよい。
アドレス・サイズ・データ等2163は、アクセスするデータのアドレス、当該データのサイズ等を格納する。また、データを更新又は追加する場合には、更新内容となるデータを格納する。また、アドレス、サイズ、データ等については、それぞれ個別のフィールドとしてもよい。
発行元2164は、入出力命令を発行したデータベースサーバ100を識別する情報を格納する。発行時間2165は、入出力命令が発行された時刻を格納する。
以上が本発明の第4実施形態の構成及び制御である。続いて、本発明の第4実施形態の適用例を図61及び図62を参照しながら説明する。第4実施形態の適用例におけるデータベースの構成は、第3実施形態の適用例におけるデータベースの構成(図49)と同じである。また、外部ストレージ装置200のストレージ電力特性情報215は、第3実施形態の適用例におけるストレージ電力特性情報215(図50)と同じである。
また、第4実施形態の適用例における実行時の性能を計測するためのクエリは、図24(A)に示した第1実施形態のクエリ1と同じである。さらに、作成されるクエリ実行計画案は、第1実施形態と同様に、ハッシュ結合、索引結合(インオーダ実行)、索引結合(アウトオブオーダ実行)の3種類のクエリ実行計画案を作成するが、ここでは、索引結合(アウトオブオーダ実行)の実行計画案3に対して第4実施形態を適用する例について説明する。実行計画案3は、図27(A)に示した第1実施形態の実行計画案3と同じである。
以上の構成において、ボリューム2からボリューム4(表S)に対する入出力を遅延化させる場合について本実施形態を適用する。なお、多重度xは100とする。図61は、本発明の第4実施形態において遅延可能フラグを付与せずに入出力命令を発行した場合の各ボリュームの状態を説明する図である。図62は、本発明の第4実施形態において遅延可能フラグを付与して入出力命令を発行した場合の各ボリュームの状態を説明する図である。
図61に示すように、データの入出力を遅延化しない場合には、表Sがハッシュ分散によってボリューム2からボリューム4に均等に格納されているため、各ボリュームが均等にアクセスされる。そのため、クエリ1の実行が開始されてから終了するまで各ボリュームがアクティブ状態を継続している。
一方、図62に示すように、データの入出力を遅延化する場合には、最初にボリューム4がスリープ化され、ボリューム2及びボリューム3に格納されたデータを優先して取得するように制御される。時間の経過とともにボリューム4に対する入出力命令が所定数に到達し(図58のステップS521の結果が「T」)、若しくは、所定の時間が経過することで(図59のステップS531の結果が「T」)、ボリューム3がスリープ化され(ステップS522、ステップS532)、ボリューム4がアクティブ化される(ステップS523、ステップS533)。同様に、各ボリュームが順次スリープ化され、消費電力を削減することができる。
以上のように、本発明の第4実施形態によれば、データを格納するボリュームに対して入出力命令の実行を遅延させることによって省電力機能を発揮させて計算機システム全体の消費電力を削減することができる。
また、本発明の第4実施形態によれば、タスクの実行順序を入れ替えて処理を実行するため、処理結果の精度を低下させずに、消費電力を削減することができる。また、アクセス回数が多いボリュームは早期にアクティブ化されるため、実行時間の低下を抑制することができる。
さらに、本発明の第4実施形態では、アクセス頻度の低いボリュームに対する入出力命令を遅延させると、スリープ状態が維持される時間が長くなるため、各ボリュームのアクセス頻度を記録し、アクセス頻度の低いボリュームに対する入出力命令を優先して遅延させるようにしてもよい。
また、各ボリュームのアクセス頻度を集計するだけでなく、さらにページ単位でアクセス頻度を集計し、アクセス頻度の低いページを特定のボリュームに移動させるようにしてもよい。このように、アクセス頻度に基づいて、データベースのレイアウトを変更することによって、より消費電力を低減させることができる。また、表などのデータベースオブジェクトごとにアクセス頻度を集計し、データベースのレイアウトを変更するようにしてもよい。レイアウトの変更は、管理者の操作に基づいて行ってもよいし、データベースサーバ100が無負荷状態の場合など所定のタイミングで実行するようにしてもよい。
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
10 計算機システム
20、30 ネットワーク
100 データベースサーバ
110 CPU(演算装置)
120 主記憶(主記憶装置)
130 アプリケーションプログラム
140 オペレーティングシステム(OS)
150 データベース管理システム(DBMS)
151 クエリ受付部
152 クエリ実行計画生成部
153 クエリ実行部
154 クエリ実行特性情報
155 サーバ電力制御部
156 CPU・主記憶状態情報
157 サーバ電力特性情報管理部
158 サーバ電力特性情報(消費電力情報)
159 スリープ計画表
160 ホストバスアダプタ(HBA)
161 ネットワークインターフェイスカード(NIC)
180 ストレージ装置
190 電源監視部
191 電源
200 外部ストレージ装置(ストレージ装置)
210 制御部
211 入出力処理部
212 ストレージ電力制御部
213 ボリューム状態情報
214 ストレージ電力特性情報管理部
215 ストレージ電力特性情報(消費電力情報)
216 保留入出力情報
260 ホストバスアダプタ(HBA)
261 ネットワークインターフェイスカード(NIC)
280 ストレージ装置群
290 電源監視部
291 電源

Claims (16)

  1. データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムであって、
    前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される複数の演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記データベース管理システムは、前記演算装置の消費電力を低減するスリープ状態と、前記データの処理を可能とするアクティブ状態とを切り替える演算装置省電力機能を備え、
    前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、
    前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが作成され、
    前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、
    前記データベース管理システムは、前記演算装置に実行されることによって、
    前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、
    前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、
    前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、
    前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、
    前記選択された実行計画に基づいて、前記制御部にデータの読み書きを指示するための処理を実行し、
    前記複数の演算装置から一の演算装置を選択し、当該選択された演算装置とは異なる演算装置に、当該選択された演算装置で実行されている処理を割り当て、
    前記選択された演算装置で処理が実行されていない場合には、当該選択された演算装置を前記アクティブ状態から前記スリープ状態に移行させることを特徴とする計算機システム。
  2. データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムであって、
    前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される複数の主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記データベース管理システムは、前記主記憶装置の消費電力を低減するスリープ状態と、前記データを記憶可能なアクティブ状態とを切り替える主記憶装置省電力機能を備え、
    前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、
    前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが作成され、
    前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、
    前記データベース管理システムは、前記演算装置に実行されることによって、
    前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、
    前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、
    前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、
    前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、
    前記選択された実行計画に基づいて、前記制御部にデータの読み書きを指示するための処理を実行し、
    前記複数の主記憶装置から一の主記憶装置を選択し、当該選択された主記憶装置とは異なる主記憶装置に、当該選択された主記憶装置に記憶されているデータを割り当て、
    前記選択された主記憶装置にデータが記憶されていない場合には、当該選択された主記憶装置を前記アクティブ状態から前記スリープ状態に移行させることを特徴とする計算機システム。
  3. データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムであって、
    前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、
    前記制御部は、前記ストレージ装置の消費電力を低減するスリープ状態と、前記データを読み書き可能なアクティブ状態とを切り替えるストレージ省電力機能を備え、
    前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが複数作成され、
    前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、
    前記データベース管理システムは、前記演算装置に実行されることによって、
    前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記受け付けた問い合わせを解析して、実行計画を作成し、
    前記作成された実行計画に基づいて、前記制御部にデータの読み書きを指示し、
    前記複数のボリュームに分散して記憶されているデータを読み出す問い合わせを受け付けた場合には、前記読み出されるデータが格納されている複数のボリュームのうち一部のボリュームを除外してデータの読み出しを前記制御部に指示し、
    前記除外されたボリュームを前記アクティブ状態から前記スリープ状態に移行させるように前記制御部に指示することを特徴とする計算機システム。
  4. 前記実行計画は、前記ストレージ装置に格納されたデータを読み書きするオペレーションによって構成され、
    前記データベース管理システムは、前記演算装置に実行されることによって、
    前記オペレーションを並列して実行し、
    前記各オペレーションの実行結果に基づいて、前記受け付けた問い合わせの結果を生成することを特徴とする請求項1から請求項3のいずれか1項に記載の計算機システム。
  5. 前記データベース管理システムは、前記演算装置に実行されることによって、
    前記オペレーションを同時に実行可能な多重度の上限を設定することによって、前記実行計画を最適化することを特徴とする請求項4に記載の計算機システム。
  6. 前記制御部は、
    前記データベースサーバから前記データにアクセスする入出力命令を受信し、当該アクセスするデータを格納するボリュームが前記スリープ状態である場合には、当該受信した入出力命令の処理を保留し、
    前記スリープ状態のボリュームに対する入出力命令が所定数以上になった場合には、当該ボリュームを前記アクティブ状態に移行し、
    前記保留された入出力命令の処理を実行することを特徴とする請求項に記載の計算機システム。
  7. 前記制御部は、
    前記データベースサーバから前記データにアクセスする入出力命令を受信し、当該アクセスするデータを格納するボリュームが前記スリープ状態である場合には、当該受信した入出力命令の処理を保留し、
    前記スリープ状態のボリュームが前記スリープ状態となってから所定時間以上経過した場合には、当該ボリュームを前記アクティブ状態に移行し、
    前記保留された入出力命令の処理を実行することを特徴とする請求項に記載の計算機システム。
  8. 前記制御部は、
    前記ボリュームに入出力命令を発行し、
    前記発行された入出力命令の実行による前記ボリュームの消費電力を計測し、
    前記計測された消費電力に基づいて前記ボリュームの消費電力情報を生成し、
    前記データベース管理システムは、前記演算装置に実行されることによって、前記ストレージ装置から前記ボリュームの消費電力情報を取得することを特徴とする請求項に記載の計算機システム。
  9. 前記データベース管理システムは、前記演算装置に実行されることによって、
    前記演算装置に演算命令を発行し、
    前記発行された演算命令の実行による当該演算装置の消費電力を計測し、
    前記計測された消費電力に基づいて、前記演算装置の消費電力情報を生成することを特徴とする請求項に記載の計算機システム。
  10. 前記データベース管理システムは、前記演算装置に実行されることによって、
    前記主記憶装置の状態を変更し、
    前記主記憶装置の状態の変更による当該主記憶装置の消費電力を計測し、
    前記計測された消費電力に基づいて、前記主記憶装置の消費電力情報を生成することを特徴とする請求項に記載の計算機システム。
  11. データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムにおいて実行される省電力化方法であって、
    前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される複数の演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記データベース管理システムは、前記演算装置の消費電力を低減するスリープ状態と、前記データの処理を可能とするアクティブ状態とを切り替える演算装置省電力機能を備え、
    前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、
    前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが作成され、
    前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、
    前記省電力化方法は、
    前記演算装置が、前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記演算装置が、前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、
    前記演算装置が、前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、
    前記演算装置が、前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、
    前記演算装置が、前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、
    前記演算装置が、前記選択された実行計画に基づいて、前記制御部にデータの読み書きを指示するための処理を実行し、
    前記演算装置が、前記複数の演算装置から一の演算装置を選択し、当該選択された演算装置とは異なる演算装置に、当該選択された演算装置で実行されている処理を割り当て、
    前記演算装置が、前記選択された演算装置で処理が実行されていない場合には、当該選択された演算装置を前記アクティブ状態から前記スリープ状態に移行させることを特徴とする省電力化方法
  12. データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムにおいて実行される省電力化方法であって、
    前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される複数の主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記データベース管理システムは、前記主記憶装置の消費電力を低減するスリープ状態と、前記データを記憶可能なアクティブ状態とを切り替える主記憶装置省電力機能を備え、
    前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、
    前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが作成され、
    前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、
    前記省電力化方法は、
    前記演算装置が、前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記演算装置が、前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、
    前記演算装置が、前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、
    前記演算装置が、前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、
    前記演算装置が、前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、
    前記演算装置が、前記選択された実行計画に基づいて、前記制御部にデータの読み書きを指示するための処理を実行し、
    前記演算装置が、前記複数の主記憶装置から一の主記憶装置を選択し、当該選択された主記憶装置とは異なる主記憶装置に、当該選択された主記憶装置に記憶されているデータを割り当て、
    前記演算装置が、前記選択された主記憶装置にデータが記憶されていない場合には、当該選択された主記憶装置を前記アクティブ状態から前記スリープ状態に移行させることを特徴とする省電力化方法。
  13. データベース管理システムが実行されるデータベースサーバと、前記データベースサーバとネットワークを介して接続され、前記データベース管理システムによって管理されるデータが格納されるストレージ装置と、を備える計算機システムにおいて実行される省電力化方法であって、
    前記データベースサーバは、前記ネットワークに接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記ストレージ装置は、前記データベース管理システムによって管理されるデータが格納される記憶部と、前記記憶部に格納されたデータの読み書きを制御する制御部と、を備え、
    前記制御部は、前記ストレージ装置の消費電力を低減するスリープ状態と、前記データを読み書き可能なアクティブ状態とを切り替えるストレージ省電力機能を備え、
    前記記憶部は、前記データが読み書きされる記憶領域として、前記データベースサーバに提供されるボリュームが複数作成され、
    前記主記憶装置は、前記記憶部に作成されたボリュームの消費電力情報を保持し、
    前記省電力化方法は、
    前記演算装置が、前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記演算装置が、前記受け付けた問い合わせを解析して、実行計画を作成し、
    前記演算装置が、前記作成された実行計画に基づいて、前記制御部にデータの読み書きを指示し、
    前記演算装置が、前記複数のボリュームに分散して記憶されているデータを読み出す問い合わせを受け付けた場合には、前記読み出されるデータが格納されている複数のボリュームのうち一部のボリュームを除外してデータの読み出しを前記制御部に指示し、
    前記演算装置が、前記除外されたボリュームを前記アクティブ状態から前記スリープ状態に移行させるように前記制御部に指示することを特徴とする省電力化方法
  14. データを格納するストレージ装置に接続され、当該データを管理するデータベース管理システムが実行される計算機であって、
    前記ストレージ装置に接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記データベース管理システムは、前記演算装置の消費電力を低減するスリープ状態と、前記データの処理を可能とするアクティブ状態とを切り替える演算装置省電力機能を備え、
    前記ストレージ装置は、前記データが読み書きされる記憶領域であるボリュームを提供し、
    前記主記憶装置は、前記ストレージ装置によって提供されたボリュームの消費電力情報を保持し、
    前記演算装置は、
    前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、
    前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、
    前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、
    前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、
    前記選択された実行計画に基づいて、前記ストレージ装置にデータの読み書きを指示するための処理を実行し、
    前記複数の演算装置から一の演算装置を選択し、当該選択された演算装置とは異なる演算装置に、当該選択された演算装置で実行されている処理を割り当て、
    前記選択された演算装置で処理が実行されていない場合には、当該選択された演算装置を前記アクティブ状態から前記スリープ状態に移行させることを特徴とする計算機。
  15. データを格納するストレージ装置に接続され、当該データを管理するデータベース管理システムが実行される計算機であって、
    前記ストレージ装置に接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記データベース管理システムは、前記主記憶装置の消費電力を低減するスリープ状態と、前記データを記憶可能なアクティブ状態とを切り替える主記憶装置省電力機能を備え、
    前記ストレージ装置は、前記データが読み書きされる記憶領域であるボリュームを提供し、
    前記主記憶装置は、前記ストレージ装置によって提供されたボリュームの消費電力情報を保持し、
    前記演算装置は、
    前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記受け付けた問い合わせを解析して、一つ以上の実行計画を作成し、
    前記作成された実行計画に基づいてデータを読み書きするボリュームを特定し、
    前記特定されたボリュームの消費電力情報に基づいて、前記一つ以上の実行計画について、それぞれ消費電力を算出し、
    前記一つ以上の実行計画から、前記算出された消費電力が所定の閾値を満足する実行計画を選択し、
    前記選択された実行計画に基づいて、前記ストレージ装置にデータの読み書きを指示するための処理を実行し、
    前記複数の主記憶装置から一の主記憶装置を選択し、当該選択された主記憶装置とは異なる主記憶装置に、当該選択された主記憶装置に記憶されているデータを割り当て、
    前記選択された主記憶装置にデータが記憶されていない場合には、当該選択された主記憶装置を前記アクティブ状態から前記スリープ状態に移行させることを特徴とする計算機。
  16. データを格納するストレージ装置に接続され、当該データを管理するデータベース管理システムが実行される計算機であって、
    前記ストレージ装置に接続されるインターフェイスと、前記インターフェイスに接続される演算装置と、前記演算装置に接続される主記憶装置と、を備え、
    前記主記憶装置には、前記データベース管理システムが記憶され、
    前記ストレージ装置は、
    消費電力を低減するスリープ状態と、前記データを読み書き可能なアクティブ状態とを切り替える省電力機能を備え、
    前記データが読み書きされる記憶領域であるボリュームを複数提供し、
    前記主記憶装置は、前記ストレージ装置によって提供されたボリュームの消費電力情報を保持し、
    前記演算装置は、
    前記ストレージ装置に格納されたデータを読み書きする問い合わせを受け付け、
    前記受け付けた問い合わせを解析して、実行計画を作成し、
    前記作成された実行計画に基づいて、データの読み書きを前記ストレージ装置に指示し、
    前記複数のボリュームに分散して記憶されているデータを読み出す問い合わせを受け付けた場合には、前記読み出されるデータが格納されている複数のボリュームのうち一部のボリュームを除外してデータの読み出しを前記ストレージ装置に指示し、
    前記除外されたボリュームを前記アクティブ状態から前記スリープ状態に移行させるように前記ストレージ装置に指示することを特徴とする計算機。
JP2015169171A 2015-08-28 2015-08-28 計算機システム、省電力化方法及び計算機 Active JP6690829B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015169171A JP6690829B2 (ja) 2015-08-28 2015-08-28 計算機システム、省電力化方法及び計算機
US15/755,917 US10649519B2 (en) 2015-08-28 2016-08-26 Computer system, method for conserving power, and computer
PCT/JP2016/074893 WO2017038652A1 (ja) 2015-08-28 2016-08-26 計算機システム、省電力化方法及び計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015169171A JP6690829B2 (ja) 2015-08-28 2015-08-28 計算機システム、省電力化方法及び計算機

Publications (2)

Publication Number Publication Date
JP2017045381A JP2017045381A (ja) 2017-03-02
JP6690829B2 true JP6690829B2 (ja) 2020-04-28

Family

ID=58187524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015169171A Active JP6690829B2 (ja) 2015-08-28 2015-08-28 計算機システム、省電力化方法及び計算機

Country Status (3)

Country Link
US (1) US10649519B2 (ja)
JP (1) JP6690829B2 (ja)
WO (1) WO2017038652A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6707797B2 (ja) * 2017-03-29 2020-06-10 株式会社日立製作所 データベース管理システム及びデータベース管理方法
US10805345B2 (en) * 2017-09-29 2020-10-13 Paypal, Inc. Blind injection attack mitigation
CN112005207A (zh) * 2018-10-18 2020-11-27 惠普发展公司,有限责任合伙企业 创建数据的统计分析以用于传输到服务器
CN114443256B (zh) * 2022-04-07 2022-08-30 荣耀终端有限公司 资源调度方法及电子设备
JP2024031670A (ja) * 2022-08-26 2024-03-07 株式会社日立製作所 管理方法、管理装置、および管理プログラム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4972845B2 (ja) 2001-09-27 2012-07-11 富士通株式会社 ストレージシステム
JP4290975B2 (ja) * 2002-12-19 2009-07-08 株式会社日立製作所 データベース処理方法及び装置並びにその処理プログラム及びディザスタリカバリ方法及びシステム
JP2005092791A (ja) * 2003-09-19 2005-04-07 Fuji Xerox Co Ltd データ処理装置、データ処理方法およびプログラム
US8010764B2 (en) * 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
JP4683546B2 (ja) * 2005-07-15 2011-05-18 国立大学法人 東京大学 データベースの再編成方法及びデータベース再編成システム
JP4611830B2 (ja) * 2005-07-22 2011-01-12 優 喜連川 データベース管理システム及び方法
JP4694333B2 (ja) * 2005-09-30 2011-06-08 株式会社日立製作所 計算機システム及びストレージ装置とシステム管理装置並びにディスク装置電源制御方法
JP4839133B2 (ja) * 2006-05-22 2011-12-21 株式会社日立製作所 ストレージ装置のデータ管理方法及び計算機システム
JP2008112293A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd 管理計算機及び電源制御方法並びに計算機システム
JP4908260B2 (ja) * 2007-02-23 2012-04-04 優 喜連川 計算機システム、及び省電力化方法
JP4497184B2 (ja) * 2007-09-13 2010-07-07 ソニー株式会社 集積装置およびそのレイアウト方法、並びにプログラム
JP5134915B2 (ja) * 2007-11-02 2013-01-30 株式会社日立製作所 記憶領域の構成最適化方法、計算機システム及び管理計算機
JP5256173B2 (ja) * 2009-11-18 2013-08-07 株式会社日立製作所 データベース管理方法、データベース管理システム及びデータベース管理プログラム
US8433942B2 (en) * 2010-03-05 2013-04-30 Hitachi, Ltd. Storage apparatus and power consumption estimation method
JP2011210024A (ja) * 2010-03-30 2011-10-20 Yokogawa Electric Corp サーバ・ストレージシステム
JP5699847B2 (ja) * 2011-08-08 2015-04-15 富士通株式会社 制御装置及び方法
JP5811706B2 (ja) * 2011-09-05 2015-11-11 富士通株式会社 ストレージ装置,データ転送方法及びプログラム
US9032234B2 (en) * 2011-09-19 2015-05-12 Marvell World Trade Ltd. Systems and methods for monitoring and managing memory blocks to improve power savings
US10747773B2 (en) * 2012-05-24 2020-08-18 Hitachi, Ltd. Database management system, computer, and database management method
WO2013179453A1 (ja) * 2012-05-31 2013-12-05 株式会社日立製作所 解析システム、計算機システム及び解析方法
CN103733175B (zh) * 2013-08-09 2015-05-27 华为技术有限公司 一种文件处理方法、装置及存储设备
US10885030B2 (en) * 2013-08-29 2021-01-05 Hitachi, Ltd. Database management system and computer system having first and second query execution parts which execute database operations in parallel
JP5999536B2 (ja) * 2013-08-29 2016-09-28 株式会社日立製作所 計算機及びデータ読み出し方法
WO2015029208A1 (ja) * 2013-08-30 2015-03-05 株式会社日立製作所 データベース管理装置、データベース管理方法及び記憶媒体
US9513692B2 (en) * 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
US20150177821A1 (en) * 2013-12-20 2015-06-25 Broadcom Corporation Multiple Execution Unit Processor Core
US20160335321A1 (en) * 2014-03-28 2016-11-17 Hitachi, Ltd. Database management system, computer, and database management method

Also Published As

Publication number Publication date
US10649519B2 (en) 2020-05-12
US20180329477A1 (en) 2018-11-15
WO2017038652A1 (ja) 2017-03-09
JP2017045381A (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
JP6690829B2 (ja) 計算機システム、省電力化方法及び計算機
JP4975396B2 (ja) 記憶制御装置及び記憶制御方法
US8819335B1 (en) System and method for executing map-reduce tasks in a storage device
TW201942738A (zh) 電子機器、電腦系統及其等之控制方法
US8966143B2 (en) Method for controlling storages and storage control apparatus
US20140032496A1 (en) Information storage system and data replication method thereof
US9286113B2 (en) Method, apparatus, and system for issuing partition balancing subtask
US20150074342A1 (en) Method for managing storage system using flash memory, and computer
US20150032938A1 (en) System and method for performing efficient processing of data stored in a storage node
JP6600698B2 (ja) 計算機システム
US20110197046A1 (en) Storage application performance matching
US9323682B1 (en) Non-intrusive automated storage tiering using information of front end storage activities
JP5320557B2 (ja) ストレージシステム
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
US11128535B2 (en) Computer system and data management method
TWI712881B (zh) 電子機器及其控制方法、電腦系統及其控制方法以及主機之控制方法
US9336135B1 (en) Systems and methods for performing search and complex pattern matching in a solid state drive
JPWO2015097751A1 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
US9369527B2 (en) File server, file server control method, and storage system
CN102722450B (zh) 一种基于位置敏感哈希的删冗块设备存储方法
US7496724B2 (en) Load balancing in a mirrored storage system
US10078467B2 (en) Storage device, computer readable recording medium, and storage device control method
US20120209891A1 (en) Database management method, database management system and database management program
JP2017041040A (ja) 制御装置、ストレージシステム、及び制御プログラム
KR101792189B1 (ko) 빅 데이터 처리 장치 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200402

R150 Certificate of patent or registration of utility model

Ref document number: 6690829

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250