JP5898026B2 - 分散検索システムにおけるストレージ容量平準化方法 - Google Patents

分散検索システムにおけるストレージ容量平準化方法 Download PDF

Info

Publication number
JP5898026B2
JP5898026B2 JP2012213420A JP2012213420A JP5898026B2 JP 5898026 B2 JP5898026 B2 JP 5898026B2 JP 2012213420 A JP2012213420 A JP 2012213420A JP 2012213420 A JP2012213420 A JP 2012213420A JP 5898026 B2 JP5898026 B2 JP 5898026B2
Authority
JP
Japan
Prior art keywords
index
search
server
file
content
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.)
Expired - Fee Related
Application number
JP2012213420A
Other languages
English (en)
Other versions
JP2014067323A (ja
Inventor
晃治 中山
晃治 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2012213420A priority Critical patent/JP5898026B2/ja
Publication of JP2014067323A publication Critical patent/JP2014067323A/ja
Application granted granted Critical
Publication of JP5898026B2 publication Critical patent/JP5898026B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、大規模なファイル群を対象とした検索用インデクスを複数の検索サーバに分割配置する場合に検索サーバ間のストレージ容量を平準化する技術に関する。
近年におけるアプリケーションの多様化やストレージコストの低価格化に伴い、ストレージに保存されるデータ量は爆発的に増加している。これに伴い、企業内で扱うドキュメントデータのデータ量も膨大になっている。このため、大量に存在するデータを有効活用するための検索システムの重要性が増している。
通常、検索対象とするドキュメントの数が膨大である場合、検索インデクス(索引データ)の事前の生成により、検索パフォーマンスの向上が図られる。この他、同じ検索インデクスを複数の検索サーバに設置して負荷を分散する方法や、複数の検索サーバ上に検索インデクスを分割配置して検索処理を分散する方法等も、検索パフォーマンスの向上を図る方法として一般に採用されている。
このような技術背景において、検索インデクスの生成方法についても、様々な技術が提案されている。例えば特許文献1には、分割された検索インデクスのサイズの偏りをなるべく低減する手法が開示されている。
特開2011−70257号公報
Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Webhttp://www.akamai.com/dl/technical_publications/ConsistenHashingandRandomTreesDistributedCachingprotocolsforrelievingHotSpotsontheworldwideweb.pdf
特許文献1によれば、確率的に分割されたインデクスに登録されるドキュメント数が均等となることから、インデクスのサイズも平準化されることが期待されているが、企業で利用するデータにはドキュメント以外のデータも数多く含まれる。例えば、サーバログやメールアーカイブデータ等は、著しくファイルサイズが大きいものが含まれることがあり、分割インデクスのサイズが平準化されない問題がある。そのため、各検索サーバのディスクサイズを見積もることが難しく、見積もったとしてもインデクスサイズの偏りにより、ディスク容量を無駄にする可能性が出てくる。
この技術課題を解決するために、本発明は、検索用のインデクスの生成に際し、ファイルデータからメタ情報とコンテンツを分離し、コンテンツは1つ又は複数のコンテンツサーバに格納し、メタ情報は分割インデクスに配置する。この際、メタ情報の割り当て先をコンシステントハッシュ法に基づいて決定する。
本発明によれば、ファイルのメタ情報で構成される分割インデクスのサイズは、ファイルのサイズ(特に、コンテンツのサイズ)によらず、割り当てられたファイル数に応じて一定となる。このため、全ての分割インデクスを概ね同じサイズに揃えることができる。かくして、本発明では、検索サーバにおけるディスク容量の見積もりが容易になり、かつ、ディスク容量に無駄が生じる可能性を低減することができる。なお、上述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施の形態に係る検索システムの概念構成を示す図。 検索サーバの機能構成例を示す図。 分散処理サーバの機能構成例を示す図。 コンテンツサーバの機能構成例を示す図。 管理サーバの機能構成例を示す図。 インデクスIDテーブルのデータ構造例を示す図。 検索サーバ管理テーブルのデータ構造例を示す図。 ファイル管理テーブルのデータ構造例を示す図。 インデクスリストのデータ構造例を示す図。 インデクススキーマのデータ構造例を示す図。 コンテンツ管理テーブルのデータ構造例を示す図。 検索サーバ管理テーブルの初期化フローを示す図。 インデクスIDテーブルの初期化フローを示す図。 初期化終了後のインデクスIDテーブル例を説明する図。 スキャナモジュールによるインデクスリストの生成フローを示す図。 インデクス生成モジュールによる分割インデクスの生成フローを示す図。 検索サーバへの分割インデクスの配置フローを示す図。 検索サーバ内の検索フローを示す図。 コンテンツ配置変更フローを示す図。
以下の説明においては、複数のセクションに分割して、実施の形態に係る検索システムの実現に必要な処理機能を説明する。以下の説明において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。
また、以下の説明において、各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路その他のハードウェアとして実現しても良い。また、前述した各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することにより実現しても良い。すなわち、ソフトウェアとして実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記憶装置、ICカード、SDカード、DVD等の記憶媒体に格納することができる。
また、制御線や情報線は、説明上必要と考えられるものを示すものであり、製品上必要な全ての制御線や情報線を表すものでない。実際にはほとんど全ての構成が相互に接続されていると考えて良い。
〔実施例〕
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
[検索システムの全体構成]
図1に、本実施例に係る検索システムの構成例を示す。本実施例に係る検索システムは、検索クライアント100、検索サーバ101、ファイルサーバ102、分散処理サーバ103、コンテンツサーバ104、管理サーバ105から構成され、それらがネットワーク106を通じて互いに接続されている。ネットワーク106は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)等として一般に知られるネットワークを用いて実現することができる。なお、ネットワーク106は、有線ネットワークでも無線ネットワークでも構わない。また、検索システムは、1つの領域・国内に構築される必要は無く、複数の地域・国間を跨いで構築されてもよい。
[検索クライアントの構成]
検索クライアント100は、Webブラウザを動作させることができる環境がインストールされたコンピュータであり、据え置き型に限らず、携帯型のコンピュータ、携帯情報端末、携帯電話機の端末を含む。検索クライアント100は、HTTP(Hypertext Transfer Protocol)等を使用して検索サーバ101に対して検索クエリを送信する機能と、検索サーバ101から検索結果を取得する機能と、取得した検索結果を利用者に表示する機能とを有している。検索クライアント100は、検索システム上に複数存在する。
[検索サーバの構成]
図2に、検索サーバ101の内部構成例を示す。検索サーバ101は、検索クライアント100から検索クエリを受信して検索処理を実行し、検索結果を返信するサーバコンピュータである。検索サーバ101は、検索システム内に複数台存在し、それぞれがローカルストレージ201を保持している。ローカルストレージ201内には、ファイルサーバ102に保存されるファイル群に基づいて生成された検索用の分割インデクス202が保存されている。検索サーバ101には、インデクス管理モジュール203と検索モジュール204がインストールされている。インデクス管理モジュール203は、分割インデクス202の管理・更新用のプログラムである。検索モジュール204は、検索用の分割インデクスを用いて検索処理を実行するプログラムである。因みに、インデクス管理モジュール203と検索モジュール204は、検索サーバ101のそれぞれにインストールされている。また、検索サーバ101にはコンテンツ監視モジュール205がインストールされており、ローカルストレージ201の容量をチェック・取得する機能と、その取得したディスク情報を基に、後述するコンテンツ管理モジュール507(図5)と連携して分割インデクス内のコンテンツデータの管理を行う機能とを備えている。
分割インデクス202は、ファイルサーバ102上に保存されているファイル群に基づいて、管理サーバ105上のインデクス生成管理モジュール502(図5)及び分散処理サーバ103のインデクス生成モジュール305(図3)により生成される検索用のインデクスである。後述するように、分割インデクス202は、コンシステントハッシュ法に基づいて、インデクスID毎に分割されたインデクスである。なお、インデクスIDには分割インデクス202が紐付けられており、この紐付きを通じ、検索サーバ101に分割インデクス202が配置される。検索サーバ101上に配置させる分割インデクス202の数(インデクスの分割数)は、あらかじめ管理者が決定する。また、分割インデクス202は、後述するスキーマで定義される検索インデクスである。なお、分割インデクス202を生成する場合、ファイルに含まれるコンテンツデータを格納する/しないを選択的に実行することが可能である。コンテンツデータを格納しない場合、ファイルメタ情報のみを含む分割インデクスが生成される。この場合、分割インデクス202のサイズは、登録されたドキュメント数に応じて一定となる。しかも、コンシステントハッシュ法を用いると、分割インデクスに割り当てられる登録ドキュメント数(すなわち、ファイルメタ情報の数)が平準化されるため、分割インデクス202の配置に必要なディスクサイズの見積もりが容易になる。
インデクス管理モジュール203は、分割インデクス202を、検索サーバ101に配置・管理するモジュールである。検索サーバ101に分割インデクス202が既に存在し、その分割インデクス202の更新操作を実行する場合、インデクス管理モジュール203は、既存の分割インデクス202に対して、新規に生成された分割インデクスをマージして最新の分割インデクスを生成する。
検索サーバ101の追加により、システム全体で保持している分割インデクスの数が増加した場合、インデクス管理モジュール203は、それぞれの検索サーバ101に保存されている既存の分割インデクス202をさらに分割する機能を有する。なお、新たに追加された検索サーバ101のインデクス管理モジュール203は、他の検索サーバ101で新規に分割されたインデクスを集約して1つの分割インデクス202を生成する機能を有する。
削除対象の検索サーバ101におけるインデクス管理モジュール203は、自サーバに保持されていた分割インデクス202をインデクスIDに従って再度分割し、他の検索サーバ101の分割インデクス202に割り振る機能を有する。
検索モジュール204は、検索サーバ101に配置された分割インデクス202を使用して、検索クライアント100から受け取った検索クエリに対する検索結果を生成し、検索クライアント100に検索結果を返信する機能を有する検索エンジンである。検索モジュール204は、他の検索サーバ群にインストールされているそれぞれの検索モジュール204と連携し、検索処理を分散的に実行する機能も有している。
コンテンツ監視モジュール205は、ローカルストレージ201のディスク空き容量をチェックする機能を備えている。また、コンテンツ監視モジュール205は、分割インデクス内の情報を使って、当該分割インデクスに登録されているファイルのコンテンツデータの合計サイズを計算する機能も備えている。なお、ファイルメタ情報には、ファイルサイズ情報が含まれているものとする。これらの機能を使い、コンテンツ監視モジュール205は、後述するコンテンツ管理モジュール507(図5)と連携し、各検索サーバ101上のローカルストレージ201に空き容量がある場合は、コンテンツサーバ104からコンテンツデータを分割インデクス202内に配置変更し、各検索サーバ101のディスク容量に最適な分割インデクスの配置を可能している。
[ファイルサーバの構成]
ファイルサーバ102は、企業内等において作成された大量のドキュメントデータを保存するサーバである。ファイルサーバ102は、検索システム内に複数台存在する。各ファイルサーバ102は、分散処理サーバ103及び管理サーバ105と、NFS(Network File System)やCIFS(Common Internet File System)等のプロトコルを通じて接続されている。これにより、分散処理サーバ103及び管理サーバ105上の各モジュールは、ファイルサーバ102上に存在するファイルへのアクセス及びファイル情報の取得が可能である。
[分散処理サーバの構成]
図3に、分散処理サーバ103の内部構成例を示す。分散処理サーバ103は、検索システム内に複数台存在する。これら複数の分散処理サーバ103は、一つの処理命令を他のサーバとの連携により分散的に処理する機能を有するサーバ群である。
分散処理サーバ103には、分散ファイルシステム302と分散処理モジュール303と分割インデクスの生成を制御するためのスキャナモジュール304、インデクス生成モジュール305がインストールされている。分散処理サーバ103には、ローカルストレージ301が設けられている。
分散ファイルシステム302は、ローカルストレージ301を用い、共通する一つのファイルシステムを全ての分散処理サーバ103から利用可能とするモジュールである。
分散処理モジュール303は、管理サーバ105のインデクス生成管理モジュール502(図5)から命令を受けた場合、他の分散処理サーバ103上のスキャナモジュール304及びインデクス生成モジュール305と連携し、分割インデクス202を分散的に生成する機能を有するモジュールである。
スキャナモジュール304は、ファイルサーバ102上のファイル・ディレクトリをスキャンして、ファイル・フォルダパス名(以下「ファイルパス」又は「ファイルパス名」という)の一覧とそれらのファイルメタ情報(以下「メタ情報」ともいう)を取得する機能と、それらのファイル・フォルダが新規生成・更新・削除のいずれの状態であるかを判定し、インデクスリスト306を生成する機能とを有するモジュールである。なお、スキャナモジュール304は管理サーバ105上のインデクス生成管理モジュール502(図5)からの命令により動作する。
インデクスリスト306は、スキャナモジュール304がファイル管理テーブル506(図5)に格納したファイルメタ情報と、インデクス処理対象のファイルを特定するファイルパスと、処理ステータスとが書き込まれた一時ファイルであり、後述するインデクス生成モジュール305により利用される。
スキャナモジュール304の機能は、以下の処理機能の実行を通じ実現することができる。スキャナモジュール304は、例えばLinux(登録商標)のFindコマンドを利用し、ファイルサーバ102上のファイルパスの一覧とそれらのメタ情報を取得する。この後、スキャナモジュール304は、取得したファイルメタ情報のハッシュ値を計算する。次に、スキャナモジュール304は、任意のタイミングに取得しておいたファイル管理テーブル506(図5)に格納されたファイルメタ情報のハッシュ値と、計算されたハッシュ値とを比較し、その一致・不一致により、インデクス対象となるか否かを判定する。
ハッシュ値が同じであった場合、スキャナモジュール304は、該当するファイル・ディレクトリに更新が無いと判定し、インデクシングの対象外とする。ハッシュ値が異なる場合、スキャナモジュール304は、ファイル・ディレクトリに更新があったと判定し、インデクスリスト306に情報を書き出す。
ファイル管理テーブル506(図5)にファイルパスが存在するにもかかわらず、Findコマンドによって対象とするファイルパスを取得できない場合、スキャナモジュール304は、当該ファイルパスがファイル削除を示すように、インデクスリスト306に情報を書き出す。
インデクス生成モジュール305は、スキャナモジュール304が出力したインデクスリスト306に基づいて、分散処理サーバ103上でインデクスを分散的に生成する機能を有するモジュールである。インデクス生成モジュール305は、コンシステントハッシュ法に基づいてファイルパスに対応するハッシュ値を算出し、当該ハッシュ値から対応するインデクスIDを求める。また、インデクス生成モジュール305は、インデクスID毎に分割インデクスを生成する。なお、インデクス生成モジュール305は、スキャナモジュール304と同様に、管理サーバ105上のインデクス生成管理モジュール502からの命令により動作するモジュールである。
インデクス生成モジュール305の処理は、タスクと呼ばれる処理単位に分割され、複数の分散処理サーバ103に分散される。なお、タスクは、分散処理サーバ103上において、第一の分散処理と第二の分散処理と第三の分散処理に分けて実行される。これらの処理は、大規模分散処理の技術として知られるMapReduceを使用することでも実現できる。その場合、第一の分散処理をMap処理、第二の分散処理をShuffle処理、第三の分散処理をReduce処理として実現する。詳細動作については後述する。
[コンテンツサーバの構成]
図4にコンテンツサーバ104の内部構成例を示す。コンテンツサーバ104には、ローカルストレージ401が設けられている。ローカルストレージ401には、分散データベース402がインストールされている。分散データベース402上には、コンテンツ管理テーブル403がある。コンテンツ管理テーブル403は、コンテンツデータから生成したハッシュ値をキーとして、そのファイルのコンテンツデータを格納しておくテーブルである。コンテンツサーバ104は、検索サーバ101からの要求に応じて、コンテンツ情報の取得・送信を行う。また、後述する管理サーバ105上のコンテンツ管理モジュール507(図5)からの要求で、コンテンツ情報を取得して、検索サーバ101上の分割インデクス202へコンテンツデータを移動させる機能も備えている。また、分散データベース402にコンテンツデータを格納する際、コンテンツデータのハッシュ値をキーとして管理することで、ファイルサーバ上で異なるファイルパスで保存されている、同じコンテンツ情報を持つファイルの重複を検出・排除し、ストレージ要領を削減することが可能になっている。なお、コンテンツサーバ104上に配置される分散データベース402は、一般的にスケーラブルなソフトウェアであり、複数のコンテンツサーバに対して一つのデータベースを構築することが可能である。その場合、分散データベースプログラムは、各コンテンツサーバのストレージ容量を均等に利用するため、分散データベースを利用する外部プログラムは、ストレージ分散を考慮することなくデータを格納することが可能である。
[管理サーバの構成]
図5に、管理サーバ105の内部構成例を示す。管理サーバ105は、検索システムを構成する検索サーバ101、ファイルサーバ102、分散処理サーバ103、コンテンツサーバ104等のサーバ管理機能を有するサーバである。管理サーバ105のローカルストレージ501には、分割インデクスの生成を制御するためのインデクス生成管理モジュール502、システム管理モジュール503、インデクスIDテーブル504、検索サーバ管理テーブル505、ファイル管理テーブル506、コンテンツ管理モジュール507がインストールされている。これらのモジュールは、管理サーバ105以外に存在してもよい。例えばこれらのモジュールの全部又は一部は、分散処理サーバ103上で直接動作可能であってもよい。
インデクス生成管理モジュール502は、分散処理サーバ103の分散処理モジュール303、スキャナモジュール304、インデクス生成モジュール305による分割インデクス生成処理の開始と終了を管理するモジュールである。
システム管理モジュール503は、検索システム上に存在するサーバ群の管理や各種テーブルの初期化を実行する機能と、システムの初期化に係るパラメータを管理者が入力するためのユーザインターフェースを提供する機能とを有するモジュールである。
コンテンツ管理モジュール507は、検索サーバ101上のコンテンツ監視モジュール205と連携し、検索サーバ101上のディスクの空き容量に余裕がある場合は、コンテンツサーバ104上から、分割インデクス202へコンテンツデータを移動させるモジュールである。また、逆に、検索サーバ101上のディスク容量に空きが少なくなった場合、または、管理者により実行操作が行われた場合に、分割インデクス202からコンテンツデータをコンテンツサーバ104へ移動させる機能を持つモジュールである。
[テーブル等のデータ構造]
図6に、インデクスIDテーブル504の例を示す。インデクスIDテーブル504は、仮想インデクスID601とインデクスID602を格納するテーブルであり、ファイルパスからインデクスIDを取得するために用いられる。インデクスIDテーブル504は、コンシステントハッシュ法の実現手段として利用される。
以下、コンシステントハッシュ法について解説する。コンシステントハッシュ法は、0〜2^128−1(2^128はMD5ハッシュ法に基づく値。MD5は一例であって、任意のハッシュアルゴリズムを利用することが可能である)の整数の目盛りが振られた円周上にインデクスIDのハッシュ値を求めて配置し、円周上の範囲を分割する。なお、インデクスIDのハッシュ値を取得するとは、インデクスIDを文字列としてMD5等のハッシュ関数を適用することを意味する。
ファイルパスからインデクスIDを取得するには、ファイルパスから同じハッシュ関数(この例ではMD5)を利用してハッシュ値を求めて円周上に配置し、その位置から反時計回りに回って最初に遭遇するハッシュ値に対応するインデクスIDが、ファイルパスに紐付けるインデクスIDとなる。以上が基本的なコンシステントハッシュの概念である。ただし、単純なコンシステントハッシュ法は、各インデクスIDに割り当てられるファイル数は、円周上で分割される間隔に依存する。
このため、インデクスIDのハッシュ値だけで分割すると、インデクスIDの追加・削除を行った場合に、各インデクスIDに割り当てられるファイル数に偏りが生じてしまう。これは、インデクスサイズが各分割インデクス間で偏ることを意味し、検索パフォーマンスの劣化を招くことになる。このため、インデクスサイズを平準化する必要がある。
平準化を行うには、円周上に配置されるインデクスIDに対応する点の間隔を短くすることが必要となる。そこで、コンシステントハッシュ法の仮想ノードに相当する仮想インデクスIDを生成する。仮想インデクスIDは、インデクスIDに紐付けられるハッシュ値であり、1インデクスIDあたりn個の仮想インデクスIDを生成し、システム上に存在するそれぞれの分割インデクス間でサイズを平準化させる。仮想インデクスIDの生成と使用方法については後述する。
図7に、検索サーバ管理テーブル505の例を示す。検索サーバ管理テーブル505は、インデクスID701と、そのインデクスIDが紐付けられている分割インデクスが配置されている配置先検索サーバ名702が格納されたテーブルである。
図8に、ファイル管理テーブル506の例を示す。ファイル管理テーブル506は、ファイルサーバ102上に存在するファイルパス801の一覧と、それらの属性情報であるファイルメタ情報802、及び、その属性情報から生成したハッシュ値803を保存・管理するためのテーブルである。
スキャナモジュール304は、このテーブルに保存されているハッシュ値803と、スキャナモジュール304のスキャン実行時に取得したファイルメタ情報から生成されるハッシュ値を比較し、ファイルの更新状態をチェックして、処理ステータス804のカラムに格納する。また、インデクス生成時にコンテンツデータから生成されるコンテンツデータハッシュ値805も格納されている。
図9に、インデクスリスト306の例を示す。インデクスリスト306は、スキャナモジュール304によるファイルサーバのスキャンが終了し、かつ、処理ステータス804がファイル管理テーブル506に格納された後、インデクス処理対象のファイルパス801及び処理ステータス804をファイル管理テーブル506から抜き出すことにより生成される。インデクスリスト306は、ファイルパス901、処理ステータス902、ファイルメタ情報903により構成される。生成されたインデクスリスト306は、分散処理サーバ103のインデクス生成モジュール305に渡され、分割インデクス202の生成に利用される。
図10に、分割インデクス202のインデクススキーマ1000の例を示す。インデクススキーマ1000には、ファイルパス1001をユニークキーとして、ファイルメタ情報1002、コンテンツデータハッシュ値1003、コンテンツデータ1004が定義されている。ファイルメタ情報1002は、ファイルの構成情報に関するデータであり、ファイル固有のメタ情報、及び、OSにより管理されるメタ情報の両方を含む複数の情報である。コンテンツデータハッシュ値1003は、コンテンツデータ1004からハッシュ関数により生成されたハッシュ値である。コンテンツデータ1004はファイル内の本文にあたるデータである。
図11に、コンテンツ管理テーブル403のコンテンツ管理スキーマの例を示す。コンテンツ管理スキーマは、コンテンツデータハッシュ値1101をユニークキーとして、コンテンツデータ1102及び参照カウント1103が定義されている。コンテンツデータ1102は、ファイルサーバ102上に保存されているドキュメントの本文にあたるデータである。参照カウント1103は、このエントリが参照されているカウントを示しており、2以上の値である場合、内容が重複したファイルがファイルサーバ102上にあり、それらのファイルが分割インデクス202に登録されたことを示す。
[検索サーバ管理テーブルの初期化フロー]
図12に、検索サーバ管理テーブル505の初期化フローを示す。ここでは、検索サーバ101が2台存在し、各検索サーバ101上に2つ分割インデクス202を配置する場合を想定する。すなわち、検索システム全体におけるインデクスの分割数は4(=2×2)である場合を想定する。また、2台の検索サーバ名は、”Search1”と”Search2”であるものとする。
まず、管理者は、検索サーバ管理テーブル505の初期化を行うために、検索サーバ101の台数、及び、インデクスの分割数を設定する(S1201)。これらの情報の入力には、不図示の入力装置が用いられる。インデクスの分割数は、前述したように、各検索サーバ101に配置する分割インデクス202の数に応じて定まる。この説明では、1つの検索サーバ101に2つの分割インデクス202が配置されるので、システム全体におけるインデクスの分割数は4である。
管理者がこれらの情報をシステム管理モジュール503に入力すると、システム管理モジュール503は、各分割インデクス202に対して割り振るインデクスIDを決定する(S1202)。本明細書の場合、インデクスIDは0から始まる昇順の数字とする。すなわち、システム管理モジュール503は、「0」、「1」、「2」、「3」の順番にインデクスIDを割り振る。
次に、システム管理モジュール503は、各インデクスIDと検索サーバ101との紐付けを実行し(S1203)、その結果を検索サーバ管理テーブル505に格納する(S1204)。本実施例の場合、システム管理モジュール503が自動的にインデクスIDと検索サーバの紐付けを実行するが、管理者が手動で設定してもよい。
例えば本実施例の場合、検索サーバ管理テーブル505のエントリは、「インデクスID=0,配置先検索サーバ名=Search1」、「インデクスID=1,配置先検索サーバ名=Search1」、「インデクスID=2,配置先検索サーバ名=Search2」、「インデクスID=3,配置先検索サーバ名=Search2」の4つとなる。以上で、検索サーバ管理テーブル505の初期化が完了する。
[インデクスIDテーブルの初期化フロー]
図13に、インデクスIDテーブル504の初期化フローを示す。インデクスIDテーブル504の初期化も検索サーバ管理テーブル505の初期化と同様のタイミングで実行される。
まず、管理者が検索サーバ101の台数とインデクスの分割数を設定する(S1301)。ここでも、これらの情報の入力には不図示の入力装置が用いられる。インデクスの分割数は、各検索サーバ101に配置する分割インデクスの数に応じて定まる。
管理者がこれらの情報をシステム管理モジュール503に入力すると、システム管理モジュール503は、インデクスIDを決定する(S1302)。ここでも、インデクスIDは、「0」、「1」、「2」、「3」の4つであるものとする。
次に、システム管理モジュール503は、1つのインデクスIDに対して任意の仮想インデクスIDを生成する(S1303)。仮想インデクスIDの数は、一つのインデクスIDに対して2であるものとする。仮想インデクスIDの数は、最終的にインデクスIDに紐付けられるファイル数が平準化されるように定められる任意の固定値である。本実施例では、インデクスID「0」に紐付ける仮想インデクスIDを「0−0」、「0−1」、インデクスID「1」に紐付ける仮想インデクスIDを「1−0」、「1−1」、インデクスID「2」に紐付ける仮想インデクスIDを「2−0」、「2−1」、インデクスID「3」に紐付ける仮想インデクスIDを「3−0」、「3−1」とする。
続いて、システム管理モジュール503は、仮想インデクスIDの文字列からハッシュ値を取得する(S1304)。この後、システム管理モジュール503は、取得されたハッシュ値をインデクスIDテーブル504の仮想インデクスID601のカラムに格納し、そのエントリのインデクスID602のカラムにこの仮想インデクスIDが紐付けられるインデクスIDを格納する(S1305)。
図14に、初期化が終了したインデクスIDテーブル504の例を示す。このテーブルを利用することにより、ファイルパスが与えられたとき、そのファイルパスがどのインデクスIDに紐付けるかを知ることが可能となる。例えばファイルパス「/FileServer1/test.txt」のハッシュ値を求めたところ「29999999999」であった場合、このハッシュ値は、項番3と項番4の点の間に配置され、項番3のエントリの点にヒットする(コンシステントハッシュの円周上で左に回る場合)。項番3のインデクスIDは「3」であるので、ファイルパス「/FileServer1/test.tx」”のインデクスIDは「3」となることが分かる。
このテーブルはコンシステントハッシュ法の実現方式であり、このテーブルを元にしてファイルパスからインデクスIDを取得し、インデクスID毎に分割インデクスを生成すると、各々の分割インデクスのサイズ又は紐付けられるファイル数の平準化が実現される。
[インデクスリストの生成フロー]
図15に、スキャナモジュール304によるインデクスリストの生成フローを示す。まず、インデクス生成管理モジュール502は、スキャナモジュール304に対し、インデクスリスト生成開始を指示する(S1501)。
次に、スキャナモジュール304は、ファイル管理テーブル506にアクセスし、処理ステータスのカラムに削除を示す「−1」を設定する(S1502)。
その後、スキャナモジュール304は、ファイルサーバ102に対してFindコマンドを実行する(S1503)。
Findコマンドにより取得したファイルパスとそのメタ情報を取得すると、スキャナモジュール304は、それぞれのメタ情報に基づいてハッシュ値を取得する(S1504)。
続いて、スキャナモジュール304は、Findにより取得したファイルパスをキーに使用し、ファイルパスの有無をファイル管理テーブル506に問い合わせる(S1505)。
ファイルパスがファイル管理テーブル506に存在しない場合(S1505で否定結果)、当該ファイルパスに対応するファイルは新規作成であることを意味する。従って、この場合、スキャナモジュール304は、ファイル管理テーブル506に新たにそのファイルパス801をキーとするエントリを生成する(S1506)。エントリは、ファイルメタ情報802、ファイルメタ情報ハッシュ値803、処理ステータス804である。処理ステータス804には新規生成を示す「0」が追加される
一方、ファイルパス801がファイル管理テーブル506に存在する場合(S1505で肯定結果)、当該ファイルパスに対応するファイルは、既にファイル管理テーブル506に登録されていることを意味する。この場合、スキャナモジュール304は、ファイルメタ情報ハッシュ値803をチェックする(S1507)。
具体的には、スキャナモジュール304は、ファイル管理テーブル506からファイルパス801が一致するエントリのファイルメタ情報ハッシュ803を取得し、Findコマンドにより取得したハッシュ値と比較する。
ハッシュ値が一致した場合(S1507で肯定結果)、ファイル更新がなかったことを意味する。従って、この場合、スキャナモジュール304は、ファイルパスが一致するエントリの処理ステータスに「1」を設定する(S1508)。
分散データベースでハッシュ値がヒットしなかった場合(S1507で否定結果)、ファイル更新があったことを意味する。従って、この場合、スキャナモジュール304は、ファイルメタ情報ハッシュ値803を新たなハッシュ値で上書きし、処理ステータス804にファイル更新があったことを示す「2」を上書きする(S1509)。
以上の処理により、指定された階層のファイル処理(「0」=新規生成、「1」=更新なし、「2」=更新、「−1」=削除)が確定する。
次に、スキャナモジュール304は、ファイル管理テーブル506の全てのレコードからファイルパス801、ファイルメタ情報802、処理ステータス804を取得してインデクスリスト306へ書き出す(S1510)。このとき、インデクスリスト306には、スキャナモジュール304で処理した全てのファイルパス、ファイル処理(「0」、「1」、「2」、「−1」)のオペレーション、ファイルメタ情報が書かれている。なお、上記の処理は、Findコマンドのオプションパラメータでファイルツリーの階層の範囲を特定して実行することも可能である。
スキャナモジュール304は、インデクスリスト306を生成し終えたら、インデクス生成モジュール305にインデクスリスト306を転送して、インデクス生成管理モジュール502にスキャニングの終了を通知する(S1511)。インデクス生成モジュール305は、インデクスリスト306を受け取った後、インデクス生成を開始する。
[分割インデクス生成のフロー]
図16に、インデクス生成モジュール305による分割インデクス202の生成フローを示す。インデクス生成モジュール305は、スキャナモジュール304から転送されてくるインデクスリスト306に基づいて分割インデクス202を生成する。インデクス生成モジュール305の処理は、インデクスリスト306に対して、タスクと呼ばれる複数の処理単位に分割され、複数の分散処理サーバ103上で分散的に処理される。以下、タスク生成及び分散処理サーバ上での処理を示す。
インデクス生成モジュール305は、スキャナモジュール304からインデクスリスト306を取得する(S1601)。次に、インデクス生成モジュール305は、第一の分散処理として、以下に示すS1603とS1604の処理をインデクスリストのエントリ数分だけ行う。まず、インデクス生成モジュール305は、インデクスリスト306を任意の数に分割する(S1602)。ここでの数は、分散処理サーバ103の台数及び処理性能から決定される数である。インデクスリスト306は、インデクス処理対象のファイルパス901、処理ステータス902が記述されたテキストファイルであり、このファイルを分割する際には、分割数に応じて単純に任意の行で区切って複数のインデクスリストが生成されることとなる。
分割された各々のインデクスリスト306は、それぞれが、分散処理サーバ103上で複数のタスクとして処理される。第一の分散処理における各々のタスク処理は、分割されたインデクスリストに記述されているファイルパスを取得して、そのハッシュ値を計算する(S1603)。その後、コンシステントハッシュ法に従い、インデクスIDテーブルに問い合わせを行って、ファイルパスのハッシュ値に対応する仮想インデクスIDとインデクスIDの両方を取得する(S1604)。以上で第一のタスク処理が完了する。
第一のタスク処理が全て完了すると、第二のタスク処理が開始される。第二のタスク処理では、インデクスIDによるグルーピングを行い、インデクスIDをキーとし、ファイルパスと仮想インデクスIDと処理ステータスをレコードにもつインデクスリストに変換する(S1605)。
次に、第三の分散処理として、インデクス生成モジュール305は、以下に示すS1606〜S1623までの処理を行う。
まず、インデクス生成モジュール305は、インデクスIDをキーとするインデクスリスト(インデクスID分だけリストが存在する)に対し、分散処理サーバ103上で複数のタスクとして処理を開始する。
インデクス生成モジュール305は、第三の分散処理におけるタスク処理において、インデクスIDをキーとするインデクスリストからファイルパス、仮想インデクスID、処理ステータス、ファイルメタ情報を取得する(S1606)。
次に、インデクス生成モジュール305は、処理ステータスをチェックする(S1607)。ここで、処理ステータスが、「0」(=ファイル新規生成)又は「2」(=ファイル更新)の場合、インデクス生成モジュール305は、各タスクについて、ファイルサーバ102からファイルをダウンロード(S1608)し、ファイルからコンテンツデータを抽出し(S1609)、コンテンツデータからハッシュ値を取得する(S1610)。インデクス生成モジュール305は、抽出したコンテンツデータを、コンテンツデータハッシュ値をキーとしてコンテンツサーバへ登録する(S1611)。
次に、インデクス生成モジュール305は、処理ステータスを再度チェックする(S1612)。ここで、「0」(=ファイル新規生成)だった場合、インデクス生成モジュール305は、登録したコンテンツサーバのエントリの参照カウントをアップさせる(S1613)。この後、インデクス生成モジュール305は、分割インデクスに対し、ファイルパスをユニークキーとして各フィールドへデータを登録して分割インデクスを生成する(S1614)。なお、このとき生成される分割インデクスは、分散処理サーバ103のローカルストレージ301上に一時的に生成される。その後、S1610で取得したコンテンツデータハッシュ値805をファイル管理テーブル506上の、ファイルパスに対応するコンテンツデータハッシュ値フィールド805へ格納する(S1615)。
S1612で処理ステータスが「2」(=ファイル更新)の場合、インデクス生成モジュール305は、ファイル管理テーブル506からコンテンツデータハッシュ値805を取得する(S1616)。なお、ここで取得したコンテンツデータハッシュ805は、古いファイルデータのハッシュ値である。
次に、インデクス生成モジュール305は、S1611で登録されたコンテンツデータのエントリの参照カウントをアップし(S1617)、S1616で取得したコンテンツデータハッシュ値805に対応するコンテンツサーバ上のエントリ(このエントリは、古いコンテンツデータが格納されたエントリである)の参照カウントをダウンする(S1618)。ここで、参照カウントが0となった場合(S1619が肯定)、そのエントリへの参照が無くなったため、インデクス生成モジュール305は、コンテンツサーバからエントリを削除する(S1620)。その後、インデクス生成モジュール305は、ファイルパス、ファイルメタ情報、コンテンツデータハッシュ値、コンテンツデータを分割インデクスに登録する(S1614)。S1619が否定の場合、これは、コンテンツサーバ上に格納されているコンテンツのエントリが他から参照されていることを意味する。従って、インデクス生成モジュール305は、エントリを削除せずに分割インデクスを生成し(S1614)、コンテンツデータハッシュ値をファイル管理テーブル506に登録する(S1615)。
S1607で処理ステータスが「1」の場合、既にコンテンツサーバ上にファイルコンテンツが格納されていることを意味する。このため、インデクス生成モジュール305は、取得したコンテンツデータハッシュ値のエントリの参照カウントをアップさせて(S1613)、ファイルパス、ファイルメタ情報、メタ情報ハッシュ値を分割インデクスに登録し(S1614)、コンテンツデータハッシュ値をファイル管理テーブル506に格納する(S1615)。
S1607で処理ステータスが「−1」の場合、ファイルが削除されたことを意味する。このため、インデクス生成モジュール305は、取得したコンテンツデータハッシュ値をキーとして、コンテンツサーバ上のコンテンツ管理テーブル403に問い合わせを行い、対象となるエントリの参照カウントをダウンさせる(S1621)。
参照カウントが0になった場合(S1622)、インデクス生成モジュール305は、分散データベース上で当該コンテンツデータハッシュ値のエントリを削除する(S1623)。その後、インデクス生成モジュール305は、第三のタスク処理により生成された分割インデクスと、インデクスIDをキーとするインデクスリストをセット(一組)として、検索サーバ101上のインデクス管理モジュール203に対して転送し(S1624)、インデクス生成管理モジュール502に分割インデクス生成完了通知を出して処理を終了する(S1625)。
[検索サーバへの分割インデクスの配置フロー]
図17に、インデクス生成モジュール305により生成された分割インデクスをインデクス管理モジュール203が、検索サーバ101に配置するフローである。
図17に示すフローは、インデクス管理モジュール203が、インデクス生成モジュール305から分割インデクスが転送されることで開始する(S1701)。
インデクス管理モジュール203は、既に分割インデクスが存在するか否かをチェックする(S1702)。既に分割インデクス202が同じ検索サーバ101上に存在する場合(S1702で肯定結果)、インデクス管理モジュール203は、インデクスリストからレコードを取得して処理ステータスをチェックする。
処理ステータスが、更新、または、削除の場合、インデクス管理モジュール203は、既存の分割インデクスに対して削除処理を行う(S1703)。処理ステータスが更新になっている場合に、既存の分割インデクスに対して削除処理を行う理由は、重複したレコードが存在しないようにするためである。
次に、インデクス管理モジュール203は、インデクス生成モジュール305から転送されてきた新規の分割インデクス202を既存の分割インデクス202にマージした後(S1704)、マウントを行う(S1705)。
一方、分割インデクス202が同じ検索サーバ101上に存在しなかった場合(S1702で否定結果)、インデクス管理モジュール203は、インデクス生成モジュール305から転送されてきた分割インデクスを、検索モジュール204にマウントするように要求する(S1705)。これにより、検索モジュール204に分割インデクスがマウントされ、検索の実行が可能となる。最後に、インデクス生成モジュール305はインデクス生成管理モジュール502に完了を通知して処理を終了する(S1706)。
[検索フロー]
図18に、検索時に各検索サーバ内で実行される処理フローを示す。図18に示すフローは、利用者が検索クライアント100から検索サーバ101へ検索クエリが送信されることにより開始される(S1801)。
検索サーバ101は、検索クエリを受信すると(S1802)、そのクエリに基づいて、検索モジュール204が分割インデクス202を使って検索を行い(S1803)、検索ワード・検索条件にヒットする分割インデクス202内のユニークキー(図10のファイルパスがユニークキーに相当する)とそのエントリの情報を取得する(S1804)。この時、検索サーバ101は、検索条件でコンテンツデータが必要な場合(S1805)、当該エントリのコンテンツデータハッシュ値を取得して(S1806)、コンテンツサーバ104へ問い合わせを行う(S1807)。
コンテンツサーバ104は、問い合わせ対象とするコンテンツデータハッシュ値1101でコンテンツ管理テーブル403のエントリを検索し、問い合わせに一致するエントリに対応付けられたコンテンツデータ1102を検索モジュール204に送信する(S1808)。検索モジュール204は、取得した情報を検索クライアント100に送信して処理を完了する(S1809)。なお、コンテンツの取得が不要な場合(S1805で否定結果の場合)、検索サーバ101は、検索結果のみを検索クライアント100に送信して処理を終了する(S1809)。
[コンテンツ配置変更フロー]
図19に、コンテンツ配置の変更フローを示す。図19に示すフローは、主に検索サーバ101にディスクを追加した後に自動で行われる。ただし、当該変更フローは、システム管理者が任意のタイミングで実行しても良く、スケジューリングにより定期的に実行しても良い。
まず、コンテンツ管理モジュール507は、各検索サーバ101上のコンテンツ監視モジュール205にコンテンツ配置変更クエリを送信する(S1901)。
次に、コンテンツ監視モジュール205は、ローカルストレージ201の空き容量をチェックする(S1902)。コンテンツ監視モジュール205は、分割インデクス202の各エントリのファイルメタ情報のうち、ファイルサイズ(コンテンツサイズ)を取得し、その合計を求める(S1903)。
合計サイズがローカルストレージ201の空き容量より小さい場合(S1904)、コンテンツ監視モジュール205は、各エントリのコンテンツデータハッシュ1003を取得した後(S1905)、コンテンツサーバ104へ問い合わせて、コンテンツ管理テーブル403に格納されている対応するコンテンツデータ1102を取得し(S1906)、分割インデクス202内の対応するコンテンツデータフィールド1004を追加しなおす(S1907)。全エントリに対してコンテンツ取得と追加が完了したら、コンテンツ管理モジュール507に、全コンテンツの配置変更が完了したことを通知する(S1908)。合計サイズがローカルストレージ201の空き容量より大きい場合(S1904)、コンテンツ監視モジュール205は、コンテンツ管理モジュール507にコンテンツデータの配置変更が不能なことを通知して処理を終了する(S1908)。
[実施例の効果]
本実施例に係る検索システムの場合、基本的に、分割インデクスはファイルのメタ情報のみを含む。この場合、ファイルパスのハッシュ値をコンシステントハッシュ法に基づいて各インデクスIDに割り当てた分割インデクスのサイズは、ファイルの実サイズによらず、分割インデクスで管理するドキュメント数に応じて一定となる。このため、全ての分割インデクスは、概ね同じサイズとなる。よって、本実施例に係る検索システムでは、検索サーバにおけるディスク容量の見積もりが容易になり、かつ、ディスク容量に無駄が生じる可能性を低減することができる。
なお、コンテンツデータは、検索サーバ101上の分割インデクス内に存在する場合に検索性能が最も良い。このため、検索サーバのディスク容量に余裕がある場合には、コンテンツサーバ104から検索サーバ101上にコンテンツデータを再配置して検索性能を向上させることもできる。
また、本実施例においては、コンテンツデータをコンテンツサーバ104に分散して格納する際に、コンテンツデータからハッシュ値を求め、そのハッシュ値をキーに使用してデータベースに登録する。このため、同じコンテンツの検出と重複データの複数登録を効果的に回避することができる。また、前述の通り、ハッシュ値を使用して重複したコンテンツデータを排除することにより、コンテンツサーバ104のディスク容量を削減することができる。
100…検索クライアント
101…検索サーバ
102…ファイルサーバ
103…分散処理サーバ
104…コンテンツサーバ
105…管理サーバ
106…ネットワーク
201…ローカルストレージ
202…分割インデクス
203…インデクス管理モジュール
204…検索モジュール
205…コンテンツ監視モジュール
301…ローカルストレージ
302…分散ファイルシステム
303…分散処理モジュール
304…スキャナモジュール
305…インデクス生成モジュール
306…インデクスリスト
401…ローカルストレージ
402…分散データベース
403…コンテンツ管理テーブル
501…ローカルストレージ
502…インデクス生成管理モジュール
503…システム管理モジュール
504…インデクスIDテーブル
505…検索サーバ管理テーブル
506…ファイル管理テーブル
507…コンテンツ管理モジュール

Claims (2)

  1. 大規模ファイルシステムを検索対象とする分散検索システムにおけるストレージ容量平準化方法において、
    検索用のインデクスの生成に際し、
    ファイルデータからメタ情報とコンテンツを分離する処理と、
    分離された前記コンテンツを1つ又は複数のコンテンツサーバに格納する処理と、
    前記メタ情報を検索サーバに対応付けられた分割インデクスに割り当てる処理であって、前記メタ情報の割り当て先をコンシステントハッシュ法に基づいて決定する処理と
    を有し、
    前記メタ情報を分割インデクスに割り当てる前記処理は、
    前記コンテンツの格納先を示すファイルパスから一意に算出されるハッシュ値をマッピングするコンシステントハッシュ空間上に設定された仮想インデクスIDのハッシュ値とインデクスIDとの対応関係を定めたテーブルとに基づいてメタ情報に対応付けるインデクスIDを決定するサブ処理と、当該インデクスIDに対応付けられた分割インデクスを前記メタ情報の割り当て先に決定するサブ処理とを有する
    ことを特徴とするストレージ容量標準化方法。
  2. 大規模ファイルシステムを検索対象とする分散検索システムにおけるストレージ容量平準化方法において、
    検索用のインデクスの生成に際し、
    ファイルデータからメタ情報とコンテンツを分離する処理と、
    分離された前記コンテンツを1つ又は複数のコンテンツサーバに格納する処理と、
    前記メタ情報を検索サーバに対応付けられた分割インデクスに割り当てる処理であって、前記メタ情報の割り当て先をコンシステントハッシュ法に基づいて決定する処理と
    を有し、
    前記分割インデクスが格納される前記検索サーバにおけるストレージ容量の空きサイズに応じ、コンテンツデータを前記コンテンツサーバから前記検索サーバにアップロード又は前記検索サーバから前記コンテンツサーバにダウンロードする
    ことを特徴とするストレージ容量標準化方法。
JP2012213420A 2012-09-27 2012-09-27 分散検索システムにおけるストレージ容量平準化方法 Expired - Fee Related JP5898026B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012213420A JP5898026B2 (ja) 2012-09-27 2012-09-27 分散検索システムにおけるストレージ容量平準化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012213420A JP5898026B2 (ja) 2012-09-27 2012-09-27 分散検索システムにおけるストレージ容量平準化方法

Publications (2)

Publication Number Publication Date
JP2014067323A JP2014067323A (ja) 2014-04-17
JP5898026B2 true JP5898026B2 (ja) 2016-04-06

Family

ID=50743628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012213420A Expired - Fee Related JP5898026B2 (ja) 2012-09-27 2012-09-27 分散検索システムにおけるストレージ容量平準化方法

Country Status (1)

Country Link
JP (1) JP5898026B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108121807B (zh) * 2017-12-26 2021-06-04 云南大学 Hadoop环境下多维索引结构OBF-Index的实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP2009259008A (ja) * 2008-04-17 2009-11-05 Sony Corp ノード、コンテンツ格納方法およびコンテンツ取得方法

Also Published As

Publication number Publication date
JP2014067323A (ja) 2014-04-17

Similar Documents

Publication Publication Date Title
US10853242B2 (en) Deduplication and garbage collection across logical databases
US20190220459A1 (en) Batch Data Ingestion In Database Systems
US9760289B2 (en) Massively scalable object storage for storing object replicas
US8190573B2 (en) File storage service system, file management device, file management method, ID denotative NAS server and file reading method
US8560569B2 (en) Method and apparatus for performing bulk file system attribute retrieval
RU2619195C2 (ru) Способ и устройство для нахождения файла в устройстве хранения и маршрутизатор
JP4671332B2 (ja) ユーザ識別情報を変換するファイルサーバ
US10019452B2 (en) Topology aware distributed storage system
JP5759915B2 (ja) ファイルリスト生成方法及びシステム並びにプログラム、ファイルリスト生成装置
US8682874B2 (en) Information processing system
US20140108475A1 (en) Migration-destination file server and file system migration method
US10860604B1 (en) Scalable tracking for database udpates according to a secondary index
JP5375972B2 (ja) 分散ファイルシステム、そのデータ選択方法およびプログラム
CN111209259B (zh) Nas分布式文件系统及数据处理方法
US10423662B1 (en) Efficient and scalable time-series data storage and retrieval over a network
US11151081B1 (en) Data tiering service with cold tier indexing
JP5557824B2 (ja) 階層ファイルストレージに対する差分インデクシング方法
US20210240663A1 (en) High density time-series data indexing and compression
CN103353901A (zh) 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统
CN116069778A (zh) 一种元数据的管理方法、相关装置、设备以及存储介质
JP2013210698A (ja) ファイル検索システム及びプログラム
US10951465B1 (en) Distributed file system analytics
CN113127526A (zh) 一种基于Kubernetes的分布式数据存储和检索系统
JP5657498B2 (ja) ファイル検索システム
JP5898026B2 (ja) 分散検索システムにおけるストレージ容量平準化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160303

R150 Certificate of patent or registration of utility model

Ref document number: 5898026

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees