JP6731620B2 - 計算機システム及び記憶デバイス起動制御方法 - Google Patents

計算機システム及び記憶デバイス起動制御方法 Download PDF

Info

Publication number
JP6731620B2
JP6731620B2 JP2016228561A JP2016228561A JP6731620B2 JP 6731620 B2 JP6731620 B2 JP 6731620B2 JP 2016228561 A JP2016228561 A JP 2016228561A JP 2016228561 A JP2016228561 A JP 2016228561A JP 6731620 B2 JP6731620 B2 JP 6731620B2
Authority
JP
Japan
Prior art keywords
storage devices
hdd
commands
unit
storage
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
JP2016228561A
Other languages
English (en)
Other versions
JP2018085011A (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.)
Hitachi Ltd
University of Tokyo NUC
Original Assignee
Hitachi Ltd
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 Hitachi Ltd, University of Tokyo NUC filed Critical Hitachi Ltd
Priority to JP2016228561A priority Critical patent/JP6731620B2/ja
Priority to US15/805,362 priority patent/US10747446B2/en
Publication of JP2018085011A publication Critical patent/JP2018085011A/ja
Application granted granted Critical
Publication of JP6731620B2 publication Critical patent/JP6731620B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/0608Saving storage space on 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Description

本発明は、概して、記憶デバイスの起動制御に関する。
近年、流通業や金融業などでは、取り扱うデータ量が日々増加している。データ量の増加により、記憶デバイス群(1以上の記憶デバイス)の大規模化が進み、記憶デバイス群の消費電力が上昇している。このため、ビッグデータの蓄積や分析などを低消費電力で実現する技術が求められている。
記憶デバイス群の低消費電力技術として、ハードディスクドライブ(以下、HDD)のスピンダウン技術がある。スピンダウン技術は、ディスクの回転を低速にする又は停止することで消費電力を削減する技術である。しかし、スピンダウン状態のHDDをスピンアップするとHDDの消費電力が一時的に大きく増加する。このとき、一定数を超えるHDDを同時にスピンアップさせると、消費電力の上限を超える可能性がある。
この問題に関して、例えば、特許文献1及び2に開示の技術がある。特許文献1は、HDDの起動順序をずらす技術を開示している。特許文献2は、或るRAID(Redundant Array of Independent (or Inexpensive) Disks)グループのHDDを起動する際に、起動時の消費電力を算出し、必要に応じてHDDの起動順序をずらす技術を開示している。
また、HDDのスピンアップの開始から完了までには時間がかかるため、低消費電力状態のHDDに対するI/O(Input/Output)には時間がかかる。この問題に関して、特許文献3に開示の技術がある。特許文献3は、HDDに対するI/Oの履歴に基づいて低消費電力状態のHDDを事前に起動する技術を開示している。
特許第4642347号公報 特開2010−003149号公報 特開2009−080603号公報
しかしながら、これらの技術では、1以上のI/O要求に基づく複数のI/Oコマンドの処理(例えばビッグデータ分析)に要する時間が長くなり得る。なぜなら、I/Oコマンドの状況に関わらず、I/Oコマンドの発行順序にHDDが起動(スピンアップ)するためである。例えば、I/Oコマンド1の発行先となるHDD1と、I/Oコマンド2〜9の発行先となるHDD2があるとし、同時に起動可能なHDDの数が1であるとする。I/Oコマンド1が最初に発行されると、HDD1が先に起動開始する。HDD1の起動時間(起動の開始から終了までの時間)経過後にI/Oコマンド1の応答1が返る。その後、HDD2の起動時間経過後にI/Oコマンド2〜9の応答2〜9が返る。HDD2の起動時間において、処理対象として存在する応答は、応答1のみである。
以上のような問題は、HDD以外の記憶デバイス、例えばSSD(Solid State Drive)についても存在し得る。
また、以上のような問題は、同時に起動可能な記憶デバイスの数の制限が、消費電力の上限以外の制限であるケース、例えば、記憶デバイスリーダ(例えば、磁気テープリーダ)の数が記憶デバイス(例えば磁気テープ)の数よりも少ないケースについてもあり得る。なお、このケースでは、記憶デバイスの起動とは、その記憶デバイスに対するI/Oのために記憶デバイスを記憶デバイスリーダにセットすることである。
計算機システムは、複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、その2以上の記憶デバイスの起動順序を、その2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する。2以上の記憶デバイスの各々のI/O量は、2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量である。計算機システムは、決定した起動順序で、2以上の記憶デバイスを起動する。
1以上のI/O要求に基づく複数のI/Oコマンドの処理に要する時間を短くすることが期待できる。
実施例1に係るデータ管理システムの構成を示す。 デバイス制御システムの構成を示す。 クエリの一例を示す。 クエリ実行プランの一例を示す。 I/O制御プランの一例を示す。 デバイス制御プランの一例を示す。 データ格納テーブルの一例を示す。 I/O管理テーブルの一例を示す。 デバイスI/O管理テーブルの一例を示す。 システム管理テーブルの一例を示す。 デバイス電力管理テーブルの一例を示す。 HDD(Hard Disk Drive)の電力推移の一例を示す。 クエリの受付から応答までの全体の流れを示す。 デバイス制御プラン生成(図13のS1312)の流れを示す。 I/O制御(図13のS1313)の流れを示す。 電源制御の流れを示す。 複数のI/Oコマンドの処理に要する時間の短縮の一例を示す模式図である。 実施例2に係るデータ管理システムの構成を示す。 実施例3に係るデータ管理システムの構成を示す。 実施例4に係るストレージ装置の構成例を示す。 実施例5に係る論理デバイスの一例を示す。 実施例5に係るデータ格納テーブルの一例を示す。 デバイスID変換テーブルの一例を示す。 実施例6に係るストレージ装置の構成例を示す。
以下、図面を参照して、幾つかの実施例を説明する。
以下の説明では、「インターフェース部」は、1以上のインターフェースである。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ部」は、1以上のメモリである。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部又は全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「記憶デバイス」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。
また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数の記憶デバイス(又は、複数の記憶デバイスに基づく複数の記憶領域)で構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜にメモリ部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ部とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例である。少なくとも1つのテーブルについて、全ての情報項目(例えば行又は列)が必須でなくてもよく、更なる情報項目があってもよいし、少なくとも1つの情報項目がなくてもよい。また、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。例えば、HDDを特に区別しないで説明する場合には、「HDD1040H」と記載し、個々のHDDを区別して説明する場合には、「HDD1」、「HDD2」のように記載することがある。
また、以下の説明では、「計算機システム」は、サーバシステムとストレージシステムのうちの少なくとも1つでよい。「サーバシステム」は、1以上の物理的なサーバ(例えばサーバのクラスタ)であってもよいし、少なくとも1つの仮想的なサーバ(例えばVM(Virtual Machine))を含んでもよい。また、「ストレージシステム」は、1以上の物理的なストレージ装置であってもよいし、少なくとも1つの仮想的なストレージ装置(例えばSDS(Software Defined Storage))を含んでもよい。
図1は、実施例1に係るデータ管理システムの構成を示す。
サーバ1000は、計算機システムの一例である。サーバ1000は、例えば、パーソナルコンピュータ、ワークステーション又はメインフレームであってよく、もしくは、これらの計算機において仮想化プログラムによって構成された仮想的な計算機であってよい。サーバ1000は、ネットワークカード1014、メモリ1010、ストレージ装置1016及びそれらに接続されたプロセッサ1015を有する。ネットワークカード1014、メモリ1010、ストレージ装置1016は、例えば、内部ネットワーク(例えばバス)1070経由でプロセッサ1015に接続される。サーバ1000は、キーボードやポインティングデバイス等の入力デバイス(図示しない)と液晶ディスプレイ等の出力デバイス(図示しない)を有してもよい。入力デバイス及び出力デバイスは、プロセッサ1015に接続されていてよい。入力デバイスと出力デバイスは一体であってもよい。
プロセッサ1015は、プロセッサ部の一例である。プロセッサ1015は、例えば、マイクロプロセッサであり、コンピュータプログラムを実行する。プロセッサ1015により実行されるコンピュータプログラムは、例えば、OS(Operating System)1013、DBMS(Database management system)1011及びデバイス制御システム1012である。
メモリ1010は、メモリ部の一例である。メモリ1010は、例えば、揮発性のDRAM(Dynamic Random Access Memory)等であり、プロセッサ1015によって実行されるプログラムと、プログラムが使用する情報(データ)を一時的に記憶する。プログラムは、上述したOS1013、DBMS1011及びデバイス制御システム1012である。
ストレージ装置1016は、複数の記憶デバイス1040である。ストレージ装置1016は、例えば、複数のHDD(Hard Disk Drive)1040Hである。ストレージ装置1016は、1以上のRAIDグループであってもよい。ストレージ装置1016は、データベースを格納する。データベースは、例えば、1以上のDBテーブル(説明の混同を避けるために、データベース内のテーブルを「DBテーブル」と呼ぶ)と、1以上の索引とを含む。データベースの一部はメモリ1010に格納されてもよい。
ネットワークカード1014は、インターフェース部の一例である。ネットワークカード1014は、外部ネットワーク(例えば、IP(Internet Protocol)ネットワーク、FC(Fibre Channel)ネットワーク)1060を介してクライアント1030に接続される。
クライアント1030は、例えば計算機である。クライアント1030は、DBMS1011に対するクエリの発行元の一例である。クエリ発行元は、クライアント1030に限らない。例えば、クエリ発行元は、代えて又は加えて、プロセッサ1015によって実行されるアプリケーションプログラム(図示せず)でもよい。
サーバ1000は、性能や冗長性を高めるために、プロセッサ1015、メモリ1010、ストレージ装置1016及びネットワークカード1014のいずれか1つの要素を複数有してもよい。
サーバ1000では、DBMS1011がクライアント1030から発行されたクエリを実行し、そのクエリの実行において、データベースからデータを読み出すために、又は、そのデータベースにデータを書き込むために、そのデータベースを格納するストレージ装置1016に対するI/OコマンドをOS1013に発行する。OS1013は、そのI/Oコマンドを受け付け、ストレージ装置1016へI/Oコマンドを発行する。ストレージ装置1016内の各HDD1040Hは、I/Oコマンドを受け付け、そのI/Oコマンドに従いデータの読み書きを行い、その結果を含んだ応答を返す。
DBMS1011は、クエリ受付部1021、実行プラン生成部1022及びクエリ実行部1023を含む。
クエリ受付部1021は、クライアント1030が発行するクエリを受け付ける。クエリは、I/O要求の一例である。クエリは、例えば、構造化問合せ言語(SQL、Structured Query Language)によって記述される。
実行プラン生成部1022は、クエリ受付部1021が受け付けたクエリから、そのクエリを実行するために必要な1以上のデータベースオペレーションを含むクエリ実行プランを生成する。クエリ実行プランは、例えば、1以上のデータベースオペレーションと、データベースオペレーションの実行順序の関係を含む情報であり、メモリ1010に格納される。クエリ実行プランは、データベースオペレーションをノード、データベースオペレーションの実行順序の関係をエッジとする木構造で表されることがある。
クエリ実行部1023は、実行プラン生成部1022が生成したクエリ実行プランに従って、クエリ受付部1021が受け付けたクエリを実行し、その実行結果をクライアント1030に返す。この際、クエリ実行部1023は、クエリ実行プランにおけるデータベースオペレーションを所定の順序に従って実行し、クエリの実行結果をクエリ発行元であるクライアント1030に返すようになっている。
クエリ実行部1023は、1以上のクエリに基づき生成される複数のタスクを並列に実行できる。クエリ実行部1023は、少なくとも1つのタスクの実行の際に、データベースに対するデータの書込み又は読出しのために複数のI/Oコマンドをストレージ装置1016に対して発行する。
クエリ実行部1023は、複数のクエリを並列に処理してもよい。
また、DBMS1011は、特許4611830に開示の技術が適用されたDBMSでもよい。具体的には、例えば、クエリ実行部1023は、1つのクエリについて、(a)データベースオペレーションを実行するためのタスクを生成し、(b)生成されたタスクを実行することで、そのタスクに対応したデータベースオペレーションに必要なデータの読出しコマンドを発行し、(c)(b)で実行されたタスクに対応したデータベースオペレーションの実行結果に基づき別のデータベースオペレーションを実行する必要がある場合には、その別のデータベースオペレーションをそれぞれ実行する1以上のタスクを新たに生成し、(d)その新たに生成した1以上のタスクのそれぞれについて(b)及び(c)を行ってもよい。この場合、クエリ実行部1023は、このようにして生成された1以上のタスクを並行して実行してよい。クエリ実行部1023は、2以上の実行可能なタスクが存在する場合には、それら2以上のタスクのうちの少なくとも2つのタスクを並列に実行してよい。なお、上記において、クエリ実行部1023は、1のタスクで複数のデータベースオペレーションを実行してもよい。また、クエリ実行部1023は、都度に新たにタスクを生成することはせず、同じタスクにおいて次のデータベースオペレーションを実行してもよい。タスクの実装としては、例えば、OS1013が実現するプロセスやカーネルスレッド等のほか、ライブラリ等が実現するユーザスレッドを用いてよい。
デバイス制御システム1012は、2以上のHDD1040Hの起動順序を決定し、決定した起動順序で2以上のHDD1040Hを起動する。具体的には、例えば、デバイス制御システム1012は、DBMS1011により生成されたクエリ実行プランを基にI/O制御プランを生成し、そのI/O制御プランを基にデバイス制御プランを生成する。そして、デバイス制御システム1012は、デバイス制御プランに基づいてHDD1040Hの電源制御を行う。
図2は、デバイス制御システム1012の構成を示す。
デバイス制御システム1012は、I/O制御プラン生成部2001、デバイス制御プラン生成部2002、デバイス制御部2003、電源制御部2004及び電力測定部2005を含む。
I/O制御プラン生成部2001は、DBMS1011により生成されたクエリ実行プランに基づきI/O制御プランを生成する。I/O制御プラン5000は、I/O対象データ(例えば索引又はDBテーブル)とI/O優先順位との関係を表す情報である。I/O優先順位が高いI/O対象データほど早くにI/Oがされることが望ましい。
デバイス制御プラン生成部2002は、I/O制御プラン生成部2001により生成されたI/O制御プランに基づきデバイス制御プランを生成する。デバイス制御プランは、複数のI/Oコマンドの発行先である1以上のHDD1040Hと、1以上のHDD1040Hにそれぞれ対応した1以上のI/O優先順位とを表す情報である。
デバイス制御部2003は、デバイス制御プラン生成部2002により生成されたデバイス制御プラン6000に基づいて電源制御部2004経由でHDD1040Hを起動する。デバイス制御部2003は、I/Oブロック部2011、デバイスI/O測定部2012及びデバイスI/O比較部2013を含む。I/Oブロック部2011、デバイスI/O測定部2012及びデバイスI/O比較部2013は、それぞれ独立に動作可能である。
I/Oブロック部2011は、デバイス制御プランが表すHDD1040Hに対するI/Oを制御する。I/Oブロック部2011は、未だ起動されないHDD1040Hに対してはI/Oコマンド発行を抑止(ブロック)し、起動対象又は起動状態のHDD1040Hに対してはI/Oコマンドを発行する。「未だ起動されないHDD」とは、スタンバイ状態(低消費電力状態)のHDDであり、いずれ起動対象となるが未だ起動の順番が来ていないHDDである。「スタンバイ状態」とは、非起動状態の一例であり、消費電力が所定値未満の状態(具体的には、例えば、ディスクの回転が低速である又は停止している状態)である。「起動対象のHDD」とは、スタンバイ状態のHDDであり、起動の順番が来たHDDである。「起動状態のHDD」とは、起動完了後のHDD、例えば、後述のアクティブ状態及びアイドル状態のいずれかの状態である。
デバイスI/O測定部2012は、I/Oコマンド発行が抑止されているHDD1040H毎に、I/O量及び経過時間を測定する。以下、I/Oコマンド発行が抑止されているHDDを「待ちHDD」と呼び、発行が抑止されているI/Oコマンドを「抑止I/Oコマンド」と呼ぶ。HDD1040Hの「I/O量」は、そのHDD1040Hに対する1以上のI/Oコマンド(具体的には、そのHDD1040Hに対する全ての抑止I/Oコマンド)に従うI/Oの量である。本実施例では、「I/O量」として、「I/O数」及び「I/Oサイズ」の少なくとも1つを採用することができる。HDD1040Hの「I/O数」は、そのHDD1040Hに対する抑止I/Oコマンドの数である。HDD1040Hの「I/Oサイズ」は、そのHDD1040Hに対する抑止I/Oコマンドに従うI/O対象のデータの合計サイズである。HDD1040Hの「経過時間」は、そのHDD1040Hに対して最初にI/Oコマンドが抑止(ブロック)されてから経過した時間(つまり、抑止のI/Oコマンドのうち最初のI/Oコマンドが抑止されてから経過した時間)である。
デバイスI/O比較部2013は、2以上のHDD1040HのI/O量(I/O数及びI/Oサイズの少なくとも1つ)を比較し、比較の結果を基に、その2以上のHDD1040Hの起動順序を決定し、決定した起動順序で2以上のHDD1040Hの起動指示を電源制御部2004に出す。
電源制御部2004は、起動制御部の一例である。電源制御部2004は、デバイス制御部2003からの指示と、デバイス制御プラン生成部2002により生成されたデバイス制御プランとのうちの少なくとも1つに基づいて、HDD1040Hの起動制御を含む電源制御を行う。電源制御では、電力測定部2005による電力測定結果が参照される。
電力測定部2005は、サーバ1000やストレージ装置1016の電力を測定する。
上述したクエリ受付部1021、実行プラン生成部1022、クエリ実行部1023、I/O制御プラン生成部2001、デバイス制御プラン生成部2002、デバイス制御部2003(I/Oブロック部2011、デバイスI/O測定部2012、デバイスI/O比較部2013)、電源制御部2004及び電力測定部2005は、コンピュータプログラムがプロセッサ1015で実行されることによって実現されるが、これらのうち少なくとも1つの構成要素が行う処理の少なくとも一部が、ハードウェアによって実現されていてもよい。
また、図1に示したDBMS1011の構成、及び、図2に示したデバイス制御システム1012の構成は、一例に過ぎない。例えば、ある構成要素は複数の構成要素に分割されていてもよく、複数の構成要素が1つの構成要素に統合されていてもよい。
以下、デバイス制御システム1012をより詳細に説明する。
図3は、クエリの一例を示す。図4は、クエリ実行プランの一例を示す。図5は、I/O制御プランの一例を示す。
クエリ受付部1021が、図3に示すクエリ3000を受け付けた場合、実行プラン生成部1022が、図4に示すクエリ実行プラン4000を生成する。I/O制御プラン生成部2001は、図4に示すクエリ実行プラン4000に基づき、図5に示すI/O制御プラン5000を生成する。I/O制御プラン5000は、クエリ実行プラン4000から特定された索引やDBテーブルのI/O順序に従い定まる。図4に例示のクエリ実行プラン4000によれば、階層が深い順に索引やDBテーブルに対してI/Oが行われる。そのクエリ実行プラン4000では、6行目及び7行目が最も深いため初めにI/Oされる。しかし、5行目がHASH JOINと記載されているため、HASH JOIN処理で最初に実行されるビルド処理に該当する6行目が最も初めにI/Oされる。次に、プローブ処理に該当する7行目が実行される。このようなクエリ実行プラン4000に基づき、I/O制御プラン生成部2001は、図5に例示のI/O制御プラン5000を生成する。I/O制御プラン5000は、I/O種別(例えば“Random Read I/O”)とI/O対象データ(例えば“ADBUSER01.Index.PART”のようなDB要素名)とI/O優先順位(例えば“1-1”)との関係を表す。クエリ実行プラン4000に複数の谷が存在する可能性があるため、I/O制御プラン5000では、I/O優先順位として、“1−1”、“1−1”、“1−2”及び“1−3”のように、谷の存在を考慮することが望ましい。数字が小さいほどI/O優先順位が高い。
なお、クエリ実行プラン4000及びI/O制御プラン5000は、メモリ1010に格納されてよい。
図6は、デバイス制御プランの一例を示す。図7は、データ格納テーブルの一例を示す。
デバイス制御プラン生成部2002は、図5に示したI/O制御プラン5000に基づき、図6に示すデバイス制御プラン6000を生成する。I/O制御プラン5000は、I/O対象の索引及びDBテーブルを表している。また、図7に示すデータ格納テーブル7000は、DB要素(索引やDBテーブル)毎に「DB要素名」(DB要素の名称)と「デバイスID」(DB要素が格納されているHDD1040HのID)とを表す。デバイス制御プラン生成部2002は、I/O制御プラン5000が表すDB要素毎に、そのDB要素が格納されているHDD1040Hを、データ格納テーブル7000から特定し、そのDB要素のI/O優先順位とそのDB要素が格納されているHDD1040HのIDとを含んだデバイス制御プラン6000を生成する。デバイス制御プラン6000は、複数のI/Oコマンドの発行先である1以上のHDD1040Hと、1以上のHDD1040Hにそれぞれ対応した1以上のI/O優先順位とを表す情報である。デバイス制御プラン生成部2002は、デバイス制御プラン6000をデバイス制御部2003と電源制御部2004に送信する。
なお、デバイス制御プラン6000及びデータ格納テーブル7000は、例えばメモリ1010に格納される。
また、デバイス制御プラン6000は、ローデバイスレベルのプラン(情報)である。このようなプランから、起動順序の制御対象のHDDを特定することができ、特定されたHDD1040HのI/O量の比較結果に基づき、I/O順序と異なる順序でHDD1040Hを起動することができる。
そして、このようなデバイス制御プラン6000(及び上述のI/O制御プラン5000)(或いはこのようなプラン6000(及び5000)に基づく情報)は、性能解析等のために、管理者が使用する計算機(図示せず)に出力され表示されてもよい。つまり、デバイス制御プラン6000は、HDD1040Hの起動制御のための情報と、性能解析等のための情報とを兼ねることができる。
図8は、I/O管理テーブルの一例を示す。図9は、デバイスI/O管理テーブルの一例を示す。
クエリ実行部1023により生成されI/Oコマンド毎にI/O管理テーブル8000が用意される。I/O管理テーブル8000は、クエリ実行部1023、OS1013又はI/Oブロック部2011により作成されてよい。I/Oコマンド毎に、I/O管理テーブル8000は、そのI/Oコマンドの発行先HDDのIDと、そのI/Oコマンドで指定される開始アドレスと、そのI/Oコマンドに従いI/Oされるデータのサイズとを表す。
I/Oブロック部2011は、抑止I/Oコマンドに対応したI/O管理テーブル8000を基に、デバイスI/O管理テーブル9000を生成する。図9の例によれば、デバイスI/O管理テーブル9000は、起動単位毎に生成される。「起動単位」は、起動順番が付与される単位であり、本実施例は、HDD1040Hである(起動単位は、HDDに代えて、RAIDグループ単位のように他の単位でもよい)。
デバイスI/O管理テーブル9000は、「デバイスID」(対応するHDD1040HのID)と、「状態」(そのHDD1040Hの状態)、「I/O数」(そのHDD1040Hを発行先とした抑止I/Oコマンドの数)、「I/Oサイズ」(そのHDD1040Hに対する全ての抑止I/Oコマンドに対応した「サイズ」の合計)、「経過時間」(そのHDD1040Hに対して最初にI/Oコマンドが抑止(ブロック)されてから経過した時間(つまり、抑止のI/Oコマンドのうち最初のI/Oコマンドが抑止されてから経過した時間))とを表す。「I/O数」、「I/Oサイズ」及び「経過時間」は、デバイスI/O測定部2012により測定された値である。
デバイスI/O比較部2013は、デバイス制御プラン6000に記載のデバイスIDに対応したHDD1040HのデバイスI/O管理テーブル9000を参照し、2以上のHDD1040HのI/O数(又はI/Oサイズ)を比較する。デバイスI/O比較部2013は、比較対象のI/O量がI/O数の場合、未出力のデバイスI/O管理テーブル9000のうち、I/O数の最も大きいデバイスI/O管理テーブルを出力する。デバイスI/O比較部2013は、比較対象のI/O量がI/Oサイズの場合、未出力のデバイスI/O管理テーブル9000のうち、I/Oサイズの最も大きいデバイスI/O管理テーブルを出力する。出力されたデバイスI/O管理テーブルに記載のデバイスIDに対応したHDD1040Hの起動を、デバイスI/O比較部2013は、電源制御部2004に通知する。このような出力及び通知は、未出力のデバイスI/O管理テーブル9000が無くなるまで繰り返される。結果として、起動順序が決定されたことになり、且つ、その起動順序が電源制御部2004に通知されたことになる。なお、これに代えて、デバイスI/O比較部2013は、下記(A)乃至(D)のうちの少なくとも(A)及び(B)(更に(C)及び(D)のうちの少なくとも1つ)に該当する2以上のHDD1040H(スタンバイ状態のHDD1040H)のI/O量を比較してもよい。デバイスI/O比較部2013は、その比較の結果を基に、その2以上のHDD1040Hの起動順序を決定し、決定した起動順序で2以上のHDD1040Hを起動することを電源制御部2004に依頼してよい。
(A)抑止I/Oコマンドの発行先HDDである。
(B)抑止I/Oコマンドが並行されて発行されてよいHDDである。
(C)デバイス制御プランに書かれているI/O優先順位が同じHDDである。
(D)同時に起動することができない(同時に起動すると後述の電力限界を超えることになる)HDDである。
図6及び図9の例によれば、スタンバイ状態のHDD1及びHDD2のI/O優先順位は同一である。また、HDD1及びHDD2を同時に起動すると(例えば、同時にピーク電力に達すると)、後述の電力限界を超えるとする。デバイスI/O比較部2013は、HDD1のI/O数“20”とHDD2のI/O数“3”とを比較した場合、HDD2よりもHDD1の起動順番を先とする。HDD2よりもHDD1の方がI/O数が大きいためである。また、デバイスI/O比較部2013は、HDD1のI/Oサイズ“80KB”とHDD2のI/Oサイズ“12KB”とを比較した場合、HDD2よりもHDD1の起動順番を先とする。HDD2よりもHDD1の方がI/Oサイズが大きいためである。
上述したI/O管理テーブル8000及びデバイスI/O管理テーブル9000は、例えばメモリ1010に格納される。
図10は、システム管理テーブルの一例を示す。
システム管理テーブル120は、システム管理単位に対応したテーブルであって、例えばメモリ1010に格納される。「システム管理単位」は、複数のHDD1040Hを含んだシステム管理の単位であって、例えば、サーバ1000、ストレージ装置1016、RAIDグループ、又は、実施例2で述べるような論理デバイスでもよい。本実施例では、システム管理単位は、ストレージ装置1016である。
システム管理テーブル120は、「デバイスID」(システム管理単位のID)、「種別」(管理単位の種別)、「状態」(システム管理単位の状態)、「電力限界」(システム管理単位の消費電力の上限)、「現電力」(システム管理単位の消費電力)、「デッドライン時間」(システム管理単位に属する各HDDのデッドライン時間(I/Oコマンドが最初に抑止されてからの経過時間の最大値))、及び、「デバイス制御指定」(システム管理単位に属するHDD1040Hの起動順序の決定のために採用されるI/O量の種類)を表す。「デッドライン時間」として、“-1”のような無効値が設定された場合、デッドライン制御は行われない。
図11は、デバイス電力管理テーブルの一例を示す。
デバイス電力管理テーブル121は、電力管理単位毎に存在するテーブルであって、例えばメモリ1010に格納される。「電力管理単位」は、1以上のHDD1040Hを含んだ電力管理の単位であって、例えば、ストレージ装置1016、RAIDグループ、又は、実施例2で述べるような論理デバイスでもよい。本実施例では、電力管理単位は、HDD1040Hである。デバイス電力管理テーブル121は、「デバイスID」(対応するHDD1040HのID)、「種別」(電力管理単位の種別(HDD1040Hに対応するため“物理”))、「状態」(そのHDD1040Hの状態)、「停止時刻」、「起動時刻」、「起動時間」、「停止電力」、「起動電力」、「スタンバイ時間」、「ピーク電力」、「アクティブ電力」、「アイドル電力」及び「スタンバイ電力」を表す。「停止時刻」、「起動時刻」、「起動時間」、「停止電力」、「起動電力」、「スタンバイ時間」、「ピーク電力」、「アクティブ電力」、「アイドル電力」及び「スタンバイ電力」の少なくとも1つが、電力測定部2005により測定された値である。「停止時刻」、「起動時刻」、「起動時間」、「停止電力」、「起動電力」、「スタンバイ時間」、「ピーク電力」、「アクティブ電力」、「アイドル電力」及び「スタンバイ電力」については、図12を参照して説明する。
図12は、HDD1040Hの電力推移の一例を示す。
HDD1040Hは、アクティブ状態からアイドル状態に遷移する。「アクティブ電力」は、アクティブ状態のときの消費電力であり、「アイドル電力」は、アイドル状態のときの消費電力である。
HDD1040Hは、アイドル状態に遷移後、例えば一定時間I/Oコマンドを受けなかった場合に、スタンバイ状態に遷移する。「停止時刻」は、スタンバイ状態へ遷移することを開始した時刻(例えばスピンダウン開始時刻)である。「停止時間」は、スタンバイ状態へ遷移することを開始してから終了するまでの時間である。「停止電力」は、スタンバイ状態へ遷移するために消費する電力である。
HDD1040Hは、スタンバイ状態に遷移後、起動命令を受けた場合に(I/Oコマンドが起動命令を兼ねてもよい)、起動する。HDD1040Hの起動が開始すると、HDD1040Hの消費電力がピーク電力まで上昇する。HDD1040Hの消費電力がピーク電力からアイドル電力まで低下すると、HDD1040Hの起動が終了する。「起動時刻」は、起動が完了した時刻(例えばスピンアップ完了時刻)である。「起動時間」は、起動が開始してから終了するまでの時間である。「起動電力」は、起動のために消費する電力である。「HDDが起動する」とは、少なくとも起動開始することであり、起動終了することまでをも含んでもよい。
「スタンバイ時間」は、停止時刻から起動時刻までの時間であって、スタンバイ状態に遷移したことの効果が期待できる時間(例えば、削減された消費電力が停止電力と起動電力との合計よりも大きいことが期待できる時間)である。
本実施例では、全ての発行先HDD(I/Oコマンドの発行先のHDD)を必ずしも同時に起動することができるとは限らない。上述した「電力限界」及び「現電力」と、HDD1040Hが起動するときに消費する電力(例えば、「ピーク電力」及び「起動電力」)と、起動状態(典型的にはアクティブ状態又はアイドル状態)のHDD1040Hの数とを含んだ情報が、同時に起動可能なHDD1040Hの数の制限に関する制限情報の一例である。このような制限情報を基に、同時に起動可能なHDD1040Hの数が定まる。
以下、本実施例で行われる処理の一例を説明する。
図13は、クエリの受付から応答までの全体の流れを示す。
S1301で、クエリ受付部1021は、クライアントからクエリ3000(例えば図3)を受け付ける。
S1302で、実行プラン生成部1022は、S1301で受け付けられたクエリ3000を基に、クエリ実行プラン4000(例えば図4)を生成する。
S1303で、S1301で受け付けられたクエリ3000の処理が行われる。すなわち、S1302で生成されたクエリ実行プラン4000に基づき、クエリ実行部1023により、複数のI/Oコマンドがストレージ装置1016に発行される。発行されたI/Oコマンド毎に、I/O管理テーブル8000(図8)が更新される。
S1303のクエリ処理では、例えば次のような処理が行われる。
S1311で、I/O制御プラン生成部2001は、S1302で生成されたクエリ実行プラン4000を基に、I/O制御プラン5000(例えば図5)を生成する。I/O制御プラン生成部2001は、例えば、I/O制御プラン5000をデバイス制御プラン生成部2002に送信する。
S1312で、デバイス制御プラン生成部2002は、S1303で生成されたI/O制御プラン5000を基に、デバイス制御プラン6000(例えば図6)を生成する。
S1313で、デバイス制御部2003は、S1304で生成されたデバイス制御プラン6000に記載のHDD1040Hに対するI/Oコマンド発行を抑止し、そのデバイス制御プラン6000と、抑止I/Oコマンドの発行先HDD1040HのI/O量とを基に、HDD1040Hの起動順序を決定する。電源制御部2004が、決定された起動順序でHDD1040Hを起動する。起動したHDD1040Hについて抑止I/Oコマンドが発行される(I/Oコマンド抑止が解除される)。クエリ実行部1023は、起動したHDD1040Hに対して発行された1以上のI/Oコマンドの1以上の応答をメモリ1010に格納する。
S1304で、クエリ実行部1023は、S1301で受け付けられたクエリ3000に基づくI/Oコマンドの応答(メモリ1010内の応答)に基づき、クエリ3000の応答をクライアント1030に返す。
それらの応答に基づき、クエリ3000の応答をクライアント1030に返す。
以上が、クエリ3000の受付から応答までの全体の流れである。
図14は、デバイス制御プラン生成(図13のS1312)の流れを示す。
S1401で、デバイス制御プラン生成部2002は、I/O制御プラン生成部2001からI/O制御プラン5000を受信する。
S1402で、デバイス制御プラン生成部2002は、I/O制御プラン5000からDB要素名(例えば“ADBUSER01.Indext.PART”)を抽出する。
S1403で、デバイス制御プラン生成部2002は、抽出したDB要素名(例えば“ADBUSER01.Indext.PART”)に対応するデバイスID(例えば“HDD1”)をデータ格納テーブル7000から取得する。
S1404で、デバイス制御プラン生成部2002は、取得したデバイスIDと、そのデバイスIDに対応したDB要素名に対応するI/O優先順位とに基づいて、デバイス制御プラン6000を生成する。
S1405で、デバイス制御プラン生成部2002は、デバイス制御プラン6000をデバイス制御部2003及び電源制御部2004のうちの少なくともデバイス制御部2003に送信する。
図15は、I/O制御(図13のS1313)の流れを示す。
S1501で、デバイス制御部2003は、デバイス制御プラン生成部2002からデバイス制御プラン6000を受信する。
S1502で、I/Oブロック部2011は、デバイス制御プラン6000に記載のHDD1040Hに対するI/Oコマンド発行を抑止する。但し、起動状態(例えばアクティブ状態又はアイドル状態)のHDD1040Hについては、I/Oブロック部2011は、I/Oコマンド発行を抑止しない。つまり、起動状態のHDD1040Hに対するI/Oコマンドは、抑止されることなくそのHDD1040Hに対して発行される。
S1503で、デバイスI/O測定部2012は、抑止I/Oコマンドに対応したI/O管理テーブル8000を基に、その抑止I/Oコマンドの発行先HDD1040Hに対応したデバイスI/O管理テーブル9000を更新する。例えば、抑止I/Oコマンドの数と、抑止I/Oコマンドに従うサイズが、それぞれ、「I/O数」及び「I/Oサイズ」に加算される。なお、I/O管理テーブル8000における「I/O数」、「I/Oサイズ」及び「経過時間」は、1又は複数のクエリ3000の処理における或る時点での値である。例えば、複数のクエリ3000が並列に処理されている場合、I/O管理テーブル8000における「I/O数」及び「I/Oサイズ」は、それぞれ、その複数のクエリ3000の並列処理における値である。また、1以上のクエリ3000について2以上のタスクが生成されて並列に実行される場合、I/O管理テーブル8000における「I/O数」及び「I/Oサイズ」は、それぞれ、その2以上のタスクの並列処理における値である。なお、「I/O数」及び「I/Oサイズ」つまり「IO量」は実測値でなくともよい。例えば、デバイスI/O測定部2012は、クエリ実行プラン4000を基に「IO量」を予測してもよい。実行プラン生成部1022がクエリ実行プラン4000を作る手法の1つとしてコストベース最適化と呼ばれるものがある。これは、統計情報を基に処理件数やシーケンシャルアクセス時のデータ読み出し量を予測し、その予測値からIO処理量やCPU処理量に相当するコスト値を計算し、コスト値が小さくなるものを選択する手法である。クエリ実行プラン4000中に予測処理件数、もしくはデータ読み出し量の予測値を含めておき、デバイスI/O測定部2012は、この値から「IO量」を予測する。例えばランダムIOの場合は予測処理件数に定数(例:2)を乗じたものが「IO数」となり、それに事前に定めた定数(例:4KiB)を乗じたものが「IOサイズ」となる。シーケンシャルIOの場合は予測データ読み出し量が「IOサイズ」となり、それを定数で除したものが「IO数」となる。データが複数のデバイスに記憶されている場合は、事前に定められたルール(例:各デバイス均等に割り振る、データ記憶に利用されているサイズに比例して割り振る)で「IO数」「IOサイズ」を分割する。また、デバイスI/O測定部2012は、過去の実行時の情報を用いて「IO量」を設定してもよい。この場合、実行プラン生成部1022は同じと判断したクエリに対しては同じクエリ実行プラン4000を生成する。同じクエリ実行プラン4000に対しては同じI/O制御プラン5000が生成される。そこで、デバイス制御プラン6000中に対応するクエリ実行プラン4000もしくはI/O制御プラン5000の識別情報(例:生成した制御プランの識別子や制御プランから生成するハッシュ値)を記録しておく。デバイスI/O測定部2012は、過去の「IO量」を保存しておき、デバイス制御プラン6000中に記録されたクエリ実行プラン4000もしくはI/O制御プラン5000から、保存された過去の対応する「IO量」を把握し、その値を設定する。
S1504で、デバイスI/O比較部2013は、デバイス制御プラン6000に記載の待ちHDD1040H(I/Oコマンド発行が抑止されているHDD1040H)に対応したデバイスI/O管理テーブル9000の「I/O数」、「I/Oサイズ」及び「経過時間」を基に、それら待ちHDD1040Hの起動順序を決定する。デバイスI/O比較部2013は、決定した起動順序で待ちHDD1040Hを起動することを電源制御部2004に依頼する。起動順序の決定について、以下の例(01〜08)のうちの少なくとも1つが採用されてよい。
(01)システム管理テーブル120に記載の「デバイス制御指定」が“I/O数”であれば、比較対象のI/O量として「I/O数」が採用される(又は、最優先とされる)。
(02)システム管理テーブル120に記載の「デバイス制御指定」が“I/Oサイズ”であれば、比較対象のI/O量として「I/Oサイズ」が採用される(又は、最優先とされる)。
(03)I/O種別がランダムI/Oであれば、比較対象のI/O量として「I/O数」が採用される(又は、最優先とされる)。I/O種別がランダムI/Oにあることに加えて、記憶デバイスがランダムデバイスの場合に、比較対象のI/O量として「I/O数」が採用されてもよい(又は、最優先とされてもよい)。「ランダムデバイス」とは、後述のシーケンシャルデバイスに比べてランダムI/O可能が高速な記憶デバイス(例えばHDD又はSSD(Solid State Drive))である。
(04)I/O種別がシーケンシャルI/Oであれば、比較対象のI/O量として「I/Oサイズ」が採用される(又は、最優先とされる)。I/O種別がシーケンシャルI/Oにあることに加えて、記憶デバイスがシーケンシャルデバイスの場合に、比較対象のI/O量として「I/Oサイズ」が採用されてもよい(又は、最優先とされてもよい)。「シーケンシャルデバイス」とは、ランダムI/OよりもシーケンシャルI/Oが高速な記憶デバイス(例えばテープ)である。
(05)I/O優先順位が同じHDD1040Hの数が、上述した制限情報を基に特定されるHDD数(同時に起動可能なHDD1040Hの数)を超える場合、少なくともI/O優先順位が同じHDD1040Hの起動順序が決定される。
(06)I/O量として「I/O数」が採用された場合(又は最優先の場合)、「I/O数」が大きい待ちHDD1040Hほど、起動順番が早い。「I/O数」が同じ待ちHDD1040Hについては、「I/Oサイズ」が大きい待ちHDD1040Hほど、起動順番が早くてよい。
(07)I/O量として「I/Oサイズ」が採用された場合(又は最優先の場合)、「I/Oサイズ」が大きい待ちHDD1040Hほど、起動順番が早い。「I/O数」が同じ待ちHDD1040Hについては、「I/Oサイズ」が大きい待ちHDD1040Hほど、起動順番が早くてよい。
(08)各待ちHDD1040Hの起動順番は、その待ちHDD1040Hに対応したデバイスI/O管理テーブル9000に記載の「経過時間」と、システム管理テーブル120に記載の「デッドライン時間」と、その待ちHDD1040Hに対応したデバイス電力管理テーブル121に記載の「起動時間」とに基づく。「デッドライン時間」−「起動時間」=「経過時間」となった待ちHDD1040Hの起動順番は、I/O量(「I/O数」又は「I/Oサイズ」)の多寡に関わらず、最先でもよい。これにより、I/O量が少ない状態が維持されているが故にいつまでもI/Oコマンドが抑止されたままとなることを回避することができる。また、起動時間分早い時点でI/Oコマンド抑止が解除されるためにI/Oコマンドの応答をデッドライン時間の経過時点になるべく近い時点で受けることが期待できる。
デバイスI/O比較部2013は、定期的に起動順序を決定することができる。また、デバイスI/O比較部2013は、電源制御部2004からの指示に応答して起動順序を決定し通知することができる。
S1505で、I/Oブロック部2011は、待ちHDD1040Hが実行済みHDD1040Hとなった場合(その待ちHDD1040Hが起動してI/Oコマンドの応答を返した場合)、その実行済みHDD1040Hに対してI/Oコマンドが発行されるならばその発行を抑止する。また、実行済みHDD1040Hに対応したデバイスI/O管理テーブル9000における「I/O数」、「I/Oサイズ」及び「経過時間」は、実行されたI/Oコマンドに応じてデバイスI/O測定部2012により更新される。
S1506で、デバイスI/O比較部2013は、実行済みHDD1040Hに対応した「I/O数」及び「I/Oサイズ」がいずれも“0”であり(つまり新たに抑止I/Oコマンドが発生しておらず)、且つ、その実行済みHDD1040Hに対するI/Oが将来発生する見込みが無い(一定時間以内にI/Oが発生する見込みが無い)ことをデバイス制御プラン6000から特定できた場合、電源制御部2004に対して、その特定された実行済みHDD1040Hの停止(スタンバイ状態への遷移)を指示する。なお、I/Oが将来発生する見込みが無いHDD1040Hをデバイス制御プラン6000から特定することは、デバイスI/O比較部2013に代えて電源制御部2004が行ってもよい。つまり、電源制御部2004は、デバイスI/O比較部2013からHDD1040Hの停止指示を受けること無しに、その特定されたHDD1040Hを停止してもよい。
図16は、電源制御の流れを示す。
S1601で、電源制御部2004は、デバイス操作を受けたか否かを判断する。「デバイス操作」とは、起動順序の通知、又は、HDD1040Hの停止指示である。
S1601の判断結果が真の場合(S1601:Yes)、S1602で、電源制御部2004は、システム管理テーブル120に記載の「電力限界」及び「現電力」と、各HDD1040Hのデバイス電力管理テーブル121とを基に、電源制御を行う。
例えば、電源制御部2004は、「現電力」と起動対象のHDD(起動の順番が来たHDD)1040Hの「起動電力」(「ピーク電力」)との合計が「電源限界」以下か否かを判断する。その判断結果が真の場合、電源制御部2004は、起動対象のHDD1040Hを起動する。
また、例えば、電源制御部2004は、「現電力」と停止対象のHDD1040Hの「停止電力」との合計が「電源限界」以下か否かを判断する。その判断結果が真の場合、電源制御部2004は、停止対象のHDD1040Hを停止する。「停止対象のHDD」とは、例えば、I/Oが将来発生する見込みが無いHDDとしてデバイス制御プラン6000から特定されたHDDであり、デバイスI/O比較部2013からの停止指示で指定されているHDDであってもよいし、電源制御部2004によって停止対象として特定されたHDDであってもよい。
S1601の判断結果が偽の場合(S1601:No)、S1603で、電源制御部2004は、デバイス制御プラン6000に未起動のHDD1040Hがある否かを判断する。
S1603の判断結果が真の場合(S1603:Yes)、S1604で、電源制御部2004は、デバイスI/O比較部2013に電源制御に関する指示を依頼する。この依頼に応答して、デバイスI/O比較部2013は、起動順序を決定(更新)する。
以上が、実施例1の説明である。
図17は、複数のI/Oコマンドの処理に要する時間の短縮の一例を示す模式図である。
I/Oコマンド1〜3があるとする。I/Oコマンド1、2及び3の順でI/Oコマンドが発行されたとする。1つのI/Oコマンド1の発行先がHDD1であり、2つのI/Oコマンド2及び3の発行先がHDD2であるとする。また、図17では、I/Oコマンドk(k=1〜3のいずれか)に対応したI/O処理kを、「I/O-P k」と表記する。なお、「I/O処理k」は、I/Oコマンドkの応答の処理である。
一比較例によれば、I/O順にHDDが起動する。このため、HDD1、HDD2の順にHDDが起動することになる。そして、HDD2の起動中に、I/O処理1が行われ、HDD2の起動完了後に、I/O処理2及び3、つまり2つのI/O処理が行われることになる。
一方、本実施例によれば、I/O量の多い順にHDDが起動する。このため、HDD2、HDD1の順にHDDが起動することになる。そして、HDD1の起動中に、2つのI/Oコマンド2及び3に対応したI/O処理2及び3が済み、HDD1の起動完了後には、1つのI/O処理1だけが行われればよい。言い換えれば、本実施例によれば、デバイス制御システム1012が、IOコマンドが発行されてからそのIOコマンドに応答するまでの時間(処理時間)が長い記憶デバイス宛てのIOコマンドを、処理時間が短い記憶デバイス宛てのIOコマンドよりも先に発行されるように制御する。
HDDの起動には時間がかかる。具体的には、HDDがスタンバイ状態から起動状態になるまでには起動時間といった時間がかかる。本実施例では、最後の起動時間よりも前の起動時間中に、多くのI/O処理を実行しておき、最後の起動時間後のI/O処理をなるべく少なくすることができる。これにより、本実施例では、1以上のクエリ3000に基づく複数のI/Oコマンドの処理に要する時間を短くすることが期待できる。なお、図17の具体例では、HDD2の起動完了後にHDD1の起動を行う例を示したが、本実施例はこれに限られるものではない。たとえば、複数のHDDの消費電力の合計がシステムの電力限界を越えなければ、HDD2の起動中にHDD1の起動を起動してもよい。
実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。
図18は、実施例2に係るデータ管理システムの構成を示す。
デバイス制御システムがサーバ1800の内外に複数のシステム部分として分散している。具体的には、例えば、サーバ1800内に第1のシステム部分1812A及び第2のシステム部分1812Bが存在する。サーバ1800外に第3のシステム部分1812Cが存在する(第3のシステム部分1812Cは例えば外部ネットワーク1060に接続される)。システム部分1812A〜1813Cが、上述したI/O制御プラン生成部2001、デバイス制御プラン生成部2002、I/Oブロック部2011、デバイスI/O測定部2012、デバイスI/O比較部2013、電源制御部2004及び電力測定部2005を含む。システム部分1812A〜1813Cにおいて、デバイス制御システムの同一の構成要素が重複して存在しないでよい。第2のシステム部分1812B及び第3のシステム部分1812Cの各々は、ハードウェア回路(装置)でもよいし、プロセッサ及びメモリを含んだ計算機でもよい
実施例2では、システム部分1812A及び1812Bを含んだサーバ1800と、システム部分1812Cとが、計算機システムの一例である。
実施例3を説明する。その際、実施例1及び2との相違点を主に説明し、実施例1及び2との共通点については説明を省略又は簡略する。
図19は、実施例3に係るデータ管理システムの構成を示す。
サーバ1900に外部ネットワーク1060を介してストレージシステム1910が接続されている。デバイス制御システムが、サーバ1900の内外、具体的には、サーバ1900及びストレージシステム1910に分散している。より具体的には、例えば、サーバ1900内に第1のシステム部分1912Aが存在し、ストレージシステム1910内に第2のシステム部分1912B及び第3のシステム部分1913Bが存在する。
なお、本実施例では、サーバ1900は、クライアント1030からのクエリに基づくI/O指示を、ストレージシステム1910に発行する。ストレージシステム1910は、内部ネットワーク1960を含む。内部ネットワーク1960に、ストレージ装置(複数の記憶デバイス)1921と、メモリ1912と、外部ネットワーク1060に接続されるネットワークカード1924と、第3のシステム部分1812Cと、プロセッサ1923とを有する。ストレージ装置1921は、1以上のRAIDグループを含む。メモリ1912が、ストレージ制御プログラム1922と、第2のシステム部分1912Bとを記憶する。プロセッサ1923は、ストレージ制御プログラム1922を実行することにより、ストレージ装置1921に対するI/Oをサーバ1900からのI/O指示に応じて実行する。
ストレージシステム1910のメモリ1912に、電力管理単位毎(例えば記憶デバイス毎)のデバイス電力管理テーブル1100が格納されることが望ましい。データベースの少なくとも一部は、ストレージ装置1016及び1921のうちの少なくともストレージ装置1921に格納されてよい。
実施例4を説明する。その際、実施例1〜3との相違点を主に説明し、実施例1〜3との共通点については説明を省略又は簡略する。
図20は、実施例4に係るストレージ装置の構成例を示す。
ストレージ装置1016及び1921のうちの少なくとも1つに代えて、ストレージ装置200が採用されてよい。ストレージ装置200は、異なる種類の記憶デバイス1040を含む複数の記憶デバイス1040を含む。例えば、ストレージ装置200は、複数のHDD1040Hと複数のSSD1040Sとを含む。
ストレージ装置200は、複数のデバイスボックス201を含んでよい。各デバイスボックス201が、同種又は異種の複数の記憶デバイス1040を含んでよい。
デバイス電力管理テーブル1100は、デバイスボックス201毎に用意されてよい。また、デバイスボックス201内の記憶デバイス1040毎に、デバイス電力管理テーブル1100が用意されてよい。つまり、電療区管理単位は、デバイスボックス201であってもよいし記憶デバイス1040であってもよい。
実施例5を説明する。その際、実施例1〜4との相違点を主に説明し、実施例1〜4との共通点については説明を省略又は簡略する。
図21は、実施例5に係る論理デバイスの一例を示す。
1又は複数の記憶デバイス1040に基づき1つの論理デバイス210を生成することができる。論理デバイス210は、典型的には論理ボリュームである。
本実施例でも、デバイス制御プラン6000には、デバイスIDとして、物理デバイスである記憶デバイス1040のデバイスIDを記載することが望ましい。論理デバイス210のデバイスIDを記載すると、1つの物理デバイスから複数の論理デバイスが生成されている場合に、記憶デバイス1040の電源制御を意図して行うことが困難なためである。
一方、デバイス制御プランとして、論理デバイス用のデバイス制御プランと物理デバイス用のデバイス制御プランとを生成することは可能である。論理デバイス用のデバイス制御プランを用いた方がデバイス制御部の処理負荷を削減できる可能性がある。
システム管理テーブル120及びデバイス電力管理テーブル121のうちの少なくとも1つが、論理デバイス210毎に存在してもよい。
なお、本実施例では、例えば、図7に例示のデータ格納テーブル7000に代えて、図22に例示のデータ格納テーブル225が採用される。データ格納テーブル225は、DB要素毎に、DB要素名とデバイスIDとを保持する。デバイスIDは、論理デバイス210のIDである。つまり、索引及びDBテーブルといったDB要素は論理デバイス210に格納される。
また、本実施例では、例えば、図23に例示のデバイスID変換テーブル226が用意される。デバイスID変換テーブル226は、サーバ又はストレージシステムのメモリに格納される。デバイスID変換テーブル226は、論理デバイス210のデバイスIDと記憶デバイス(物理デバイス)1040のデバイスIDとの対応関係を表す。
論理デバイス210に対してI/Oが発生した場合、デバイスID変換テーブル226を基に、その論理デバイス210の基になっている1以上の記憶デバイス1040(その論理デバイス210のデバイスIDに対応したデバイスID(記憶デバイス1040のデバイスID)が特定される。特定された1以上の記憶デバイス1040のうちの少なくとも1つに対してI/Oコマンドが発行される。
実施例6を説明する。その際、実施例1〜5との相違点を主に説明し、実施例1〜5との共通点については説明を省略又は簡略する。
図24は、実施例6に係るストレージ装置の構成例を示す。
ストレージ装置1016及び1921のうちの少なくとも1つに代えて、ストレージ装置2400が採用されてよい。
ストレージ装置240は、デバイスボックス2401と、記憶デバイスリーダ(以下、リーダ)2403と、デバイス搬送部2402とを含む。
デバイスボックス2401は、複数の記憶デバイス1040を有する。本実施例では、複数の記憶デバイス1040は、光ディスク1040Dとテープ1040Tである。
リーダ2403に対して、記憶デバイス1040をセットしたり取り出したりすることができる。記憶デバイス1040がセットされたリーダ2403経由で、その記憶デバイス1040に対するI/Oコマンドに従うI/Oが行われる。
デバイス搬送部2402は、デバイス制御システムから起動指示を受け、その起動指示で指定されている記憶デバイス1040を、デバイスボックス2401から取り出し、取り出した記憶デバイス1040をリーダ2403に搬送して、その記憶デバイス1040をリーダ2403にセットする。また、デバイス搬送部2402は、デバイス制御システムから指定指示を受け、その停止指示で指定されている記憶デバイス1040をリーダ2403から取り出し、取り出した記憶デバイス1040をデバイスボックス2401に搬送して、その記憶デバイス1040をデバイスボックス2401に戻す。
リーダ2403の数は、記憶デバイス1040の数より少ない。
本実施例では、非起動状態の記憶デバイス1040とは、いずれのリーダ2403にもセットされていない記憶デバイス1040、具体的には、デバイスボックス2401に存在する記憶デバイス1040である。
また、非起動状態の記憶デバイス1040の起動とは、その記憶デバイス1040をデバイスボックス2401から取り出して搬送することでいずれかのリーダ2403にセットすることである。このため、起動時間が生じる。
また、本実施例では、同時に起動可能な記憶デバイス1040の最大数は、リーダ2403の数である。制限情報は、リーダ2403の数と、リーダ2403にセットされている記憶デバイスの数とを表す情報を含んでよい。制限情報は、サーバ及びストレージシステムのうちの少なくとも1つにおけるメモリに格納されてよい。
以上、幾つかの実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、デバイス制御システムは、制限情報(同時に起動可能な記憶デバイスの数の制限に関する情報)を基に、同時に起動可能な記憶デバイスの数を特定してよい。デバイス制御システムは、抑止I/Oコマンドの発行先である待ち記憶デバイスのうち、同時に起動可能な記憶デバイスの数を超えた分の待ち記憶デバイスについてのみ、起動順序を決定してもよい。デバイス制御システムは、待ち記憶デバイスのうち、同時に起動可能な記憶デバイスの数分の待ち記憶デバイスについては、同時に起動をかけてもよい。
また、例えば、本発明は、データベースのような構造化データを格納した記憶デバイスに限らず、ファイルのような非構造化データを格納した記憶デバイスにも適用可能である。例えば、複数の記憶デバイスに基づくファイルシステム空間が提供されてよい。ファイルシステム空間(複数の記憶デバイス)に複数のファイルが格納されてよい。DB要素名に代えてファイル名が採用されてよい。クライアントのようなファイルI/O元からのファイルI/O要求に基づいて1以上のI/Oコマンドが2以上の記憶デバイスに発行されてよい。
1000…サーバ

Claims (7)

  1. 複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、前記2以上の記憶デバイスの起動順序を、前記2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する手段であるデバイス制御手段と、
    前記2以上の記憶デバイスの各々のI/O量は、前記2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量であり、
    前記決定した起動順序で前記2以上の記憶デバイスを起動する手段である起動制御手段と
    を備え、
    前記デバイス制御手段は、前記起動順序として、I/O量が大きい記憶デバイスほど起動順番が早い起動順序を決定する、
    計算機システム。
  2. 複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、前記2以上の記憶デバイスの起動順序を、前記2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する手段であるデバイス制御手段と、
    前記2以上の記憶デバイスの各々のI/O量は、前記2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量であり、
    前記決定した起動順序で前記2以上の記憶デバイスを起動する手段である起動制御手段と
    を備え、
    前記起動順序において、ランダムI/Oがされる記憶デバイスについては、I/O数が大きいほど起動順番が早い、
    計算機システム。
  3. 複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、前記2以上の記憶デバイスの起動順序を、前記2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する手段であるデバイス制御手段と、
    前記2以上の記憶デバイスの各々のI/O量は、前記2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量であり、
    前記決定した起動順序で前記2以上の記憶デバイスを起動する手段である起動制御手段と
    を備え、
    前記起動順序において、シーケンシャルI/Oがされる記憶デバイスについては、I/Oサイズが大きいほど起動順番が早い、
    計算機システム。
  4. 起動した前記記憶デバイスにアクセスする記憶デバイスアクセス手段を更に備え、
    前記デバイス制御手段は、
    前記2以上のI/Oコマンドとその優先度を含むI/O制御プランを受信し、
    I/O制御プランの各I/Oコマンドのアクセス先である記憶デバイスを特定し、
    非起動状態の記憶デバイスに対する各I/OコマンドのI/O量及び前記優先度に基づいて、複数の非起動状態の記憶デバイスの起動順序を決定する、
    請求項1乃至3のうちのいずれか1項に記載の計算機システム。
  5. 複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、前記2以上の記憶デバイスの起動順序を、前記2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する第1のステップと、
    前記2以上の記憶デバイスの各々のI/O量は、前記2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量であり、
    前記決定した起動順序で、前記2以上の記憶デバイスを起動する第2のステップと
    を有し、
    前記第1のステップでは、前記起動順序として、I/O量が大きい記憶デバイスほど起動順番が早い起動順序を決定する、
    記憶デバイス起動制御方法。
  6. 複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、前記2以上の記憶デバイスの起動順序を、前記2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する第1のステップと、
    前記2以上の記憶デバイスの各々のI/O量は、前記2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量であり、
    前記決定した起動順序で、前記2以上の記憶デバイスを起動する第2のステップと
    を有し、
    前記起動順序において、ランダムI/Oがされる記憶デバイスについては、I/O数が大きいほど起動順番が早い、
    記憶デバイス起動制御方法。
  7. 複数のI/Oコマンドのうちの2以上のI/Oコマンドの発行先が複数の記憶デバイスのうちの非起動状態の2以上の記憶デバイスである場合、前記2以上の記憶デバイスの起動順序を、前記2以上の記憶デバイスにそれぞれ対応した2以上のI/O量に基づいて決定する第1のステップと、
    前記2以上の記憶デバイスの各々のI/O量は、前記2以上のI/Oコマンドのうちその記憶デバイスに対する1以上のI/Oコマンドに従うI/Oの量であり、
    前記決定した起動順序で、前記2以上の記憶デバイスを起動する第2のステップと
    を有し、
    前記起動順序において、シーケンシャルI/Oがされる記憶デバイスについては、I/Oサイズが大きいほど起動順番が早い、
    記憶デバイス起動制御方法。
JP2016228561A 2016-11-25 2016-11-25 計算機システム及び記憶デバイス起動制御方法 Active JP6731620B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016228561A JP6731620B2 (ja) 2016-11-25 2016-11-25 計算機システム及び記憶デバイス起動制御方法
US15/805,362 US10747446B2 (en) 2016-11-25 2017-11-07 Computer system and storage device activation control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016228561A JP6731620B2 (ja) 2016-11-25 2016-11-25 計算機システム及び記憶デバイス起動制御方法

Publications (2)

Publication Number Publication Date
JP2018085011A JP2018085011A (ja) 2018-05-31
JP6731620B2 true JP6731620B2 (ja) 2020-07-29

Family

ID=62190879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016228561A Active JP6731620B2 (ja) 2016-11-25 2016-11-25 計算機システム及び記憶デバイス起動制御方法

Country Status (2)

Country Link
US (1) US10747446B2 (ja)
JP (1) JP6731620B2 (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5423046A (en) * 1992-12-17 1995-06-06 International Business Machines Corporation High capacity data storage system using disk array
US6574676B1 (en) * 2000-01-11 2003-06-03 International Business Machines Corporation System and method for scheduling disk drive commands by expected total access time
US7818461B2 (en) * 2003-04-28 2010-10-19 Lsi Corporation Systems and methods for allocating an asset to interconnected devices
JP4642347B2 (ja) 2003-12-10 2011-03-02 株式会社日立製作所 ストレージシステム
JP5060876B2 (ja) * 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
JP2009080603A (ja) 2007-09-26 2009-04-16 Hitachi Ltd ストレージ装置及びその省電力方法
US8082459B2 (en) * 2008-02-26 2011-12-20 Microsoft Corporation Power management based on policy
JP2010003149A (ja) 2008-06-20 2010-01-07 Hitachi Ltd ストレージ装置及びディスク装置制御方法
JP2010102458A (ja) * 2008-10-22 2010-05-06 Hitachi Ltd コマンドの起動を制御するストレージシステム及び方法
US8239589B1 (en) * 2010-03-31 2012-08-07 Amazon Technologies, Inc. Balancing latency and throughput for shared resources
US8868856B2 (en) * 2010-07-01 2014-10-21 Infinidat Ltd. Storage system with reduced energy consumption
US8473643B2 (en) * 2011-05-05 2013-06-25 Hitachi, Ltd. Method and apparatus of tier storage management awareness networking
US9239786B2 (en) * 2012-01-18 2016-01-19 Samsung Electronics Co., Ltd. Reconfigurable storage device
US9563376B2 (en) * 2015-05-01 2017-02-07 International Business Machines Corporation Low power storage array with metadata access

Also Published As

Publication number Publication date
US20180150241A1 (en) 2018-05-31
JP2018085011A (ja) 2018-05-31
US10747446B2 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
US9671967B2 (en) Method and system for implementing a distributed operations log
EP3143501B1 (en) Mechanism for performing rolling updates with data unavailability check in a networked virtualization environment for storage management
US9772784B2 (en) Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
US20180157674A1 (en) Distributed nfs metadata server
US9286344B1 (en) Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
US8639876B2 (en) Extent allocation in thinly provisioned storage environment
WO2014109007A1 (ja) ストレージ階層管理システム
US10366075B2 (en) Database management system and method
US8181180B1 (en) Managing jobs in shared file systems
JP2016530625A (ja) ロッキング機構を用いた効率的なタスク・スケジューリングのための方法、システム、およびプログラム
WO2015157660A2 (en) Mechanism for performing lockless rolling upgrade of nosql database
US20220066786A1 (en) Pre-scanned data for optimized boot
US20100138621A1 (en) Information processing system, controlling method in information processing system, and managing apparatus
JP2022034455A (ja) 計算機システムおよび管理方法
WO2017126003A1 (ja) 複数種類のメモリデバイスを含む計算機システム及び方法
JP6823626B2 (ja) データベース管理システム及び方法
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
US10838949B2 (en) Shared resource update apparatus and shared resource update method
US9933832B2 (en) Systems and methods for modifying power states in a virtual environment
JP6731620B2 (ja) 計算機システム及び記憶デバイス起動制御方法
US20220318073A1 (en) Provisioning a computing subsystem including disaggregated hardware resources that comply with a power domain requirement for a workload
US11163469B2 (en) Data management system and data management method
US20160335321A1 (en) Database management system, computer, and database management method
CN112912848B (zh) 一种丛集作业过程中的电源请求管理方法
Dell

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180328

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200618

R150 Certificate of patent or registration of utility model

Ref document number: 6731620

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150