JP6979987B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6979987B2
JP6979987B2 JP2019141306A JP2019141306A JP6979987B2 JP 6979987 B2 JP6979987 B2 JP 6979987B2 JP 2019141306 A JP2019141306 A JP 2019141306A JP 2019141306 A JP2019141306 A JP 2019141306A JP 6979987 B2 JP6979987 B2 JP 6979987B2
Authority
JP
Japan
Prior art keywords
hash value
data
patch file
block size
hash
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
JP2019141306A
Other languages
English (en)
Other versions
JP2021026298A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
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 Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2019141306A priority Critical patent/JP6979987B2/ja
Priority to US16/924,481 priority patent/US11327741B2/en
Publication of JP2021026298A publication Critical patent/JP2021026298A/ja
Application granted granted Critical
Publication of JP6979987B2 publication Critical patent/JP6979987B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、配信するデータ量を削減するための技術に関する。
特許文献1は、異なる2つのバージョンのパッチファイルにおける各データブロックのハッシュ値を比較して、両者の間に同一のデータブロックが存在するか判定する差分情報生成ソフトウェアを開示する。
特開2015−207145号公報
特許文献1に開示された差分情報生成ソフトウェアは、異なる2つのバージョンのパッチファイルにおけるデータブロック単位での同一を判定する。そのため新しいバージョンのデータブロックのデータが古いバージョンに含まれていたとしても、データブロック内での記録位置がずれているとデータブロックとしては異なるため、データブロックの同一を判定しない。つまり特許文献1に開示された技術によると、新しいバージョンのデータブロックのデータが古いバージョンに含まれていても、データブロック内での記録位置がずれていることで古いバージョンに含まれていることを確認できず、配信データ量を効果的に削減できないという問題がある。また異なる2つのバージョンのパッチファイル間の重複データを探索する処理は、効率的に実施されることが好ましい。
そこで本発明は、配信するデータ量を効率的に削減するための技術を提供することを目的とする。
上記課題を解決するために、本発明のある態様の情報処理装置は、第1パッチファイルを保持する第1保持部と、所定のブロックサイズをもつ複数のデータブロックにより構成される第2パッチファイルの各データブロックの第1ハッシュ値を保持する第2保持部と、第1パッチファイルにおけるブロックサイズ分のデータの第1ハッシュ値を算出するハッシュ値算出部と、第1段階の比較処理として、ハッシュ値算出部により算出された第1ハッシュ値と、第2保持部に保持された各データブロックの第1ハッシュ値とを比較する比較部とを備える。比較部は、第1段階の比較処理において第1ハッシュ値同士の一致を判定すると、第2段階の比較処理として、第1パッチファイルにおけるブロックサイズ分のデータの第2ハッシュ値と、第1ハッシュ値が一致した第2パッチファイルのデータブロックの第2ハッシュ値とを比較し、第2ハッシュ値同士の一致を判定すると、第1パッチファイルにおけるブロックサイズ分のデータと、第2パッチファイルのデータブロックに含まれるデータの一致を判定する。
本発明の別の態様もまた、情報処理装置である。この情報処理装置は、第1パッチファイルを保持する第1保持部と、所定のブロックサイズをもつ複数のデータブロックにより構成される第2パッチファイルの各データブロックのハッシュ値を保持する第2保持部と、第1パッチファイルにおけるブロックサイズ分のデータのハッシュ値を算出するハッシュ値算出部と、ハッシュ値算出部により算出されたハッシュ値と、第2保持部に保持された各データブロックのハッシュ値とを比較する比較部とを備える。ハッシュ値算出部は、第1パッチファイルにおけるブロックサイズ分のデータを、所定数のバイト分ずつずらしたデータの第1ハッシュ値を算出する。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明の情報処理技術によると、配信するデータ量を効率的に削減するための技術を提供することが可能となる。
実施例にかかるアプリケーション配信システムを示す図である。 情報処理装置の機能ブロックを示す図である。 第1パッチファイルと第2パッチファイルの例を示す図である。 各データブロックの第1ハッシュ値の例を示す図である。 第1ハッシュ値の例を示す図である。 第1ハッシュ値の例を示す図である。 第1ハッシュ値の例を示す図である。 第1ハッシュ値の例を示す図である。 第2ハッシュ値の例を示す図である。
図1は、本発明の実施例にかかるアプリケーション配信システム1を示す。アプリケーション配信システム1は、アプリケーションソフトウェアおよびパッチファイルを配信する配信サーバ4と、配信サーバ4にアプリケーションソフトウェアおよびパッチファイルを配信可能にアップロードする情報処理装置10と、インターネットなどのネットワーク2を介して配信サーバ4からアプリケーションソフトウェアおよびパッチファイルをダウンロードする複数のユーザ端末3とを備える。実施例においてアプリケーションソフトウェアはゲームソフトウェアであり、ユーザ端末3はゲーム装置であってよい。
ゲームメーカは、シナリオを修正または追加する際にパッチファイルを作成する。パッチファイルは、ゲームメーカから情報処理装置10に提供されて、配信サーバ4に配信可能にアップロードされる。ユーザ端末3は、配信サーバ4からパッチファイルをダウンロードして、ゲームを最新の状態で実行できるようにする。シナリオの修正や追加は頻繁に行われることが多く、パッチファイルはバージョン情報により管理される。
複数のバージョンのパッチファイルがリリースされている場合、ユーザ端末3は、最新のバージョンのパッチファイルをダウンロードすれば、ゲームを最新の状態で起動できるようになる。ユーザ端末3が全てのバージョンのパッチファイルをダウンロードしているとは限らないため、最新のパッチファイルには、過去のバージョンのパッチファイルに含まれる修正コンテンツおよび追加コンテンツが含まれる。そのためバージョンが新しいほど、パッチファイルのデータ量は大規模化する。
ユーザ端末3が、最新バージョンのパッチファイルをダウンロードする際、既にダウンロード済みの過去のバージョンのパッチファイルに含まれるコンテンツをダウンロードする必要はない。そのため実施例の情報処理装置10は、最新のバージョンのパッチファイルのデータブロックに含まれるデータが過去のバージョンのパッチファイルに含まれるか確認して、未ダウンロードのデータブロックのみをユーザ端末3に配信させるようにする。
図2は、情報処理装置10の機能ブロックを示す。情報処理装置10は、処理部20および記録部40を備える。処理部20は、第1ハッシュ値算出部22、第2ハッシュ値算出部24、比較部26および差分情報生成部28を有し、記録部40は、第1パッチファイル保持部42、第2パッチファイル保持部44、ハッシュ値保持部46および差分情報記録部48を有する。
これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラム、ストレージなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
情報処理装置10は、配信サーバ4と同じ運営主体によって管理され、新しいパッチファイルと古いパッチファイルとの差分情報を生成する。なお情報処理装置10の機能はゲームメーカに提供されて、新しいパッチファイルの配信データ量をどれだけ削減できるか確認するために利用されてもよい。
バージョンが異なるパッチファイル間では、多くのデータが共通する。バージョン1の古いパッチファイルと、バージョン2の新しいパッチファイルが存在する場合、既にユーザ端末3が、バージョン1のパッチファイルをダウンロード済みであれば、バージョン2のパッチファイルにおける同じデータを含むデータブロックをダウンロードすることは、ネットワークリソースを無駄に使用することになる。そこでユーザ端末3において既にダウンロード済みのデータについては、配信サーバ4からダウンロードしないことが好ましい。
第1パッチファイル保持部42は、古いバージョン1の第1パッチファイルを保持し、第2パッチファイル保持部44は、新しいバージョン2の第2パッチファイルを保持する。第2パッチファイルは、最新のパッチファイルであってよい。情報処理装置10は、ゲームメーカから第2パッチファイルを受け取ると、第2パッチファイル保持部44に格納して、第2パッチファイルの複数のデータブロックの中で、第1パッチファイルとの関係で配信しなくてよいデータブロックが存在するか確認する処理を実施する。
図3は、第1パッチファイルと第2パッチファイルの例を示す。各パッチファイルは、所定のブロックサイズをもつ複数のデータブロックにより構成される。パッチファイルは、圧縮されていても、圧縮されていなくてもよい。データブロックはファイルシステムがデータを転送する基本単位であり、たとえば64キロバイトに設定される。実際のパッチファイルは、膨大な数のデータブロックにより構成されるが、図3では説明の便宜上、第1パッチファイルが20個のデータブロックT〜T19で構成され、第2パッチファイルが20個のデータブロックL〜L19で構成される例を示している。
実施例において第1パッチファイルは既にユーザ端末3にダウンロードされている。また第2パッチファイルのデータブロックL〜L19のそれぞれが配信候補である。以下、第2パッチファイルのデータブロックL〜L19のデータが、第1パッチファイルに含まれているか確認する手法について説明する。
図4は、第2パッチファイルの各データブロックの第1ハッシュ値を示す。第1ハッシュ値算出部22は、第2パッチファイルの各データブロックの第1ハッシュ値を算出する。ここで第1ハッシュ値算出部22は、線形合同法(linear congruential generator)を利用して、64ビットのローリングハッシュ値Rを算出する。具体的に第1ハッシュ値算出部22は、データブロックLの第1ハッシュ値をR、データブロックLの第1ハッシュ値をR、・・・データブロックL19の第1ハッシュ値をR19と算出する。第1ハッシュ値算出部22は、算出した第1ハッシュ値を、ハッシュ値保持部46に記憶させる。これによりハッシュ値保持部46は、第2パッチファイルの各データブロックの第1ハッシュ値を保持する。
以後、第1パッチファイルのデータが、第2パッチファイルのデータブロックのデータと同じであるか確認する処理を実施する。ここで比較対象となる第1パッチファイルのデータは、アドレスが連続するブロックサイズ分のデータである。第1ハッシュ値算出部22は、第1パッチファイルにおけるブロックサイズ分のデータの第1ハッシュ値を算出する。
最初に第1ハッシュ値算出部22は、第1パッチファイルの先頭バイトからブロックサイズ分のデータの第1ハッシュ値を算出する。
図5は、第1パッチファイルの先頭バイトからブロックサイズ分のデータの第1ハッシュ値Rb0を示す。第1パッチファイルの先頭バイトからブロックサイズ分のデータは、データブロックTのデータに対応する。つまり第1ハッシュ値算出部22は、データブロックTの64ビットローリングハッシュ値Rb0を算出する。
実施例の比較部26は2段階の比較処理を実施する。比較部26は、第1段階の比較処理として、第1ハッシュ値同士を比較し、第1ハッシュ値の一致を判定すると、第2段階の比較処理として、第1ハッシュ値よりも衝突確率の低い第2ハッシュ値同士を比較する。
まず比較部26は、第1段階の比較処理として、第1ハッシュ値算出部22により算出された第1ハッシュ値と、ハッシュ値保持部46に保持された第2パッチファイルの各データブロックの第1ハッシュ値とを比較する。つまり比較部26は、算出された第1ハッシュ値Rb0と、第2パッチファイルの各データブロックの第1ハッシュ値R〜R19とを比較する。このとき第1ハッシュ値Rb0が、第1ハッシュ値R〜R19のいずれかと一致すると、比較部26は、第2段階の比較処理を実施するが、ここでは、第1ハッシュ値Rb0が、第1ハッシュ値R〜R19のいずれとも一致せず、第1パッチファイルのデータブロックTと同じデータを含むデータブロックが第2パッチファイルに存在しないことが確認される。
次に、第1ハッシュ値算出部22は、前回第1ハッシュ値を求めたブロックサイズ分のデータを所定数のバイト分だけスライドして同じブロックサイズ分のデータを特定し、特定したデータの第1ハッシュ値を算出する。なおスライドするバイト数は、ブロックサイズ(64キロバイト)よりも小さいバイト数であり、1バイトであってよい。
図6は、前回のブロックサイズ分のデータを所定数のバイト分だけスライドさせたブロックサイズ分のデータの第1ハッシュ値Rb1を示す。図5のブロックサイズ分のデータと比較して、図6に示すブロックサイズ分のデータは、データブロックTのデータを所定数のバイト分だけずらしたデータである。実施例で、所定数のバイトは「1バイト」であり、第1ハッシュ値算出部22は、前回のデータを1バイトだけスライドしたデータの64ビットローリングハッシュ値Rb1を算出する。
比較部26は、第1段階の比較処理として、第1ハッシュ値算出部22により算出された第1ハッシュ値Rb1と、ハッシュ値保持部46に保持された第2パッチファイルの各データブロックの第1ハッシュ値R〜R19とを比較する。ここでは、第1ハッシュ値Rb1が、第1ハッシュ値R〜R19のいずれとも一致せず、第2パッチファイルのデータブロックが、第1パッチファイルのデータブロックTを1バイト分だけスライドした64キロバイトのデータに一致しないことが確認される。
以後、第1ハッシュ値算出部22は、第1ハッシュ値を求めたブロックサイズ分のデータを1バイト分ずつずらしたデータを特定し、当該データの第1ハッシュ値を算出する。
図7は、前回第1ハッシュ値を求めたブロックサイズ分のデータを1バイト分だけスライドさせたデータの第1ハッシュ値Rb2を示す。第1ハッシュ値算出部22が、第1パッチファイルのデータブロックTを2バイト分だけスライドしたデータの64ビットローリングハッシュ値Rb2を算出すると、比較部26が、算出された第1ハッシュ値Rb2と、第2パッチファイルの各データブロックの第1ハッシュ値R〜R19とを比較する。ここでは、第1ハッシュ値Rb2が、第1ハッシュ値R〜R19のいずれとも一致せず、第2パッチファイルのデータブロックが、第1パッチファイルのデータブロックTを2バイト分だけスライドした64キロバイトのデータに一致しないことが確認される。
図8は、前回第1ハッシュ値を求めたブロックサイズ分のデータを1バイト分だけスライドさせたデータの第1ハッシュ値Rb3を示す。第1ハッシュ値算出部22が、第1パッチファイルのデータブロックTを3バイト分だけスライドしたデータの64ビットローリングハッシュ値Rb3を算出すると、比較部26が、算出された第1ハッシュ値Rb3と、第2パッチファイルの各データブロックの第1ハッシュ値R〜R19とを比較する。
このとき比較部26が、第1ハッシュ値Rb3と、第2パッチファイルの各データブロックの第1ハッシュ値R〜R19のいずれかとの一致を判定する。ここでは第1ハッシュ値Rb3に、第1ハッシュ値Rが一致する。比較部26は、第1段階の比較処理において第1ハッシュ値同士の一致を判定すると、第1パッチファイルにおけるブロックサイズ分のデータと、第2パッチファイルのデータブロックLとが同一である可能性が高いことを確認する。
続いて比較部26は、第2段階の比較処理として、第1パッチファイルにおけるブロックサイズ分のデータの第2ハッシュ値と、第1ハッシュ値が一致した第2パッチファイルのデータブロックLの第2ハッシュ値とを比較する。第2段階の比較処理は、第1段階の比較処理で使用した第1ハッシュ値よりも、衝突確率の低い第2ハッシュ値を利用する。第2ハッシュ値は、SHA−256アルゴリズムにより256ビットのハッシュ値として算出されてよい。
ハッシュ値の衝突確率を低くするためには、ハッシュ値のビット数を多くすればよいことが知られている。そこで実施例においても、第2ハッシュ値のビット数を、第1ハッシュ値のビット数よりも多くすることで、第2段階の比較処理における衝突確率を低くできる。
第2ハッシュ値算出部24はSHA−256アルゴリズムを利用して、第1パッチファイルにおけるブロックサイズ分のデータの第2ハッシュ値Hb3を算出し、また第1ハッシュ値が一致した第2パッチファイルのデータブロックLの第2ハッシュ値Hを算出する。なお第2ハッシュ値算出部24は、事前に第2パッチファイルのデータブロックL〜L19の第2ハッシュ値H〜H19を算出して、ハッシュ値保持部46に記憶させておいてもよい。これにより第2段階の比較処理の開始前に、ハッシュ値保持部46は、第2パッチファイルの各データブロックの第2ハッシュ値を保持していてよい。
図9は、算出された2つの第2ハッシュ値を示す。比較部26は、第1パッチファイルにおけるブロックサイズ分のデータの第2ハッシュ値Hb3と、第1ハッシュ値が一致した第2パッチファイルのデータブロックLの第2ハッシュ値Hとを比較し、第2ハッシュ値同士が一致すると、第1パッチファイルにおけるブロックサイズ分のデータと、第2パッチファイルのデータブロックLに含まれるデータの一致を判定する。なお第2ハッシュ値同士が一致しなければ、比較部26は、第1パッチファイルにおけるブロックサイズ分のデータと、第2パッチファイルのデータブロックLに含まれるデータとが異なることを判定する。
差分情報生成部28は、一致した第2パッチファイルのデータブロックLのデータが含まれる第1パッチファイルのアドレス情報を取得する。このアドレス情報は、第2パッチファイルと第1パッチファイルの差分情報を構成し、差分情報記録部48に記録される。差分情報は、第2パッチファイルの各データブロックに対して生成され、第1パッチファイルに同一のデータが含まれるデータブロックに対しては、同一のデータが第1パッチファイルに含まれていることを示すフラグ情報(フラグ値1)と、第1パッチファイルのアドレス情報が差分情報として記録される。
第1ハッシュ値算出部22が、第1パッチファイルの最終バイトを含むデータの第1ハッシュ値を算出し、比較部26による比較処理が終了すると、差分情報生成部28は、第1パッチファイルに同一のデータが含まれないデータブロックに対して、同一のデータが第1パッチファイルに含まれていないことを示すフラグ情報(フラグ値0)を差分情報として記録する。
実施例において比較部26は、第1段階の比較処理を64ビットの第1ハッシュ値を用いて実施することで、256ビットのハッシュ値を用いて第1段階の比較処理を実施する場合と比較すると、第1段階における計算量を大幅に削減できる。また実施例では第1ハッシュ値算出部22が、第1パッチファイルのブロックサイズ分のデータを1バイトずつスライドして第1ハッシュ値を算出し、比較部26が、算出された第1ハッシュ値と第2パッチファイルの各データブロックの第1ハッシュ値とを比較する第1段階の比較処理を繰り返す。これにより第2パッチファイルのデータブロックに含まれるデータと同一である可能性が高い全てのデータを、第1パッチファイルから抽出でき、第2パッチファイルの配信データ量を大幅に削減することが可能となる。
情報処理装置10は、全ての処理を完了すると第2パッチファイルを各データブロック内で暗号化し、暗号化した第2パッチファイルと、差分情報記録部48に記録した差分情報とを、配信サーバ4に配信可能にアップロードする。
第1パッチファイルをダウンロード済みのユーザ端末3が、配信サーバ4に第2パッチファイルの送信を要求すると、配信サーバ4は、ユーザ端末3が第1パッチファイルをダウンロード済みであることを確認する。それから配信サーバ4は、第1パッチファイルと第2パッチファイルとの差分情報を参照して、第2パッチファイルの配信処理を実行する。この配信処理では、フラグ値0が設定されたデータブロックが配信され、一方でフラグ値1が設定されたデータブロックについては配信せず、対応付けられた第1パッチファイルのアドレス情報が配信される。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、アプリケーションの例としてゲームを示したが、それ以外のアプリケーションであってもよい。
実施例では、第1ハッシュ値算出部22が、第1パッチファイルにおいてブロックサイズ分のデータを1バイトずつスライドさせて第1ハッシュ値を算出することを説明した。図9に示すように比較部26が、第1パッチファイルにおけるブロックサイズ分のデータと第2パッチファイルのデータブロックとが一致することを判定すると、第1ハッシュ値算出部22は、前回のブロックサイズ分のデータをブロックサイズ分だけずらしたデータ、つまり前回のブロックサイズ分の終了アドレスの次のアドレスから連続するブロックサイズ分のデータの第1ハッシュ値を算出してよい。
パッチファイルでは、データ読出の効率等のために、同じデータが記録されていることが多い。そのため比較部26が、第1パッチファイルにおけるデータに一致するデータブロックLを見つけた後、比較処理を繰り返していくと、第1パッチファイルにおける別のデータがデータブロックLに一致することもある。この場合、差分情報生成部28は、その後のデータ構成が第2パッチファイルに近い第1パッチファイルのデータのアドレス情報を、データブロックLに対する差分情報として記録することが好ましい。
実施例で比較部26は、第1段階の比較処理を64ビットの第1ハッシュ値を用いて実施した。第1段階の処理効率を高めるため、比較部26は、第1段階の比較処理を分割して実施してよい。つまり比較部26は、最初に64ビットのうちの一部のビットを用いた一致判定を実施し、その後、一部一致した第1ハッシュ値の64ビットを比較する処理を実施してよい。このときハッシュ値保持部46は、第1ハッシュ値R〜R19に加えて、第1ハッシュ値R〜R19の上位24ビットを抽出して保持し、比較部26は、第1ハッシュ値算出部22により算出された第1ハッシュ値の上位24ビットと、ハッシュ値保持部46に保持された第1ハッシュ値R〜R19の上位24ビットとを最初に比較してよい。
変形例において、第2ハッシュ値算出部24は、第1ハッシュ値算出部22によって代用されてよい。変形例で第1ハッシュ値算出部22は、第1段階の比較処理で使用する第1ハッシュ値とともに、同一ビット長の値の異なる1以上の第1ハッシュ値を算出する。具体的に第1ハッシュ値算出部22は、線形合同法のパラメータを異ならせて、同一ビット長の値の異なる複数の第1ハッシュ値を算出する。比較部26は、同一ビット長の値の異なる1以上の第1ハッシュ値を、第2ハッシュ値の少なくとも一部として利用してよい。たとえば第1ハッシュ値算出部22が、第1段階の比較処理で使用する第1ハッシュ値とともに、別値をもつ3種類の第1ハッシュ値を算出することで、比較部26は、合計256ビットの第2ハッシュ値として利用してもよい。
1・・・アプリケーション配信システム、10・・・情報処理装置、20・・・処理部、22・・・第1ハッシュ値算出部、24・・・第2ハッシュ値算出部、26・・・比較部、28・・・差分情報生成部、40・・・記録部、42・・・第1パッチファイル保持部、44・・・第2パッチファイル保持部、46・・・ハッシュ値保持部、48・・・差分情報記録部。

Claims (9)

  1. 第1パッチファイルを保持する第1保持部と、
    所定のブロックサイズをもつ複数のデータブロックにより構成される第2パッチファイルの各データブロックの第1ハッシュ値を保持する第2保持部と、
    第1パッチファイルにおける前記ブロックサイズ分のデータの第1ハッシュ値を算出するハッシュ値算出部と、
    第1段階の比較処理として、前記ハッシュ値算出部により算出された第1ハッシュ値と、前記第2保持部に保持された各データブロックの第1ハッシュ値とを比較する比較部と、を備え、
    前記比較部は、第1段階の比較処理において第1ハッシュ値同士の一致を判定すると、第2段階の比較処理として、第1パッチファイルにおける前記ブロックサイズ分のデータの第2ハッシュ値と、第1ハッシュ値が一致した第2パッチファイルのデータブロックの第2ハッシュ値とを比較し、第2ハッシュ値同士の一致を判定すると、第1パッチファイルにおける前記ブロックサイズ分のデータと、第2パッチファイルのデータブロックに含まれるデータの一致を判定
    前記ハッシュ値算出部は、前記比較部が一致を判定した第1パッチファイルにおける前記ブロックサイズ分のデータの終了アドレスの次のアドレスから連続する前記ブロックサイズ分のデータの第1ハッシュ値を算出し、
    前記比較部は、第1段階の比較処理として、前記比較部が一致を判定した第1パッチファイルにおける前記ブロックサイズ分のデータの終了アドレスの次のアドレスから連続する前記ブロックサイズ分のデータの第1ハッシュ値と、前記第2保持部に保持された第1ハッシュ値とを比較する、
    ことを特徴とする情報処理装置。
  2. 第2ハッシュ値のビット数は、第1ハッシュ値のビット数よりも多い、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2保持部は、第2パッチファイルの各データブロックの第2ハッシュ値を保持する、
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記ハッシュ値算出部は、第1段階の比較処理で使用する第1ハッシュ値とともに、同一ビット長の値の異なる1以上の第1ハッシュ値を算出し、
    前記比較部は、同一ビット長の値の異なる1以上の第1ハッシュ値を、第2ハッシュ値の少なくとも一部として利用する、
    ことを請求項1から3のいずれかに記載の情報処理装置。
  5. 前記ハッシュ値算出部は、第1パッチファイルにおける前記ブロックサイズ分のデータを所定数のバイト分だけずらしたデータの第1ハッシュ値を算出する、
    ことを特徴とする請求項1から4のいずれかに記載の情報処理装置。
  6. 前記ハッシュ値算出部は、第1パッチファイルにおける前記ブロックサイズ分のデータを1バイト分だけずらしたデータの第1ハッシュ値を算出する、
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 第1パッチファイルを保持する第1保持部と、
    所定のブロックサイズをもつ複数のデータブロックにより構成される第2パッチファイルの各データブロックの第1ハッシュ値を保持する第2保持部と、
    第1パッチファイルにおける前記ブロックサイズ分のデータの第1ハッシュ値を算出するハッシュ値算出部と、
    第1段階の比較処理として、前記ハッシュ値算出部により算出された第1ハッシュ値と、前記第2保持部に保持された各データブロックの第1ハッシュ値とを比較する比較部と、を備え、
    前記比較部は、第1段階の比較処理において第1ハッシュ値同士の一致を判定すると、第2段階の比較処理として、第1パッチファイルにおける前記ブロックサイズ分のデータの第2ハッシュ値と、第1ハッシュ値が一致した第2パッチファイルのデータブロックの第2ハッシュ値とを比較し、第2ハッシュ値同士の一致を判定すると、第1パッチファイルにおける前記ブロックサイズ分のデータと、第2パッチファイルのデータブロックに含まれるデータの一致を判定するものであって、
    前記ハッシュ値算出部は、第1段階の比較処理で使用した第1ハッシュ値と同一ビット長であって値の異なる複数のハッシュ値を算出して、算出した複数のハッシュ値を組み合わせることで、前記比較部による第2段階の比較処理で使用する第1パッチファイルにおける前記ブロックサイズ分のデータの第2ハッシュ値を算出する、
    ことを特徴とする情報処理装置。
  8. 第1パッチファイルを保持する第1保持部と、所定のブロックサイズをもつ複数のデータブロックにより構成される第2パッチファイルの各データブロックの第1ハッシュ値を保持する第2保持部に接続するコンピュータに、
    第1パッチファイルにおける前記ブロックサイズ分のデータの第1ハッシュ値を算出する機能と、
    第1段階の比較処理として、算出された第1ハッシュ値と、前記第2保持部に保持された各データブロックの第1ハッシュ値とを比較する機能と、
    第1段階の比較処理において第1ハッシュ値同士の一致を判定すると、第2段階の比較処理として、第1パッチファイルにおける前記ブロックサイズ分のデータの第2ハッシュ値と、第1ハッシュ値が一致した第2パッチファイルのデータブロックの第2ハッシュ値とを比較する機能と、
    第2段階の比較処理において第2ハッシュ値同士の一致を判定すると、第1パッチファイルにおける前記ブロックサイズ分のデータと、第2パッチファイルのデータブロックに含まれるデータの一致を判定する機能と、
    第2段階の比較処理においてデータ同士の一致を判定すると、一致を判定した第1パッチファイルにおける前記ブロックサイズ分のデータの終了アドレスの次のアドレスから連続する前記ブロックサイズ分のデータの第1ハッシュ値を算出する機能と、
    第1段階の比較処理として、一致を判定した第1パッチファイルにおける前記ブロックサイズ分のデータの終了アドレスの次のアドレスから連続する前記ブロックサイズ分のデータの第1ハッシュ値と、前記第2保持部に保持された第1ハッシュ値とを比較する機能と、
    を実現させるためのプログラム。
  9. 第1パッチファイルを保持する第1保持部と、所定のブロックサイズをもつ複数のデータブロックにより構成される第2パッチファイルの各データブロックのハッシュ値を保持する第2保持部に接続するコンピュータに、
    第1パッチファイルにおける前記ブロックサイズ分のデータの第1ハッシュ値を算出する機能と、
    第1段階の比較処理として、算出された第1ハッシュ値と、前記第2保持部に保持された各データブロックの第1ハッシュ値とを比較する機能と、
    第1段階の比較処理において第1ハッシュ値同士の一致を判定すると、第1段階の比較処理で使用した第1ハッシュ値と同一ビット長であって値の異なる複数のハッシュ値を算出して、算出した複数のハッシュ値を組み合わせることで、第2段階の比較処理で使用する第1パッチファイルにおける前記ブロックサイズ分のデータの第2ハッシュ値を算出する機能と、
    第2段階の比較処理として、第1パッチファイルにおける前記ブロックサイズ分のデータの第2ハッシュ値と、第1ハッシュ値が一致した第2パッチファイルのデータブロックの第2ハッシュ値とを比較する機能と、
    第2段階の比較処理において第2ハッシュ値同士の一致を判定すると、第1パッチファイルにおける前記ブロックサイズ分のデータと、第2パッチファイルのデータブロックに含まれるデータの一致を判定する機能と、
    を実現させるためのプログラム。
JP2019141306A 2019-07-31 2019-07-31 情報処理装置 Active JP6979987B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019141306A JP6979987B2 (ja) 2019-07-31 2019-07-31 情報処理装置
US16/924,481 US11327741B2 (en) 2019-07-31 2020-07-09 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019141306A JP6979987B2 (ja) 2019-07-31 2019-07-31 情報処理装置

Publications (2)

Publication Number Publication Date
JP2021026298A JP2021026298A (ja) 2021-02-22
JP6979987B2 true JP6979987B2 (ja) 2021-12-15

Family

ID=74260143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019141306A Active JP6979987B2 (ja) 2019-07-31 2019-07-31 情報処理装置

Country Status (2)

Country Link
US (1) US11327741B2 (ja)
JP (1) JP6979987B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7323807B2 (ja) * 2020-01-20 2023-08-09 富士通株式会社 検証方法、プログラム、および情報処理装置
CN118831315B (zh) * 2024-09-23 2024-12-17 贵阳一轶科技有限公司 一种游戏数据同步方法、游戏客户端及游戏服务器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
JP5237661B2 (ja) * 2008-03-24 2013-07-17 日本放送協会 ファイル同期装置、ファイル同期方法及びファイル同期プログラム
WO2012081099A1 (ja) * 2010-12-15 2012-06-21 富士通株式会社 データ移行プログラム、計算機およびデータ移行方法
WO2013008264A1 (en) * 2011-07-08 2013-01-17 Hitachi, Ltd. Storage system and its data processing method
JP2015207145A (ja) * 2014-04-21 2015-11-19 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および差分情報生成装置
US20170038978A1 (en) * 2015-08-05 2017-02-09 HGST Netherlands B.V. Delta Compression Engine for Similarity Based Data Deduplication

Also Published As

Publication number Publication date
US11327741B2 (en) 2022-05-10
JP2021026298A (ja) 2021-02-22
US20210034358A1 (en) 2021-02-04

Similar Documents

Publication Publication Date Title
JP4796315B2 (ja) 遠隔差分圧縮用の効率的アルゴリズムとプロトコル
CN105868305A (zh) 一种支持模糊匹配的云存储数据去重复方法
CN103713928A (zh) 增量文件生成方法、应用程序安装文件更新方法及装置
CN111897846B (zh) 缓存数据校验方法、装置、设备及存储介质
US10339124B2 (en) Data fingerprint strengthening
TW201423426A (zh) 資料分塊上傳與儲存系統及方法
KR20180138217A (ko) 적용된 암호 ip 관리 방법 및 시스템
JP6340668B2 (ja) ストリーム認識およびフィルタリング
CN111522574B (zh) 差分包生成方法及相关设备
CN114564227B (zh) 应用程序更新方法、装置、电子设备和存储介质
JP6979987B2 (ja) 情報処理装置
CN110599169A (zh) 数据处理方法、装置、终端及介质
CN115718614B (zh) 一种分块差分升级包生成和分块差分升级方法及装置
TW200525391A (en) Software and data file updating process
CN104601681A (zh) 一种文件分片的处理方法和装置
CN111143347A (zh) 一种对象存储数据一致性测试方法、系统、终端及存储介质
CN103369002A (zh) 一种资源下载的方法及系统
CN112748877A (zh) 一种文件的整合上传方法及装置、文件的下载方法及装置
CN105320577B (zh) 一种数据备份和恢复方法、系统及装置
CN109977675B (zh) 一种开源软件识别方法及装置
CN111586170B (zh) 资源下载方法、装置、设备及计算机可读存储介质
WO2019169721A1 (zh) 应用多渠道打包方法、装置、计算机设备及存储介质
JP2005100007A (ja) データファイル保存システムおよびアロケーション方法
US20240104066A1 (en) Efficient file-delivery techniques
CN111589159B (zh) 文件校验方法、配置方法、装置、客户端和服务端

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210903

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211116

R150 Certificate of patent or registration of utility model

Ref document number: 6979987

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150