JPWO2018179243A1 - 情報処理装置及び方法 - Google Patents
情報処理装置及び方法 Download PDFInfo
- Publication number
- JPWO2018179243A1 JPWO2018179243A1 JP2019508027A JP2019508027A JPWO2018179243A1 JP WO2018179243 A1 JPWO2018179243 A1 JP WO2018179243A1 JP 2019508027 A JP2019508027 A JP 2019508027A JP 2019508027 A JP2019508027 A JP 2019508027A JP WO2018179243 A1 JPWO2018179243 A1 JP WO2018179243A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- storage device
- accelerator
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】処理性能の高い情報処理装置及び方法を提案する。【解決手段】データに対する所定処理を実行するアクセラレータが搭載された情報処理装置及び当該情報処理装置において実行される情報処理方法であって、データを記憶保持するストレージ装置と、外部から要求されたタスクに含まれる所定処理の実行をアクセラレータに要求するホスト制御部とを情報処理装置に設け、データを圧縮してストレージ装置に格納し、アクセラレータが、ホスト制御部からの要求に応じて、ストレージ装置に格納されたデータのうちの処理対象のデータを読み込み、読み込んだデータを伸張しながら、当該データに対する所定処理を実行するようにした。
Description
本発明は情報処理装置及び方法に関し、例えばビッグデータを分析する分析システムに適用して好適なものである。
近年、ビジネス現場においてビックデータ分析が普及し、分析対象のデータ量は増加の一途を辿っている。例えば、商品の販売データ(POS(Point Of Sale)データ)は、事業のグローバル化や、実店舗及びオンライン店舗双方での販売といった販売形態の多様化により、データ量が益々増加してきている。このような販売データは、今後、TB(Terra Byte)以上のオーダとなることが見込まれている。
ビッグデータの分析結果を迅速にビジネス判断に活かすためには、分析処理を高速化し、短時間で結果を出すことが必要となる。しかしながら、半導体加工の微細化の限界に伴い、分析装置において分析処理を実行するCPU(Central Processing Unit)の性能向上は鈍化することが予測されている。
データ量の増加及びCPUの性能限界に伴い、1つの分析処理に多くの時間を要し、さらに1つのデータベースに対して複数の分析手法を適用したり、多数のデータベースに対する分析処理を実行すると、分析処理にはさらに多くの時間を要する。
かかる問題を解決するための方法として、従来、CPUが実行していた分析処理の一部をFPGA(Field Programmable Gate Array)が搭載されたアクセラレータにオフロードする方法が知られている。FPGAは、ユーザが自由にプログラミングすることができる集積回路(LSI:Large-Scale Integration)である。
ただし、分析処理をCPU又はアクセラレータのいずれで実行する場合も、ストレージ装置からそのCPU又はアクセラレータが処理対象のデータを読み出す際にそのデータ量が大きい場合には、そのCPU又はアクセラレータと、ストレージ装置との間のネットワーク帯域がボトルネックになってシステム全体としての処理が遅くなる。
このためCPUのみで分析処理を行っていた従来の分析装置では、CPUの近くに伸張回路を配置し、ストレージ装置に格納された圧縮データを伸張回路において伸張処理した後に主記憶装置(メモリ)に格納し、その後、そのデータをCPUにより処理していた(特許文献1参照)。
しかしながら、FPGAが搭載されたアクセラレータでは、実装されたメモリの容量やその帯域に限りがある。このためCPUが実行していた分析処理の一部をFPGAにオフロードする場合、伸張後のデータをかかるアクセラレータに搭載されたメモリに格納するものとすると、かかるメモリの容量、あるいはFPGAに接続されるメモリチャネルの帯域がボトルネックとなってシステム全体としての処理が遅くなるという課題があった。
本発明は以上の点を考慮してなされたもので、大容量のデータを高速にアクセラレータに転送でき、かつアクセラレータ内のメモリ容量やメモリチャネル帯域のボトルネックをも解消し得る処理性能の高い情報処理装置及び方法を提案しようとするものである。
かかる課題を解決するため本発明の一実施形態においては、データに対する所定処理を実行するアクセラレータが搭載された情報処理装置において、データを記憶保持するストレージ装置と、外部から要求されたタスクに含まれる前記所定処理の実行を前記アクセラレータに要求するホスト制御部とを設け、前記データは圧縮されて前記ストレージ装置に格納され、前記アクセラレータは、前記ホスト制御部からの要求に応じて、前記ストレージ装置に格納された前記データのうちの処理対象の前記データを読み込み、読み込んだ前記データを伸張しながら、当該データに対する前記所定処理を実行するようにした。
また本発明の一実施形態においては、データに対する所定処理を実行するアクセラレータが搭載された情報処理装置において実行される情報処理方法であって、前記情報処理装置は、データを記憶保持するストレージ装置と、外部から要求されたタスクに含まれる前記所定処理の実行を前記アクセラレータに要求するホスト制御部とを有し、前記データを圧縮して前記ストレージ装置に格納する第1のステップと、前記アクセラレータが、前記ホスト制御部からの要求に応じて、前記ストレージ装置に格納された前記データのうちの処理対象の前記データを読み込み、読み込んだ前記データを伸張しながら、当該データに対する前記所定処理を実行する第2のステップとを設けるようにした。
さらに本発明の一実施形態においては、情報処理装置において、データを記憶保持するストレージ装置と、データに対する所定処理を実行するアクセラレータと、外部から要求されたタスクに含まれる前記所定処理の実行を前記アクセラレータに要求するホスト制御部とを有し、前記データは圧縮されて前記ストレージ装置に格納され、前記アクセラレータは、当該アクセラレータにデータを入出力する入出力回路と、圧縮されたデータを伸張する伸張回路と、前記所定処理を実行する処理回路と、データを記憶保持するメモリとを備え、前記入出力回路は、前記ホスト制御部からの要求に応じて、前記ストレージ装置から処理対象の前記データを読み出して前記メモリに格納し、前記伸張回路は、前前記メモリに格納された処理対象の前記データを伸張して前記処理回路に転送し、前記処理回路は、前記伸張回路から転送された伸張された前記データに対して前記所定処理を実行し、当該所定処理の処理結果を前記メモリに格納し、前記入出力回路は、前記メモリに格納された前記所定処理の処理結果を前記ホスト制御部に送信するようにした。
本発明の情報処理装置及び方法によれば、圧縮されたデータをストレージ装置からアクセラレータに転送するため、ストレージ装置からアクセラレータに転送するデータ量も少なく、ストレージ装置及びアクセラレータ間のネットワーク帯域がボトルネックとなって処理が遅くなる可能性を低減できる。また本情報処理装置及び方法によれば、アクセラレータ内部でデータを伸張しながら当該データに対する処理を行っているため、伸張したデータによりアクセラレータ内部のメモリの容量やメモリチャンネルの帯域が圧迫されることもなく、かかるメモリの容量及びメモリチャンネルの帯域がボトルネックとなって処理が遅くなるという事態の発生を有効に回避することができる。
本発明によれば、処理性能の高い情報処理装置及び方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態の情報処理システムの構成
図1において、1は全体として本実施の形態による情報処理システムを示す。この情報処理システム1は、ビッグデータの分析を行う分析システムである。
(1−1)本実施の形態の情報処理システムの構成
図1において、1は全体として本実施の形態による情報処理システムを示す。この情報処理システム1は、ビッグデータの分析を行う分析システムである。
実際上、情報処理システム1は、1又は複数のクライアント2と、アプリケーションサーバ3と、分散データベースシステム4とを備えて構成される。そして各クライアント2は、LAN(Local Area Network)又はインターネットなどからなる第1のネットワーク5を介してアプリケーションサーバ3と接続されている。
また分散データベースシステム4は、マスタノードサーバ6及び複数のワーカノードサーバ7から構成されており、これらマスタノードサーバ6及びワーカノードサーバ7がLANなどから構成される第2のネットワーク8を介してアプリケーションサーバ3とそれぞれ接続されている。
クライアント2は、ユーザが使用する汎用のコンピュータ装置である。クライアント2は、ユーザ操作又は当該クライアント2に実装されたアプリケーションからの要求に応じて、ビッグデータの分析要求を第1のネットワーク5を介してアプリケーションサーバ3に送信する。またクライアント2は、アプリケーションサーバ3から第1のネットワーク5を介して送信されてきた分析結果を表示する。
アプリケーションサーバ3は、分析BI(Business Intelligence)ツールが実装された汎用のサーバ装置から構成される。アプリケーションサーバ3は、クライアント2から要求された分析処理を実行するのに必要なデータを取得するためのSQL(Structured Query Language)クエリを生成し、生成したSQLクエリを分散データベースシステム4のマスタノードサーバ6に送信する。またアプリケーションサーバ3は、マスタノードサーバ6から送信されるそのSQLクエリの処理結果に基づいて分析処理を実行し、その分析結果をクライアント2に送信する。
マスタノードサーバ6は、例えばHadoopにおけるマスタノードとして機能する汎用のサーバ装置である。実際上、マスタノードサーバ6は、アプリケーションサーバ3から第2のネットワーク8を介して送信されてきたSQLクエリを解析し、当該SQLクエリに基づく処理を複数のタスクに分解する。またマスタノードサーバ6は、これらのタスクの実行計画を立案し、立案した実行計画に従ってこれらタスクの実行要求(以下、これをタスク実行要求と呼ぶ)を各ワーカノードサーバ7に送信する。そしてマスタノードサーバ6は、各ワーカノードサーバ7から送信されてきたこれらタスク実行要求の実行結果をSQLクエリの処理結果としてアプリケーションサーバ3に送信する。
ワーカノードサーバ7は、例えばHadoopにおけるワーカノードとして機能する汎用のサーバ装置である。実際上、ワーカノードサーバ7は、分散データベースシステム4内で分散配置されたデータベースの一部データを後述するストレージ装置12に保持しており、マスタノードサーバ6から与えられたタスク実行要求に従って必要な処理を実行し、その処理結果を他のワーカノードサーバ7やマスタノードサーバ6に送信する。
このワーカノードサーバ7は、ホストCPU(Central Processing Unit)10、主記憶装置11、1又は複数のストレージ装置12、通信装置13及びアクセラレータ14を備えて構成される。そしてホストCPU10、ストレージ装置12、通信装置13及びアクセラレータ14は、PCIe(Peripheral Component Interconnect express)スイッチ15を介して相互に接続されている。
ホストCPU10は、ワーカノードサーバ7全体の動作制御を司るプロセッサである。ホストCPU10は、後述のように主記憶装置11に格納されたソフトウェアに基づいて、マスタノードサーバ6から送信されてきたタスク実行要求において指示されたタスクを実行し、その実行結果をマスタノードサーバ6に通知する。この際、ホストCPU10は、そのタスクにフィルタ処理や、フィルタ処理及び集約処理(以下、これらをフィルタ処理等と呼ぶ)が含まれる場合には、これに応じた処理コマンドをアクセラレータに送信することにより、そのフィルタ処理等をアクセラレータ14に実行させる。
主記憶装置11は、例えば、揮発性の半導体メモリから構成され、ストレージ装置12からロードした各種ソフトウェアや各種データを一時的に記憶保持するために利用される。主記憶装置11に格納されたソフトウェアをホストCPU10が実行することにより、後述のようなワーカノードサーバ7全体としての各種処理が実行される。
ストレージ装置12は、例えばハードディスク装置やSSD(Solid State Drive)などの大容量の不揮発性記憶装置から構成される。ストレージ装置12には、分散データベースシステム4内で分散配置されたデータベースの一部のテーブルのデータがデータベースデータとして1又は複数のファイルにファイル化されて格納される。なお以下においては、ストレージ装置12はSSDであるものとし、データベースデータが格納された各ファイルはホストCPU10により圧縮されてストレージ装置12に格納されているものとする。
通信装置13は、例えばNIC(Network Interface Card)から構成され、第2のネットワーク8を介したマスタノードサーバ6やアプリケーションサーバ3との通信時におけるプロトコル制御を行うインタフェースとして機能する。
アクセラレータ14は、FPGA(Field Programmable Gate Array)16及びメモリ17を備えて構成される。FPGA16は、ホストCPU10から与えられた処理コマンドに応じたフィルタ処理等を実行し、その処理結果をホストCPU10に送信する。またメモリ17は、例えばDRAM(Dynamic Random Access Memory)から構成され、FPGA16のワークメモリとして利用される。
図2は、FPGA16の詳細構成を示す。この図2に示すように、FPGA16は、I/O(Input/Output)処理回路20、フィルタ処理回路21及び集約処理回路22がスイッチ23を介して相互に接続されることにより構成される。
I/O処理回路20は、アクセラレータ14の起動時にROM24に格納されたFPGAファームウェア25を読み出し、読み出したFPGAファームウェア25に基づいて必要なI/O処理を実行する機能を有する入出力回路であり、その内部に伸張回路26を備えて構成される。
実際上、I/O処理回路20は、ホストCPU10からPCIeスイッチ15(図1)を介して送信されてきた上述の処理コマンドを解析し、要求されたフィルタ処理等の処理対象となるデータベースデータのファイルをストレージ装置12(図1)から読み出してメモリ17に格納したり、必要な処理を実行するようスイッチ23を介してフィルタ処理回路21や、フィルタ処理回路21及び集約処理回路22の双方に指示を与える。この際、I/O処理回路20は、ストレージ装置12からメモリ17に読み出した圧縮されたデータベースデータを、伸張回路26において伸張しながらスイッチ23を介してフィルタ処理回路21に送信する。またI/O処理回路20は、フィルタ処理回路21や集約処理回路22により実行されたフィルタ処理や集約処理の処理結果を処理コマンドの実行結果としてホストCPU10(図1)に送信する。
フィルタ処理回路21は、I/O処理回路20から与えられた伸張されたデータベースデータに対して、当該I/O処理回路20から与えられた指示に応じたフィルタ処理を実行する機能を有する回路である。フィルタ処理は、SQLクエリで指定された条件式と対象となるデータベースデータを比較し、条件式に一致するものだけを抽出するという処理である。フィルタ処理回路21は、かかる処理コマンドの内容がフィルタ処理だけの場合には、フィルタ処理の処理結果をスイッチ23を介してメモリ17に格納し、処理コマンドの内容がフィルタ処理及び集約処理の場合には、フィルタ処理の処理結果を集約処理回路22に送信する。
また集約処理回路22は、フィルタ処理回路21から与えられたフィルタ処理で抽出されたデータに対して、平均値若しくは合計値を算出し、又は、最大値若しくは最小値を抽出するなどの要求された集約処理実行する機能を有する回路である。集約処理回路22は、かかる集約処理の処理結果をスイッチ23を介してメモリ17に格納する。
図3は、主記憶装置11におけるソフトウェア構成及びデータ構成を示す。主記憶装置11には、OS(Operating System)30が格納されており、当該OS30上でSSDドライバ31及びFPGAドライバ32が稼働する。SSDドライバ31は、ストレージ装置12(図1)を制御する機能を有するソフトウェアであり、FPGAドライバ32は、アクセラレータ14(図1)のFPGA16(図2)を制御する機能を有するソフトウェアである。
またOS30は、その機能の一部としてファイルシステム33を備える。ファイルシステム33は、ストレージ装置12に格納されたデータベースデータの各ファイルを管理する機能部であり、例えば、そのワーカノードサーバ7が保持する各ファイルのファイル名や、これらのファイルのデータがどのストレージ装置12内のどの論理ブロックにそれぞれ格納されているか、及びそのファイルのデータが圧縮されているか否かといった情報を、図4について後述するファイル保存位置管理テーブル38や、図5について後述する圧縮情報管理テーブル39を用いて管理する。
なお「論理ブロック」とは、ストレージ装置12が提供する記憶領域の管理単位を指す。ストレージ装置12が提供する記憶領域は、所定大きさ(例えば4096バイト)の「論理ブロック」と呼ばれる小領域に区分され、これら「論理ブロック」にそれぞれLBA(Logical Brock Address)と呼ばれるその「論理ブロック」に固有のアドレスが付与されて管理される。
主記憶装置11には、分散ファイルシステム34、データベースエンジン35、FPGAライブラリ36及びLBA取得部37も格納される。分散ファイルシステム34は、例えばHadoopにおけるHDFS(Hadoop Distributed File System)として機能するソフトウェアであり、分散データベースシステム4(図1)においてどのデータベースデータ(ファイル)がどのワーカノードサーバ7に保持されているかの情報などを管理する。
またデータベースエンジン35は、マスタノードサーバ6から与えられたタスク実行要求に応じて、自ワーカノードサーバ内のストレージ装置12に格納されたデータベースデータに対する各種処理(検索、削除又は更新など)を実行する機能を有するソフトウェアである。この場合、データベースエンジン35は、かかるタスク実行要求において要求されたタスクの処理内容がフィルタ処理等を含む場合には、FPGAライブラリ36にそのフィルタ処理等の実行を依頼する。またデータベースエンジン35は、かかるタスク実行要求において指定されたタスクの実行結果をマスタノードサーバ6や他のワーカノードサーバ7に送信する。
FPGAライブラリ36は、データベースエンジン35、FPGAドライバ32及びLBA取得部37とそれぞれ通信を行うためのモジュールを備えて構成される。FPGAライブラリ36は、データベースエンジン35からフィルタ処理等の実行が依頼されると、LBA取得部37を介してファイルシステム33からそのフィルタ処理等の処理対象となるファイルが格納されているストレージ装置12の識別子(デバイス番号)と、当該ストレージ装置12内のそのファイルのデータが格納されている論理ブロックのLBAとを取得し、取得したこれらの情報を付加した処理コマンドをFPGAドライバ32を介してアクセラレータ14(図1)のFPGA16(図1)に送信する。またFPGAライブラリ36は、この後、FPGA16からFPGAドライバ32を介して与えられる当該処理コマンドに基づくフィルタ処理等の処理結果をデータベースエンジン35に通知する。
LBA取得部37は、FPGAライブラリ36からの要求に応じて、要求されたファイルのデータが格納されているストレージ装置12の識別子と、当該ストレージ装置12内のそのファイルのデータが格納されている論理ブロックのLBAとをファイルシステム33に問い合わせる機能を有するソフトウェアである。LBA取得部37は、かかる問合せの結果得られたストレージ装置12の識別子及びLBAをFPGAライブラリ36に通知する。
なお、ファイルシステム33が管理する上述のファイル保存位置管理テーブル38の構成例を図4に示す。ファイル保存位置管理テーブル38は、そのワーカノードサーバ7のストレージ装置12に格納されているデータベースデータの各ファイルの格納位置を管理するために利用されるテーブルであり、図4に示すように、ファイル名欄38A、デバイス番号欄38B、iノード番号欄38C及びLBAリスト欄38Dを備えて構成される。ファイル保存位置管理テーブル38では、1つのレコード(行)が1つのファイルに対応する。
そしてファイル名欄38Aには、そのワーカノードサーバ7のストレージ装置12に格納されているすべてのファイルのファイル名がそれぞれ格納される。またデバイス番号欄38Bには、対応するファイルが格納されたストレージ装置12の識別子(デバイス番号)が格納される。
さらにiノード番号欄38Cには、そのファイルを構成する各iノード(inode)にそれぞれ付与されたそれらのiノードに固有の識別子(iノード番号)が格納され、LBAリスト欄38Dには、対応するファイルの各iノードのデータがそれぞれ格納された各論理ブロックのLBAが格納される。なお、1つのiノードのデータが1つの論理ブロックに格納される(1つのiノード番号が1つのLBAに対応付けられる)。
またファイルシステム33が管理する上述の圧縮情報管理テーブル39の構成例を図5に示す。圧縮情報管理テーブル39は、そのワーカノードサーバ7のストレージ装置12の各論理ブロックに格納されたデータが圧縮されているか否かを管理するために利用されるテーブルであり、図5に示すように、LBA欄39A、圧縮フラグ欄39B、圧縮前データ長欄39C及び圧縮後データ長欄39Dを備えて構成される。圧縮情報管理テーブル39では、1つのレコード(行)が1つの論理ブロックに対応する。
そしてLBA欄39Aには、論理ブロックのLBAが格納され、圧縮フラグ欄39Bには、対応する論理ブロックに格納されているデータベースデータが圧縮されているか否かを表すフラグ(以下、これを圧縮フラグと呼ぶ)が格納される。本実施の形態の場合、圧縮フラグは、対応するファイルのデータが圧縮されてストレージ装置12に格納されている場合には「1」、当該データが圧縮されずにストレージ装置12に格納されている場合には「0」に設定される。
また圧縮前データ長欄39Cには、対応する論理ブロックに格納されたデータが圧縮されている場合に、当該データの圧縮前のデータ長が格納され、圧縮後データ長欄39Dには、そのデータの圧縮後のデータ長が格納される。なお、対応する論理ブロックに格納されたデータが圧縮されていない場合、圧縮後データ長欄39Dには、データが存在しないことを表す「Null」が格納される。
(1−2)ワーカノードサーバにおける処理の流れ
図6は、ワーカノードサーバ7において実行されるフィルタ処理等に関連する各処理の一連の流れを示す。
図6は、ワーカノードサーバ7において実行されるフィルタ処理等に関連する各処理の一連の流れを示す。
この図6に示すように、主記憶装置11に格納されるデータベースデータの各ファイルのデータD1は、通信装置13により第2のネットワーク8を介して所定のデータソースDSから取り込まれ、PCIeスイッチ15及びホストCPU10を介して主記憶装置11に格納される(S1)。そして、このデータD1は、この後、ホストCPU10により圧縮処理された後に(S2)、圧縮データD2としてストレージ装置12に格納される(S3)。
なお、ホストCPU10は、圧縮データD2をストレージ装置12に格納後、そのときデータD1を圧縮したデータベースデータのファイルごとに、そのファイル名と、圧縮データD2の格納先のストレージ装置12のデバイス番号と、当該ストレージ装置12における圧縮データD2の格納さきの各論理ブロックのLBAとをそれぞれファイル保存位置管理テーブル38に格納する。またホストCPU10は、ストレージ装置12におけるかかる圧縮データD2を格納した論理ブロックごとに、そのLBAと、圧縮の有無を表す圧縮フラグと、その論理ブロックに格納したデータD1の圧縮前後のデータ長とを圧縮情報管理テーブル39に格納する。
ホストCPU10は、この後、マスタノードサーバ6からタスク実行要求が与えられ、そのタスク実行要求で指示された処理がフィルタ処理等である場合には、これに応じた処理コマンドをPCIeスイッチ15を介してアクセラレータ14のFPGA16に送信する(S4)。
FPGA16は、かかる処理コマンドを受領すると、その処理コマンドに従ったフィルタ処理等の処理対象となるファイルの圧縮データD2をストレージ装置12からアクセラレータ14のメモリ17に読み出す(S5)。
またFPGA16は、メモリ17に読み出した圧縮データD2を伸張しながら処理コマンドにおいて指定されたフィルタ処理等を実行し、その処理結果のデータ(以下、これを処理結果データと呼ぶ)D3をメモリ17に格納する(S6)。さらにFPGA16は、この後、処理結果データD3をメモリ17から読み出してホストCPU10に送信する(S7)。
かくして、ホストCPU10は、このようにして得られた処理結果データD3をタスク実行要求の処理結果としてマスタノードサーバ6に送信する。
図7は、上述した図6のステップS4〜ステップS7のより詳しい処理の流れを示す。この図7では、マスタノードサーバ6からワーカノードサーバ7に与えられたタスク実行要求において要求されたタスクの内容がフィルタ処理及び集約処理であるものとしている。
そしてワーカノードサーバ7のホストCPU10は、かかるタスク実行要求がマスタノードサーバ6から与えられると、そのタスク実行要求において要求されたフィルタ処理及び集約処理に応じた処理コマンド40(図8)を生成する(S10)。
図8に示すように、この処理コマンド40は、コマンドフィールド40A、圧縮フラグフィールド40B、デバイス番号フィールド40C、LBAリストフィールド40D、圧縮後データ長フィールド40E及び圧縮前データ長フィールド40Fを備えたコマンドフォーマットを有する。
そしてコマンドフィールド40Aには、タスク実行要求において要求されたフィルタ処理等の具体的な内容(処理対象のファイルのファイル名を含む)が格納される。また圧縮フラグフィールド40Bには、かかるフィルタ処理等の処理対象のファイルのデータ(データベースデータ)が圧縮されてストレージ装置に格納されているか否かを表す圧縮フラグが格納される。圧縮フラグは、処理対象となるファイルのデータが圧縮されてストレージ装置12に格納されている場合には「1」に設定され、当該ファイルのデータが圧縮されずにストレージ装置12に格納されている場合には「0」に設定される。
デバイス番号フィールド40Cには、かかるフィルタ処理等の処理対象となるファイルのデータが格納されているストレージ装置12の識別子であるデバイス番号が格納され、LBAリストフィールド40Dには、そのストレージ装置12におけるそのファイルのデータが格納されているすべての論理ブロックのLBAが格納される。また圧縮後データ長フィールド40Eには、そのファイルのデータが圧縮されている場合の圧縮後の総データ長(圧縮後データ長)が格納され、圧縮前データ長フィールド40Fには、そのファイルのデータの圧縮前の総データ長(圧縮前データ長)が格納される。
ホストCPU10は、以上のような処理コマンド40のうち、デバイス番号及びLBAリストについては、タスク実行要求において指定された処理対象のファイルのファイル名をキーとしてファイル保存位置管理テーブル38を検索することにより取得して処理コマンド40のデバイス番号フィールド40CやLBAリストフィールド40Dに格納する。またホストCPU10は、圧縮フラグについては、ファイル保存位置管理テーブル38から取得したLBAリストに登録された各LBAに格納されているデータが圧縮されているか否かを圧縮情報管理テーブル39の対応する圧縮フラグ欄39Bに格納された圧縮フラグを参照して判定し、その判定結果に応じた値(「1」又は「0」)の圧縮フラグを処理コマンド40の圧縮フラグフィールド40Bに格納する。
さらにホストCPU10は、圧縮前データ長については、圧縮情報管理テーブル39(図5)における処理対象となるファイルのデータが格納された各論理ブロックに対応する各圧縮前データ長欄39Cにそれぞれ格納されたデータ長の総和として算出し、算出結果を処理コマンド40の圧縮前データ長フィールド40Fに格納する。同様に、ホストCPU10は、圧縮後データ長については、圧縮情報管理テーブル39(図5)における処理対象となるファイルのデータが格納された各論理ブロックに対応する各圧縮後データ長欄39Dにそれぞれ格納されたデータ長の総和として算出して、算出結果を処理コマンド40の圧縮後データ長フィールド40Eに格納する。
なお圧縮後データ長は、アクセラレータ14のI/O処理回路20がストレージ装置12から読み出した処理対象のファイルのデータを格納するために必要な容量の記憶領域をメモリ17上に確保するためや、伸張回路26が処理対象のデータをメモリ17からFPGA16内に設けられた図示しないメモリ(以下、これをFPGA内メモリと呼ぶ)に読み込むための記憶領域を当該FPGA内メモリ上に確保するために利用される。また、圧縮前データ長は、伸張回路26がFPGA内メモリに読み込んだデータを伸張した後に、伸張後のデータを格納するための記憶領域を当該FPGA内メモリ上に確保するために利用される。なお、かかるFPGA内メモリはスイッチ23に接続されており、伸張回路26やフィルタ処理回路21及び集約処理回路22による当該FPGA内メモリへのデータの読み書きは、スイッチ23を介して行われる。また、FPGA内メモリは、関係する2つの回路に直結されている場合もある。
図7に戻って、ホストCPU10は、ステップS10で上述のようにして処理コマンド40を生成すると、生成した処理コマンド40を主記憶装置11に格納すると共に(S11)、かかる処理コマンド40を主記憶装置11に格納した旨の通知(以下、これを処理コマンド格納通知と呼ぶ)をアクセラレータ14のFPGA16(図2)のI/O処理回路20に送信する(S12)。
I/O処理回路20は、かかる処理コマンド格納通知が与えられると、上述の処理コマンド40を主記憶装置11から読み出し(S13)、読み出した処理コマンド40のコマンドフィールド40Aに格納されたコマンドの内容を解析する(S14)。この際、I/O処理回路20は、処理コマンド40で指示されたフィルタ処理及び集約処理の対象となるファイルのファイル名を特定し、ファイル保存位置管理テーブル38(図4)におけるそのファイルのファイル名がファイル名欄38A(図4)に格納されたレコード(行)のLBAリスト欄38D(図4)から、そのファイルのデータが格納された各論理ブロックのLBAを取得する。
続いて、I/O処理回路20は、ステップS14でLBAを取得した、処理対象のファイルのデータが格納された論理ブロックごとのデータリードコマンドを順次生成し、生成したデータリードコマンドを処理コマンド40のデバイス番号フィールド40C(図8)に格納されたデバイス番号が付与されたストレージ装置12に順次送信する(S15)。この際、I/O処理回路20は、生成したデータリードコマンドをストレージ装置12に送信する前に、圧縮情報管理テーブル39(図5)におけるそのデータリードコマンドに対応する論理ブロックのLBAがLBA欄39Aに格納されたレコード(行)の圧縮前データ長欄39C(図5)を参照して、その圧縮前データ長欄39Cに格納されたデータ長と同じ容量の記憶領域をメモリ17上に確保し、その記憶領域のアドレスをデータリードコマンドに格納する。
ストレージ装置12は、データリードコマンドが送信されてくるごとに、そのデータリードコマンドにおいて指定された論理ブロックからデータを読み出し、読み出したデータを、アクセラレータ14のメモリ17におけるそのデータリードコマンドにおいて指定された記憶領域に書き込む(S16)。この際、ストレージ装置12は、1つの論理ブロックに格納されたデータをアクセラレータ14のメモリ17に書き込むごとに、リード完了通知をI/O処理回路20に送信する(S17)。
そしてI/O処理回路20は、処理対象となるファイルのデータがすべてストレージ装置12からメモリ17に転送されると、そのデータを伸張するよう伸張回路26に指示(以下、これを伸張指示と呼ぶ)を与える(S18)。またI/O処理回路20は、これと併せて、伸張回路26が伸張処理に必要な容量の記憶領域を上述のFPGA内メモリ上に確保できるようにするため、処理対象となるファイルの圧縮前後の各データ長を圧縮情報として伸張回路26に通知する(S19)。
さらにI/O処理回路20は、ホストCPU10からの処理コマンド40において指定されたフィルタ処理及び集約処理を実行すべき旨の指示(以下、これを処理実行指示と呼ぶ)をフィルタ処理回路21及び集約処理回路22に送信する(S20)。
かくして、ステップS18の伸張指示が与えられた伸張回路26は、メモリ17に転送された処理対象とするファイルのデータを所定単位で上述のFPGA内メモリに順次取り込み(S21)、取り込んだデータを伸張処理した後に当該FPGA内メモリを経由してフィルタ処理回路21に引き渡す(S22)。
またフィルタ処理回路21は、伸張回路26から引き渡されたデータ(処理対象とするファイルの伸張されたデータ)に対して、I/O処理回路20から指示されたフィルタ処理を実行し、処理結果をスイッチ23(図2)を介して集約処理回路22に送信する(S23)。
さらに集約処理回路22は、フィルタ処理回路21から与えられたフィルタ処理されたデータ(データベースデータ)に対して、I/O処理回路20から指示された集約処理を実行し(S24)、その処理結果をメモリ17に格納する(S25)。また集約処理回路22は、かかる集約処理が完了すると、I/O処理回路20に処理完了通知を送信する(S26)。
I/O処理回路20は、かかる処理完了通知を受領すると、メモリ17に格納されている集約処理の処理結果を読み出し、これをPCIeスイッチ15(図1)を介して主記憶装置11に転送すると共に(S27)、ホストCPU10に処理完了通知を送信する(S28)。
かくして、かかる処理完了通知を受領したホストCPU10は、この後、主記憶装置11に格納された集約処理の処理結果を読み出し、これをマスタノードサーバ6に送信する。
ここで、図7について上述した一連の処理のステップS10においてホストCPU10により実行される処理コマンド40の生成処理の具体的な処理内容を、図3について上述した各ソフトウェア間の処理の流れとして図9を用いて説明する。
なお、以下においては、各処理の処理主体を「ソフトウェア」として説明するが、実際上は、その「ソフトウェア」に基づいてホストCPU10がその処理を実行することは言うまでもない。また、データベースエンジン35、FPGAライブラリ36、LBA取得部37及びファイルシステム33間のコマンドやデータの受け渡しは主記憶装置11を介して行われるが、以下においては、主記憶装置11の存在を省略して説明する。
マスタノードサーバ6からフィルタ処理及び集約処理をタスクとして含むタスク実行要求がワーカノードサーバ7に与えられると、この図9に示す一連の処理が開始され、まず、データベースエンジン35がそのフィルタ処理及び集約処理の実行をFPGAライブラリ36に依頼する(S30)。またデータベースエンジン35は、さらに、かかるタスク実行要求において指示されたフィルタ処理及び集約処理の具体的な内容(処理対象となるファイルのファイル名を含む)をFPGAライブラリ36に通知する(S31)。
FPGAライブラリ36は、かかる処理内容がデータベースエンジン35から通知されると、処理対象となるファイルのファイル名をLBA取得部37に通知する(S32)。またLBA取得部37は、かかるファイル名が通知されると、当該ファイル名をファイルシステム33に通知する(S33)。
そしてファイルシステム33は、かかるファイル名が通知されると、ファイル保存位置管理テーブル38(図4)を参照して、そのファイル名のファイルのデータが格納されているストレージ装置12の識別子(デバイス番号)と、そのストレージ装置12におけるそのファイルのデータが格納されている論理ブロックのブロック数とを取得する。具体的に、ファイルシステム33は、ファイル保存位置管理テーブル38(図4)においてそのファイル名がファイル名欄38A(図4)に格納されたレコード(行)のデバイス番号欄38B(図4)に格納されているデバイス番号を取得すると共に、当該レコードのLBAリスト欄38Dに格納されているLBAの数をカウントすることにより、かかるブロック数を取得する。そしてファイルシステム33は、このようにして取得したデバイス番号及びブロック数をLBA取得部37に通知する(S34)。
さらにファイルシステム33は、ファイル保存位置管理テーブル38(図4)及び圧縮情報管理テーブル39を参照して、図10に示すようなLBAリスト41を生成してLBA取得部37に通知する(S35)。
具体的に、ファイルシステム33は、ファイル保存位置管理テーブル38におけるステップS33でFPGAライブラリ36から通知されたファイル名に対応するレコード(行)のLBAリスト欄38Dに格納されているLBAをすべて読み出す。またファイルシステム33は、読み出したLBAごとに、圧縮情報管理テーブル39におけるそのLBAがLBA欄39A(図5)に格納されているレコードの圧縮前データ長欄39Cに格納されているデータ長を読み出し、これらLBAとこれらデータ長とをそれぞれ対応付けた図10のLBAリスト41を生成する。そしてファイルシステム33は、このようにして生成したLBAリスト41をLBA取得部37に通知する。
そして、かかるLBAリスト41を受領したLBA取得部37は、このLBAリスト41をFPGAライブラリ36に通知する(S36)。
またFPGAライブラリ36は、かかるLBAリスト41を受領すると、このLBAリスト41と、ファイル保存位置管理テーブル38(図4)及び圧縮情報管理テーブル39(図5)とに基づいて図8について上述した処理コマンド40を上述のように生成する(S37)。以上により、図7のステップS10の処理が終了する。
(1−3)本実施の形態の効果
以上のように本実施の形態では、ワーカノードサーバ7において、ストレージ装置12に格納された圧縮されたデータを圧縮されたままの状態でアクセラレータ14に転送し、アクセラレータ14においてそのデータを伸張しながら当該データに対するフィルタ処理等を実行する。
以上のように本実施の形態では、ワーカノードサーバ7において、ストレージ装置12に格納された圧縮されたデータを圧縮されたままの状態でアクセラレータ14に転送し、アクセラレータ14においてそのデータを伸張しながら当該データに対するフィルタ処理等を実行する。
従って、本実施の形態によれば、ストレージ装置12及びアクセラレータ14間においてデータを圧縮して転送するため、当該データを圧縮せずに転送する場合と比べて転送データ量も少なく、その分、ストレージ装置12及びアクセラレータ14間のネットワーク帯域がボトルネックとなって処理が遅くなる可能性を低減できる。また本実施の形態によれば、アクセラレータ14内においてデータを伸張しながらメモリ17を介在させることなくフィルタ処理回路21や集約処理回路22においてフィルタ処理や集約処理を実行するため、伸張されたデータをメモリ17に保存しておく必要がなく、その分、アクセラレータ14内のメモリ容量やメモリチャネルの帯域がボトルネックとなって処理が遅くなる事態の発生を有効に回避することができる。よって、本実施の形態によれば、処理性能の高いワーカノードサーバ7を実現できる。
(2)第2の実施の形態
図1との対応部分に同一符号を付した図11は、第1の実施の形態のワーカノードサーバ7に代えて、図1の情報処理システム1に適用される第2の実施の形態によるワーカノードサーバ50を示す。
図1との対応部分に同一符号を付した図11は、第1の実施の形態のワーカノードサーバ7に代えて、図1の情報処理システム1に適用される第2の実施の形態によるワーカノードサーバ50を示す。
このワーカノードサーバ50は、データソースDSから取り込んだデータベースデータの各ファイルのデータD1をストレージ装置51において圧縮処理する点と、その結果として、圧縮情報管理テーブル39が主記憶装置11ではなくストレージ装置51に格納されている点とを除いて第1の実施の形態によるワーカノードサーバ7と同様に構成されている。
実際上、本実施の形態のワーカノードサーバ50では、図11に示すように、データベースデータが格納された各ファイルのデータD1を、通信装置13により第2のネットワーク8を介して所定のデータソースDSから取り込み、これをPCIeスイッチ15を介してストレージ装置51に格納する(S40)。
ストレージ装置51は、記憶領域を提供する記憶装置(本実施の形態においては、上述のようにSSD)と、記憶装置に対するデータの読書きを制御するコントローラ52を備える。このコントローラ52は、CPU及びメモリ等の情報処理資源を備えるマイクロコンピュータとして構成される。そして、コントローラ52は、通信装置13から各ファイルのデータD1が書き込まれると、そのデータD1を圧縮処理し、かくして得られた圧縮データD2をストレージ装置51内のSSDに書き込む(S41)。
この際、コントローラ52は、そのデータD1を書き込んだ記憶装置上の論理ブロックのLBAや、圧縮の有無及びそのデータの圧縮前後のデータ長といった情報を圧縮情報管理テーブル39(図1)に書き込む。またコントローラ52は、データD1を書き込んだ記憶装置上の各論理ブロックのLBAやストレージ装置51のデバイス番号をPCIeスイッチ15を介してホストCPU10に通知する。
一方、ホストCPU10は、この後、マスタノードサーバ6からタスク実行要求が与えられ、そのタスク実行要求で指示された処理がフィルタ処理等である場合には、これに応じた処理コマンドをPCIeスイッチ15を介してアクセラレータ14のFPGA16に送信する(S42)。
FPGA16は、かかる処理コマンド40を受領すると、その処理コマンドに従ったフィルタ処理等の処理対象となるファイルの圧縮データD2をストレージ装置51からアクセラレータ14のメモリ17に読み出す(S43)。
またFPGA16は、メモリ17に読み出した圧縮データD2を伸張しながら処理コマンドにおいて指定されたフィルタ処理等を実行し、かくして得られた処理結果データD3をメモリ17に格納する(S44)。さらにFPGA16は、この後、処理結果データD3をメモリ17から読み出してホストCPU10に送信する(S45)。
かくして、ホストCPU10は、このようにして得られた処理結果データD3をタスク実行要求の処理結果としてマスタノードサーバ6に送信する。
図12は、上述した図11のステップS42〜ステップS45のより詳しい処理の流れを示す。この図12では、マスタノードサーバ6からワーカノードサーバ50に与えられたタスク実行要求において指示されたタスクの内容がフィルタ処理及び集約処理であるものとしている。
そしてワーカノードサーバ50のホストCPU10は、かかるタスク実行要求がマスタノードサーバ6から与えられると、そのタスク実行要求において指示されたフィルタ処理及び集約処理に応じた処理コマンド60(図13)を生成する(S50)。
図13に示すように、この処理コマンド60は、コマンドフィールド60A、デバイス番号フィールド60B、LBAリストフィールド60C及びデータ長フィールド60Dを備えたコマンドフォーマットを有する。
そしてコマンドフィールド60Aには、タスク実行要求において指示されたフィルタ処理等の具体的な内容が格納され、デバイス番号フィールド60Bには、かかるフィルタ処理等の処理対象となるファイルのデータが格納されているストレージ装置51の識別子であるデバイス番号が格納される。
またLBAリストフィールド60Cには、そのストレージ装置51におけるそのファイルのデータが格納されているすべての論理ブロックのLBAが格納され、データ長フィールド60Dには、そのファイルの圧縮前のデータのデータ長が格納される。
ホストCPU10は、以上のような処理コマンド60のうち、デバイス番号及びLBAリストについては、タスク実行要求において指定された処理対象のファイルのファイル名をキーとしてファイル保存位置管理テーブル38(図4)を検索することにより取得して処理コマンド60のデバイス番号フィールド60BやLBAリストフィールド60Cに格納する。またホストCPU10は、データ長については、かかるLBAリストに登録されているLBAの数(論理ブロックの数)に1つの論理ブロックのブロック長(4096バイト)を乗算した乗算結果をデータ長フィールド60Dに格納する。
なお、この処理コマンド60と、第1の実施の形態の処理コマンド40(図8)との違いは、本実施の形態の処理コマンド60が圧縮フラグと、処理対象とするファイルの圧縮前後のデータ長の情報(圧縮前データ長及び圧縮後データ長)とを含まない点にある。
これは、本実施の形態の場合、上述のようにストレージ装置51において各ファイルのデータを圧縮処理しており、これに伴って圧縮情報管理テーブル39もストレージ装置51に格納され、主記憶装置11には格納されていないため、ホストCPU10が各ファイルのデータの圧縮に関する情報を保持していないことによる。
この後、本実施の形態のワーカノードサーバ50では、ステップS51〜ステップS55において、図7のステップS11〜ステップS15と同様の処理が実行される。
そしてストレージ装置51のコントローラ52は、ステップS55においてI/O処理回路20から処理対象とするファイルの圧縮データ(圧縮データベースデータ)が格納された論理ブロックごとのデータリードコマンドが与えられるごとに、それぞれ図14に示すような圧縮情報61をI/O処理回路20に通知する(S56)。
この圧縮情報61は、そのストレージ装置51のデバイス番号(「デバイス番号61A」)と、対応するデータリターンコマンドで指定された論理ブロックのLBA(「LBA61B」)と、そのLBAの論理ブロックに格納されたデータベースデータの圧縮後のデータ長(「圧縮後データ長61C」)と、当該データベースデータの圧縮前のデータ長(「圧縮前データ長61D」)との各情報から構成されるものである。
かくして、I/O処理回路20は、ストレージ装置51から圧縮情報61が送られてくると、その圧縮情報61に基づいて、必要な容量の記憶領域をメモリ17上に確保し、その記憶領域にデータを書き込むようストレージ装置51に指示を与える。
そして、ストレージ装置51は、この指示が与えられると、そのデータリードコマンドにおいて指定された論理ブロックに格納されているデータをアクセラレータ14のメモリ17における、上述のようにして指示された記憶領域に書込み(S57)、その後、リード完了通知をI/O処理回路20に送信する(S58)。
そして本実施の形態のワーカノードサーバ50では、この後、ステップS59〜ステップS69が、図7のステップS18〜ステップS28と同様に実行される。
以上のように本実施の形態のワーカノードサーバ50では、データベースデータをストレージ装置51において圧縮し、圧縮したデータを圧縮した状態のままアクセラレータ14に転送するため、第1の実施の形態と同様の効果を得ることができる。加えて、本実施の形態では、データソースDSから取得したデータベースデータの圧縮処理をストレージ装置51で行うため、かかる圧縮処理に関する負荷からホストCPU10を開放することができ、その分、ホストCPU10の処理能力を他の処理に振り分けることができる。かくするにつき、本実施の形態によれば、より第1の実施の形態よりもさらに処理能力の高いワーカノードサーバ50を実現することができる。
(3)他の実施の形態
なお上述の第1及び第2の実施の形態においては、本発明を分散データベースシステム4のワーカノードサーバ7に適用するようにした場合について述べたが、本発明はこれに限らず、アクセラレータが実装されたこの他種々の情報処理装置に広く適用することができる。この場合、アクセラレータにおいて実行される処理は、フィルタ処理や集約処理以外の処理であってもよい。
なお上述の第1及び第2の実施の形態においては、本発明を分散データベースシステム4のワーカノードサーバ7に適用するようにした場合について述べたが、本発明はこれに限らず、アクセラレータが実装されたこの他種々の情報処理装置に広く適用することができる。この場合、アクセラレータにおいて実行される処理は、フィルタ処理や集約処理以外の処理であってもよい。
また上述の第1及び第2の実施の形態においては、伸張回路26をI/O処理回路20の一部として構成するようにした場合について述べたが、本発明はこれに限らず、伸張回路26及びI/O処理回路20を物理的に別個に構成するようにしてもよい。
さらに上述の第1及び第2の実施の形態においては、外部から要求されたタスクに含まれるフィルタ処理等の実行をアクセラレータ14に要求するホスト制御部の機能をホストCPU10に搭載するようにした場合について述べたが、本発明はこれに限らず、かかるホスト制御部としての機能を有する回路をホストCPU10とは物理的に別個に設けるようにしてもよい。
本発明はデータに対する所定処理を実行するアクセラレータが搭載された種々の構成の情報処理装置に広く適用することができる。
1……情報処理システム、2……クライアント、3……アプリケーションサーバ、4……分散データベースシステム、6……マスタノードサーバ、7,50……ワーカノードサーバ、10……ホストCPU、11……主記憶装置、12,51……ストレージ装置、14……アクセラレータ、16……FPGA、17……メモリ、20……I/O処理回路、21……フィルタ処理回路、22……集約処理回路、26……伸張回路、38……ファイル保存位置管理テーブル、39……圧縮情報管理テーブル、40,60……処理コマンド、52……コントローラ。
Claims (13)
- データに対する所定処理を実行するアクセラレータが搭載された情報処理装置において、
データを記憶保持するストレージ装置と、
外部から要求されたタスクに含まれる前記所定処理の実行を前記アクセラレータに要求するホスト制御部と
を備え、
前記データは圧縮されて前記ストレージ装置に格納され、
前記アクセラレータは、
前記ホスト制御部からの要求に応じて、前記ストレージ装置に格納された前記データのうちの処理対象の前記データを読み込み、読み込んだ前記データを伸張しながら、当該データに対する前記所定処理を実行する
ことを特徴とする情報処理装置。 - 前記アクセラレータは、
当該アクセラレータにデータを入出力する入出力回路と、
圧縮されたデータを伸張する伸張回路と、
前記所定処理を実行する処理回路と、
データを記憶保持するメモリと
を備え、
前記入出力回路は、
前記ホスト制御部からの要求に応じて、前記ストレージ装置から処理対象の前記データを読み出して前記メモリに格納し、
前記伸張回路は、
前前記メモリに格納された処理対象の前記データを伸張して前記処理回路に転送し、
前記処理回路は、
前記伸張回路から転送された伸張された前記データに対して前記所定処理を実行し、当該所定処理の処理結果を前記メモリに格納し、
前記入出力回路は、
前記メモリに格納された前記所定処理の処理結果を前記ホスト制御部に送信する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
外部から取り込んだ前記データを圧縮して前記ストレージ装置に格納する
ことを特徴とする請求項2に記載の情報処理装置。 - 前記ホスト制御部は、
前記所定処理の実行を前記アクセラレータに要求する際、処理対象の前記データの圧縮後のデータ長をそれぞれ前記アクセラレータの入出力回路に通知し、
当該入出力回路は、
前記ホスト制御部から通知された前記データの圧縮後のデータ長に応じて、必要な容量の記憶領域を前記メモリ上に確保する
ことを特徴とする請求項3に記載の情報処理装置。 - 外部のデータソースから前記データを取り込んで前記ストレージ装置に転送する通信装置をさらに備え、
前記ストレージ装置は、
記憶領域を提供する記憶装置と、
前記記憶装置に対するデータの読書きを制御するコントローラと
を備え、
前記コントローラは、
前記通信装置から転送されてきた前記データを圧縮して前記記憶装置に格納する
ことを特徴とする請求項2に記載の情報処理装置。 - 前記コントローラは、
前記アクセラレータの前記入出力回路が処理対象の前記データを読み出す際に、当該データの圧縮後のデータ長を前記入出力回路に通知し、
当該入出力回路は、
前記コントローラから通知された圧縮後の前記データのデータ長に応じて、必要な容量の記憶領域を前記メモリ上に確保する
ことを特徴とする請求項5に記載の情報処理装置。 - データに対する所定処理を実行するアクセラレータが搭載された情報処理装置において実行される情報処理方法であって、
前記情報処理装置は、
データを記憶保持するストレージ装置と、
外部から要求されたタスクに含まれる前記所定処理の実行を前記アクセラレータに要求するホスト制御部と
を有し、
前記データを圧縮して前記ストレージ装置に格納する第1のステップと、
前記アクセラレータが、前記ホスト制御部からの要求に応じて、前記ストレージ装置に格納された前記データのうちの処理対象の前記データを読み込み、読み込んだ前記データを伸張しながら、当該データに対する前記所定処理を実行する第2のステップと
を備えることを特徴とする情報処理方法。 - 前記アクセラレータは、
当該アクセラレータにデータを入出力する入出力回路と、
圧縮されたデータを伸張する伸張回路と、
前記所定処理を実行する処理回路と、
データを記憶保持するメモリと
を有し、
前記第2のステップでは、
前記入出力回路が、前記ホスト制御部からの要求に応じて、前記ストレージ装置から処理対象の前記データを読み出して前記メモリに格納し、
前記伸張回路が、前前記メモリに格納された処理対象の前記データを伸張して前記処理回路に転送し、
前記処理回路が、前記伸張回路から転送された伸張された前記データに対して前記所定処理を実行し、当該所定処理の処理結果を前記メモリに格納し、
前記入出力回路が、前記メモリに格納された前記所定処理の処理結果を前記ホスト制御部に送信する
ことを特徴とする請求項7に記載の情報処理方法。 - 前記第1のステップでは、
前記ホスト制御部が、外部から取り込んだ前記データを圧縮して前記ストレージ装置に格納する
ことを特徴とする請求項8に記載の情報処理方法。 - 前記ホスト制御部は、
前記所定処理の実行を前記アクセラレータに要求する際、処理対象の前記データの圧縮後のデータ長をそれぞれ前記アクセラレータの入出力回路に通知し、
前記第2のステップにおいて、前記入出力回路は、
前記ホスト制御部から通知された圧縮後の前記データのデータ長に応じて、必要な容量の記憶領域を前記メモリ上に確保する
ことを特徴とする請求項9に記載の情報処理方法。 - 前記情報処理装置は、
外部のデータソースから前記データを取り込んで前記ストレージ装置に転送する通信装置をさらに有し、
前記ストレージ装置は、
記憶領域を提供する記憶装置と、
前記記憶装置に対するデータの読書きを制御するコントローラと
を有し、
前記第1のステップにおいて、前記コントローラは、
前記通信装置から転送されてきた前記データを圧縮して前記記憶装置に格納する
ことを特徴とする請求項8に記載の情報処理方法。 - 前記第2のステップにおいて、
前記コントローラは、
前記アクセラレータの前記入出力回路が処理対象の前記データを読み出す際に、当該データの圧縮後のデータ長を前記入出力回路に通知し、
当該入出力回路は、
前記コントローラから通知された圧縮後の前記データのデータ長に応じて、処理に必要な容量の記憶領域を前記メモリ上に確保する
ことを特徴とする請求項11に記載の情報処理方法。 - 情報処理装置において、
データを記憶保持するストレージ装置と、
データに対する所定処理を実行するアクセラレータと、
外部から要求されたタスクに含まれる前記所定処理の実行を前記アクセラレータに要求するホスト制御部と
を有し、
前記データは圧縮されて前記ストレージ装置に格納され、
前記アクセラレータは、
当該アクセラレータにデータを入出力する入出力回路と、
圧縮されたデータを伸張する伸張回路と、
前記所定処理を実行する処理回路と、
データを記憶保持するメモリと
を備え、
前記入出力回路は、
前記ホスト制御部からの要求に応じて、前記ストレージ装置から処理対象の前記データを読み出して前記メモリに格納し、
前記伸張回路は、
前前記メモリに格納された処理対象の前記データを伸張して前記処理回路に転送し、
前記処理回路は、
前記伸張回路から転送された伸張された前記データに対して前記所定処理を実行し、当該所定処理の処理結果を前記メモリに格納し、
前記入出力回路は、
前記メモリに格納された前記所定処理の処理結果を前記ホスト制御部に送信する
ことを特徴とする情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/013294 WO2018179243A1 (ja) | 2017-03-30 | 2017-03-30 | 情報処理装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2018179243A1 true JPWO2018179243A1 (ja) | 2019-06-27 |
Family
ID=63674363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019508027A Pending JPWO2018179243A1 (ja) | 2017-03-30 | 2017-03-30 | 情報処理装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190196746A1 (ja) |
JP (1) | JPWO2018179243A1 (ja) |
WO (1) | WO2018179243A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11340603B2 (en) | 2019-04-11 | 2022-05-24 | Raytheon Company | Behavior monitoring using convolutional data modeling |
US11507847B2 (en) | 2019-07-25 | 2022-11-22 | Raytheon Company | Gene expression programming |
US11436537B2 (en) | 2018-03-09 | 2022-09-06 | Raytheon Company | Machine learning technique selection and improvement |
US11321462B2 (en) | 2018-04-10 | 2022-05-03 | Raytheon Company | Device behavior anomaly detection |
US11381599B2 (en) | 2018-04-10 | 2022-07-05 | Raytheon Company | Cyber chaff using spatial voting |
WO2019199777A1 (en) | 2018-04-10 | 2019-10-17 | Raytheon Company | Encryption using spatial voting |
US10795729B2 (en) * | 2018-04-28 | 2020-10-06 | Cambricon Technologies Corporation Limited | Data accelerated processing system |
US10937465B2 (en) * | 2019-02-21 | 2021-03-02 | Raytheon Company | Anomaly detection with reduced memory overhead |
US11341235B2 (en) | 2019-02-21 | 2022-05-24 | Raytheon Company | Anomaly detection with adaptive auto grouping |
JP7314674B2 (ja) * | 2019-07-18 | 2023-07-26 | 住友電気工業株式会社 | Ponシステム及び通信装置 |
JP7197541B2 (ja) * | 2020-04-01 | 2022-12-27 | 株式会社日立製作所 | ストレージ装置 |
US11360669B2 (en) | 2020-04-01 | 2022-06-14 | Hitachi, Ltd. | Storage device accelerator providing aggregation of divided plaintext data |
KR102607421B1 (ko) * | 2020-04-27 | 2023-11-29 | 한국전자통신연구원 | 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법 |
US11451839B1 (en) * | 2021-03-23 | 2022-09-20 | Open Text Holdings, Inc. | System and method for client side compression in a content management environment |
CN115857805B (zh) * | 2022-11-30 | 2023-06-27 | 合肥腾芯微电子有限公司 | 人工智能可计算存储系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009048352A (ja) * | 2007-08-17 | 2009-03-05 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索装置、情報検索方法および情報検索プログラム |
US20140032509A1 (en) * | 2012-07-24 | 2014-01-30 | International Business Machines Corporation | Accelerated row decompression |
WO2015145647A1 (ja) * | 2014-03-27 | 2015-10-01 | 株式会社日立製作所 | ストレージ装置とデータ処理方法及びストレージシステム |
WO2015162755A1 (ja) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | データを圧縮して格納するストレージ装置 |
WO2015181902A1 (ja) * | 2014-05-28 | 2015-12-03 | 株式会社日立製作所 | 計算機システムおよび計算機システム制御方法 |
WO2016135875A1 (ja) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | 情報処理装置 |
WO2017013758A1 (ja) * | 2015-07-22 | 2017-01-26 | 株式会社日立製作所 | データベース検索システム及びデータベース検索方法 |
-
2017
- 2017-03-30 US US16/329,639 patent/US20190196746A1/en not_active Abandoned
- 2017-03-30 WO PCT/JP2017/013294 patent/WO2018179243A1/ja active Application Filing
- 2017-03-30 JP JP2019508027A patent/JPWO2018179243A1/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009048352A (ja) * | 2007-08-17 | 2009-03-05 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索装置、情報検索方法および情報検索プログラム |
US20140032509A1 (en) * | 2012-07-24 | 2014-01-30 | International Business Machines Corporation | Accelerated row decompression |
WO2015145647A1 (ja) * | 2014-03-27 | 2015-10-01 | 株式会社日立製作所 | ストレージ装置とデータ処理方法及びストレージシステム |
WO2015162755A1 (ja) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | データを圧縮して格納するストレージ装置 |
WO2015181902A1 (ja) * | 2014-05-28 | 2015-12-03 | 株式会社日立製作所 | 計算機システムおよび計算機システム制御方法 |
WO2016135875A1 (ja) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | 情報処理装置 |
WO2017013758A1 (ja) * | 2015-07-22 | 2017-01-26 | 株式会社日立製作所 | データベース検索システム及びデータベース検索方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190196746A1 (en) | 2019-06-27 |
WO2018179243A1 (ja) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2018179243A1 (ja) | 情報処理装置及び方法 | |
US20200084274A1 (en) | Systems and methods for efficient distribution of stored data objects | |
CN109074362B (zh) | 分布式系统中的拆分和移动范围 | |
US9971823B2 (en) | Dynamic replica failure detection and healing | |
US11010103B2 (en) | Distributed batch processing of non-uniform data objects | |
JP6211196B2 (ja) | 自律的メモリ検索のための方法及びシステム | |
CN105208135B (zh) | 一种文件传输方法和设备 | |
JP6807963B2 (ja) | 情報処理システム及び情報処理方法 | |
US10810174B2 (en) | Database management system, database server, and database management method | |
CN111488242B (zh) | 将条带化备份加标签和路由到重复数据删除设备上的单个重复数据删除实例的方法和系统 | |
US11138004B1 (en) | Modification of application functionality using object-oriented configuration data | |
US11797556B2 (en) | Database management service provision system | |
US8677363B2 (en) | Method for managing, tracking and distributing job programs for processing to a plurality of execution computers | |
US20150269086A1 (en) | Storage System and Storage Method | |
US10621163B2 (en) | Tracking and reusing function results | |
JP2005165610A (ja) | トランザクション処理システムおよび方法 | |
US11907162B2 (en) | Minimizing data volume growth under encryption changes | |
CN116107733A (zh) | 计算机系统及计算机系统的横向扩展方法 | |
JP6688433B2 (ja) | 計算機システム | |
JP5031538B2 (ja) | データ分配方法、データ分配プログラム、及び並列データベースシステム | |
JP6568232B2 (ja) | 計算機システム、及び、装置の管理方法 | |
US11822580B2 (en) | System and method for operating a digital storage system | |
US20240028462A1 (en) | System and method for parallelization backup of a folder including a large set of files stored in a network attached storage | |
US20240028476A1 (en) | System and method for performing backups of multiple versions of a file stored in a network attached storage system | |
US20240028473A1 (en) | System and method for optimizing network attached storage backup of a large set of files based on resource availability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190918 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200204 |