IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7476715情報処理装置及び重複率見積もりプログラム
<>
  • 特許-情報処理装置及び重複率見積もりプログラム 図1
  • 特許-情報処理装置及び重複率見積もりプログラム 図2
  • 特許-情報処理装置及び重複率見積もりプログラム 図3
  • 特許-情報処理装置及び重複率見積もりプログラム 図4
  • 特許-情報処理装置及び重複率見積もりプログラム 図5
  • 特許-情報処理装置及び重複率見積もりプログラム 図6
  • 特許-情報処理装置及び重複率見積もりプログラム 図7
  • 特許-情報処理装置及び重複率見積もりプログラム 図8
  • 特許-情報処理装置及び重複率見積もりプログラム 図9A
  • 特許-情報処理装置及び重複率見積もりプログラム 図9B
  • 特許-情報処理装置及び重複率見積もりプログラム 図9C
  • 特許-情報処理装置及び重複率見積もりプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】情報処理装置及び重複率見積もりプログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20240423BHJP
【FI】
G06F3/06 301W
G06F3/06 301Z
【請求項の数】 2
(21)【出願番号】P 2020134377
(22)【出願日】2020-08-07
(65)【公開番号】P2022030385
(43)【公開日】2022-02-18
【審査請求日】2023-05-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山下 頌太
(72)【発明者】
【氏名】古田 智徳
(72)【発明者】
【氏名】宇納 知寛
【審査官】北村 学
(56)【参考文献】
【文献】特開2013-156846(JP,A)
【文献】特開2019-016293(JP,A)
【文献】米国特許出願公開第2017/0199895(US,A1)
【文献】国際公開第2016/006050(WO,A1)
【文献】国際公開第2016/181479(WO,A1)
【文献】国際公開第2017/149592(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
見積もり対象データから一部のデータを複数のサンプルデータとして抽出し、抽出した複数のサンプルデータの重複数を管理する管理部と、
前記管理部により管理される重複数に基づいて前記複数のサンプルデータを重複数が所定数以下の第1グループと重複数が所定数より多い第2グループに分類する分類部と、
前記第1グループに分類されたサンプルデータを用いて、前記複数のサンプルデータの重複数ごとのデータ量の期待値に関して各重複数についてのデータ量を変数とする連立方程式を作成し、該作成した連立方程式を解くことで1から前記所定数までの各重複数についてデータ量を推定し、各重複数について推定したデータ量に基づいて、前記第1グループに分類されたサンプルデータについての第1重複排除率を計算する第1計算部と、
前記第2グループに分類されたサンプルデータの総数及び種類数に基づいて、前記第2グループに分類されたサンプルデータについての第2重複排除率を計算する第2計算部と、
前記第1重複排除率と前記第2重複排除率に基づいて前記見積もり対象データの重複排除率を計算する合成部と
を有することを特徴とする情報処理装置。
【請求項2】
コンピュータに、
見積もり対象データから一部のデータを複数のサンプルデータとして抽出し、抽出した複数のサンプルデータの重複数を管理し、
管理する重複数に基づいて前記複数のサンプルデータを重複数が所定数以下の第1グループと重複数が所定数より多い第2グループに分類し、
前記第1グループに分類されたサンプルデータを用いて、前記複数のサンプルデータの重複数ごとのデータ量の期待値に関して各重複数についてのデータ量を変数とする連立方程式を作成し、該作成した連立方程式を解くことで1から前記所定数までの各重複数についてデータ量を推定し、各重複数について推定したデータ量に基づいて、前記第1グループに分類されたサンプルデータについての第1重複排除率を計算し、
前記第2グループに分類されたサンプルデータの総数及び種類数に基づいて、前記第2グループに分類されたサンプルデータについての第2重複排除率を計算し、
前記第1重複排除率と前記第2重複排除率に基づいて前記見積もり対象データの重複排除率を計算する
処理を実行させることを特徴とする重複率見積もりプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び重複率見積もりプログラムに関する。
【背景技術】
【0002】
クラウドストレージなどの有料なストレージを利用する場合、利用コストは、データのサイズに基づいて決定される。このため、利用コストは、重複排除によるデータの重複排除率に依存する。重複排除率が大きければ、重複排除によりデータのサイズを小さくすることができ、利用コストを小さくすることができる。例えば、1PB(Peta Byte)のデータの場合、削減率が10%違うと、100TB(Tera Byte)のストレージが不要になる。このため、有料なストレージを利用する場合には、重複排除率の見積もりが重要となる。
【0003】
なお、従来技術として、統合後に必要となる物理領域の大きさをユーザが予め見積もるために、複数のプールを統合した場合の重複除去率を算出する情報処理装置がある。この情報処理装置は重複数算出部と重複除去率算出部とを有する。重複数算出部は、2つのプールの単位データの重複数と2つのプールのリファレンスカウントの総数を算出する。重複除去率算出部は、重複数、リファレンスカウントの総数を用いて重複除去率を算出する。
【0004】
また、従来技術として、データ削減効果の低下を軽減することと重複排除のパフォーマンスを向上することの両方を実現するストレージシステムがある。このストレージシステムは、重複排除処理において、データを複数のチャンクデータに分割し、平均してチャンクデータN個につき1個のチャンクデータの選択を意味するサンプリング周期にしたがい、複数のチャンクデータから1以上のチャンクデータを選択する。そして、このストレージシステムは、選択された1以上のチャンクデータである1以上の特徴チャンクデータの各々について、ハッシュ値のようなフィンガープリントを算出しその特徴チャンクデータを含むデータが重複か否かを判定する。また、ストレージシステムは、過去の重複排除処理の結果を基に、サンプリング周期を変更する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-16293号公報
【文献】国際公開第2016/181479号
【発明の概要】
【発明が解決しようとする課題】
【0006】
重複排除率を見積もるために、実際に重複排除を行うことが考えられる。しかしながら、実際に重複排除を行うと時間がかかるという問題がある。例えば、1PBのデータを重複排除する場合、100MB(Mega Byte)/秒でデータを読み込むと、データの読み込みだけでも概算で1015/108秒=107秒=107/(60×60×24)日=105/(36×24)日すなわち100日以上かかる。
【0007】
本発明は、1つの側面では、重複排除率を短時間で精度よく推定することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、情報処理装置は、管理部と分類部と第1計算部と第2計算部と合成部とを有する。前記管理部は、見積もり対象データから一部のデータを複数のサンプルデータとして抽出し、抽出した複数のサンプルデータの重複数を管理する。前記分類部は、前記管理部により管理される重複数に基づいて前記複数のサンプルデータを重複数が所定数以下の第1グループと重複数が所定数より多い第2グループに分類する。前記第1計算部は、前記第1グループに分類されたサンプルデータについて第1重複排除率を計算する。前記第2計算部は、前記第2グループに分類されたサンプルデータについて第2重複排除率を計算する。前記合成部は、前記第1重複排除率と前記第2重複排除率に基づいて前記見積もり対象データの重複排除率を計算する。
【発明の効果】
【0009】
1つの側面では、本発明は、重複排除率を短時間で精度よく推定することができる。
【図面の簡単な説明】
【0010】
図1図1は、m多重モデルに基づく重複排除率の推定を説明するための第1の図である。
図2図2は、m多重モデルに基づく重複排除率の推定を説明するための第2の図である。
図3図3は、U&Zモデルを説明するための図である。
図4図4は、複雑なモデルの一例を示す図である。
図5図5は、n=1,2,・・・,Mについて期待値E(n,x)を示す図である。
図6図6は、実施例に係る重複率見積もり装置による重複排除率の見積もり方法を説明するための図である。
図7図7は、実施例に係る重複率見積もり装置の機能構成を示す図である。
図8図8は、グローバルチャンクテーブル及び少数チャンクテーブルにそれぞれ含まれるレコードの一例を示す図である。
図9A図9Aは、重複率見積もり装置による処理のフローを示す第1のフローチャートである。
図9B図9Bは、重複率見積もり装置による処理のフローを示す第2のフローチャートである。
図9C図9Cは、重複率見積もり装置による処理のフローを示す第3のフローチャートである。
図10図10は、実施例に係る重複率見積もりプログラムを実行するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する情報処理装置及び重複率見積もりプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例
【0012】
まず、単純なモデルに基づいて重複排除率を推定した場合の精度について図1図3を用いて説明する。図1及び図2は、m多重モデルに基づく重複排除率の推定を説明するための図である。ここで、m多重モデルとは、図1(a)に示すように、重複排除前の元データにm個の同じデータAが含まれるモデルである。m多重モデルでは、重複排除によりm個のデータは1個になる。重複排除率r=1/mである。
【0013】
元データのうちスキャンされたデータの割合をxとする。ここで、スキャンとは、重複排除率を推定するために元データからデータを読み出すことである。スキャンはチャンク単位で行われる。チャンクの大きさは可変である。xは、例えば0.01である。各チャンクについてみると、スキャンされている確率はxである。
【0014】
各チャンクは、図1(b)に示すように、スキャンされていないので重複検出されないか、スキャンされているが同一データがスキャンされていないので重複検出されないか、又は、同一データがスキャンされているので重複検出される、のいずれかである。
【0015】
チャンクがスキャンされず重複検出されない確率は、スキャンされない確率が1-xであるので、(1-x)^mである。「^」は、べき乗演算を表す。チャンクがスキャンされて同一データが重複検出されない確率は、m・x・(1-x)^(m-1)である。「・」は乗算を表す。チャンクがスキャンされて同一データが重複検出される確率は、1から上記2つの確率を引いて、1-(1-x)^m-m・x・(1-x)^(m-1)である。
【0016】
実際のスキャンにおいて重複検出された率をDとすると、
1-(1-x)^m-m・x・(1-x)^(m-1)=D ・・・(1)
である。式(1)において、Dに実測値を代入し、xに0.01などの固定値を代入すると、式(1)はmに関する方程式であり、この方程式を解くことでmを計算することができる。
【0017】
式(1)の左辺はmについての単調関数なので、式(1)の方程式を解くことなく、mをパラメータとして近似探索することで、mを計算することができる。また、r=1/mであるので、mからrを計算することができる。図2は、x=0.01の場合のDとrの関係を示すグラフである。図2から、D=0.0001のとき、重複排除率rは0.5である。
【0018】
図3は、U&Zモデルを説明するための図である。図3に示すように、U&Zモデルは、元データのうちユニークな割合がu(0≦u≦1)であり、残りの割合(1-u)のデータが全く同一(例えば全て0)であるモデルである。図3では、Uはユニークデータの集合であり、Zは同一データの集合である。元データのモデルがU&Zモデルであると、同一データは重複排除され、重複排除率r=uである。また、ピックアップされたデータがZに含まれる確率=重複検出される確率D=1-uである。したがって、重複排除率r=1-Dであり、D=0.0001のとき、重複排除率r=0.9999である。
【0019】
このように、元データのモデルが異なると、重複排除率の予測値は大きく異なる。すなわち、元データのモデルを単純なモデルとし、部分スキャンによって重複排除率を予測すると、予測値の精度が悪い。そこで、元データのモデルを複雑にして予測値の精度を向上することが考えられる。
【0020】
図4は、複雑なモデルの一例を示す図である。図4に示すように、ユニークデータのデータ量をD(1)、2多重データのデータ量をD(2)、・・・、最多多重データのデータ量をD(M)とすると、元データのデータ量はΣD(m)(m=1..M)である。ここで、「1..M」は「1からMまで」を表す。元データから重複排除が行われた後のデータ量はΣ(1/m)D(m)(m=1..M)である。したがって、部分スキャンを行いながら重複度ごとのデータ量D(m)(m=1..M)を予測することで、重複排除率rを予測することができる。r={Σ(1/m)D(m)}/{ΣD(m)}である。なお、このrの式では、(m=1..M)は省略されている。
【0021】
データ量D(m)(m=1..M)は以下のように予測される。重複度mのデータが割合xの部分スキャンで、n多重に重複検出される確率はC(m,n)・x^n・(1-x)^(m-n)である。ここで、C(m,n)は、m!/{(m-n)!n!}である。
【0022】
したがって、割合xの部分スキャンで、n多重検出されるデータ量の期待値E(n,x)は、E(n,x)=Σ_{m=n..M}D(m)C(m,n)・x^n・(1-x)^(m-n)である。ここで、Σ_{m=n..M}は、mをnからNまで変化させた和を表す。図5は、n=1,2,・・・,Mについて期待値E(n,x)を示す図である。図5に示すように、式(2-1)~(2-M)は、変数D(m)(m=1..M)についての連立一次方程式であり、この連立方程式を解くことにより重複排除率rを計算することができる。
【0023】
式(2-1)~(2-M)において、C(m,n)については正規曲線近似を行い、xや(1-x)のべき乗計算については対数を取ってから計算すれば、各項の計算は、m、nによらず、3回のexp計算、10回程度の四則演算で可能である。また、この連立方程式は、係数行列が三角行列なので、比較的容易に解くことができる。
【0024】
しかしながら、例えば1PBの総データを平均32KB(Kiro Byte)のチャンク長で分割する重複排除の場合、Mの最大値は、1PB/32KB=32Gとなる。したがって、式(2-1)~(2-M)の連立方程式を解くためには、32G×32Gの超巨大なサイズの逆行列の計算が必要となり、一般的なサーバーで計算することはできない。
【0025】
このように、元データのモデルを複雑にすると重複排除率rを高精度で計算することができるが、計算コストが大きくなる。そこで、実施例に係る重複率見積もり装置は、スキャンで検出されたチャンクを、「多数回重複するチャンク」と「少数回しか重複しないチャンク」に分類し、それぞれのグループで異なる見積もり手法を用いる。
【0026】
式(2-1)~(2-M)の連立方程式を用いた重複排除率の見積もりを困難にしているのは、多数回重複する一部のデータである。数回しか重複しないものは、全体の期待値計算の誤差に寄与する割合は相対的に少ない。mが大きいほど係数が大きく、mは多数のnに関与する。そこで、実施例に係る重複率見積もり装置は、全データのうち割合xでスキャンして各チャンクの重複回数をカウントし、スキャンしたチャンク全体を重複回数がN以下のグループとN+1以上のグループに分ける。
【0027】
図6は、実施例に係る重複率見積もり装置による重複排除率の見積もり方法を説明するための図である。図6では、一例としてN=3である。図6に示すように、実施例に係る重複率見積もり装置は、スキャンしたチャンク全体を重複回数が4以上の多数チャンクのグループと重複回数が3以下の少数チャンクのグループに分ける。
【0028】
そして、実施例に係る重複率見積もり装置は、少数チャンクのグループについては、式(2-1)~(2-M)の連立方程式を解いて重複排除率を見積もり、多数チャンクのグループについては、他の手法を用いて重複排除率を見積もる。実施例に係る重複率見積もり装置は、多数チャンクのグループについては、例えば、グループ内のチャンクの種類数とグループ内のチャンクの総数の比を重複排除率とする。そして、実施例に係る重複率見積もり装置は、2つのグループの見積もり結果を合算することで、全体の重複排除率を見積もる。
【0029】
このように、実施例に係る重複率見積もり装置は、少数チャンクのグループについてだけ、式(2-1)~(2-M)の連立方程式を解いて重複排除率を見積もるので、Mを小さくすることができ、計算コストを小さくすることができる。
【0030】
次に、実施例に係る重複率見積もり装置の機能構成について説明する。図7は、実施例に係る重複率見積もり装置の機能構成を示す図である。図7に示すように、実施例に係る重複率見積もり装置1は、ファイル入出力部11と、見積もり部12と、結果出力部13とを有する。
【0031】
ファイル入出力部11は、見積もり対象データから割合xのデータを取得する。ファイル入出力部11は、割合xのデータを複数のチャンクとして取得する。ファイル入出力部11は、例えばローカルディスクに格納されたファイルからチャンクを読み込む。ファイル入出力部11は、NFS(Network File System)、SMB(Server Message Block)などのNAS(Network Attached Storage)インタフェースを介してチャンクを読み込んでもよい。
【0032】
見積もり部12は、ファイル入出力部11により読み込まれた複数のチャンクを用いて見積もり対象データの重複排除率を計算する。
【0033】
結果出力部13は、見積もり部12により計算された重複排除率をディスプレイ2に表示する。結果出力部13は、重複排除率をファイルに書き込んでもよい。
【0034】
見積もり部12は、記憶部21と、重複判定部22と、重複数管理部23と、チャンク管理部24と、計算部25とを有する。
【0035】
記憶部21は、グローバルチャンクテーブル31と少数チャンクテーブル32を用いてチャンクに関する情報を記憶する。グローバルチャンクテーブル31は、チャンクの重複数の管理に用いられるテーブルである。少数チャンクテーブル32は、少数チャンクのグループに含まれるチャンクの種類の数の管理に用いられるテーブルである。
【0036】
図8は、グローバルチャンクテーブル31及び少数チャンクテーブル32にそれぞれ含まれるレコードの一例を示す図である。図8(a)はグローバルチャンクテーブル31に含まれるレコードを示し、図8(b)は少数チャンクテーブル32に含まれるレコードを示す。
【0037】
図8(a)に示すように、グローバルチャンクテーブル31に含まれるレコードには、ハッシュ値と重複数が含まれる。ハッシュ値は、チャンクからハッシュ関数を用いて計算される値である。重複数は、ハッシュ値に対応するチャンクの重複数である。グローバルチャンクテーブル31では、ハッシュ値がキーである。
【0038】
図8(b)に示すように、少数チャンクテーブル32に含まれるレコードには、重複数とハッシュ値の種類数が含まれる。重複数は、少数チャンクテーブル32に含まれるチャンクの重複数である。ハッシュ値の種類数は、重複する数が重複数であるハッシュ値(チャンク)の種類の数である。
【0039】
図7に戻って、重複判定部22は、ファイル入出力部11により読み込まれたチャンクのハッシュ値を計算し、計算したハッシュ値がグローバルチャンクテーブル31に登録されているか否かを判定することで、チャンクが重複するか否かを判定する。
【0040】
重複数管理部23は、グローバルチャンクテーブル31を用いてチャンクごとの重複数を管理する。重複数管理部23は、計算したハッシュ値がグローバルチャンクテーブル31に登録されていると重複判定部22により判定された場合には、ハッシュ値に対応する重複数に1を加える。一方、計算したハッシュ値がグローバルチャンクテーブル31に登録されていないと重複判定部22により判定された場合には、ハッシュ値をグローバルチャンクテーブル31に登録し、対応する重複数を1とする。
【0041】
チャンク管理部24は、重複数に基づいてチャンク全体を少数チャンクのグループと多数チャンクのグループに分け、チャンクの情報を管理する。チャンク管理部24は、グローバルチャンクテーブル31から1レコードずつ読み出して少数チャンクテーブル32を作成して管理する。また、チャンク管理部24は、多数グループに属するチャンクの総数、多数グループに属するチャンクの種類数を計算する。
【0042】
計算部25は、チャンク管理部24が管理する情報に基づいて、見積もり対象データの重複排除率を計算する。計算部25は、第1計算部41と第2計算部42と合成部43とを有する。
【0043】
第1計算部41は、少数チャンクのグループについて、重複度ごとのデータ量D(m)(m=1..N)を推定することで、重複排除率rを推定する。第1計算部41は、少数チャンクのグループについて、割合xの部分スキャンで、n多重検出されるデータ量の期待値E(n,x)を用いて、データ量D(m)(m=1..N)を推定する。
【0044】
すなわち、第1計算部41は、少数チャンクのグループについて、式(2-1)~(2-M)の連立方程式を解いて重複排除率を計算する。第1計算部41は、少数チャンクテーブル32から1レコードずつ読み出して連立方程式を作成する。
【0045】
第2計算部42は、多数チャンクのグループについて、グループ内のチャンクの種類数とグループ内のチャンクの総数の比を重複排除率として計算する。
【0046】
合成部43は、第1計算部41により計算された重複排除率と第2計算部42により計算された重複排除率のチャンク数に基づく重み付き平均を計算することにより見積もり対象データの重複排除率を計算する。
【0047】
次に、重複率見積もり装置1による処理のフローについて図9A図9Cを用いて説明する。図9A図9Cは、重複率見積もり装置1による処理のフローを示すフローチャートである。図9Aに示すように、重複率見積もり装置1は、見積もり対象データの総量Aを取得し(ステップS1)、スキャン量の割合xを定義する(ステップS2)。なお、重複率見積もり装置1は、ユーザがキーボードやマウスを用いて入力した値をxとして受け付けてもよい。
【0048】
そして、重複率見積もり装置1は、グローバルチャンクテーブル31を初期化する(ステップS3)。すなわち、重複率見積もり装置1は、グローバルチャンクテーブル31をレコードなしの状態にする。そして、重複率見積もり装置1は、見積もり対象データからチャンク(サンプルデータ)をランダムサンプリングする(ステップS4)。
【0049】
そして、重複率見積もり装置1は、チャンクをハッシュ化し(ステップS5)、ハッシュ化した値がグローバルチャンクテーブル31に登録済のハッシュ値か否かを判定する(ステップS6)。そして、ハッシュ化した値がグローバルチャンクテーブル31に登録済のハッシュ値である場合には、重複率見積もり装置1は、登録済のハッシュ値に対応するレコードの重複数をインクリメント(1増加)する(ステップS7)。一方、ハッシュ化した値がグローバルチャンクテーブル31に登録済のハッシュ値でない場合には、重複率見積もり装置1は、ハッシュ化した値を含むレコードをグローバルチャンクテーブル31に新規作成する(ステップS8)。その際、重複率見積もり装置1は、作成したレコードの重複数を1とする。
【0050】
そして、重複率見積もり装置1は、処理したチャンクの合計サイズがA・x未満か否かを判定し(ステップS9)、A・x未満である場合には、ステップS4に戻る。一方、処理したチャンクの合計サイズがA・x未満でない場合には、重複率見積もり装置1は、図9Bに示すように、少数チャンクテーブル32を初期化する(ステップS10)。具体的には、重複率見積もり装置1は、重複数1..NのN個のレコードを作成し、各レコードのハッシュ値の種類数を0初期化する。
【0051】
そして、重複率見積もり装置1は、多数チャンクの総数major_chunknumを0で初期化し(ステップS11)、多数チャンクの種類数major_entnumを0で初期化する(ステップS12)。そして、重複率見積もり装置1は、グローバルチャンクテーブル31から1レコード読み出し(ステップS13)、重複数がN以下か否かを判定する(ステップS14)。
【0052】
そして、重複数がN以下でない場合には、重複率見積もり装置1は、major_chunknumに重複数を加算し(ステップS15)、major_entnumをインクリメントする(ステップS16)。一方、重複数がN以下である場合には、重複率見積もり装置1は、少数チャンクテーブル32のキーが重複数に一致するレコードのハッシュ値の種類数をインクリメントする(ステップS17)。
【0053】
そして、重複率見積もり装置1は、グローバルチャンクテーブル31に読み出していないレコードが残っているか否かを判定し(ステップS18)、残っている場合には、ステップS13に戻る。一方、残っていない場合には、重複率見積もり装置1は、図9Cに示すように、見積もり対象データから生成される総チャンク数total_chunknumをA/平均チャンクサイズで計算する(ステップS19)。
【0054】
そして、重複率見積もり装置1は、多数チャンクが全体に占める割合major_ratioをmajor_chunknum/total_chunknumで計算し(ステップS20)、少数チャンクが全体に占める割合minor_ratioを1-major_ratioで計算する(ステップS21)。そして、重複率見積もり装置1は、多数チャンクの重複排除率major_rをmajor_entnum/major_chunknumで計算する(ステップS22)。
【0055】
そして、重複率見積もり装置1は、少数チャンクテーブル32からレコードを1つ読み出し(ステップS23)、読み出したレコードの重複数nをもとに、E(n,x)にn*ハッシュの種類数を代入する(ステップS24)。ここで、「*」は乗算を表す。そして、重複率見積もり装置1は、少数チャンクテーブル32に読み出していないレコードが残っているか否かを判定し(ステップS25)、残っている場合には、ステップS23に戻る。
【0056】
一方、少数チャンクテーブル32に読み出していないレコードが残っていない場合には、重複率見積もり装置1は、E(n,x)=Σ_{m=n..M}D(m)C(m,n)・x^n・(1-x)^(m-n)をD(m)について解く(ステップS26)。そして、重複率見積もり装置1は、少数チャンクの重複排除率minor_rをminor_r={Σ(1/m)・D(m)}/{ΣD(m)}で計算する(ステップS27)。
【0057】
そして、重複率見積もり装置1は、見積もり対象データ全体に対する重複排除率rをr=major_ratio*major_r+minor_ratio*minor_rで計算する(ステップS28)。そして、重複率見積もり装置1は、rを出力する(ステップS29)。
【0058】
このように、重複率見積もり装置1は、多数チャンクのグループと少数チャンクのグループに分けて重複排除率を計算するので、計算コストを抑えることができる。
【0059】
上述してきたように、実施例では、ファイル入出力部11が、見積もり対象データから割合xのデータを複数のチャンクとして取得する。そして、重複判定部22が、ファイル入出力部11により読み込まれたチャンクのハッシュ値を計算し、計算したハッシュ値が重複するか否かを判定する。そして、重複数管理部23が、重複判定部22の判定結果に基づいて、チャンクごとの重複数を管理する。そして、チャンク管理部24が、重複数に基づいてチャンク全体を少数チャンクのグループと多数チャンクのグループに分ける。そして、第1計算部41が、少数チャンクのグループについて、重複排除率を計算し、第2計算部42が、多数チャンクのグループについて重複排除率を計算する。そして、合成部43が、第1計算部41により計算された重複排除率と第2計算部42により計算された重複排除率に基づいて見積もり対象データの重複排除率を計算する。したがって、重複率見積もり装置1は、重複排除率を短時間で精度よく推定することができる。
【0060】
また、実施例では、第1計算部41は、少数チャンクのグループについて、D(1)~D(N)を推定し、推定したD(1)~D(N)に基づいて重複排除率を計算するので、少数チャンクのグループの重複排除率を高精度で推定することができる。
【0061】
また、実施例では、第1計算部41は、割合xの部分スキャンでn多重検出されるデータ量の期待値E(n,x)を用いてD(1)~D(N)を推定するので、D(1)~D(N)を高精度で推定することができる。
【0062】
すなわち、実施例では、第1計算部41は、少数チャンクのグループについて、式(2-1)~(2-M)の連立方程式を解いて重複排除率を計算するので、少数チャンクのグループの重複排除率を高精度で推定することができる。
【0063】
また、実施例では、第2計算部42は、多数チャンクのグループについて、グループ内のチャンクの種類数とグループ内のチャンクの総数に基づいて重複排除率を計算するので、多数チャンクのグループの重複排除率を推定することができる。
【0064】
なお、実施例では、重複率見積もり装置1について説明したが、重複率見積もり装置1が有する構成をソフトウェアによって実現することで、同様の機能を有する重複率見積もりプログラムを得ることができる。そこで、重複率見積もりプログラムを実行するコンピュータについて説明する。
【0065】
図10は、実施例に係る重複率見積もりプログラムを実行するコンピュータのハードウェア構成を示す図である。図10に示すように、コンピュータ50は、メインメモリ51と、プロセッサの一例であるCPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0066】
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
【0067】
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVD、CD-Rの読み書きを行う装置である。
【0068】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0069】
そして、コンピュータ50において実行される重複率見積もりプログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるCD-Rに記憶され、ODD57によってCD-Rから読み出されてコンピュータ50にインストールされる。あるいは、重複率見積もりプログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた重複率見積もりプログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【0070】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0071】
(付記1)見積もり対象データから一部のデータを複数のサンプルデータとして抽出し、抽出した複数のサンプルデータの重複数を管理する管理部と、
前記管理部により管理される重複数に基づいて前記複数のサンプルデータを重複数が所定数以下の第1グループと重複数が所定数より多い第2グループに分類する分類部と、
前記第1グループに分類されたサンプルデータについて第1重複排除率を計算する第1計算部と、
前記第2グループに分類されたサンプルデータについて第2重複排除率を計算する第2計算部と、
前記第1重複排除率と前記第2重複排除率に基づいて前記見積もり対象データの重複排除率を計算する合成部と
を有することを特徴とする情報処理装置。
【0072】
(付記2)前記第1計算部は、前記第1グループに分類されたサンプルデータを用いて、1から前記所定数までの各重複度についてデータ量を推定し、各重複度について推定したデータ量に基づいて前記第1重複排除率を計算することを特徴とする付記1に記載の情報処理装置。
【0073】
(付記3)前記第1計算部は、前記複数のサンプルデータの重複度ごとのデータ量の期待値に基づいて、1から前記所定数までの各重複度についてデータ量を推定することを特徴とする付記2に記載の情報処理装置。
【0074】
(付記4)前記第1計算部は、前記期待値に関して各重複度についてのデータ量を変数とする連立方程式を作成し、該作成した連立方程式を解くことで1から前記所定数までの各重複度についてデータ量を推定することを特徴とする付記3に記載の情報処理装置。
【0075】
(付記5)前記第2計算部は、前記第2グループに分類されたサンプルデータの総数及び種類に基づいて前記第2重複排除率を計算することを特徴とする付記1~4のいずれか1つに記載の情報処理装置。
【0076】
(付記6)コンピュータに、
見積もり対象データから一部のデータを複数のサンプルデータとして抽出し、抽出した複数のサンプルデータの重複数を管理し、
管理する重複数に基づいて前記複数のサンプルデータを重複数が所定数以下の第1グループと重複数が所定数より多い第2グループに分類し、
前記第1グループに分類されたサンプルデータについて第1重複排除率を計算し、
前記第2グループに分類されたサンプルデータについて第2重複排除率を計算し、
前記第1重複排除率と前記第2重複排除率に基づいて前記見積もり対象データの重複排除率を計算する
処理を実行させることを特徴とする重複率見積もりプログラム。
【0077】
(付記7)前記第1重複排除率を計算する処理は、前記第1グループに分類されたサンプルデータを用いて、1から前記所定数までの各重複度についてデータ量を推定し、各重複度について推定したデータ量に基づいて前記第1重複排除率を計算することを特徴とする付記6に記載の重複率見積もりプログラム。
【0078】
(付記8)前記第1重複排除率を計算する処理は、前記複数のサンプルデータの重複度ごとのデータ量の期待値に基づいて、1から前記所定数までの各重複度についてデータ量を推定することを特徴とする付記7に記載の重複率見積もりプログラム。
【0079】
(付記9)前記第1重複排除率を計算する処理は、前記期待値に関して各重複度についてのデータ量を変数とする連立方程式を作成し、該作成した連立方程式を解くことで1から前記所定数までの各重複度についてデータ量を推定することを特徴とする付記8に記載の重複率見積もりプログラム。
【符号の説明】
【0080】
1 重複率見積もり装置
2 ディスプレイ
11 ファイル入出力部
12 見積もり部
13 結果出力部
21 記憶部
22 重複判定部
23 重複数管理部
24 チャンク管理部
25 計算部
31 グローバルチャンクテーブル
32 少数チャンクテーブル
41 第1計算部
42 第2計算部
43 合成部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図10