(57)【要約】【課題】ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから、シーケンシャルアクセスにて高速に列単位のデータである列データを読み出す。【解決手段】データ再配置部１０８は、読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行う。読出し要求受付部１０４は、読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける。読出し制御部１０５は、データ再配置部１０８による再配置後の列データの並び順に基づき、磁気ディスクごとに異なる読出し要求列データを重複なく割り当てて、ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる。データ読出し部１０６は、各磁気ディスクから並列に、読出し制御部１０５により割り当てられた読出し要求データをシーケンシャルアクセスにて読み出す。【選択図】図１
2016170685.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出すデータ処理装置であって、
読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行うデータ再配置部と、
読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける読出し要求受付部と、
前記データ再配置部による再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、前記ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる読出し制御部と、
各磁気ディスクから並列に、前記読出し制御部により割り当てられた読出し要求データをシーケンシャルアクセスにて読み出すデータ読出し部とを有するデータ処理装置。
【請求項２】
前記読出し制御部は、
前記データ再配置部による再配置後の列データの並び順において先頭に位置する読出し要求列データから最後尾に位置する読出し要求列データまでの領域を、再配置後の列データの並び順に従って、各ブロックに含まれる読出し要求列データがブロック間で重複しないようにしてｎ個のブロックに分割し、前記ｎ個のブロックを前記ｎ個の磁気ディスクに割り当て、
前記データ読出し部は、
各磁気ディスクから並列に、前記読出し制御部により割り当てられたブロックに含まれる読出し要求データをシーケンシャルアクセスにて読み出す請求項１に記載のデータ処理装置。
【請求項３】
データ処理装置が、ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出すデータ処理方法であって、
前記データ処理装置が、読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行うデータ再配置ステップと、
前記データ処理装置が、読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける読出し要求受付ステップと、
前記データ処理装置が、前記データ再配置ステップによる再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、前記ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる読出し制御ステップと、
前記データ処理装置が、各磁気ディスクから並列に、前記読出し制御ステップにより割り当てられた読出し要求データをシーケンシャルアクセスにて読み出すデータ読出しステップとを有するデータ処理方法。
【請求項４】
ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出すコンピュータに、
読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行うデータ再配置ステップと、
読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける読出し要求受付ステップと、
前記データ再配置ステップによる再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、前記ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる読出し制御ステップと、
各磁気ディスクから並列に、前記読出し制御ステップにより割り当てられた読出し要求データをシーケンシャルアクセスにて読み出すデータ読出しステップとを実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ１構成の磁気ディスクから、データを読み出す技術に関する。
【背景技術】
【０００２】
特許文献１では、図７（ａ）に示すように、ＲＡＩＤ１構成の複数の磁気ディスクから並行して同じデータに対する読出しを行い、最先に読み出されたデータを採用する。
このため、特許文献１では、ディスク数分のデータの読み出しが必要である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１２６８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の方法では、多くの重複したデータを読み出さなければならず、特にシーケンシャルアクセスにおいては、並列化の効果を得にくい。
近年、ビックデータ等の影響で、大量のデータを蓄積する機会が増している。
データウェアハウス（以下、ＤＷＨと表記する）等のデータベースでは、バッファヒットが期待できず、ディスクからの読出しの高速化が必要となっている。
【０００５】
本発明は、上記のような状況を鑑みたものであり、ＲＡＩＤ１構成の複数の磁気ディスクから、シーケンシャルアクセスにて高速に列データを読み出すことを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、
ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出すデータ処理装置であって、
読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行うデータ再配置部と、
読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける読出し要求受付部と、
前記データ再配置部による再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、前記ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる読出し制御部と、
各磁気ディスクから並列に、前記読出し制御部により割り当てられた読出し要求データをシーケンシャルアクセスにて読み出すデータ読出し部とを有する。
【０００７】
前記読出し制御部は、
前記データ再配置部による再配置後の列データの並び順において先頭に位置する読出し要求列データから最後尾に位置する読出し要求列データまでの領域を、再配置後の列データの並び順に従って、各ブロックに含まれる読出し要求列データがブロック間で重複しないようにしてｎ個のブロックに分割し、前記ｎ個のブロックを前記ｎ個の磁気ディスクに割り当て、
前記データ読出し部は、
各磁気ディスクから並列に、前記読出し制御部により割り当てられたブロックに含まれる読出し要求データをシーケンシャルアクセスにて読み出す。
【０００８】
本発明に係るデータ処理方法は、
データ処理装置が、ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出すデータ処理方法であって、
前記データ処理装置が、読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行うデータ再配置ステップと、
前記データ処理装置が、読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける読出し要求受付ステップと、
前記データ処理装置が、前記データ再配置ステップによる再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、前記ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる読出し制御ステップと、
前記データ処理装置が、各磁気ディスクから並列に、前記読出し制御ステップにより割り当てられた読出し要求データをシーケンシャルアクセスにて読み出すデータ読出しステップとを有する。
【０００９】
本発明に係るデータ処理プログラムは、
ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出すコンピュータに、
読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行うデータ再配置ステップと、
読出し要求列データとしてｍ（ｍ≧ｎ）個の列データを指定する読出し要求を受け付ける読出し要求受付ステップと、
前記データ再配置ステップによる再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、前記ｎ個の磁気ディスクにｍ個の読出し要求データを割り当てる読出し制御ステップと、
各磁気ディスクから並列に、前記読出し制御ステップにより割り当てられた読出し要求データをシーケンシャルアクセスにて読み出すデータ読出しステップとを実行させる。
【発明の効果】
【００１０】
本発明では、磁気ディスクごとに読出し要求列データを重複なく割り当てて、ｎ個の磁気ディスクにｍ個の読出し要求データを割り当て、各磁気ディスクから並列に、各磁気ディスクに割り当てられた読出し要求データをシーケンシャルアクセスにて読み出す。
このため、ＲＡＩＤ１構成の複数の磁気ディスクから、シーケンシャルアクセスにて高速に列データを読み出すことができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るデータ処理装置の機能モジュール構成例を示す図。
【図２】実施の形態１に係るデータロード処理の例を示す図。
【図３】実施の形態１に係る統計情報の例を示す図。
【図４】実施の形態１に係るデータ再配置処理の例を示す図。
【図５】実施の形態１に係るデータ読出し処理の例を示す図。
【図６】実施の形態１に係るデータ処理装置を実現するコンピュータのハードウェア構成例を示す図。
【図７】従来のスキャンの例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るデータ処理装置１０の構成例を示す。
データ処理装置１０は、ＲＡＩＤ１構成のｎ（ｎ≧２）個の磁気ディスクから列単位のデータである列データを読み出す。
列データは、ｉ（ｉ≧２）列×ｊ（ｊ≧２）行のテーブルデータを列単位で区切って得られるデータ（ｊ行分のデータブロック）である。
以降では、データ処理装置１０が、ＲＡＩＤ１構成の２個（ｎ＝２）の磁気ディスクから列データを読み出す例を説明する。
以降は、２個の磁気ディスクを、磁気ディスク１（１１）、磁気ディス２（１２）という。
【００１３】
図１において、書込み要求受付部１０１は、データの書込み要求を受け付ける。
【００１４】
書込み制御部１０２は、書込み要求で書込みが要求されているデータの書込み先を決定する。
【００１５】
データ書込み部１０３は、書込み要求で書込みが要求されているデータを、磁気ディスク１（１１）と磁気ディスク２（１２）の、書込み制御部１０２で決定された書込み先に書き込む。
【００１６】
読出し要求受付部１０４は、データの読出し要求を受け付ける。
読出し要求では、読出し要求列データとしてｍ（ｍ≧ｎ）個の列データが指定されている。
【００１７】
読出し制御部１０５は、後述するデータ再配置部１０８による再配置後の列データの並び順に基づき、割り当てられる読出し要求列データが磁気ディスク間で重複しないようにして磁気ディスクごとに読出し要求列データを割り当てて、２個（ｎ個）の磁気ディスクにｍ個の読出し要求データを割り当てる。
より具体的には、読出し制御部１０５は、データ再配置部１０８による再配置後の列データの並び順において先頭に位置する読出し要求列データから最後尾に位置する読出し要求列データまでの領域を、各ブロックに含まれる読出し要求列データがブロック間で重複しないようにして２個（ｎ個）のブロックに分割し、２個（ｎ個）のブロックを２個（ｎ個）の磁気ディスクに割り当てる。
【００１８】
データ読出し部１０６は、各磁気ディスクから並列に、読出し制御部１０５により割り当てられた読出し要求データをシーケンシャルアクセスにて読み出す。
つまり、データ読出し部１０６は、各磁気ディスクから並列に、読出し制御部１０５により割り当てられたブロックに含まれる読出し要求データをシーケンシャルアクセスにて読み出す。
【００１９】
読出し回数計数部１０７は、各磁気ディスクに記憶されているデータごとに、読出し回数を計数する。
【００２０】
データ再配置部１０８は、読出し回数計数部１０７により計数された読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行う。
【００２１】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係るデータ処理装置１０の動作例を説明する。
なお、以下で説明する処理により、本願のデータ処理方法及びデータ処理プログラムが実現される。
【００２２】
まず、書込み要求受付部１０１が書込み要求を受け付けると、書込み制御部１０２が、書込み対象の列データの書込み先を決定する。
ここでは、書込み要求受付部１０１が、列Ａ、列Ｂ、列Ｃ、列Ｄ、列Ｅ、列Ｆ、列Ｇ及び列Ｈの列データの書込み要求を受け付けたとする。
書込み制御部１０２は、磁気ディスクの内側の領域を、これら列Ａ〜列Ｈの列データの書込み先として指定する。
データ書込み部１０３は、図２に示すように、磁気ディスク１（１１）及び磁気ディスク２（１２）の双方において、書込み制御部１０２により指定された位置である内側の領域に列Ａ〜列Ｈの列データを書き込む。
【００２３】
読出し回数計数部１０７は、磁気ディスク１（１１）及び磁気ディスク２（１２）から列データが読み出される度に、列データごとに読出し回数を計数する。
図３は、読出し回数計数部１０７の計数結果である統計情報の例を示す。
図３の例では、ランクの欄に示すように、列Ｃ、列Ａ、列Ｇ、列Ｅ、列Ｂ、列Ｄ、列Ｆの順で読出し回数が多い。
【００２４】
次に、データ再配置部１０８は、磁気ディスクの内側に保持されている列データを、読出し回数が多い列データほど外側の領域に配置されるように各磁気ディスクにおいて列データの再配置を行う（データ再配置ステップ）。
つまり、図４に示すように、最も外側の領域から、列Ｃ、列Ａ、列Ｇ、列Ｅ、列Ｂ、列Ｄ、列Ｆとなるように、列データの再配置を行う。
磁気ディスクの空き領域に余裕がある場合は、内側の領域で記憶されている列Ａ〜Ｈを維持したまま、外側の領域に、列Ｃ、列Ａ、列Ｇ、列Ｅ、列Ｂ、列Ｄ、列Ｆの順になるように各列データをコピーする。
また、このような二重持ちを行わない場合は、データ再配置部１０８は、各列データを退避しながら、外側の領域に並べ替える。
【００２５】
データ再配置部１０８によりデータ再配置が行われた後に、読出し要求受付部１０４が読出し要求を受け付けた場合（読出し要求受付ステップ）に、読出し制御部１０５が、磁気ディスク１（１１）及び磁気ディスク２（１２）のそれぞれから読み出す列データを指定する（読出し制御ステップ）。
ここでは、図５に示すように、読出し要求対象列データが、列Ｃ、列Ａ、列Ｇ、列Ｅであると仮定する。
読出し制御部１０５は、データ再配置部１０８による再配置後の列データの並び順（外側の領域の列Ｃ、列Ａ、列Ｇ、列Ｅ、列Ｂ、列Ｄ、列Ｆの並び順）において先頭に位置する読出し要求列データから最後尾に位置する読出し要求列データまでの領域を、各ブロックに含まれる読出し要求列データが異なるように２個（ｎ個）のブロックに分割する。
つまり、本例では、読出し制御部１０５は、先頭に位置する読出し要求列データである列Ｃから最後尾に位置する読出し要求列データである列Ｅまでの列Ｃ、列Ａ、列Ｇ、列Ｅの領域を２個のブロックに分ける。
具体的には、読出し制御部１０５は、列Ｃと列Ａのブロックと、列Ｇと列Ｅのブロックにする。
そして、読出し制御部１０５は、例えば、列Ｃと列Ａのブロックを磁気ディスク１（１１）に割り当て、列Ｇと列Ｅのブロックを磁気ディスク２（１２）に割り当てる。
【００２６】
最後に、データ読出し部１０６が、読出し制御部１０５の割り当てに従って、磁気ディスク１（１１）及び磁気ディスク２（１２）のそれぞれから、シーケンシャルアクセスにて、該当する列データを読み出す（データ読出しステップ）。
つまり、データ読出し部１０６は、図５に示すように、列Ｃと列Ａのブロックを磁気ディスク１（１１）からシーケンシャルアクセスにて読み出し、列Ｇと列Ｅのブロックを磁気ディスク２（１２）からシーケンシャルアクセスにて読み出す。
図５において、列Ｃ及び列Ａに対して記述されている矢印、列Ｇと列Ｅに対して記述されている矢印は、それぞれスキャンの軌跡を表している。
【００２７】
＊＊＊効果の説明＊＊＊
このように、本実施の形態に係るデータ処理装置１０では、磁気ディスクごとに異なる読出し要求列データを重複なく割り当てて、ｎ個の磁気ディスクにｍ個の読出し要求データを割り当て、各磁気ディスクから並列に、各磁気ディスクに割り当てられた読出し要求データをシーケンシャルアクセスにて読み出す。
このため、ＲＡＩＤ１構成の複数の磁気ディスクから、シーケンシャルアクセスにて高速に列データを読み出すことができる。
【００２８】
本実施の形態に係る効果を、従来技術との比較で説明する。
【００２９】
図７（ａ）は、ＲＡＩＤ１構成の磁気ディスクから、シーケンシャルアクセスにて列データを読み出す従来方式を表している。
図７（ａ）では、磁気ディスク１及び磁気ディスク２の各々に、列データである列Ａ〜列Ｈが格納さているときに、列Ａ、列Ｃ、列Ｅ、列Ｇの読出しが要求された例を示している。
図７（ａ）の従来方式では、磁気ディスク１及び磁気ディスク２で、同時に、シーケンシャルアクセスにて、列Ａ、列Ｃ、列Ｅ、列Ｇに対するスキャンが行われ、先にスキャンを完了した磁気ディスクが列Ａ、列Ｃ、列Ｅ、列Ｇを返す。
図２〜図５に示した本実施の形態に係る方式では、図７（ａ）の方式と比較して、読出し時間が約１／２であり、高速なデータアクセスが可能である。
【００３０】
また、ディスクアクセスの方法として、ランダムアクセスがある。
図７（ｂ）は、ランダムアクセスの例を示す。
図７（ｂ）でも、磁気ディスク１及び磁気ディスク２の各々に、列Ａ〜列Ｈが格納さているときに、列Ａ、列Ｃ、列Ｅ、列Ｇの読出しが要求された例を示している。
ランダムアクセスでは、ディスクごとに異なる列データを読み出すが、ランダムアクセスはシーケンシャルアクセスに比べて低速であり、数十倍の読出し時間が必要である。
【００３１】
以上のように、本実施の形態によれば、従来方式に比べて高速に列データを読み出すことができる。
【００３２】
＊＊＊ハードウェア構成の説明＊＊＊
本実施の形態で説明したデータ処理装置１０は、コンピュータにより実現される。
そして、図１に示した書込み要求受付部１０１、書込み制御部１０２、データ書込み部１０３、読出し要求受付部１０４、読出し制御部１０５、データ読出し部１０６、読出し回数計数部１０７及びデータ再配置部１０８（以下、書込み要求受付部１０１、書込み制御部１０２、データ書込み部１０３、読出し要求受付部１０４、読出し制御部１０５、データ読出し部１０６、読出し回数計数部１０７及びデータ再配置部１０８をまとめて「部」と表記する）は、プログラムとして実現される。
例えば、「部」を実現するプログラムは、コンピュータで実行されるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及びディスクドライバの一部である。
【００３３】
データ処理装置１０を実現するコンピュータのハードウェア構成例を図６を参照して説明する。
コンピュータは、プロセッサ９０１、磁気ディスク９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。
プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース９０５は、入力装置９０７に接続されている。
ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
磁気ディスク９０２は、ＲＡＩＤ１構成の複数の磁気ディスクである。
【００３４】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、データを受信するレシーバー９０４１及びデータを送信するトランスミッター９０４２を含む。
通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。
入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。
ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。
入力装置９０７は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００３５】
磁気ディスク９０２には、「部」を含むＯＳ及びディスクドライバが記憶されている。
「部」を実現するプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
図６では、１つのプロセッサ９０１が図示されているが、複数のプロセッサ９０１であってもよい。
そして、複数のプロセッサ９０１が「部」を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ９０３、磁気ディスク９０２、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリに記憶される。
【符号の説明】
【００３６】
１０  データ処理装置、１１  磁気ディスク１、１２  磁気ディスク２、１０１  書込み要求受付部、１０２  書込み制御部、１０３  データ書込み部、１０４  読出し要求受付部、１０５  読出し制御部、１０６  データ読出し部、１０７  読出し回数計数部、１０８  データ再配置部。
【図１】
2016170685.tif 000003
【図２】
2016170685.tif 000004
【図３】
2016170685.tif 000005
【図４】
2016170685.tif 000006
【図５】
2016170685.tif 000007
【図６】
2016170685.tif 000008
【図７】
2016170685.tif 000009