JP2011215835A - 全文検索機能を備えるストレージ装置 - Google Patents

全文検索機能を備えるストレージ装置 Download PDF

Info

Publication number
JP2011215835A
JP2011215835A JP2010082881A JP2010082881A JP2011215835A JP 2011215835 A JP2011215835 A JP 2011215835A JP 2010082881 A JP2010082881 A JP 2010082881A JP 2010082881 A JP2010082881 A JP 2010082881A JP 2011215835 A JP2011215835 A JP 2011215835A
Authority
JP
Japan
Prior art keywords
file
identifier
content
search
memory block
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
Application number
JP2010082881A
Other languages
English (en)
Inventor
Kosuke Tatsumura
光介 辰村
Atsuhiro Kinoshita
敦寛 木下
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010082881A priority Critical patent/JP2011215835A/ja
Priority to US12/888,897 priority patent/US8321421B2/en
Publication of JP2011215835A publication Critical patent/JP2011215835A/ja
Priority to US13/681,492 priority patent/US8682902B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values

Abstract

【課題】ホストインターフェースの通信速度に制限されることなく、転置ファイルの管理及びブール演算を高速に行うことができるストレージ装置を提供する。
【解決手段】コンテンツの検索要求が入力可能なインターフェース11と、ファイル121と、ファイルが含むコンテンツに対応する転置ファイル122とを格納する第1のメモリブロック12と、ファイル検索テーブル131を格納する第2のメモリブロック13と、インターフェース11と第1のメモリブロック12と第2のメモリブロック13の信号送受信を制御するコントローラ14とを備える。コントローラ14は、転置ファイルにコンテンツを含むファイルの識別子を格納し、コンテンツの検索により求めたファイルの識別子をファイル検索テーブル131に格納し、コンテンツの検索要求に対する検索結果として、テーブル131に格納されたファイルの識別子をインターフェース11から出力する。
【選択図】図1

Description

本発明は、ホストシステムによりアクセスされるストレージ装置に関し、例えばストレージ装置のアクセス方式およびデータ管理方式に関するものである。
一般的なホストシステム、例えばコンピュータシステムは、磁気式のハードディスクドライブ(HDD)や不揮発性半導体メモリを搭載する固体ドライブ(SSD)などの不揮発・大規模なストレージ装置を備える。
ストレージ装置は、例えばインターフェースと、第1のメモリブロックと、第2のメモリブロックと、コントローラからなる(例えば、特許文献1参照)。
第1のメモリブロックはファイルを格納し、第2のメモリブロックは書き込み/読み出し時におけるバッファメモリである。第1のメモリブロックは、第2のメモリブロックよりも、不揮発・大容量であるがアクセス速度が遅い。第2のメモリブロックは、インターフェースの通信速度と、第1のメモリブロックの書き込み/読み出し速度との速度差を補うために使用される。例えば、第1のメモリブロックは不揮発性のFlash memoryアレイであり、第2のメモリブロックは揮発性のDRAMもしくはSRAMである。
従来のストレージ装置の問題点は、全文検索機能を自ら持たない点である。全文検索機能とは、コンテンツ検索要求に対して、格納しているファイルのうち、検索対象のコンテンツを含むファイルを探し出して、そのリストを出力する機能である。ここでコンテンツとは、通常、単語のことである。また、さらに高度な機能として、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算の要求を入力として受け、そのブール演算の結果となるファイルリストを出力する機能を持つことが望ましい。
全文検索機能の実現法の一つに、転置インデックス法がある(例えば、非特許文献1参照)。転置インデックス法では、コンテンツ毎にそのコンテンツを含むファイルのリストを格納する転置ファイルと呼ばれる索引データファイルを予め作成し、ファイルの追加/削除の都度、転置ファイルの内容を更新する。コンテンツ検索要求に対しては、その検索対象のコンテンツに対応する転置ファイルの内容を検索結果として出力すればよい。そのため、全文検索の都度、すべてのファイルの内容を調べる必要がない。
従来、ストレージ装置を使って全文検索機能を実現するには、ストレージ内に格納された転置ファイルの管理や複数のコンテンツの検索結果に対するブール演算を、ホストシステムの中央演算装置(CPU)や主記憶装置(DRAM)を使用して実施する必要がある。
しかし、ホストシステムとストレージ装置との通信速度がホストインターフェースの通信速度に制限されるため、転置ファイルの管理やブール演算を高速に行うことができないという問題がある。
USP 6,377,500
J. Zobel, A. Moffat and K. Ramamohanarao, Inverted files versus signature files for text indexing. ACM Transactions on Database Systems (TODS), Volume 23, Issue 4 (December 1998), Pages: 453-490.
本発明は、ホストインターフェースの通信速度に制限されることなく、転置ファイルの管理及びブール演算を高速に行うことができるストレージ装置を提供する。
本発明の一実施態様のストレージ装置は、コンテンツの検索要求が入力可能なインターフェースと、ファイルと、前記ファイルが含むコンテンツに対応する転置ファイルとを格納する第1のメモリブロックと、ファイル検索テーブルを格納する第2のメモリブロックと、前記インターフェースと前記第1のメモリブロックと前記第2のメモリブロックの相互の信号送受信を制御するコントローラとを具備し、前記コントローラは、前記転置ファイルに前記コンテンツを含む前記ファイルの識別子を格納し、前記コンテンツの検索により求めた前記ファイルの識別子を前記ファイル検索テーブルに格納し、前記コンテンツの検索要求に対する検索結果として、前記ファイル検索テーブルに格納された前記ファイルの識別子を前記インターフェースから出力することを特徴とする。
本発明によれば、ホストインターフェースの通信速度に制限されることなく、転置ファイルの管理を高速に行うことができるストレージ装置を提供可能である。
本発明の第1実施形態に係るストレージ装置のハードウェア構成を示すブロック図である。 第1実施形態のストレージ装置におけるファイルの書き込み処理を示すフローチャートである。 第1実施形態のストレージ装置におけるファイルの削除処理を示すフローチャートである。 第1実施形態のストレージ装置におけるファイルの更新処理を示すフローチャートである。 第1実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 本発明の第2実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 第2実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 第2実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 本発明の第3実施形態のストレージ装置のハードウェア構成を示すブロック図である。 ハッシュテーブルデータ構造の第1例を示す図である。 ハッシュテーブルデータ構造の第2例を示す図である。 第3実施形態における要素登録手続(第1例)を示すフローチャートである。 第3実施形態における要素検索手続(第1例)を示すフローチャートである。 第3実施形態における要素登録手続(第2例)を示すフローチャートである。 第3実施形態における要素検索手続(第2例)を示すフローチャートである。 第3実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 第3実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 第3実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。 本発明の第4実施形態のストレージ装置のハードウェア構成を示すブロック図である。 CAM−RAMシステムの一例を示す図である。
実施形態を説明する前に、本願明細書で用いる用語について説明する。
コンテンツ(Content)とは、多くの場合、自然言語における単語や、数のことである。例えば、“This is a book”というテキストにおいては、This、is、a、bookがそれぞれコンテンツである。なお、前述したように、コンテンツとは、多くの場合、自然言語における単語や、数のことであるが、用途に応じて任意に定義してよい。例えば、バイナリファイルにおいて、特定のビットパターンをコンテンツと定義しても良い。また、動画ファイルにおいて、人物などの特定画像パターンをコンテンツと定義しても良い。また、音声ファイルにおいて、場面切り替え時に特徴的な音声パターンなどの特定音声パターンをコンテンツと定義してもよい。
ファイル(File)とは、コンテンツを含む一般のファイルである。例えば、テキストからなるファイルや、テキストとその他アプリケーション特有の情報を含むファイルである。
形態素分析(Morphological Analysis)とは、ファイルからコンテンツを抽出して、コンテンツ毎に分離する処理のことである。
ファイル識別子(File ID)とは、ストレージ装置においてそのファイルを特定できる識別子である。例としては、階層的ディレクトリ構造におけるフルパスのファイル名、多くのファイルシステムで使用されるファイル識別子であるinode番号などが含まれる。また、任意長ビットデータをハッシュ関数によって固定長ビットデータに変換するハッシュ生成器を使い、ファイルを特定できる任意長ビットデータから生成した固定長ビットデータをファイル識別子としても良い。
転置ファイル(Inverted File)とは、コンテンツ毎に作成され、そのコンテンツを含むファイルの識別子を格納するファイルである。転置ファイルは、ファイル内におけるコンテンツの位置情報を含んでいても良い。
次に、転置ファイルの一例を示す。File 1: ”This is a book”、File 2: “This is a bag”という二つのファイルがある場合を考える。File 1のFile IDを0x001、File 2のFile IDを0x002とする。ファイル内におけるコンテンツの位置(pos)は、ゼロを基点とするコンテンツの出現順番とする。転置ファイルは、File IDとファイル内におけるコンテンツの位置情報の組、(File ID, pos)を格納する。このとき、“This”に対応する転置ファイルの内容は、{(0x001, 1), (0x002,1)}となる。この転置ファイルは、”This”というコンテンツが、0x001というFile IDのファイルの1番目の位置と、0x002というFile IDのファイルの1番目の位置にあることを意味している。
転置ファイル識別子(Inverted File ID)とは、ストレージ装置においてその転置ファイルを特定できる識別子である。例えば、任意長ビットデータをハッシュ関数によって固定長ビットデータに変換するハッシュ生成器を使い、コンテンツから生成した固定長ビットデータである。
以下、図面を参照して本発明の実施形態について説明する。説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[1]第1実施形態
[1−1]ハードウェア構成
まず、本発明の第1実施形態のストレージ装置のハードウェア構成について説明する。
図1は、第1実施形態のストレージ装置のハードウェア構成を示すブロック図である。
図示するように、ストレージ装置10は、ホストインターフェース11、第1のメモリブロック12、第2のメモリブロック13、及びコントローラ14から構成されている。なお、ストレージ装置10には、CPU101、及びメインメモリ102を含むホストシステムが接続されている。ホストシステムとしては、例えばパーソナルコンピュータ、携帯電話、デジタルカメラ、携帯情報端末(PDA)等がある。
ホストインターフェース11は、ホストシステムからコンテンツの検索要求を入力として受け取り、コンテンツの検索結果をホストシステムに出力する。また、ホストインターフェース11は、アドレスを指定したファイルの書き込み/読み出しの要求を入力として受け取る。書き込み要求の際には、さらにファイルを入力として受け取る。また、読み出し要求の際には、アドレス指定されたファイルを出力する。
第1のメモリブロック12は、ファイル121、ファイル121のコンテンツリスト、及びコンテンツに対応する転置ファイル122を格納する。転置ファイル122は、コンテンツを含むファイル121のファイル識別子のリストを格納する。転置ファイル122は、ファイル121内におけるコンテンツの位置情報を含んでいても良い。
第2のメモリブロック13は、ファイル検索テーブル131を格納する。ファイル検索テーブル131は、コンテンツの検索で得られたファイル121のファイル識別子のリストを格納する。第2のメモリブロック13は、書き込み/読み出し時におけるバッファメモリを有している。
第1のメモリブロック12は、第2のメモリブロック13に比べて、不揮発・大容量であるがアクセス速度が遅い。第2のメモリブロック13は、ホストインターフェース11の通信速度と、第1のメモリブロック12のアクセス速度の速度差を補うために使用できる。例えば、第1のメモリブロック12は不揮発性のFlash memoryアレイであり、第2のメモリブロックは揮発性のDRAMもしくはSRAMである。
コントローラ14は、ホストインターフェース11と第1のメモリブロック12と第2のメモリブロック13との間の相互の信号送受信を制御する。コントローラ14は、ホストインターフェース11に入力されたコンテンツの検索要求に対して、コンテンツの検索処理を実行する。そして、ホストインターフェース11を介してコンテンツの検索結果を出力する。また、コントローラ14は、書き込み要求の際には、第1のメモリブロック12内のアドレス指定の位置にファイル121を書き込む。読み出しの際には、アドレス指定の位置のファイル121を読み出す。
[1−2]ファイル管理及びコンテンツ検索処理
次に、第1実施形態のストレージ装置におけるファイル管理及びコンテンツ検索処理について説明する。
ストレージ装置10には、ホストシステムからホストインターフェース11を介してファイルの書き込み、削除、及び更新の要求が入力される。そして、随時、ホストシステムからストレージ装置10に、ホストインターフェース11を介してコンテンツの検索要求が入力される。コンテンツの検索要求が入力されると、ストレージ装置10においてコンテンツの検索処理が行われ、コンテンツの検索結果がホストインターフェース11を介してホストシステムに出力される。
以下に、ストレージ装置10における処理を、検索対象のファイルの書き込み、検索対象のファイルの削除、検索対象のファイルの更新、及びコンテンツの検索の順で述べる。
[1−2−1]ファイルの書き込み・削除・更新
(ファイルの書き込み)
図2は、第1実施形態のストレージ装置におけるファイルの書き込み処理を示すフローチャートである。
(1)ホストインターフェース11は、ホストシステムからファイルの書き込み要求を受け取る(ステップS11)。ホストシステムからホストインターフェース11に、ファイル、及びそのファイルの格納アドレスが入力される。すると、コントローラ14は、ホストシステムから入力されたファイルの形態素分析を行い、コンテンツのリストを得る(ステップS12)。ここで、形態素分析とは、ファイルをコンテンツに分解する処理のことである。
(2)コントローラ14は、第1のメモリブロック12に、ファイル121と、ファイル121から得たコンテンツリストを格納する(ステップS13)。
(3)コントローラ14は、コンテンツリストのコンテンツ毎に、第1のメモリブロック12にそのコンテンツに対応する転置ファイル122があるか否かを調べる(ステップS14)。転置ファイルが既にある場合は、転置ファイル122にそのコンテンツを含むファイル121のファイル識別子を追記する(ステップS15)。一方、転置ファイルがない場合は、転置ファイルを作成する(ステップS16)。そして、作成した転置ファイルにそのコンテンツを含むファイル121のファイル識別子を記入する(ステップS15)。
また、前述した例では、ファイルの形態素分析をコントローラ14にて行ったが、ホストシステムのCPU101にて形態素分析を行っても良い。この場合、以下のような処理となる。
(1)ホストシステムは、ファイルの形態素分析を行い、コンテンツのリストを得る。ホストシステムは、ストレージ装置10に、ファイル、そのファイルの格納アドレス、及びコンテンツのリストを入力する。
(2)コントローラ14は、第1のメモリブロック12に、ファイル121とそのファイルから取得したコンテンツリストを格納する。
(3)コントローラ14は、コンテンツリストのコンテンツ毎に、第1のメモリブロック12にそのコンテンツに対応する転置ファイル122があるか否かを調べる。転置ファイルが既にある場合は、転置ファイル122にそのコンテンツを含むファイル121のファイル識別子を追記する。一方、転置ファイルがない場合は、転置ファイルを作成する。そして、作成した転置ファイルにそのコンテンツを含むファイル121のファイル識別子を記入する。
(ファイルの削除)
図3は、第1実施形態のストレージ装置におけるファイルの削除処理を示すフローチャートである。
(1)ホストインターフェース11は、ホストシステムからファイルの削除要求を受け取る(ステップS21)。すると、コントローラ14は、第1のメモリブロック12に格納された削除対象のファイルから得たコンテンツリストに従い、コンテンツ毎に対応する転置ファイル122から削除対象ファイルのファイル識別子を削除する(ステップS22)。
(2)コントローラ14は、第1のメモリブロック12から削除対象ファイルとコンテンツリストを削除する(ステップS23)。
(ファイルの更新)
図4は、第1実施形態のストレージ装置におけるファイルの更新処理を示すフローチャートである。
(1)ホストインターフェース11は、ホストシステムからファイルの更新要求を受け取る(ステップS31)。ホストシステムからホストインターフェース11に、更新ファイル、及び更新ファイルの格納アドレスが入力される。
(2)コントローラ14は、第1のメモリブロック12に格納された更新前のファイルから得たコンテンツリストに従い、コンテンツ毎に対応する転置ファイルから更新前のファイルのファイル識別子を削除する(ステップS32)。
(3)コントローラ14は、ホストシステムから入力された更新ファイルの形態素分析を行い、コンテンツのリストを得る(ステップS33)。
(4)コントローラ14は、第1のメモリブロック12に、更新ファイルとその更新ファイルから得たコンテンツリストを格納する(ステップS34)。
(5)コントローラ14は、コンテンツリストのコンテンツ毎に、第1のメモリブロック12にそのコンテンツに対応する転置ファイル122があるか否かを調べる(ステップS35)。転置ファイルが既にある場合は、その転置ファイル122にそのコンテンツを含むファイル121のファイル識別子を追記する(ステップS36)。一方、転置ファイルがない場合は、転置ファイルを作成する(ステップS37)。そして、作成した転置ファイルにそのコンテンツを含むファイル121のファイル識別子を記入する(ステップS36)。
[1−2−2]コンテンツ検索処理
次に、第1実施形態のストレージ装置におけるコンテンツ検索処理(全文検索機能)について説明する。
図5は、第1実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。
(1)ホストインターフェース11は、ホストシステムからコンテンツの検索要求を受け取る(ステップS41)。コントローラ14は、検索対象のコンテンツに対応する転置ファイルに格納されたファイル識別子のリストを、第2のメモリブロック13のファイル検索テーブル131に格納する(ステップS42)。
(2)コントローラ14は、ファイル検索テーブル131に格納されているファイル識別子のリストを、コンテンツ検索結果としてホストインターフェース11を介して出力する(ステップS43)。
第1実施形態によれば、ストレージ装置内のコントローラが転置ファイルの管理及びコンテンツの検索処理を行うため、それらの処理をホストインターフェースの通信速度に制限されることなく高速に行うことができる。コンテンツ検索の際には、転置ファイルにアクセスすることにより、検索の都度、全ファイルを走査することなく、コンテンツ検索結果を得ることができる。すなわち、従来のストレージ装置の機能に加えて、全文検索機能を自らもつストレージ装置を実現することができる。
従来、ストレージ装置を管理するホストシステムのリソース(CPUやDRAM)を使って、転置ファイルの管理やブール演算による検索を行うソフトウェアが存在している。しかし、次の3点の問題があった。
(1)ホストシステムのリソースに負荷がかかる。これは、特にホスト機器のリソースが限られるモバイル用途で問題になる。(2)スケーラビリティが無い。ホストシステムにおけるリソースの負荷が、ストレージ装置の数の増大とともに増大する。(3)可搬性が低い。取り外し可能なストレージ装置であっても、転置ファイルの管理やブール演算による検索の実現法がホストシステムに依存する場合、任意のホストシステムで全文検索機能を使用することができない。
本実施形態では、これらの問題を解決することができる。すなわち、ホスト機器にてコンテンツの検索を行う際に、ホストシステムのリソースにかかる負荷を低減することができる。また、コンテンツ検索に関し、ストレージ装置の数が増大しても、ホストシステムにおけるリソースの負荷が増大しない。ストレージ装置で転置ファイルの管理やブール演算による検索を行うため、任意のホストシステムで全文検索機能を使用することができる。
[2]第2実施形態
次に、本発明の第2実施形態のストレージ装置について説明する。
第2実施形態のストレージ装置では、第1実施形態の処理にさらに加えて、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算の処理を行うことができる。
ホストインターフェースを介して複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算の要求が入力されると、コントローラは、ブール演算要求の結果となるように、ファイル検索テーブルの内容を書き換える。そして、ホストインターフェースを介してブール演算の結果、すなわちコンテンツの検索結果を出力する。
[2−1]ハードウェア構成
第2実施形態のストレージ装置のハードウェア構成は、前記第1実施形態と同様であるため、記載は省略する。
[2−2]コンテンツ検索処理(ブール演算検索要求に対する処理)
第2実施形態のストレージ装置におけるコンテンツのAND、OR、NOTの検索処理について説明する。
図6、図7及び図8は、第2実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。
(1)ホストインターフェース11は、ホストシステムからコンテンツのAND、OR、NOTの検索要求を受け取る(ステップS51)。
(2)コントローラ14は、検索対象の第1のコンテンツに対応する転置ファイルに格納されたファイル識別子のリストを、第2のメモリブロック13のファイル検索テーブル131に格納する(ステップS52)。
(3)コントローラ14は、検索対象の第2のコンテンツに対応する転置ファイルに格納されたファイル識別子毎に、ブール演算子に応じて、次の通りファイル検索テーブル131の内容を書き換える。
AND演算を図6中の処理21に示す。第2のコンテンツに対応する転置ファイルに格納されたファイル識別子が、ファイル検索テーブル131に既にあるか否かを調べる(ステップS53)。
そのファイル識別子があれば、バッファにそのファイル識別子を書き出す(ステップS54)。バッファ領域としては、第2のメモリブロック13の一部を割り当てる。一方、そのファイル識別子がなければ、なにもしない(ステップS55)。
最後に、ファイル検索テーブル131を初期化する(ステップS56)。そして、バッファに書き込まれたファイル識別子のリストを、ファイル検索テーブル131に格納する(ステップS57)。
OR演算を図7中の処理22に示す。第2のコンテンツに対応する転置ファイルに格納されたファイル識別子が、ファイル検索テーブル131に既にあるか否かを調べる(ステップS61)。
そのファイル識別子があれば、何もしない(ステップS62)。一方、そのファイル識別子がなければ、ファイル検索テーブル131にそのファイル識別子を追加する(ステップS63)。
NOT演算を図8中の処理23に示す。第2のコンテンツに対応する転置ファイルに格納されたファイル識別子が、ファイル検索テーブル131に既にあるか否かを調べる(ステップS71)。
そのファイル識別子があれば、ファイル検索テーブル131からファイル識別子を削除する(ステップS72)。一方、ファイル識別子がなければ、なにもしない(ステップS73)。
(4)コントローラ14は、ファイル検索テーブル131に格納されているファイル識別子のリストを、コンテンツ検索結果としてホストインターフェース11を介して出力する(ステップS58)。
第2実施形態によれば、ストレージ装置内のコントローラが転置ファイルの管理やブール演算を行うため、それらの処理をホストインターフェースの通信速度に制限されることなく高速に行うことができる。すなわち、第1の実施形態における効果に加えて、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算機能を備えるストレージ装置を実現することができる。その他の構成及び効果は前記第1実施形態と同様である。
[3]第3実施形態
次に、本発明の第3実施形態のストレージ装置について説明する。
第3実施形態のストレージ装置では、第2実施形態の処理にさらに加えて、コンテンツに対応する転置ファイルのアドレスの高速検索機能、及び複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算の高速化が実現できる。
[3−1]ハードウェア構成
本発明の第3実施形態のストレージ装置のハードウェア構成について説明する。
図9は、第3実施形態のストレージ装置のハードウェア構成を示すブロック図である。
図示するように、ストレージ装置30は、ホストインターフェース11、第1のメモリブロック12、第2のメモリブロック15、第3のメモリブロック16、第4のメモリブロック17、及びコントローラ18から構成されている。
コントローラ18は、ハッシュ生成器181を含む。ハッシュ生成器181は、任意長ビットデータをハッシュ関数によって固定長ビットデータに変換する。ここでは、この機能を用いて、ハッシュ生成器181は、任意長ビットデータのコンテンツから、固定長ビットデータの転置ファイルの識別子を生成する。また、ハッシュ生成器181は、ファイルを特定できる任意長ビットデータから、固定長ビットデータのファイルの識別子を生成する。
ハッシュ関数としては、なるべく均一かつ疎な暗号学的ハッシュ関数(cryptologic hash)が好ましい。例えば、CRC(Cyclic Redundancy Check)、もしくはSHA−1(Secure Hash Algorithm-1)、SHA−2(Secure Hash Algorithm-1)、MD4(MessageDigest4)、MD5(MessageDigest5)を使用する。
ハッシュ生成器181は、ハッシュ関数に従い生成したある固定長ビットのビット列を、所望のビット長(BitLength)にする機能を有していても良い。例えば、次式の除算機能を有する。 <Key ID>= cryptologic_hash(<Key>) mod BitLength
また、第2のメモリブロック15は、ホストインターフェース11と第1のメモリブロック12と第3のメモリブロック16と第4のメモリブロック17とコントローラ18とに接続されている。第2のメモリブロック15は、ファイル識別子とブール演算の結果を格納する変数の組を要素とする配列であるファイル検索テーブル151を格納する。ファイル検索テーブル151中の各要素の格納位置は、各要素のファイル識別子が自ら含む情報によって決まっている。言い換えると、各ファイル識別子は、ファイル検索テーブル151中の各要素の格納位置情報を含んでいる。
第3のメモリブロック16は、ホストインターフェース11と第1のメモリブロック12と第2のメモリブロック15と第4のメモリブロック17とコントローラ18とに接続されている。第3のメモリブロック16は、転置ファイルの識別子とその転置ファイルの格納位置の組を要素とする配列である転置ファイル割り当てテーブル161を格納する。転置ファイル割り当てテーブル161中の各要素の格納位置は、各要素の転置ファイル識別子が自ら含む情報によって決まっている。言い換えると、各転置ファイル識別子は、転置ファイル割り当てテーブル161中の各要素の格納位置情報を含んでいる。
第4のメモリブロック17は、ホストインターフェース11と第1のメモリブロック12と第2のメモリブロック15と第3のメモリブロック16とコントローラ18とに接続されている。第4のメモリブロック17は、ファイルの識別子とそのファイルの格納位置の組を要素とする配列であるファイル割り当てテーブル171を格納する。ファイル割り当てテーブル171中の各要素の格納位置は、各要素のファイル識別子が自ら含む情報によって決まっている。言い換えると、各ファイル識別子は、ファイル割り当てテーブル171中の各要素の格納位置情報を含んでいる。
また、ファイル識別子と転置ファイル識別子のいずれかもしくは両方が、ハッシュ生成器181によって固定長ビットデータとされている。
[3−2]ハッシュテーブルデータ構造
ハッシュテーブルデータ構造は、転置ファイル割り当てテーブル161やファイル検索テーブル151、ファイル割り当てテーブル171に適用することができる。ハッシュテーブルデータ構造は、キー識別子とそれに対応する値の組を要素として格納する。
ハッシュテーブルデータ構造の特徴は、登録する各要素の格納位置が、各要素のキー識別子が自ら含む情報によって決まることである。このデータ構造の特徴により、検索対象のキー識別子が登録されているかの有無判定、登録されているならば検索対象のキー識別子に対応する値の取得(キー識別子から値への変換)を、高速に行うことができる。これを用いることにより、本実施形態ではコンテンツに対応する転置ファイルのアドレスの高速な検索、及び複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算の高速化、ファイルの識別子に対応するファイルのアドレスの高速な検索、が実現できる。
[3−2−1]ハッシュテーブルデータ構造の第1例
図10A(a)は、ハッシュテーブルデータ構造の第1例を示す図である。
ハッシュテーブルデータ構造は、図10A(a)に示すように、有効フラグとキー識別子とそれに対応する値の組を要素とする配列である。配列における各要素の位置をスロット識別子で表す。
スロット識別子は、コントローラによりキー識別子から生成されたものである。ここでは、図10A(b)に示すように、キー識別子の接頭部12ビットをスロット識別子としている。キー識別子をmビットとし、スロット識別子をnビットとすると、m>nが成り立つ(m,nは1以上の整数)。図10A(c)は登録待ちのキー識別子を示し、図10A(a)は図10A(c)に示した登録待ちのキー識別子がハッシュテーブルデータ構造に登録された状態を示す。
以下に、ハッシュテーブルデータ構造(第1例)における要素登録及び要素検索の手順を説明する。
(要素登録手順)
ここでは、ハッシュテーブルデータ構造にキー識別子とそれに対応する値の組を登録する手続きを述べる。
図11は、第3実施形態における要素登録手続(第1例)を示すフローチャートである。
コントローラ18は、候補スロット識別子を保持する記憶領域を有し、候補スロット識別子の変数を管理する。
(1)(初期化)コントローラ18は、2個の要素を持つ配列を用意し、すべての要素の有効フラグをFalseにする(ステップS81)。
(2)(候補スロット識別子)コントローラ18は、登録するmビットのキー識別子の一部からnビットのスロット識別子を生成する(ステップS82)。例えば、図10A(b)に示すように、24ビットのキー識別子の接頭部12ビットをスロット識別子とする。そのスロット識別子を、候補スロット識別子の変数に代入する(ステップS83)。
(3)(次期登録スロットの特定)コントローラ18は、候補スロット識別子で特定される要素の有効フラグがFalseか否かを判定する(ステップS84)。有効フラグがFalseのとき(Yes)、ステップS85に移行する。一方、有効フラグがFalseでなくTrueのとき(No)、候補スロット識別子をインクリメントして(ステップS86)、再度、ステップS84に戻る。
(4)(登録)コントローラ18は、候補スロット識別子で特定される要素に、登録するキー識別子と値を格納し、有効フラグをTrueに変える(ステップS85)。
(要素検索手順)
ここでは、検索対象のキー識別子に対して、対応する値を得る手続きを述べる。
図12は、第3実施形態における要素検索手続(第1例)を示すフローチャートである。
(1)(候補スロット識別子)コントローラ18は、図11に示した登録手順と同じ手続きで、検索するmビットのキー識別子の一部からnビットの候補スロット識別子を生成する(ステップS91、S92)。
(2)(検索キー対応スロットの特定)コントローラ18は、候補スロット識別子で特定される要素の有効フラグがTrueか否かを判定する(ステップS93)。有効フラグがTrueでなくFalseのとき(No)、コントローラ内部状態をUNMATCHとして検索手続き終了する(ステップS94、S95)。一方、有効フラグがTrueのとき(Yes)、ステップS96へ移行する。
コントローラ18は、候補スロット識別子で特定される要素のキー識別子が、検索対象のキー識別子と同じか判定する(ステップS96)。検索対象のキー識別子と同じとき(Yes)、ステップS97に移行する。一方、検索対象のキー識別子と違うとき(No)、候補スロット識別子をインクリメントして(ステップS98)、再度、ステップS93へ戻る。
(3)(出力)コントローラ18は、候補スロット識別子で特定される要素の値を、目的の値として得る(ステップS97)。
[3−2−2]ハッシュテーブルデータ構造の第2例
図10B(a)は、ハッシュテーブルデータ構造の第2例を示す図である。
ハッシュテーブルデータ構造は、図10B(a)に示すように、ポインタを要素とするポインタ配列と、ポインタとキー識別子とそれに対応する値の組を要素とする連結リストからなる。ポインタ配列における各要素の位置をスロット識別子で表す。
第1例と同様に、スロット識別子は、コントローラによりキー識別子から生成されたものである。ここでは、図10B(b)に示すように、キー識別子の接頭部12ビットをスロット識別子としている。キー識別子をmビットとし、スロット識別子をnビットとすると、m>nが成り立つ。図10B(a)は、図10A(c)に示した登録待ちのキー識別子がハッシュテーブルデータ構造に登録された状態を示す。
以下に、ハッシュテーブルデータ構造(第2例)における要素登録及び要素検索の手順を説明する。
(要素登録手順)
ここでは、キー識別子とそれに対応する値の組を登録する手続きを述べる。
図13は、第3実施形態における要素登録手続(第2例)を示すフローチャートである。
コントローラ18は、候補スロット識別子と候補ポインタを保持する記憶領域を有し、候補スロット識別子及び候補ポインタの変数を管理する。
(1)(初期化)コントローラ18は、2個の要素を持つポインタ配列を用意し、すべての要素のポインタをNULLにする(ステップS101)。
(2)(スロット識別子)コントローラ18は、登録するmビットのキー識別子の一部からnビットのスロット識別子を生成する(ステップS102)。例えば、図10B(b)に示すように、24ビットのキー識別子の接頭部12ビットを抽出し、それを候補スロット識別子とする(ステップS103)。
(3)(次期登録エントリの特定)コントローラ18は、候補スロット識別子で特定されるポインタ配列の要素がNULLか否かを判定する(ステップS104)。ポインタ配列の要素がNULLのとき(Yes)、連結リストの要素を1つ作成し、そのポインタを、候補スロット識別子で特定されるポインタ配列の要素と、候補ポインタとに格納して(ステップS105)、ステップS110に移行する。一方、ポインタ配列の要素がNULLでないとき(No)、そのポインタを候補ポインタにセットして(ステップS106)、ステップS107に移行する。
候補ポインタで特定される連結リストの要素のポインタがNULLか否かを判定する(ステップS107)。ポインタがNULLのとき(Yes)、連結リストの要素を1つ作成し、そのポインタを、候補ポインタで特定される連結リストの要素のポインタと、候補ポインタに格納して(ステップS108)、ステップS110に移行する。一方、ポインタがNULLでないとき(No)、そのポインタを候補ポインタにセットして(ステップS109)、ステップS107に戻る。
(4)(登録)コントローラ18は、候補ポインタで特定される連結リストの要素にキー識別子と値を格納する(ステップS110)。
(要素検索手順)
ここでは、検索対象のキー識別子に対して、対応する値を得る手続きを述べる。
図14は、第3実施形態における要素検索手続(第2例)を示すフローチャートである。
(1)(候補スロット識別子)コントローラ18は、図13に示した登録手順と同じ手続きで、検索するmビットのキー識別子の一部からnビットの候補スロット識別子を生成する(ステップS111、S112)。
(2)(検索キー対応スロットの特定)コントローラ18は、候補スロット識別子で特定されるポインタ配列の要素のポインタがNULLか否かを判定する(ステップS113)。ポインタがNULLのとき(Yes)、コントローラ内部状態をUNMATCHとして検索手続きを終了する(ステップS114、S115)。一方、ポインタがNULLでないとき(No)、そのポインタを候補ポインタに格納して(ステップS116)、ステップS117に移行する。
ステップS117では、候補ポインタで特定される連結リストの要素のキー識別子が、検索対象のキー識別子と同じか否かを判定する。キー識別子と同じとき(Yes)、ステップS122に移行する。
一方、キー識別子と違うとき(No)、候補ポインタで特定される連結リストの要素のポインタがNULLか否かを判定する(ステップS118)。ポインタがNULLのとき(Yes)、コントローラ内部状態をUNMATCHとして検索手続きを終了する(ステップS119、S120)。一方、ポインタがNULLでないとき(No)、そのポインタを候補ポインタに格納して(ステップS121)、ステップS117に戻る。
(3)(出力)ステップS122では、コントローラ18は、候補ポインタで特定される要素の値を、目的の値として得る。
なお、ハッシュテーブルデータ構造の作成に必要な記憶容量を少なくするために、連結リストに格納するキー識別子の換わりに、キー識別子のうちのスロット識別子に使われなかった残りのm−nビットの部分を用いても良い。
[3−3]転置ファイル割り当てテーブル
第3のメモリブロック16の転置ファイル割り当てテーブル161に、ハッシュテーブルデータ構造を適用する場合の処理は以下のようになる。
ハッシュテーブルデータ構造におけるキー識別子と値を、それぞれ転置ファイル割り当てテーブル161内の転置ファイル識別子と転置ファイル格納位置にセットする。
(1)コントローラ18は、ハッシュ生成器181により、コンテンツが持つデータから転置ファイル識別子を生成する。
(2)コントローラ18は、転置ファイル割り当てテーブル161に従い、転置ファイル識別子を転置ファイル格納位置に変換する。すなわち、転置ファイル識別子から転置ファイルの格納位置を求める。これにより、コントローラ18は、コンテンツに対応する転置ファイルに高速にアクセスすることができる。
[3−4]ファイル割り当てテーブル
第4のメモリブロック17のファイル割り当てテーブル171に、ハッシュテーブルデータ構造を適用する場合の処理は以下のようになる。
ハッシュ生成器181により、ファイルを特定できる任意長ビットデータから生成された固定長ビットデータをファイル識別子として使用する場合、その逆にファイル識別子から元のファイルを特定できる必要がある。そのために、本実施形態ではファイル割り当てテーブル171を、第4のメモリブロック17に用意する。
既に説明したハッシュテーブルデータ構造におけるキー識別子と値を、それぞれファイル割り当てテーブル171内のファイル識別子とファイル格納位置にセットする。
(1)コントローラ18は、ハッシュ生成器181により、ファイルを特定できる任意長ビットデータからファイル識別子を生成する。
(2)コントローラ18は、ファイル割り当てテーブル171に従い、ファイル識別子からファイル格納位置を求める。このように、ファイル格納位置を求めることにより、コントローラ18は、ファイル識別子に対応するファイルに高速にアクセスすることができる。
[3−5]ファイル検索テーブル
第2のメモリブロック15のファイル検索テーブル151に、ハッシュテーブルデータ構造を適用する場合の処理は以下のようになる。
図15、図16及び図17は、第3実施形態のストレージ装置におけるコンテンツの検索処理を示すフローチャートである。
既に説明したハッシュテーブルデータ構造におけるキー識別子と値を、それぞれ第2のメモリブロック15内のファイル識別子とブール演算の結果の変数(以下、ブール変数と記す)にセットする。コントローラ18は、ブール演算結果の判定値(以下、ブール判定値と記す)を保持する記憶領域を有し、ブール判定値を管理する。
(1)コントローラ18は、検索対象の第1のコンテンツに対応する転置ファイルに格納されたファイル識別子のリストから、ファイル識別子を一つずつ取り出す。既に述べた登録手順に従い、各ファイル識別子を、ブール変数値を1としてファイル検索テーブル151に登録する。また、ブール判定値は1とする(ステップS131)。
(2)コントローラ18は、検索対象の第2のコンテンツに対応する転置ファイルに格納されたファイル識別子毎に、ブール演算子に応じて、次の通りファイル検索テーブル151の内容を書き換える。
AND演算を図15中の処理24に示す。第2のコンテンツに対応する転置ファイルに格納されたファイル識別子が、ファイル検索テーブル151に既に登録されているか否かを調べる(ステップS132)。ファイル識別子が登録されていれば(Yes)、対応するブール変数値をインクリメントする。さらに、ブール判定値をインクリメントする(ステップS133)。一方、ファイル識別子が登録されていなければ(No)、なにもせず(ステップS134)、ステップS135に移行する。
OR演算を図16中の処理25に示す。第2のコンテンツに対応する転置ファイルに格納されたファイル識別子が、ファイル検索テーブル151に既に登録されているか否かを調べる(ステップS141)。ファイル識別子が登録されていれば(Yes)、なにもせず(ステップS142)、ステップS135に移行する。一方、ファイル識別子が登録されていなければ(No)、そのファイル識別子対応するブール変数値を現在のブール判定値として登録する(ステップS143)。
NOT演算を図17中の処理26に示す。第2のコンテンツに対応する転置ファイルに格納されたファイル識別子が、ファイル検索テーブル151に既に登録されているか否かを調べる(ステップS151)。ファイル識別子が登録されていれば(Yes)、そのファイル識別子に対応するブール変数値をデクリメントする(ステップS152)。一方、ファイル識別子が登録されていなければ(No)、なにもせず(ステップS153)、ステップS135に移行する。
(3)ステップS135では、コントローラ18は、第2のコンテンツに対応する転置ファイルに格納されたファイル識別子をすべて処理したか判定する。ファイル識別子をすべて処理したならば(Yes)、ブール変数値がブール判定値と等しい要素のファイル識別子を出力する(ステップS136)。一方、ファイル識別子をすべて処理していなければ(No)、AND演算ではステップS132に戻り、OR演算ではステップS141に、NOT演算ではステップS151にそれぞれ戻る。
第3実施形態によれば、第2実施形態の効果にさらに加えて、検索対象のコンテンツに対応する転置ファイルのアドレスを、転置ファイル割り当てテーブル161を用いて高速に検索することができる。さらに、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算を、ファイル検索テーブル151を用いて高速化に実行することができる。その他の構成及び効果は前記第1,第2実施形態と同様である。
[4]第4実施形態
次に、本発明の第4実施形態のストレージ装置について説明する。
第4実施形態のストレージ装置では、第3実施形態の処理にさらに加えて、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算のさらなる高速化が実現できる。
[4−1]ハードウェア構成
本発明の第4実施形態のストレージ装置のハードウェア構成について説明する。
図18は、第4実施形態のストレージ装置のハードウェア構成を示すブロック図である。
図示するように、ストレージ装置40は、インターフェース11、第1のメモリブロック12、第2のメモリブロック19、第3のメモリブロック16、第4のメモリブロック17、及びコントローラ18から構成されている。
第2のメモリブロック19は、コンテンツ連想メモリ(CAM: Content-Addressable Memory)とRAMを組み合わせたCAM−RAMシステムによって構成されている。
図19を用いて、CAM−RAMシステムについて説明する。図19はCAM−RAMシステムの一例を示す。
コンテンツ連想メモリ(CAM)とは、アドレスの入力に対してそのアドレスが指定するデータを出力する通常メモリとは異なり、検索データの入力に対して、その検索データと全ての格納データとの一致・不一致の比較演算を同時並列に行い、一致した格納データのアドレスを出力する機能を持つ高速検索用途の特殊メモリである。また、CAMは、データの一致検索に対して、一致データの有無をMatch Flagとして出力する。
CAM−RAMシステムとは、前述したCAMとアドレス指定アクセスのRAMを組み合わせたシステムである。CAMの1つのエントリとRAMの1つのエントリとが一対一対応するように、CAMのアドレスデコーダーとRAMのアドレスエンコーダーが設計されている。
キー識別子(Key ID)とそれに対応する値(value)の組をCAM−RAMシステムに格納する。すなわち、キー識別子と対応する値を、それぞれCAMのエントリと対応するRAMのエントリに格納する。
このようなCAM−RAMシステムを用いれば、検索対象のキー識別子が登録されているかの有無判定、登録されているならば検索対象のキー識別子に対応する値の取得(キー識別子から値への変換)を、既に述べたハッシュテーブルデータ構造の場合よりも、さらに高速に行うことができる。
[4−2]コンテンツ検索処理
第2のメモリブロック19のファイル検索テーブル191にCAM−RAMシステムを適用した場合、以下のようになる。
CAM−RAMシステムにおけるキー識別子と値を、それぞれファイル検索テーブル191内のファイル識別子とブール変数にセットする。
コントローラ18は、ブール判定値を保持する記憶領域を有し、ブール判定値を管理する。そして、コントローラ18は、第3実施形態の場合と同じ手順により、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算を実施する。
第4実施形態では、ファイル検索テーブル191にCAM−RAMシステムを用いることにより、検索対象のキー識別子が登録されているかの有無判定や、登録されているならば検索対象のキー識別子に対応する値の取得を、第3実施形態で述べたハッシュテーブルデータ構造を用いた場合よりも、さらに高速に行うことができる。これにより、複数のコンテンツの検索結果に対するAND、OR、NOTを含むブール演算のさらなる高速化が実現できる。
なおここでは、ファイル検索テーブル191にCAM−RAMシステムを用いる例を示したが、転置ファイル割り当てテーブル161やファイル割り当てテーブル171にCAM−RAMシステムを用いることももちろん可能である。この場合、転置ファイル割り当てテーブル161やファイル割り当てテーブル171にハッシュテーブルデータ構造を用いた場合よりも、さらに高速にコンテンツの検索処理を行うことができる。その他の構成及び効果は前記第3実施形態と同様である。
以上説明したように本発明の実施形態によれば、ホストインターフェースの通信速度に制限されることなく、転置ファイルの管理及びブール演算を高速に行うことができるストレージ装置を提供できる。また、従来のストレージ装置が備えるアドレス指定書き込み/読み出し機能だけでなく、全文検索機能も備えるストレージ装置およびその効率的な実現法を提供できる。
なお、前述した各実施形態はそれぞれ、単独で実施できるばかりでなく、適宜組み合せて実施することも可能である。さらに、前述した各実施形態には種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
10,30,40…ストレージ装置、11…ホストインターフェース、12…第1のメモリブロック、13,15,19…第2のメモリブロック、14,18…コントローラ、16…第3のメモリブロック、17…第4のメモリブロック、101…CPU、102…メインメモリ、121…ファイル、122…転置ファイル、131…ファイル検索テーブル、151…ファイル検索テーブル、161…転置ファイル割り当てテーブル、171…ファイル割り当てテーブル、181…ハッシュ生成器、191…ファイル検索テーブル。

Claims (8)

  1. コンテンツの検索要求が入力可能なインターフェースと、
    ファイルと、前記ファイルが含むコンテンツに対応する転置ファイルとを格納する第1のメモリブロックと、
    ファイル検索テーブルを格納する第2のメモリブロックと、
    前記インターフェースと前記第1のメモリブロックと前記第2のメモリブロックの相互の信号送受信を制御するコントローラと、
    を具備し、前記コントローラは、
    前記転置ファイルに前記コンテンツを含む前記ファイルの識別子を格納し、
    前記コンテンツの検索により求めた前記ファイルの識別子を前記ファイル検索テーブルに格納し、
    前記コンテンツの検索要求に対する検索結果として、前記ファイル検索テーブルに格納された前記ファイルの識別子を前記インターフェースから出力することを特徴とするストレージ装置。
  2. 前記インターフェースは複数のコンテンツの検索結果に対するブール演算の要求を受け取り、前記コントローラは、前記ファイル検索テーブルを用いて前記ブール演算を行い、前記ブール演算の結果を前記インターフェースから出力することを特徴とする請求項1に記載のストレージ装置。
  3. 任意長ビットデータをハッシュ関数によって固定長ビットデータに変換するハッシュ生成器をさらに具備し、
    前記ファイルの識別子と前記転置ファイルの識別子の少なくともいずれか1つが、前記ハッシュ生成器によって固定長ビットデータに変換されたものであることを特徴とする請求項1または2に記載のストレージ装置。
  4. 前記インターフェースと前記第1のメモリブロックと前記第2のメモリブロックと前記コントローラとに接続され、前記転置ファイルの識別子と前記転置ファイルの格納位置との組を要素とする転置ファイル割り当てテーブルを格納する第3のメモリブロックをさらに具備し、
    前記転置ファイル割り当てテーブルの前記要素の格納位置は、前記要素の前記転置ファイルの識別子が含む情報によって決まることを特徴とする請求項3に記載のストレージ装置。
  5. 前記ファイル検索テーブルは、前記ファイルの識別子とブール演算の結果を格納する変数との組を要素とするテーブルであることを特徴とする請求項3または4に記載のストレージ装置。
  6. 前記ファイル検索テーブルの前記要素の格納位置は、前記要素の前記ファイルの識別子が含む情報によって決まることを特徴とする請求項5に記載のストレージ装置。
  7. 第2のメモリブロックの前記ファイル検索テーブルは、コンテンツ連想メモリ(CAM)を含むことを特徴とする請求項3または4に記載のストレージ装置。
  8. 前記コントローラから前記第2のメモリブロックへのアクセス速度は、前記コントローラから第1のメモリブロックへのアクセス速度よりも高速であることを特徴とする請求項1乃至7のいずれかに記載のストレージ装置。
JP2010082881A 2010-03-31 2010-03-31 全文検索機能を備えるストレージ装置 Pending JP2011215835A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010082881A JP2011215835A (ja) 2010-03-31 2010-03-31 全文検索機能を備えるストレージ装置
US12/888,897 US8321421B2 (en) 2010-03-31 2010-09-23 Storage device having full-text search function
US13/681,492 US8682902B2 (en) 2010-03-31 2012-11-20 Storage device having full-text search function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010082881A JP2011215835A (ja) 2010-03-31 2010-03-31 全文検索機能を備えるストレージ装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012225098A Division JP2013030189A (ja) 2012-10-10 2012-10-10 全文検索機能を備えるストレージ装置

Publications (1)

Publication Number Publication Date
JP2011215835A true JP2011215835A (ja) 2011-10-27

Family

ID=44710838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010082881A Pending JP2011215835A (ja) 2010-03-31 2010-03-31 全文検索機能を備えるストレージ装置

Country Status (2)

Country Link
US (2) US8321421B2 (ja)
JP (1) JP2011215835A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014038306A1 (ja) * 2012-09-06 2014-03-13 日本電気株式会社 不揮発性連想メモリを利用した全文検索システム及びこれに用いる文字列比較方法
JP2015532498A (ja) * 2012-10-17 2015-11-09 リアルタイムテク カンパニー,リミテッドRealtimetech Co.,Ltd. ハッシュを利用した全文基盤の論理演算遂行方法
WO2018135275A1 (ja) * 2017-01-19 2018-07-26 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US10579683B2 (en) 2011-08-08 2020-03-03 Toshiba Memory Corporation Memory system including key-value store

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215835A (ja) * 2010-03-31 2011-10-27 Toshiba Corp 全文検索機能を備えるストレージ装置
JP5762878B2 (ja) 2011-08-08 2015-08-12 株式会社東芝 key−valueストアを有するメモリシステム
KR101416261B1 (ko) 2013-05-22 2014-07-09 연세대학교 산학협력단 플래시 ssd의 역 인덱스 업데이트 방법
KR102276912B1 (ko) * 2017-06-07 2021-07-13 삼성전자주식회사 스토리지 시스템 및 이의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298231A (ja) * 1992-04-13 1993-11-12 Nec Corp インテリジェント二次記憶装置
JP2000122814A (ja) * 1998-10-15 2000-04-28 Hitachi Ltd 拡張型ネットワーク接続二次記憶方法及び装置
JP2000215678A (ja) * 1999-01-18 2000-08-04 Nec Corp 連想記憶装置及び連想メモリ検索方法
JP2001249943A (ja) * 2000-03-03 2001-09-14 Ricoh Co Ltd 文書検索システム、文書検索方法およびその方法を実施するためのプログラムを記憶した記憶媒体
JP2003271626A (ja) * 2002-03-19 2003-09-26 Mitsubishi Denki Information Technology Corp 検索機能付きストレージデバイス
JP2008158993A (ja) * 2006-12-26 2008-07-10 Hitachi Ltd ストレージシステム
JP2009140302A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 転置インデックス作成装置及びフォワードインデックス作成装置
JP2009181577A (ja) * 2008-01-31 2009-08-13 Hewlett-Packard Development Co Lp インテリジェントデータストレージシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6569206B1 (en) * 1999-10-29 2003-05-27 Verizon Laboratories Inc. Facilitation of hypervideo by automatic IR techniques in response to user requests
US6757866B1 (en) * 1999-10-29 2004-06-29 Verizon Laboratories Inc. Hyper video: information retrieval using text from multimedia
US6377500B1 (en) 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
US7007015B1 (en) * 2002-05-01 2006-02-28 Microsoft Corporation Prioritized merging for full-text index on relational store
US20050027932A1 (en) * 2003-07-31 2005-02-03 Thayer Larry J. Content addressable memory with redundant stored data
US20070244862A1 (en) * 2006-04-13 2007-10-18 Randy Adams Systems and methods for ranking vertical domains
US7752193B2 (en) * 2006-09-08 2010-07-06 Guidance Software, Inc. System and method for building and retrieving a full text index
US8739035B2 (en) * 2006-10-11 2014-05-27 Intel Corporation Controls and indicators with on-screen cognitive aids
US7693813B1 (en) * 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US7742415B1 (en) * 2007-09-26 2010-06-22 The United States Of America As Represented By Secretary Of The Navy Non-intrusive knowledge suite for evaluation of latencies in IP networks
US20090125504A1 (en) * 2007-11-08 2009-05-14 Randy Adams Systems and methods for visualizing web page query results
JP2011215835A (ja) * 2010-03-31 2011-10-27 Toshiba Corp 全文検索機能を備えるストレージ装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298231A (ja) * 1992-04-13 1993-11-12 Nec Corp インテリジェント二次記憶装置
JP2000122814A (ja) * 1998-10-15 2000-04-28 Hitachi Ltd 拡張型ネットワーク接続二次記憶方法及び装置
JP2000215678A (ja) * 1999-01-18 2000-08-04 Nec Corp 連想記憶装置及び連想メモリ検索方法
JP2001249943A (ja) * 2000-03-03 2001-09-14 Ricoh Co Ltd 文書検索システム、文書検索方法およびその方法を実施するためのプログラムを記憶した記憶媒体
JP2003271626A (ja) * 2002-03-19 2003-09-26 Mitsubishi Denki Information Technology Corp 検索機能付きストレージデバイス
JP2008158993A (ja) * 2006-12-26 2008-07-10 Hitachi Ltd ストレージシステム
JP2009140302A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 転置インデックス作成装置及びフォワードインデックス作成装置
JP2009181577A (ja) * 2008-01-31 2009-08-13 Hewlett-Packard Development Co Lp インテリジェントデータストレージシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10579683B2 (en) 2011-08-08 2020-03-03 Toshiba Memory Corporation Memory system including key-value store
WO2014038306A1 (ja) * 2012-09-06 2014-03-13 日本電気株式会社 不揮発性連想メモリを利用した全文検索システム及びこれに用いる文字列比較方法
JPWO2014038306A1 (ja) * 2012-09-06 2016-08-08 日本電気株式会社 不揮発性連想メモリを利用した全文検索システム及びこれに用いる文字列比較方法
JP2015532498A (ja) * 2012-10-17 2015-11-09 リアルタイムテク カンパニー,リミテッドRealtimetech Co.,Ltd. ハッシュを利用した全文基盤の論理演算遂行方法
WO2018135275A1 (ja) * 2017-01-19 2018-07-26 富士通株式会社 情報処理装置、情報処理方法及びプログラム
US11144236B2 (en) 2017-01-19 2021-10-12 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program

Also Published As

Publication number Publication date
US20110246451A1 (en) 2011-10-06
US8682902B2 (en) 2014-03-25
US20130080465A1 (en) 2013-03-28
US8321421B2 (en) 2012-11-27

Similar Documents

Publication Publication Date Title
US10579683B2 (en) Memory system including key-value store
US10614032B2 (en) Quick filename lookup using name hash
US8682902B2 (en) Storage device having full-text search function
US9317519B2 (en) Storage system for eliminating duplicated data
US9792306B1 (en) Data transfer between dissimilar deduplication systems
JP5544431B2 (ja) スケーラブルなデータ構造を利用するための方法および装置
US9195666B2 (en) Location independent files
US8027961B2 (en) System and method for composite record keys ordered in a flat key space for a distributed database
KR20190032903A (ko) 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
KR101099802B1 (ko) 하나의 디렉토리로부터 또 다른 디렉토리로의 파일 복사
CN104778192A (zh) 表示可内容寻址存储系统的目录结构
WO2021174836A1 (zh) 差分包生成方法方法、装置、计算机设备及存储介质
JP2014063540A (ja) key−valueストア方式を有するメモリシステム
US20200019539A1 (en) Efficient and light-weight indexing for massive blob/objects
JP2017021857A (ja) メモリシステムのローカルコントローラ
JP2015028815A (ja) key−valueストア方式を有するメモリシステム
US20130218851A1 (en) Storage system, data management device, method and program
JP2013030189A (ja) 全文検索機能を備えるストレージ装置
JP2016021264A (ja) メモリシステムのデータ管理方法
WO2023141987A1 (zh) 文件读取方法和装置
US20220365905A1 (en) Metadata processing method and apparatus, and a computer-readable storage medium
US20210342333A1 (en) Partial updates in data collections in a data storage system
US20210157846A1 (en) Systems and Methods for Enriching Documents for Indexing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120710