JP6720844B2 - データ管理プログラム、データ管理方法及びデータ管理装置 - Google Patents

データ管理プログラム、データ管理方法及びデータ管理装置 Download PDF

Info

Publication number
JP6720844B2
JP6720844B2 JP2016232134A JP2016232134A JP6720844B2 JP 6720844 B2 JP6720844 B2 JP 6720844B2 JP 2016232134 A JP2016232134 A JP 2016232134A JP 2016232134 A JP2016232134 A JP 2016232134A JP 6720844 B2 JP6720844 B2 JP 6720844B2
Authority
JP
Japan
Prior art keywords
unit
beacon
sets
key
management node
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.)
Active
Application number
JP2016232134A
Other languages
English (en)
Other versions
JP2018088215A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016232134A priority Critical patent/JP6720844B2/ja
Priority to US15/795,336 priority patent/US20180150226A1/en
Publication of JP2018088215A publication Critical patent/JP2018088215A/ja
Application granted granted Critical
Publication of JP6720844B2 publication Critical patent/JP6720844B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、データを分散させて管理する技術に関する。
キーに対応付けられた値の集合を複数の記憶部に分散して記憶するシステムにおいて、同種のキーに係る値を同じ記憶部に配置すれば、当該キーによる探索の効率がよい。
但し、複数のキーを含むデータを登録する場合に、キー毎にデータを振り分けて配置する処理は煩雑となる。つまり、登録処理の負荷を考慮すれば、複数のキーを含むデータを一括していずれかの管理装置に割り当てることが望まれる。
国際公開第2013/061680号公報 特開2013−156960号公報
本発明の目的は、一側面では、探索効率が良くなるように、複数のキーを含むデータを配置することである。
一態様に係るデータ管理方法は、(A)キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが値の探索のために用いられた頻度を特定し、(B)特定された頻度によって、複数の組の各々に含まれるキーに重みを付けて、複数の記憶部の各々について複数の組に含まれる複数のキーの、当該記憶部における包含度を算出し、(C)包含度に基づいて複数の組の追加先となる記憶部を選択する処理を含む。
一側面としては、探索効率が良くなるように、複数のキーを含むデータを配置できる。
図1は、接近記録を生成する様子を示す図である。 図2は、ネットワーク構成例を示す図である。 図3は、管理システムのハードウエア構成例を示す図である。 図4は、登録フェーズのシーケンスを示す図である。 図5は、収集データの例を示す図である。 図6は、蓄積データの例を示す図である。 図7は、通知データの例を示す図である。 図8は、管理テーブルの例を示す図である。 図9は、ブルームフィルタの例を示す図である。 図10は、ブルームフィルタの例を示す図である。 図11は、通知データの伝送例を示す図である。 図12は、登録フェーズのシーケンスを示す図である。 図13は、探索フェーズのシーケンスを示す図である。 図14は、使用頻度テーブルの例を示す図である。 図15は、合計ポイントの算出例を示す図である。 図16は、管理ノードのモジュール構成例を示す図である。 図17は、一次登録処理(A)フローを示す図である。 図18は、ブルームフィルタ判定処理(A)フローを示す図である。 図19は、一次登録処理(A)フローを示す図である。 図20は、ブルームフィルタ更新処理(A)フローを示す図である。 図21は、二次登録処理フローを示す図である。 図22は、探索装置のモジュール構成例を示す図である。 図23は、探索処理(A)フローを示す図である。 図24は、探索処理(A)フローを示す図である。 図25は、実施の形態2に係るブルームフィルタの例を示す図である。 図26は、一次登録処理(B)フローを示す図である。 図27は、ポイント加算処理フローを示す図である。 図28は、一次登録処理(B)フローを示す図である。 図29は、ブルームフィルタ更新処理(B)フローを示す図である。 図30は、探索処理(B)フローを示す図である。 図31は、ブルームフィルタ判定処理(B)フローを示す図である。 図32は、コンピュータの機能ブロック図である。
[実施の形態1]
本実施の形態に係るデータ管理方法を適用した見守りサービスについて説明する。見守りサービスは、地域の住民が学童を見守ることを目的とする。地域の住民であるユーザが市中で学童に接近すると、ユーザ端末において記録を生成する。
図1に、ユーザ端末101において接近記録を生成する様子を示す図である。学童を見守るユーザは、ユーザ端末101aを保持している。学童は、夫々ビーコン発信装置103を保持している。ユーザ端末101aは、例えばスマートフォンである。ユーザ端末101aは、近距離無線方式(例えば、BLE(Bluetooth(登録商標) Low Energy)通信方式)の通信デバイス、時計、GPS(Global Positioning System)装置及びカメラを有している。ビーコン発信装置103は、近距離無線方式によるビーコン信号を発信する。
ユーザとビーコン発信装置103aを保持する学童との距離が縮まると、ユーザ端末101aは、ビーコン発信装置103aが発信するビーコン信号を受信する。ユーザ端末101aは、ビーコン信号からビーコンIDを抽出する。ビーコン発信装置103aが発信するビーコン信号に含まれるビーコンIDは、B01である。ユーザ端末101aは、時計部を用いてビーコン信号を受信した日時(以下、受信日時という。)を特定する。ユーザ端末101aは、GPS装置を用いてビーコン信号を受信した地理的位置を特定する。更に、ユーザ端末101aは、ユーザに動画の撮影を促し、ユーザの操作に従って動画を撮影する。そして、ユーザ端末101aは、ビーコンID、受信日時、地理的位置及び動画データを対応付けて記憶する。このとき記憶されるデータを、以下では接近記録という。この段階で、ビーコンIDのB01と、受信日時のT201と、地理的位置のP201と、動画データのM201.mpegとを含む接近記録が生成される。
その後、ユーザとビーコン発信装置103bを保持する学童との距離が縮まると、ユーザ端末101aは、ビーコン発信装置103bが発信するビーコン信号を受信する。ユーザ端末101aは、当該ビーコン信号からビーコンIDのB03を抽出する。この段階で、ビーコンIDのB03と、受信日時のT202と、地理的位置のP202と、動画データのM202.mpegとを含む接近記録が生成される。
更に、ユーザとビーコン発信装置103cを保持する学童との距離が縮まると、ユーザ端末101aは、ビーコン発信装置103cが発信するビーコン信号を受信する。ユーザ端末101aは、ビーコン信号からビーコンIDのB06を抽出する。この段階で、ビーコンIDのB06と、受信日時のT203と、地理的位置のP203と、動画データのM203.mpegとを含む接近記録が生成される。
その後、ユーザ端末101で生成された接近記録は、市中の拠点に設けられた装置に集められる。図2に、ネットワーク構成例を示す。この例では、3つの拠点が設定されているものとする。各拠点のシステムでは、スイッチ205に、蓄積ノード201及びアクセスポイント203が接続されている。アクセスポイント203は、ユーザ端末101と無線LAN(Local Area Network)の通信を行う。蓄積ノード201は、ユーザ端末101から収集した接近記録を蓄積する。
また、各拠点のシステムは、広域ネットワークを介して管理システム207に接続している。広域ネットワークは、例えば企業内のネットワークやインターネットである。
図3に、管理システム207のハードウエア構成例を示す。管理システム207におけるスイッチ305に、複数の管理ノード301a乃至301c等、及び探索装置303が接続している。複数の管理ノード301a乃至301c等は、接近記録が蓄積されている場所、つまり蓄積ノードIDを管理する。具体的には、複数の管理ノード301a乃至301cは、接近記録に含まれるビーコンIDと蓄積ノードIDとの組を分散して保持する。このように、データを分散させれば、接近記録を多く集める場合に対処し易い。
続いて、接近記録が追加される登録フェーズについて説明する。図4に、登録フェーズのシーケンスを示す。アクセスポイント203aを介してユーザ端末101aと蓄積ノード201aとが接続すると、ユーザ端末101aは、収集データを蓄積ノード201aへ送信する(S401)。
図5に、収集データの例を示す。収集データは、接近記録の集合である。図5に示した収集データは、図1に示した3つの接近記録をまとめたものである。接近記録は、ビーコンIDが格納されるフィールドと、受信日時が格納されるフィールドと、地理的位置が格納されるフィールドと、動画データが格納されるフィールドとを有している。
図4の説明に戻る。蓄積ノード201aは、受信した収集データを、自ら保持する蓄積データに加える(S403)。
図6に、蓄積データの例を示す。蓄積データには、受信した収集データの接近記録が蓄積される。図示した蓄積データは、図5に示した収集データの接近記録が追加された状態を示している。第3レコードから第5レコードは、図5に示した収集データの接近記録と同じである。
図4の説明に戻る。蓄積ノード201aは、追加した収集データに含まれるビーコンIDに関する通知データを管理ノード301aへ送信する(S405)。
図7に、通知データの例を示す。通知データのヘッダには、接近記録が追加された蓄積ノード201のIDが設定される。通知データのレコードには、追加された接近記録に含まれているビーコンIDが設定される。この通知データの例は、B01、B03及びB06というビーコンIDを含む接近記録がS01というIDで特定される蓄積ノード201に追加されたことを示している。
図4の説明に戻る。管理ノード301aは、通知データを受信すると、当該通知データの内容を自ら管理するか否かを判断する。ここで、管理ノード301aは、自ら管理すると判断したものとする(S407)。このときの判断方法については、後述する。
通知データの内容を自ら管理する場合には、管理ノード301aは、当該通知データの内容を、自ら保持する管理テーブルに加える(S409)。
図8に、管理テーブルの例を示す。管理テーブルのレコードは、ビーコンIDが格納されるフィールドと、蓄積ノードIDが格納されるフィールドとを有している。このレコードに格納されるビーコンIDは、通知データに設定されているビーコンIDである。同じく蓄積ノードIDは、通知データに設定されている蓄積ノードIDである。この例における第3レコードは、B01というビーコンIDを含む接近記録が、S02というIDで特定される蓄積ノード201に蓄積されていることを示している。
図4の説明に戻る。管理ノード301aは、自ら保持する管理テーブルに対応するブルームフィルタを更新する(S411)。
ブルームフィルタは、一般的にキーが集合に含まれるか否かを判別するために用いられる。見守りサービスにおけるビーコンIDは、キーに相当する。同じく管理テーブルは、集合に相当する。本実施の形態におけるブルームフィルタは、従来技術の通りである。
図9に、ブルームフィルタの例を示す。ブルームフィルタは、配列形式のデータである。この例で、配列要素は1ビットであり、配列要素の数はm個である。ビットは、インデックスによって特定される。この例で、配列数はm個であるので、インデックスは0〜m−1の自然数である。初期状態において、各ビットには0が設定されている。
ブルームフィルタを用いるために、k個のハッシュ関数が用意されている。各ハッシュ関数は、キーを0〜m−1のインデックスに変換する。つまり、キーを各ハッシュ関数に入力することによって、k個のインデックスを得る。新たなキーを集合に加える場合に、インデックスで特定されるビットが0であれば、1に変更される。インデックスで特定されるビットが既に1であれば、変更されない。
図9は、最初にキーAが集合に加えられた場合にブルームフィルタが更新される様子を示している。キーAを入力した第1ハッシュ関数は、インデックスの値8を出力する。そして、ブルームフィルタのビット[8]が1に変更される。キーAを入力した第2ハッシュ関数は、インデックスの値1を出力する。そして、ブルームフィルタのビット[1]が1に変更される。キーAを入力した第kハッシュ関数は、インデックスの値11を出力する。そして、ブルームフィルタのビット[11]が1に変更される。第3ハッシュ関数乃至第k−1ハッシュ関数についても同様である。
続いてキーBが集合に加えられた場合にブルームフィルタが更新される様子を、図10に示す。キーBを入力した第1ハッシュ関数は、インデックスの値0を出力する。そして、ブルームフィルタのビット[0]が1に変更される。キーBを入力した第2ハッシュ関数は、インデックスの値1を出力する。但し、ブルームフィルタのビット[1]は、既に1であるので変更されない。キーBを入力した第kハッシュ関数は、インデックスの値8を出力する。そして、ブルームフィルタのビット[8]も、既に1であるので変更されない。第3ハッシュ関数乃至第k−1ハッシュ関数についても同様である。
このようにして、キーをk個のビットにマッピングすることによって、キーが集合に加えられたことを記録する。一方、あるキーが集合に含まれるか判定する場合には、上述と同様に当該キーから変換されたk個のインデックスによって特定されたビットがすべて1であるか否かを判定する。そして、k個のインデックスによって特定されたビットがすべて1である場合に、当該キーが集合に含まれると判定する。一方、k個のインデックスによって特定されたビットのうち1つでも0である場合には、当該キーが集合に含まれないと判定する。以上で、ブルームフィルタについての説明を終える。
上述した通知データの流れについて説明を加える。図11に、通知データの伝送例を示す。上述した例では、蓄積ノード201aが通知データを管理ノード301aへ送信し(S1101)、通知データを受信した管理ノード301a自身が当該通知データの内容を管理する。但し、蓄積ノード201から通知データを受信した管理ノード301自身が、常に当該通知データの内容を管理するとは限らない。通知データを受信した管理ノード301が、他の管理ノード301に当該通知データの内容を管理させると判断することもある。図示するように、蓄積ノード201bが通知データを管理ノード301bへ送信した場合に(S1103)、通知データを受信した管理ノード301bが当該通知データの内容を管理ノード301aに管理させると判断すれば、当該通知データは管理ノード301aに転送される(S1105)。
このように、登録フェーズにおいて、管理ノード301bが通知データを管理ノード301aに転送する場合のシーケンスを、図12に示す。ユーザ端末101bと蓄積ノード201bとが接続すると、ユーザ端末101bは、収集データを蓄積ノード201bへ送信する(S1201)。
蓄積ノード201bは、受信した収集データを、自ら保持する蓄積データに加える(S1203)。そして、蓄積ノード201bは、追加した収集データに含まれるビーコンIDに関する通知データを管理ノード301bへ送信する(S1205)。
管理ノード301bは、通知データを受信すると、当該通知データの内容を管理ノード301aに管理させると判断するものとする(S1207)。そして、管理ノード301bは、蓄積ノード201bから受信した通知データを管理ノード301aへ転送する(S1209)。
管理ノード301aは、管理ノード301bから転送された通知データを受け付けると、当該通知データを、自ら保持する管理テーブルに加える(S1211)。そして、管理ノード301aは、自ら保持する管理テーブルに対応するブルームフィルタを更新する(S1213)。以上で登録フェーズの概要の説明を終える。
続いて、図13を用いて、学童の保護者であるユーザが接近記録を取得するための探索フェーズのシーケンスについて説明する。接近記録を取得しようとするユーザのユーザ端末101cから探索装置303へ、蓄積ノード201の照会が送られる(S1301)。この照会には、接近記録を指定するビーコンIDが含まれている。
蓄積ノード201の照会を受信した探索装置303は、管理ノード301毎に、ブルームフィルタを用いて当該管理ノード301において当該ビーコンIDが管理されているか否かを判定する。この例では、探索装置303は、まず管理ノード301a(C01)で当該ビーコンIDが管理されていると判定したものとする(S1303)。
探索装置303は、指定されたビーコンIDを管理している管理ノード301aに対して蓄積ノード201の照会を送る(S1305)。蓄積ノード201の照会には、指定されたビーコンIDが含まれている。この例では、探索装置303は、まず管理ノード301aへ蓄積ノード201の照会を送る。
蓄積ノード201の照会を受信した管理ノード301aは、自ら保持する蓄積データにおいて当該照会に含まれるビーコンIDをキーとして蓄積ノードIDの探索を行う(S1307)。そして、管理ノード301aは、見つけ出した蓄積ノードIDを探索装置303へ送り返す(S1309)。
探索装置303は、次に管理ノード301b(C02)で当該ビーコンIDが管理されていないと判定したものとする(S1311)。この場合には、管理ノード301bに対して、蓄積ノード201の照会は送られない。同様の処理を、残りの管理ノード301に対しても行う。
探索装置303は、各管理ノード301に係る処理を終えると、それまでに受信した蓄積ノードIDをリストとしてユーザ端末101cへ送る(S1313)。
ユーザは、このリストを取得することによって、自ら指定したビーコンIDに係る接近記録がどの蓄積ノード201に保持されているかを知る。この例では、このリストに含まれる蓄積ノード201aのIDであるS01が含まれていたものとする。ユーザ端末101cは、蓄積ノード201aに対して接近記録の要求を送信する(S1315)。接近記録の要求は、指定されたビーコンIDを含むものとする。
接近記録の要求を受信した蓄積ノード201aは、自ら保持する蓄積データから、指定されたビーコンIDを含む接近記録を抽出する。そして抽出した接近記録をユーザ端末101cへ送り返す(S1317)。
上述したリストに複数の蓄積ノードIDが含まれる場合には、ユーザ端末101cは、他の蓄積ノード201へも接近記録の要求を送る。そして、ユーザ端末101cは、更に接近記録を取得する。このようにして、ユーザ端末101cは、所定のビーコンIDを含む接近記録を収集する。
ここで、本実施の形態において、通知データの追加先となる管理ノード301を判断する方法について説明する。管理ノード301は、通知データに含まれるビーコンIDと同一のビーコンIDが、蓄積ノードIDを探索するために用いられた頻度(以下、使用頻度という。)を特定する。使用頻度は、使用頻度テーブルを用いてカウントされる。
図14に、使用頻度テーブルの例を示す。この例における使用頻度テーブルは、ビーコンIDに対応するレコード(以下、使用頻度レコードという。)を有している。使用頻度レコードは、ビーコンIDが格納されるフィールドと、使用頻度が格納されるフィールドとを有している。
使用頻度は、当該ビーコンIDが検索キーとして使用された頻度である。図示した1番目のレコードは、B01というビーコンIDを検索キーとする探索が20回行われたことを示している。
尚、この例では、使用頻度テーブルを探索装置303で保持する。但し、使用頻度テーブルを他の装置において保持するようにしてもよい。
このようにして管理されている使用頻度によって、通知データに含まれる各ビーコンIDに対して重み付けがなされる。そして、管理ノード301は、当該重み付けを反映して、複数の管理ノード301の各々における、通知データに含まれるビーコンIDの包含度を算出する。包含度は、以下に述べる合計ポイントとして算出される。
図15を用いて、合計ポイントを算出する手順について説明する。この例で、通知データには、3つのビーコンID(B01、B03及びB06)が含まれているものとする。合計ポイントは、各管理ノード301の管理テーブルにおいて包含しているビーコンIDの使用頻度を合算することによって求められる。
例えば、管理ノード301a(C01)における管理テーブルは、B01というビーコンIDを含んでいるが、B03というビーコンID及びB06というビーコンIDを含んでいない。そして、B01というビーコンIDにおける使用頻度は20であるので、合計ポイントは20となる。
同じく管理ノード301b(C02)における管理テーブルは、B01というビーコンIDを含んでいないが、B03というビーコンID及びB06というビーコンIDを含んでいる。そして、B03というビーコンIDにおける使用頻度は5であり、B06というビーコンIDにおける使用頻度は7である。従って、合計ポイントは12となる。
同じく管理ノード301c(C03)における管理テーブルは、B03というビーコンIDを含んでいるが、B01というビーコンID及びB06というビーコンIDを含んでいない。そして、B03というビーコンIDにおける使用頻度は5であるので、合計ポイントは5となる。
このようにして算出された合計ポイントが大きい方、つまり包含度が高い方の管理ノード301を、通知データの追加先として選択する。以上で、本実施の形態の概要についての説明を終える。
続いて、管理ノード301の動作について説明する。図16に、管理ノード301のモジュール構成例を示す。管理ノード301は、受信部1601、算出部1603、判定部1605、特定部1607、選択部1609、追加部1611、更新部1613、転送部1615、受付部1617、抽出部1619及び送信部1621を有する。
受信部1601は、種々のデータを受信する。算出部1603は、管理ノード301毎の合計ポイントを算出する。尚、この例における合計ポイントは、内部パラメータである。判定部1605は、ブルームフィルタ判定処理を実行する。特定部1607は、使用頻度テーブルにおいてビーコンIDの使用頻度を特定する。選択部1609は、通知データが追加される管理ノード301を選択する。追加部1611は、自ら保持する管理テーブルに通知データの内容を追加する。更新部1613は、ブルームフィルタ更新処理を実行する。転送部1615は、通知データを他の管理ノード301へ転送する。受付部1617は、他の管理ノード301から送られた通知データを受け付ける。抽出部1619は、管理テーブルからビーコンIDに対応する蓄積ノードIDを抽出する。送信部1621は、種々のデータを送信する。
管理ノード301は、更に第1ハッシュ関数乃至第kハッシュ関数に相当する各計算を行うハッシュ計算部を有する。第1ハッシュ計算部1631は、第1ハッシュ関数に相当する計算を行う。第2ハッシュ計算部1633は、第2ハッシュ関数に相当する計算を行う。第kハッシュ計算部1635は、第kハッシュ関数に相当する計算を行う。第3ハッシュ計算部乃至第k−1ハッシュ計算部は、図示しない。
上述した受信部1601、算出部1603、判定部1605、特定部1607、選択部1609、追加部1611、更新部1613、転送部1615、受付部1617、抽出部1619、送信部1621及び各ハッシュ計算部は、ハードウエア資源(例えば、図32)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
また、管理ノード301は、通知記憶部1651、管理テーブル記憶部1653及びブルームフィルタ記憶部1655を有する。
通知記憶部1651は、受信した通知データを記憶する。管理テーブル記憶部1653は、管理テーブルを記憶する。ブルームフィルタ記憶部1655は、ブルームフィルタを記憶する。
上述した通知記憶部1651、管理テーブル記憶部1653及びブルームフィルタ記憶部1655は、ハードウエア資源(例えば、図32)を用いて実現される。
続いて、管理ノード301における処理について説明する。まず、蓄積ノード201から通知データを受信した場合の処理(以下、一次登録処理という。)について説明する。本実施の形態における管理ノード301は、一次登録処理(A)を実行する。図17に、一次登録処理(A)フローを示す。
受信部1601が蓄積ノード201から通知データを受信すると(S1701)、管理ノード301はS1703以下の処理を行う。算出部1603は、受信した通知データに含まれるビーコンIDを1つ特定する(S1703)。例えば、算出部1603は、通知データに設定されている順に1つのビーコンIDを特定する。
算出部1603は、管理ノード301を1つ特定する(S1705)。例えば、算出部1603は、管理ノードIDの昇順に1つの管理ノード301を特定する。
判定部1605は、ブルームフィルタ判定処理(A)を実行する(S1707)。ブルームフィルタ判定処理(A)では、S1703で特定されたビーコンIDが、S1705で特定された管理ノード301のブルームフィルタに適用される。その結果、判定部1605は、当該管理ノード301の管理テーブルに当該ビーコンIDが含まれているか否かを判定する。判定部1605は、当該ビーコンID及び当該管理ノード301のIDを引数として用いる。
図18に、ブルームフィルタ判定処理(A)フローを示す。判定部1605は、引数としてビーコンID及び管理ノードIDを得ると(S1801)、当該管理ノードIDに対応するブルームフィルタを特定する(S1803)。更に、判定部1605は、各ハッシュ関数に当該ビーコンIDを入力してk個のインデックスを得る(S1805)。つまり、各ハッシュ計算部による処理が実行される。
判定部1605は、S1805で得たインデックスを1つ特定する(S1807)。判定部1605は、S1803で特定したブルームフィルタにおいて当該インデックスで特定されるビットが1であるか否かを判定する(S1809)。
当該ブルームフィルタにおいて当該インデックスで特定されるビットが1ではないと判定した場合には、判定部1605は、引数の管理ノードIDで特定される管理テーブルにビーコンIDが含まれないと判定する(S1811)。そして、ブルームフィルタ判定処理(A)を終え、呼び出し元の処理に復帰する。
一方、当該ブルームフィルタにおいて当該インデックスで特定されるビットが1であると判定した場合には、判定部1605は、未処理のインデックスがあるか否かを判定する(S1813)。未処理のインデックスがあると判定した場合には、S1807に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のインデックスがないと判定した場合には、判定部1605は、引数の管理ノードIDで特定される管理テーブルにビーコンIDが含まれると判定する(S1815)。ブルームフィルタ判定処理(A)を終えると、呼び出し元の処理に復帰する。
図17の説明に戻る。算出部1603は、当該管理ノード301の管理テーブルに当該ビーコンIDが含まれると判定したか否かによって処理を分岐させる(S1709)。
当該管理ノード301の管理テーブルに当該ビーコンIDが含まれると判定した場合には、特定部1607は、使用頻度テーブルにおいて当該ビーコンIDの使用頻度を特定する(S1711)。算出部1603は、特定された使用頻度を当該管理ノード301の合計ポイントに加える(S1713)。そして、S1715の処理に移る。
一方、当該管理ノード301の管理テーブルに当該ビーコンIDが含まれないと判定した場合には、当該管理ノード301の合計ポイントを変えずに、S1715の処理に移る。
算出部1603は、未処理の管理ノード301があるか否かを判定する(S1715)。未処理の管理ノード301があると判定した場合には、S1705に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の管理ノード301がないと判定した場合には、算出部1603は、未処理のビーコンIDがあるか否かを判定する(S1717)。未処理のビーコンIDがあると判定した場合には、S1703に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のビーコンIDがないと判定した場合には、端子Aを介して、図19に示したS1901の処理に移る。
選択部1609は、合計ポイントが最大である管理ノード301を特定する(S1901)。このとき、特定される管理ノード301は、1つであると限らない。選択部1609は、複数の管理ノード301が特定されたか否かを判定する(S1903)。
複数の管理ノード301が特定されたと判定した場合、つまり最大である管理ノード301が2つ以上ある場合には、選択部1609は、特定された複数の管理ノード301の中に自らの管理ノード301が含まれるか否かを判定する(S1905)。
自らの管理ノード301が含まれると判定した場合には、選択部1609は、自らの管理ノード301を選択する(S1907)。その結果、追加部1611は、通知データに含まれるビーコンIDを自ら保持する管理テーブルに追加する(S1909)。このとき、通知データに含まれる蓄積ノードIDが各ビーコンIDに対応付けられる。そして、更新部1613は、ブルームフィルタ更新処理(A)を実行する(S1911)。ブルームフィルタ更新処理(A)では、管理ノード301自身が保持するブルームフィルタを更新する。
図20に、ブルームフィルタ更新処理(A)フローを示す。更新部1613は、通知データに含まれるビーコンIDを1つ特定する(S2001)。更新部1613は、例えば通知データに設定されている順番に従って、1つのビーコンIDを特定する。
更新部1613は、各ハッシュ関数に当該ビーコンIDを入力してk個のインデックスを得る(S2003)。
更新部1613は、S2003で得たインデックスを1つ特定し(S2005)、自ら保持するブルームフィルタにおいて当該インデックスで特定されるビットが0であるか否かを判定する(S2007)。当該ビットが0であると判定した場合には、更新部1613は、当該ビットを1に変更する(S2009)。一方、当該ビットが0でないと判定した場合には、つまり当該ビットが1である場合には、当該ビットを変更しない。
更新部1613は、未処理のインデックスがあるか否かを判定する(S2011)。未処理のインデックスがあると判定した場合には、S2005に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のインデックスがないと判定した場合には、更新部1613は、未処理のビーコンIDがあるか否かを判定する(S2013)。未処理のビーコンIDがあると判定した場合には、S2001に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のビーコンIDがないと判定した場合には、ブルームフィルタ更新処理(A)を終える。そして、呼び出し元の処理に復帰する。
図19の説明に戻る。ブルームフィルタ更新処理(A)を終えると、端子Bを介して図17に示したS1701の処理に戻る。
一方、図19のS1905において、特定された複数の管理ノード301の中に自らの管理ノード301が含まれないと判定した場合には、選択部1609は、優先順位に従って管理ノード301を選択する(S1913)。優先順位は、予め設定されているものとする。転送部1615は、選択された管理ノード301に、S1701で受信した通知データを転送する(S1915)。そして、端子Bを介して図17に示したS1701の処理に戻る。
また、図19のS1903において、複数の管理ノード301が特定されていないと判定した場合、つまり最大である管理ノード301が1つである場合には、選択部1609は、特定された1つの管理ノード301を選択する(S1917)。転送部1615は、選択された管理ノード301に、S1701で受信した通知データを転送する(S1919)。但し、自らの管理ノード301を選択した場合には、S1909及びS1911と同様の処理が実行される。そして、端子Bを介して図17に示したS1701の処理に戻る。
続いて、他の管理ノード301から転送された通知データを受け付けた場合の処理(以下、二次登録処理という。)について説明する。図21に、二次登録処理フローを示す。
受付部1617が、他の管理ノード301から転送された通知データを受け付けると(S2101)、追加部1611は、通知データに含まれるビーコンIDを、自ら保持する管理テーブルに追加する(S2103)。このとき、通知データに含まれる蓄積ノードIDが各ビーコンIDに対応付けられる。そして、更新部1613は、ブルームフィルタ更新処理(A)を実行する(S2105)。
ブルームフィルタ更新処理(A)を終えると、S2101に示した処理に戻って、上述した処理を繰り返す。以上で、管理ノード301の動作についての説明を終える。
次に、探索装置303の動作について説明する。図22に、探索装置303のモジュール構成例を示す。探索装置303は、受信部2201、判定部2203、照会部2205、送信部2207、計数部2209及び使用頻度記憶部2231を有する。
受信部2201は、各種データを受信する。判定部2203は、ブルームフィルタ判定処理を実行する。照会部2205は、管理ノード301に対して蓄積ノード201の照会を行う。送信部2207は、各種データを送信する。計数部2209は、ビーコンIDの使用頻度を計数する。
上述した受信部2201、判定部2203、照会部2205、送信部2207及び計数部2209は、ハードウエア資源(例えば、図32)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
使用頻度記憶部2231は、使用頻度テーブルを記憶する。使用頻度記憶部2231は、ハードウエア資源(例えば、図32)を用いて実現される。
本実施の形態における探索装置303は、探索処理(A)を実行する。図23に、探索処理(A)フローを示す。
受信部2201は、ユーザ端末101から、所望の接近記録が蓄積されている蓄積ノード201の照会を受信する(S2301)。当該蓄積ノード201の照会は、所望の接近記録を指定するビーコンIDを含む。
照会部2205は、管理ノード301を1つ特定する(S2305)。例えば、照会部2205は、管理ノードIDの昇順に1つの管理ノード301を特定する。
判定部2203は、ブルームフィルタ判定処理(A)を実行する(S2307)。このとき、判定部2203は、S2301で受信した蓄積ノード201の照会に含まれるビーコンID及びS2305で特定された管理ノード301のIDを引数として用いる。尚、繰り返されるブルームフィルタ判定処理(A)において、ビーコンIDからインデックスを得る処理が重複するので、2回目以降の処理は省略するようにしてもよい。
照会部2205は、当該管理ノード301の管理テーブルに当該ビーコンIDが含まれると判定したか否かによって処理を分岐させる(S2309)。当該管理ノード301の管理テーブルに当該ビーコンIDが含まれると判定した場合には、送信部2207は、当該管理ノード301へ蓄積ノード201の照会を送信する(S2311)。蓄積ノード201の照会は、当該ビーコンIDが含まれる。そして、受信部2201は、当該管理ノード301から当該ビーコンIDに対応する蓄積ノードIDを受信する(S2313)。蓄積ノードIDは、一時的に保持される。
一方、S2309において当該管理ノード301の管理テーブルに当該ビーコンIDが含まれないと判定した場合には、蓄積ノード201の照会を送信せずに、S2315の処理に移る。
照会部2205は、未処理の管理ノード301があるか否かを判定する(S2315)。未処理の管理ノード301があると判定した場合には、S2305に示した処理に戻って、上述した処理を繰り返す。一方、未処理の管理ノード301がないと判定した場合には、端子Cを介して、図24に示したS2401の処理に移る。
送信部2207は、図23のS2313で受信した蓄積ノードIDのリストを、蓄積ノード201の照会の送信元であるユーザ端末101へ送信する(S2401)。そして、計数部2209は、使用頻度テーブルにおいて、蓄積ノード201の照会に含まれるビーコンIDに対応する使用頻度に1を加える(S2403)。端子Dを介して、図23に示したS2301の処理に戻る。
最後に、管理ノード301の処理について補足する。管理ノード301の受信部1601が、探索装置303から蓄積ノード201の照会を受信すると、管理ノード301の抽出部1619は、自ら保持する管理テーブルから、当該照会に含まれるビーコンIDに対応する蓄積ノードIDを抽出する。そして、管理ノード301の送信部1621は、蓄積ノードIDを探索装置303へ送信する。
本実施の形態によれば、ビーコンID及び蓄積ノードIDを含む複数組を一括して登録する場合に、探索される傾向に応じて同じビーコンIDに係る組を同じ管理ノード301に配置する。従って、登録処理の負荷を抑えつつ、探索処理の負荷を軽減できる。
また、ビーコンIDによって特定される接近記録へのアクセス効率が高まる。
[実施の形態2]
上述した実施の形態では、使用頻度テーブルにおいてビーコンIDが使用された頻度をカウントする例について説明したが、本実施の形態では、ブルームフィルタにおいてビーコンIDが使用された頻度をカウントする例について説明する。
図25に、実施の形態2におけるブルームフィルタの例を示す。本実施の形態のブルームフィルタにおける配列要素はカウンタである。つまり、配列要素は、複数のビット(例えば、4ビット)を有する。そして、カウンタは、インデックスによって特定される。初期状態において、各カウンタには0に設定されている。新たなキーを集合に加える場合に、インデックスで特定されるカウンタの値が0であれば、当該カウンタの値は1に変更される。インデックスで特定されるカウンタの値が1以上であれば、当該カウンタの値は変更されない。
本実施の形態では、ビーコンIDが検索キーとして探索に使用される度に、当該ビーコンIDに基づくインデックスで特定される各カウンタの値に1が加えられる。図示した例で、この例は、初めてキーBが探索に使用された場合にブルームフィルタが更新される様子を示している。キーBを入力した第1ハッシュ関数は、インデックスの値0を出力する。そして、ブルームフィルタのカウンタ[0]が1から2に変更される。キーBを入力した第2ハッシュ関数は、インデックスの値1を出力する。そして、ブルームフィルタのカウンタ[1]が1から2に変更される。キーBを入力した第kハッシュ関数は、インデックスの値8を出力する。そして、ブルームフィルタのカウンタ[8]が1から2に変更される。本実施の形態で、カウンタは、ビーコンIDが使用された程度を示すものとして用いられる。尚、配列要素の数mとハッシュ関数の数kとが或る程度大きければ、あるビーコンIDに基づく各インデックスで特定されるカウンタの合計は、当該ビーコンIDの使用頻度と看做して構わない。
本実施の形態における管理ノード301は、一次登録処理(A)に代えて、一次登録処理(B)を実行する。図26に、一次登録処理(B)フローを示す。S1701の処理は、一次登録処理(A)の場合と同様である。
算出部1603は、受信した通知データに含まれるビーコンIDを1つ特定する(S2601)。例えば、算出部1603は、通知データに設定されている順に1つのビーコンIDを特定する。
算出部1603は、管理ノード301を1つ特定する(S2603)。例えば、算出部1603は、管理ノードIDの昇順に1つの管理ノード301を特定する。
算出部1603は、ポイント加算処理を実行する(S2605)。ポイント加算処理では、ブルームフィルタの配列要素であるカウンタの値に基づいて、管理ノード301毎の合計ポイントを算出する。算出部1603は、受信した通知データに含まれるビーコンID及びS2603で特定された管理ノード301のIDを引数とする。
図27に、ポイント加算処理フローを示す。算出部1603は、引数としてビーコンID及び管理ノードIDを得ると(S2701)、当該管理ノードIDに対応するブルームフィルタを特定する(S2703)。更に、算出部1603は、各ハッシュ関数に当該ビーコンIDを入力してk個のインデックスを得る(S2705)。
算出部1603は、S2705で得たインデックスを1つ特定する(S2707)。算出部1603は、S2703で特定したブルームフィルタにおいて当該インデックスで特定されるカウンタの値が1以上であるか否かを判定する(S2709)。
当該ブルームフィルタにおいて当該インデックスで特定されるカウンタの値が1以上であると判定した場合には、算出部1603は、カウンタの値を当該管理ノード301の合計ポイントに加える(S2711)。
一方、当該ブルームフィルタにおいて当該インデックスで特定されるカウンタの値が1以上でないと判定した場合、つまり当該ビットが0である場合には、算出部1603は、当該管理ノード301の合計ポイントを変えない。
そして、算出部1603は、未処理のインデックスがあるか否かを判定する(S2713)。未処理のインデックスがあると判定した場合には、S2707に示した処理に戻って、上述した処理を繰り返す。一方、未処理のインデックスがないと判定した場合には、ポイント加算処理を終えて、呼び出し元の処理に復帰する。
図26の説明に戻る。ポイント加算処理を終えると、算出部1603は、未処理の管理ノード301があるか否かを判定する(S2607)。未処理の管理ノード301があると判定した場合には、S2603に示した処理に戻って、上述した処理を繰り返す。
一方、未処理の管理ノード301がないと判定した場合には、算出部1603は、未処理のビーコンIDがあるか否かを判定する(S2609)。未処理のビーコンIDがあると判定した場合には、S2601に示した処理に戻って、上述した処理を繰り返す。
一方、未処理のビーコンIDがないと判定した場合には、端子Eを介して、図28に示したS1901の処理に移る。
図28の説明に移る。S1901乃至S1909の処理は、一次登録処理(A)の場合と同様である。
更新部1613は、ブルームフィルタ更新処理(B)を実行する(S2801)。図29に、ブルームフィルタ更新処理(B)フローを示す。S2001乃至S2005の処理は、ブルームフィルタ更新処理(A)の場合と同様である。
更新部1613は、自ら保持するブルームフィルタにおいて当該インデックスで特定されるカウンタの値が0であるか否かを判定する(S2901)。当該カウンタの値が0であると判定した場合には、更新部1613は、当該カウンタの値を1に変更する(S2903)。一方、当該カウンタの値が0ではないと判定した場合、つまり当該カウンタの値が1以上である場合には、更新部1613は、当該カウンタの値を変更しない。
S2011及びS2013の処理は、ブルームフィルタ更新処理(A)の場合と同様である。ブルームフィルタ更新処理(B)を終えると、呼び出し元の処理に復帰する。
図28の説明に戻る。ブルームフィルタ更新処理(B)を終えて復帰すると、端子Fを介して、図26に示したS1701の処理に戻る。
S1913乃至S1919は、一次登録処理(A)の場合と同様である。S1915の処理を終えた場合には、端子Fを介して、図26に示したS1701の処理に戻る。S1919の処理を終えた場合にも、端子Fを介して、図26に示したS1701の処理に戻る。
また、本実施の形態における探索装置303は、探索処理(A)に代えて、探索処理(B)を実行する。図30に、探索処理(B)フローを示す。S2301及びS2305の処理は、探索処理(A)の場合と同様である。
S2305において管理ノード301を1つ特定すると、判定部2203は、ブルームフィルタ判定処理(B)を実行する(S3001)。このとき、判定部2203は、図30のS2301で受信した蓄積ノード201の照会に含まれるビーコンID及び図30のS2305で特定された管理ノード301のIDを引数とする。
図31に、ブルームフィルタ判定処理(B)フローを示す。S1801乃至S1807の処理は、ブルームフィルタ判定処理(A)の場合と同様である。
S1807においてインデックスが1つ特定されると、判定部2203は、ブルームフィルタにおいて当該インデックスで特定されるカウンタの値が1以上であるか否かを判定する(S3101)。ブルームフィルタにおいて当該インデックスで特定されるカウンタの値が1以上でないと判定した場合、つまりカウンタの値が0である場合には、判定部2203は、引数の管理ノードIDで特定される管理テーブルにビーコンIDが含まれないと判定する(S1811)。そして、ブルームフィルタ判定処理(B)を終え、呼び出し元の処理に復帰する。
一方、ブルームフィルタにおいて当該インデックスで特定されるカウンタの値が1以上であると判定した場合、判定部2203は、未処理のインデックスがあるか否かを判定する(S1813)。S1813及びS1815の処理は、ブルームフィルタ判定処理(A)の場合と同様である。
S1815で、引数の管理ノードIDで特定される管理テーブルにビーコンIDが含まれると判定した場合に、判定部2203は、ブルームフィルタにおいて、S1805で得られた各インデックスで特定されるカウンタに1を加える(S3103)。そして、ブルームフィルタ判定処理(B)を終え、呼び出し元の処理に復帰する。
図30の説明に戻る。S2309乃至S2401の処理は、探索処理(A)の場合と同様である。
本実施の形態によれば、ブルームフィルタ以外のカウンタを設けなくても済むので、キーが使用された頻度を管理し易くなる。
尚、配列要素であるカウンタのデータサイズは任意であるので、システム情報としてカウンタのデータサイズを設定し、設定されているデータサイズに従ってブルームフィルタの構成を変更できるようにしてもよい。
また、一つのブルームフィルタにおける各カウンタのデータサイズは、一律でなくてもよい。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べた蓄積ノード201、管理ノード301及び探索装置303は、コンピュータ装置であって、図32に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係るデータ管理方法は、(A)キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが値の探索のために用いられた頻度を特定し、(B)特定された頻度によって、複数の組の各々に含まれるキーに重みを付けて、複数の記憶部の各々について複数の組に含まれる複数のキーの、当該記憶部における包含度を算出し、(C)包含度に基づいて複数の組の追加先となる記憶部を選択する処理を含む。
このようにすれば、探索効率が良くなるように、複数のキーを含むデータを配置できる。
更に、上記記憶部毎に設けられた、キーをマッピングするための配列要素が3値以上であるブルームフィルタの当該配列要素を用いて上記頻度をカウントする処理を含むようにしてもよい。
このようにすれば、ブルームフィルタ以外のカウンタを設けなくても済むので、キーが使用された頻度を管理し易くなる。
更に、上記値は、キーに対応付けられた情報の格納場所を示すものであってもよい。
このようにすれば、キーに対応付けられた情報へのアクセス効率が高まる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが前記値の探索のために用いられた頻度を特定し、
特定された前記頻度によって、前記複数の組の各々に含まれる前記キーに重みを付けて、前記複数の記憶部の各々について前記複数の組に含まれる複数のキーの、当該記憶部における包含度を算出し、
前記包含度に基づいて前記複数の組の追加先となる記憶部を選択する
処理をコンピュータに実行させるデータ管理プログラム。
(付記2)
更に、
前記記憶部毎に設けられた、前記キーをマッピングするための配列要素が3値以上であるブルームフィルタの当該配列要素を用いて前記頻度をカウントする
処理を含む付記1記載のデータ管理プログラム。
(付記3)
前記値は、前記キーに対応付けられた情報の格納場所を示す
付記1又は2記載のデータ管理プログラム。
(付記4)
キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが前記値の探索のために用いられた頻度を特定し、
特定された前記頻度によって、前記複数の組の各々に含まれる前記キーに重みを付けて、前記複数の記憶部の各々について前記複数の組に含まれる複数のキーの、当該記憶部における包含度を算出し、
前記包含度に基づいて前記複数の組の追加先となる記憶部を選択する
処理を含み、コンピュータにより実行されるデータ管理方法。
(付記5)
キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが前記値の探索のために用いられた頻度を特定する特定部と、
特定された前記頻度によって、前記複数の組の各々に含まれる前記キーに重みを付けて、前記複数の記憶部の各々について前記複数の組に含まれる複数のキーの、当該記憶部における包含度を算出する算出部と、
前記包含度に基づいて前記複数の組の追加先となる記憶部を選択する選択部と
を有するデータ管理装置。
101 ユーザ端末 103 ビーコン発信装置
201 蓄積ノード 203 アクセスポイント
205 スイッチ 207 管理システム
301 管理ノード 303 探索装置
305 スイッチ 1601 受信部
1603 算出部 1605 判定部
1607 特定部 1609 選択部
1611 追加部 1613 更新部
1615 転送部 1617 受付部
1619 抽出部 1621 送信部
1631 第1ハッシュ計算部 1633 第2ハッシュ計算部
1635 第kハッシュ計算部 1651 通知記憶部
1653 管理テーブル記憶部 1655 ブルームフィルタ記憶部
2201 受信部 2203 判定部
2205 照会部 2207 送信部
2209 計数部 2231 使用頻度記憶部

Claims (5)

  1. キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが前記値の探索のために用いられた頻度を特定し、
    特定された前記頻度によって、前記複数の組の各々に含まれる前記キーに重みを付けて、前記複数の記憶部の各々について前記複数の組に含まれる複数のキーの、当該記憶部における包含度を算出し、
    前記包含度に基づいて前記複数の組の追加先となる記憶部を選択する
    処理をコンピュータに実行させるデータ管理プログラム。
  2. 更に、
    前記記憶部毎に設けられた、前記キーをマッピングするための配列要素が3値以上であるブルームフィルタの当該配列要素を用いて前記頻度をカウントする
    処理を含む請求項1記載のデータ管理プログラム。
  3. 前記値は、前記キーに対応付けられた情報の格納場所を示す
    請求項1又は2記載のデータ管理プログラム。
  4. キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが前記値の探索のために用いられた頻度を特定し、
    特定された前記頻度によって、前記複数の組の各々に含まれる前記キーに重みを付けて、前記複数の記憶部の各々について前記複数の組に含まれる複数のキーの、当該記憶部における包含度を算出し、
    前記包含度に基づいて前記複数の組の追加先となる記憶部を選択する
    処理を含み、コンピュータにより実行されるデータ管理方法。
  5. キー及び値を含む組の集合を分散して記憶する複数の記憶部のいずれかに、複数の組を追加する場合に、当該複数の組の各々に含まれるキーについて当該キーが前記値の探索のために用いられた頻度を特定する特定部と、
    特定された前記頻度によって、前記複数の組の各々に含まれる前記キーに重みを付けて、前記複数の記憶部の各々について前記複数の組に含まれる複数のキーの、当該記憶部における包含度を算出する算出部と、
    前記包含度に基づいて前記複数の組の追加先となる記憶部を選択する選択部と
    を有するデータ管理装置。
JP2016232134A 2016-11-30 2016-11-30 データ管理プログラム、データ管理方法及びデータ管理装置 Active JP6720844B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016232134A JP6720844B2 (ja) 2016-11-30 2016-11-30 データ管理プログラム、データ管理方法及びデータ管理装置
US15/795,336 US20180150226A1 (en) 2016-11-30 2017-10-27 Method and apparatus for management of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016232134A JP6720844B2 (ja) 2016-11-30 2016-11-30 データ管理プログラム、データ管理方法及びデータ管理装置

Publications (2)

Publication Number Publication Date
JP2018088215A JP2018088215A (ja) 2018-06-07
JP6720844B2 true JP6720844B2 (ja) 2020-07-08

Family

ID=62190137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016232134A Active JP6720844B2 (ja) 2016-11-30 2016-11-30 データ管理プログラム、データ管理方法及びデータ管理装置

Country Status (2)

Country Link
US (1) US20180150226A1 (ja)
JP (1) JP6720844B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115048432B (zh) * 2022-08-02 2024-04-26 西南石油大学 基于布隆过滤器的模糊关键词公共审计方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100274893A1 (en) * 2009-04-27 2010-10-28 Sonus Networks, Inc. Methods and apparatus for detecting and limiting focused server overload in a network
JP5310399B2 (ja) * 2009-09-01 2013-10-09 富士通株式会社 索引管理装置の処理方法および索引管理装置
JP5733124B2 (ja) * 2011-09-12 2015-06-10 富士通株式会社 データ管理装置、データ管理システム、データ管理方法、及びプログラム
WO2013061680A1 (ja) * 2011-10-26 2013-05-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、データ・アクセス方法およびプログラム
JP5825122B2 (ja) * 2012-01-31 2015-12-02 富士通株式会社 生成プログラム、生成方法、および生成システム
US9760836B2 (en) * 2013-09-16 2017-09-12 Guavus, Inc. Data typing with probabilistic maps having imbalanced error costs

Also Published As

Publication number Publication date
JP2018088215A (ja) 2018-06-07
US20180150226A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
Mokbel et al. MNTG: An extensible web-based traffic generator
JP5965708B2 (ja) 無線通信装置、メモリ装置、無線通信システム、無線通信方法、およびプログラム
JP2015505180A (ja) 移動端末のナビゲーション機能に基づく画像位置特定方法およびシステム
JP6623954B2 (ja) データ転送プログラム、データ転送装置、およびデータ転送方法
KR100723842B1 (ko) 사용자 생성 위치기반 서비스 시스템 및 그 제공 방법
CN109669943A (zh) 数据存储方法、数据查询方法及装置
JP5223034B2 (ja) 情報提供装置、情報提供方法、情報提供処理プログラム、及び情報提供処理プログラムを記録した記録媒体
CN106126575A (zh) 一种地理位置服务方法、服务器和系统
CN102063472A (zh) 图片搜索方法、图片搜索系统、客户端和服务器
JP6720844B2 (ja) データ管理プログラム、データ管理方法及びデータ管理装置
CN113268550A (zh) 自治域系统的排行方法、系统、电子设备和存储介质
JP2009237671A (ja) データ開示システム、アクセス制御設定方法、及びアクセス制御設定プログラム
US20080195729A1 (en) Path identification for network data
CN109168127A (zh) 资源推荐方法、装置、电子设备以及计算机可读介质
Hao et al. Goldie: Harmonization and orchestration towards a global directory for IoT
JP2014142782A (ja) 情報提供装置及びプログラム
JP5272107B2 (ja) 情報提供装置、情報提供処理プログラム、情報提供処理プログラムを記録した記録媒体、及び情報提供方法
KR101001844B1 (ko) 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법
JP5422436B2 (ja) 滞在場所推定装置、方法及びプログラム
JP5708868B1 (ja) プログラム、情報処理装置及び方法
JP2014134860A (ja) 画像検索装置、画像検索方法、検索元画像提供装置、検索元画像提供方法、及びプログラム
US20080195635A1 (en) Path indexing for network data
Niwa et al. MPSDataStore: a sensor data repository system for mobile participatory sensing
KR102112417B1 (ko) 위치기반 사물인터넷을 위한 위치기반 시스템 온 칩 모델
KR20150112104A (ko) 다자간 전자명함 교환 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200417

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: 20200519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200601

R150 Certificate of patent or registration of utility model

Ref document number: 6720844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150