(57)【要約】  情報処理装置は、書込制御部と、複数のデータ探索部と、出力順序制御部とを備え、書込制御部は、ストリームデータに含まれる入力データを複数のデータ探索部に対して順番に周期的に割り当て、複数のデータ探索部は、割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力し、出力順序制御部は、複数のデータ探索部から出力された入力データを、書込制御部による割り当て状況に応じてストリームデータにおける入力データの順序にソートし、複数のデータ探索部から出力された入力データと検索データをソート後の順序で結合して出力する。ストリームデータの結合処理を、結合処理の前後におけるデータの順序を保ちつつ高速化する。
2014163072.tif 000002
【特許請求の範囲】
【請求項１】
書込制御部と、複数のデータ探索部と、出力順序制御部とを備え、
前記書込制御部は、ストリームデータに含まれる入力データを前記複数のデータ探索部に対して順番に周期的に割り当て、
前記複数のデータ探索部は、割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記書込制御部による割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートし、前記複数のデータ探索部から出力された入力データと前記検索データを前記ソート後の順序で結合して出力する、情報処理装置。
【請求項２】
前記書込制御部は、前記ストリームデータに含まれる入力データを最後に割り当てたデータ探索部を前記出力順序制御部に通知し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記通知に基づいて、前記ストリームデータにおける入力データの順序にソートする、請求項１に記載の情報処理装置。
【請求項３】
前記書込制御部は、前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化するカウンタを有し、前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数のデータ探索部に割り当てる、請求項１または２に記載の情報処理装置。
【請求項４】
前記書込制御部は、前記カウント値を前記出力順序制御部に通知し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートする、請求項３に記載の情報処理装置。
【請求項５】
コンピュータが、ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当てる工程と、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートする工程と、
前記複数の処理ノードから出力された入力データと前記検索データを前記ソート後の順序で結合して出力する工程と、を含む、情報処理方法。
【請求項６】
前記コンピュータは、前記ストリームデータに含まれる入力データを最後に割り当てた処理ノードを示す情報に基づいて、前記複数の処理ノードから出力された入力データを、前記ストリームデータにおける入力データの順序にソートする、請求項５に記載の情報処理方法。
【請求項７】
前記コンピュータが、前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化する工程をさらに含み、
前記コンピュータは、前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数の処理ノードに割り当てる、請求項５または６に記載の情報処理方法。
【請求項８】
前記コンピュータは、前記複数の処理ノードから出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートする、請求項７に記載の情報処理方法。
【請求項９】
ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当てる処理と、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートする処理と、
前記複数の処理ノードから出力された入力データと前記検索データを前記ソート後の順序で結合して出力する処理と、をコンピュータに実行させる、プログラム。
【請求項１０】
前記ストリームデータに含まれる入力データを最後に割り当てた処理ノードを示す情報に基づいて、前記複数の処理ノードから出力された入力データを、前記ストリームデータにおける入力データの順序にソートする処理を、前記コンピュータに実行させる、請求項９に記載のプログラム。
【請求項１１】
前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化する処理と、
前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数の処理ノードに割り当てる処理と、を前記コンピュータに実行させる、請求項９または１０に記載のプログラム。
【請求項１２】
前記複数の処理ノードから出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートする処理を、前記コンピュータに実行させる、請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１３−０７６１１４号（２０１３年４月１日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、情報処理装置、情報処理方法およびプログラムに関し、特に、ストリームデータの結合処理を行う情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、センサ、端末等の情報源から時々刻々と得られるデータ（ストリームデータ、時系列データ）を処理することで、社会インフラのスマート化（例えば、構造物の劣化診断、交通渋滞の解消等）を図る情報処理技術が進展しつつある。【０００３】
ストリームデータを扱う上で必要とされる処理の１つとして、「結合（join）」処理と呼ばれる処理がある。結合処理とは、検索データに含まれる検索ＩＤを鍵として、過去に受信した限られた範囲のストリームデータの中から、検索データと同一の検索ＩＤを有するデータを検索し、ストリームデータから検索されたデータと検索データとを結合して、過去に受信したストリームデータ中のデータの順に出力する処理をいう。結合処理の具体例として、銘柄という検索ＩＤを鍵として、過去１０分以内の株価の値上がり率と、現在の株価データとを結合する処理があげられる。一般に、ストリームデータは時々刻々と高速に流入するため、結合処理に含まれる検索処理を高速化することが求められる。【０００４】
図７は、ストリームデータの結合処理を行う情報処理装置の構成を一例として示すブロック図である。図７を参照すると、情報処理装置は、線形探索部１１０、線形格納部１２０、および、記憶部１３０を備えている。【０００５】
線形探索部１１０は、検索データ１００を元に、記憶部１３０が保持する過去に受信したストリームデータ列から、線形に、すなわち、先頭から順にデータを読み出して、検索データ１００に含まれる検索ＩＤと同一の検索ＩＤを有するデータを探す。線形格納部１２０は、新規に到着した入力データ２００を、ストリームデータ列を保持する記憶部に線形に書き込む。また、線形格納部１２０は、新規に書き込んだ入力データ２００のストリームデータ列における位置を線形探索部１１０に通知する。線形探索部１１０は、線形格納部１２０からの通知に基づいて、最古のデータがどこにあるかを判断する。【０００６】
かかる情報処理装置によると、データが線形に探索されるため、上記の結合処理の要件のうちの、過去に受信したストリームデータ列の出力順序を維持するという要件を実現し易いという利点がある。【０００７】
一例として、非特許文献１には、図７に示した情報処理装置と同様の方式に基づくデータストリーム処理装置が記載されている。【０００８】
また、特許文献１には、ストリームデータを並列処理する複数の処理ノードと制御ノードとを備えたシステムが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−２５１７６９号公報
【非特許文献】
【００１０】
【非特許文献１】寺田祐太、三好健文、川島英之、吉永努、「FPGAを用いたデータストリームに対するウィンドウジョインの検討」、電子情報通信学会技報 VLD2010-111, CPSY2010-60, RECONF2010-80 (2011-01), pp. 181-186
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記の特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。【００１２】
図７に示した情報処理装置は、データを線形に探索する。したがって、図７に示した情報処理装置によると、過去に受信したストリームデータ列のうちの参照すべきストリームデータ列の数が増えると探索時間が増大し、ストリームデータをリアルタイムに処理できなくなるおそれがある。【００１３】
また、特許文献１に記載されたシステムでは、制御ノードがストリームデータを転送した順序と転送先の処理ノードとを対にして記憶しておいて、ストリームデータを転送した順序で、処理ノードの処理結果を並べる。これにより、ストリームデータの順序が保たれる。しかしながら、かかる構成によると、ストリームデータを転送した順序と転送先の処理ノードとの対から成る情報を記憶するための記憶領域を制御ノードに設ける必要が生じる。また、制御ノードが当該情報を参照して処理ノードの処理結果を並べ替える処理がボトルネックとなるおそれもある。【００１４】
そこで、ストリームデータの結合処理を、結合処理の前後におけるデータの順序を保ちつつ高速化することが要望される。本発明の目的は、かかる要望に寄与する情報処理装置、情報処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明の第１の視点に係る情報処理装置は、
書込制御部と、複数のデータ探索部と、出力順序制御部とを備え、
前記書込制御部は、ストリームデータに含まれる入力データを前記複数のデータ探索部に対して順番に周期的に割り当て、
前記複数のデータ探索部は、割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記書込制御部による割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートし、前記複数のデータ探索部から出力された入力データと前記検索データをソート後の順序で結合して出力する。【００１６】
本発明の第２の視点に係る情報処理方法は、
コンピュータが、ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当てる工程と、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートする工程と、
前記複数の処理ノードから出力された入力データと前記検索データをソート後の順序で結合して出力する工程と、を含む。【００１７】
本発明の第３の視点に係るプログラムは、
ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当てる処理と、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートする処理と、
前記複数の処理ノードから出力された入力データと前記検索データを前記ソート後の順序で結合して出力する処理と、をコンピュータに実行させる。
なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００１８】
本発明に係る情報処理装置、情報処理方法およびプログラムによると、ストリームデータの結合処理を、結合処理の前後におけるデータの順序を保ちつつ高速化することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態に係る情報処理装置の構成を一例として示すブロック図である。
【図２】一実施形態に係る情報処理装置をコンピュータと複数の処理ノードとして実現した場合の構成を一例として示すブロック図である。
【図３】第１の実施形態に係る情報処理装置の構成を一例として示すブロック図である。
【図４】第１の実施形態におけるデータ形式を一例として示す図である。
【図５】第１の実施形態に係る情報処理装置のデータ探索部の構成を一例として示すブロック図である。
【図６】第１の実施形態に係る情報処理装置の出力順序制御部の構成を一例として示すブロック図である。
【図７】関連技術に係る情報処理装置の構成を一例として示すブロック図である。
【発明を実施するための形態】
【００２０】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２１】
図１は、一実施形態に係る情報処理装置の構成を一例として示すブロック図である。図１を参照すると、情報処理装置は、書込制御部３０と、複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）と、出力順序制御部２０とを備えている。
【００２２】
書込制御部３０は、ストリームデータに含まれる入力データを複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）に対して順番に周期的に（すなわち、サイクリックに）割り当てる。複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）は、割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する。出力順序制御部２０は、複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）から出力された入力データを、書込制御部３０による割り当て状況に応じてストリームデータにおける入力データの順序にソートし、複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）から出力された入力データと検索データをソート後の順序で結合して出力する。
【００２３】
書込制御部３０は、ストリームデータに含まれる入力データを最後に割り当てたデータ探索部を出力順序制御部２０に通知してもよい。このとき、出力順序制御部２０は、複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）から出力された入力データを、当該通知に基づいて、ストリームデータにおける入力データの順序にソートしてもよい。
【００２４】
書込制御部３０は、ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）の個数（すなわち、Ｋ）に達するとカウント値を初期化するカウンタを有していてもよい。このとき、書込制御部３０は、ストリームデータに含まれる入力データをカウント値に基づいて複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）に割り当ててもよい。
【００２５】
また、書込制御部３０は、カウント値を出力順序制御部２０に通知してもよい。このとき、出力順序制御部２０は、複数のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）から出力された入力データを、カウント値に基づいて、ストリームデータにおける入力データの順序にソートしてもよい。
【００２６】
さらに、一実施形態に係る情報処理装置（図１）をコンピュータと複数の処理ノードとして実現してもよい。図２は、かかる場合の構成を一例として示すブロック図である。
【００２７】
図２を参照すると、情報処理方法は、コンピュータ６０が、ストリームデータに含まれる入力データを複数の処理ノード５０−０、５０−１、…、５０−（Ｋ−１）に対して順番に周期的に割り当てる工程と、割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する複数の処理ノード５０−０、５０−１、…、５０−（Ｋ−１）から出力された入力データを、割り当て状況に応じてストリームデータにおける入力データの順序にソートする工程と、複数の処理ノード５０−０、５０−１、…、５０−（Ｋ−１）から出力された入力データと検索データをソート後の順序で結合して出力する工程と、を含む。
【００２８】
かかる情報処理装置および情報処理方法によると、ストリームデータの結合処理を、結合処理の前後におけるデータの順序を保ちつつ高速化することが可能となる。なぜなら、書込制御部３０はストリームデータに含まれる入力データをデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）に対してサイクリックに割り当てるため、出力順序制御部２０はデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）から出力された入力データをストリームデータにおける入力データの順序に容易にソートすることができるからである。
【００２９】
＜実施形態１＞
第１の実施形態に係る情報処理装置について、図面を参照しつつ説明する。図３は、本実施形態に係る情報処理装置の構成を一例として示すブロック図である。図３を参照すると、情報処理装置は、Ｋ個のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）と、出力順序制御部２０と、書込制御部３０と、デマルチプレクサ４０とを備えている。
【００３０】
データ探索部１０−Ｍ（Ｍ＝０、１、…、Ｋ−１）は、入力データ２００および検索データ１００を入力とし、データ探索部１０−Ｍに格納されている過去のストリームデータ列の中から、検索データ１００に含まれる検索ＩＤと同一の検索ＩＤを有するデータと、その格納位置を出力する。入力データ２００は、最新データとして、データ探索部１０−Ｍに格納される。
【００３１】
出力順序制御部２０は、データ探索部１０−０、１０−１、…、１０−（Ｋ−１）から出力されるＫ個の出力データを入力とし、その出力データを、格納された順序が古いものから順に出力する。出力順序制御部２０は、格納された順序が最古かどうかを判定するために、書込制御部３０から通知される情報を参照する。
【００３２】
書込制御部３０は、入力データ２００の到着通知を元に、どのデータ探索部へ入力データを配送するかを決定し、その出力をデマルチプレクサ４０および出力順序制御部２０に渡す。書込制御部３０は、データ探索部１０−０、１０−１、１０−（Ｋ−１）の順序で周期的に配送指示を行う。順番に、かつ、周期的に配送指示を行うことから、この配送指示によると、どのデータ探索部が最新のデータを保持しているかを一意に判別することができる。すなわち、最新のデータを保持するデータ探索部のＫ個前のデータ探索部が最古のデータを保持していることを一意に判別することができる。なお、具体的な実現方式として、到着通知をカウントアップの契機とする、周期Ｋのカウンタを用いることができる。ただし、１からＫまでの整数列を効率良く生成できれば十分であり、周期Ｋのカウンタに限定されない。
【００３３】
図４は、本実施形態におけるデータ構造を一例として示す図である。図４を参照すると、検索データ１００は、検索ＩＤ４００とデータを含む。また、入力データ２００は、検索ＩＤ４００とデータを含む。一方、出力データ３００は、検索ＩＤ４００と検索データ１００のデータと入力データ２００のデータを含む。検索データ１００に含まれる検索ＩＤ４００と入力データ２００に含まれる検索ＩＤ４００は、同一の形式（同一の解釈）である。一方、検索データ１００および入力データ２００に格納されるデータは、どのような形式であってもよい。
【００３４】
図５は、本実施形態におけるＭ番目（Ｍ＝０、１、…、Ｋ−１）のデータ探索部１０−Ｍの構成を一例として示すブロック図である。図５を参照すると、データ探索部１０−Ｍは、データ読出・比較部１１、データ書込部１２、および、記憶部１３を備えている。記憶部１３として、例えば、メモリ、レジスタ等の記憶機能を持つ素子を用いることができる。
【００３５】
データ読出・比較部１１は、検索データ１００に含まれる検索ＩＤ４００を参照し、記憶部１３に格納された過去のストリームデータ列の中から、（内部で保持している最古の位置を示すポインタを利用して）、古い順に、同一の検索ＩＤ４００を有するデータを検索し、一致した場合、そのデータを出力する。データの検索は、順序が維持できれば、線形探索でもどのようなものであってもよい。
【００３６】
データ書込部１２は入力データ２００を入力とし、記憶部１３の最古のデータ位置にデータを書き込む。データ書込部１２は、データを書き込むと、データ読出・比較部１１に書込みを通知する。データ読出・比較部１１は、データ書込部１２から書込みの通知を受けると、現在保持している最古の位置から、次の最古の位置へとポインタを移動させる。
【００３７】
記憶部１３は、過去のストリームデータ列を格納する。書込制御部３０による配送指示の周期性（すなわち、周期Ｋ）により、Ｍ番目のデータ探索部１０−Ｍに含まれるデータ列は、到着順序に対するＫの剰余がＭとなるデータ列が格納される。このとき、Ｋ個のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）で検索することにより、古い順にＫ個のデータ列を並列に検索することが可能となる。
【００３８】
図６は、本実施形態における出力順序制御部２０および書込制御部３０の構成を一例として示すブロック図である。図６を参照すると、出力順序制御部２０は、ソート番号調整部２１、ソート部２２、および、データ結合部２３を備えている。一方、書込制御部３０は、カウンタ３１を備えている。
【００３９】
ソート番号調整部２１は、Ｋ個のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）から、検索データ１００に含まれる検索ＩＤ４００と同一の検索ＩＤを有するデータを受け取る。また、ソート番号調整部２１は、書込制御部３０が示す最新のデータを保持するデータ探索部の情報に基づいて、最古のデータを保持するデータ探索部を特定する。これにより、ソート番号調整部２１は、Ｋ個のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）の出力結果に対し、最古の順にラベル（番号）付けを行い、受け取ったデータとともにソート部２２へと渡す。
【００４０】
例えば、書込制御部３０が周期Ｋのカウンタ３１を備えている場合、最新のデータを保持するデータ探索部１０−１を指示しているとき、最古のデータを保持しているデータ探索部はＫ個前のデータ探索部、すなわち、データ探索部１０−２となる。上述のように、各データ探索部１０−Ｍは、それぞれが保持するストリームデータ列を最古の順に検索するため、出力データの中で、最も古いデータはデータ探索部１０−２から出力されたデータであり、以下、データ探索部１０−３、…、１０−（Ｋ−１）、１０−０、１０−１の順に古いデータを出力することが分かる。したがって、ソート番号調整部２１は、データ探索部１０−２から出力されたデータにラベル１を割り当て、データ探索部１０−３から出力されたデータにラベル２を割り当て、以下同様にして、データ探索部１０−１から出力されたデータにラベルＫを割り当てる。ここでは、すべてのデータ探索部１０−Ｍから出力データが到来する場合を想定したが、出力データがない場合、そのラベルは飛ばすか、または、無効であることを示すようにすればよい。
【００４１】
ソート部２２は、番号付けされたデータを受け取り、その番号に従って、古い順にソートを行い、古い順にデータ結合部２３へと渡す。一例として、上記のような番号付けを行った場合、ソート部２２は番号の昇順にデータをソートすればよい。ここでは、ソート番号調整部２１とソート部２２とが分離された構成としたが、両者を単一のユニットとして実現してもよい。
【００４２】
データ結合部２３は、検索データ１００に含まれる検索ＩＤおよびデータと、ソート部２２から出力されたデータとを組み合わせて、すなわち、結合処理を実施して、出力データ３００を順に出力する。
【００４３】
本実施形態に係る情報処理装置によると、Ｋ個のデータ探索部１０−０、１０−１、…、１０−（Ｋ−１）にて並列に検索された、同一の検索ＩＤを持つデータの中から、最古の順に、結合処理を行うことが可能となる。
【００４４】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係る情報処理装置のとおりである。
［形態２］
前記書込制御部は、前記ストリームデータに含まれる入力データを最後に割り当てたデータ探索部を前記出力順序制御部に通知し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記通知に基づいて、前記ストリームデータにおける入力データの順序にソートしてもよい。
［形態３］
前記書込制御部は、前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化するカウンタを有し、前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数のデータ探索部に割り当ててもよい。
［形態４］
前記書込制御部は、前記カウント値を前記出力順序制御部に通知し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートしてもよい。
［形態５］
上記第２の視点に係る情報処理方法のとおりである。
［形態６］
上記情報処理方法において、前記コンピュータは、前記ストリームデータに含まれる入力データを最後に割り当てた処理ノードを示す情報に基づいて、前記複数の処理ノードから出力された入力データを、前記ストリームデータにおける入力データの順序にソートしてもよい。
［形態７］
上記情報処理方法は、前記コンピュータが、前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化する工程をさらに含み、
前記コンピュータは、前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数の処理ノードに割り当ててもよい。
［形態８］
上記情報処理方法において、前記コンピュータは、前記複数の処理ノードから出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートしてもよい。
［形態９］
上記第３の視点に係るプログラムのとおりである。
［形態１０］
上記プログラムは、前記ストリームデータに含まれる入力データを最後に割り当てた処理ノードを示す情報に基づいて、前記複数の処理ノードから出力された入力データを、前記ストリームデータにおける入力データの順序にソートする処理を、前記コンピュータに実行させてもよい。
［形態１１］
上記プログラムは、前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化する処理と、
前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数の処理ノードに割り当てる処理と、を前記コンピュータに実行させてもよい。
［形態１２］
上記プログラムは、前記複数の処理ノードから出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートする処理を、前記コンピュータに実行させてもよい。
【００４５】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００４６】
１０−０、１０−１、…、１０−（Ｋ−１）    データ探索部
１１    データ読出・比較部
１２    データ書込部
１３    記憶部
２０    出力順序制御部
２１    ソート番号調整部
２２    ソート部
２３    データ結合部
３０    書込制御部
３１    カウンタ
４０    デマルチプレクサ
５０−０、５０−１、…、５０−（Ｋ−１）    処理ノード
６０    コンピュータ
１００    検索データ
１１０    線形探索部
１２０    線形格納部
１３０    記憶部
２００    入力データ
３００    出力データ
４００    検索ＩＤ
【図１】
2014163072.tif 000003
【図２】
2014163072.tif 000004
【図３】
2014163072.tif 000005
【図４】
2014163072.tif 000006
【図５】
2014163072.tif 000007
【図６】
2014163072.tif 000008
【図７】
2014163072.tif 000009
【手続補正書】
【提出日】平成27年10月1日(2015.10.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
書込制御部と、複数のデータ探索部と、出力順序制御部とを備え、
前記書込制御部は、ストリームデータに含まれる入力データを前記複数のデータ探索部に対して順番に周期的に割り当て、
前記複数のデータ探索部は、割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記書込制御部による割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートし、前記複数のデータ探索部から出力された入力データと前記検索データを前記ソート後の順序で結合して出力する、情報処理装置。
【請求項２】
前記書込制御部は、前記ストリームデータに含まれる入力データを最後に割り当てたデータ探索部を前記出力順序制御部に通知し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記通知に基づいて、前記ストリームデータにおける入力データの順序にソートする、請求項１に記載の情報処理装置。
【請求項３】
前記書込制御部は、前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化するカウンタを有し、前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数のデータ探索部に割り当てる、請求項１または２に記載の情報処理装置。
【請求項４】
前記書込制御部は、前記カウント値を前記出力順序制御部に通知し、
前記出力順序制御部は、前記複数のデータ探索部から出力された入力データを、前記カウント値に基づいて、前記ストリームデータにおける入力データの順序にソートする、請求項３に記載の情報処理装置。
【請求項５】
ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当て、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートし、
前記複数の処理ノードから出力された入力データと前記検索データを前記ソート後の順序で結合して出力する、情報処理方法。
【請求項６】
前記ストリームデータに含まれる入力データを最後に割り当てた処理ノードを示す情報に基づいて、前記複数の処理ノードから出力された入力データを、前記ストリームデータにおける入力データの順序にソートする、請求項５に記載の情報処理方法。
【請求項７】
前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数の処理ノードの個数に達すると前記カウント値を初期化し、
前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数の処理ノードに割り当てる、請求項５または６に記載の情報処理方法。
【請求項８】
ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当てる処理と、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートする処理と、
前記複数の処理ノードから出力された入力データと前記検索データを前記ソート後の順序で結合して出力する処理と、をコンピュータに実行させる、プログラム。
【請求項９】
前記ストリームデータに含まれる入力データを最後に割り当てた処理ノードを示す情報に基づいて、前記複数の処理ノードから出力された入力データを、前記ストリームデータにおける入力データの順序にソートする処理を、前記コンピュータに実行させる、請求項８に記載のプログラム。
【請求項１０】
前記ストリームデータに含まれる入力データの到着に応じてカウント値を更新し、更新回数が前記複数のデータ探索部の個数に達すると前記カウント値を初期化する処理と、
前記ストリームデータに含まれる入力データを前記カウント値に基づいて前記複数の処理ノードに割り当てる処理と、を前記コンピュータに実行させる、請求項８または９に記載のプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明の第２の視点に係る情報処理方法は、
ストリームデータに含まれる入力データを複数の処理ノードに対して順番に周期的に割り当て、
割り当てられた入力データを蓄積するとともに、蓄積した入力データの中から検索データに含まれる識別子と同一の識別子を含み、かつ、最先に蓄積した入力データを探索して出力する前記複数の処理ノードから出力された入力データを、前記割り当て状況に応じて前記ストリームデータにおける入力データの順序にソートし、
前記複数の処理ノードから出力された入力データと前記検索データをソート後の順序で結合して出力する。
【国際調査報告】
2014163072.tif 000010
2014163072.tif 000011