JP2010514035A - データセットの変更を最適化するシステム及び方法 - Google Patents

データセットの変更を最適化するシステム及び方法 Download PDF

Info

Publication number
JP2010514035A
JP2010514035A JP2009542017A JP2009542017A JP2010514035A JP 2010514035 A JP2010514035 A JP 2010514035A JP 2009542017 A JP2009542017 A JP 2009542017A JP 2009542017 A JP2009542017 A JP 2009542017A JP 2010514035 A JP2010514035 A JP 2010514035A
Authority
JP
Japan
Prior art keywords
data set
data
operator
computer system
elements
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.)
Granted
Application number
JP2009542017A
Other languages
English (en)
Other versions
JP5230645B2 (ja
JP2010514035A5 (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.)
Nasdaq Technology AB
Original Assignee
OMX Technology AB
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39253872&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2010514035(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by OMX Technology AB filed Critical OMX Technology AB
Publication of JP2010514035A publication Critical patent/JP2010514035A/ja
Publication of JP2010514035A5 publication Critical patent/JP2010514035A5/ja
Application granted granted Critical
Publication of JP5230645B2 publication Critical patent/JP5230645B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】
【解決手段】
システム及び方法は、リモート端末に向けて送信すべき更新データセットを生成する。更新データセットは、リモート端末が古いデータセットをより新しいデータセットに変換できるように、2つのデータセット間の差分を記述する演算子を含む。システムは、データセット内のデータ要素を比較するコンパレータと、メモリに格納された変更パラメータに基づいて演算子を選択するセレクタとを含む。
【選択図】 図1

Description

本発明は、コンピュータ環境におけるデータ配布に関し、特に、コンピュータネットワーク内の変更の配布用データセットにおける変更の抽出に関する。
今日、ごく一般的に、コンピュータネットワークを介したデータの送信が行なわれている。技術の進歩により送信データ量が急激に増加している。この技術の進歩は、従来に比べてより速い速度でより多くのデータの送信及び処理を可能にしている。また更に、新たなアプリケーションは、より複雑になり、より多くのデータを必要とする。データ配布技術が最も不可欠な部分の一つであるコンピュータシステムの例として、電子商取引システムがある。
電子商取引における証券、デリバティブ、コモデティやその他の金融商品においては、ユーザに向けて配布する必要のあるデータが大量となっている。これは、取引の決定、統計的計算やその他アセスメントを行なうために、ユーザがデータを必要とするためである。高いパフォーマンスのコンピュータシステムにおいて、この情報全てを抽出及び送信する処理は、プロセッサへの要求が極めて高くなる。CPU時間の量は、回避されうる実行ステップにおいて、無駄にすべきでないわずかなリソースである。
更に、中央集権化商取引等に接続するユーザは、一般に、できる限り速く情報の取得を所望する。このようなケースにおいては、例えば、ハードウェアの更新により中央システムのパフォーマンスを上げるだけでは十分ではない場合がある。
システム内において、ボトルネック又は他のレイテンシの問題を取り除くために、更なる技術が用いられる必要がある。
ここで、プロセッサの処理をより効率化するための更なる技術の一つとして、例えば、ユーザ端末側でのデータセットの更新時に種々の手法が存在する。
一般的に使用され且つ明らかな解決策としては、古いデータセットを置換する完全な新しいデータセットを常に送信する。この場合、データセットにおけるデータの一部のみが変更される時には非効率である。そのため、より効率的な手法では、変更されるデータセットの部分のみを送信する場合がある。更なる効率化では、差分変更(delta change)を送信する。
他の周知の技術では、2つのデータセット間の差分を記述する演算子(operator)を送信する。第1のデータセットにおける演算子を適用することにより、当該第1のデータセットを第2のデータセットに変換する。
データセットに作用する演算子の良好なセットの選択とともに最適化が行なえる。現在、データセット差分を抽出するのに利用できる方法は質が悪い。
従って、ステップ数をより少なくする等、効率的な方法で演算子の抽出や選択を行なう技術や、プロセッサにかかる負荷を減らすため、コンピュータシステム内の帯域幅等のデータ配布を減らす技術の構築が必要とされている。
そこで、本発明は、リモート端末に向けて送信すべき更新データセットを生成するための解決策を提供することを目的とする。
本発明は、データセットから効率的にデータを抽出する解決策を提供することを他の目的とする。
本発明は、データセット間の差分に基づいて、演算子の抽出及び選択の少なくとも1つを効率的に行なう解決策を提供することを他の目的とする。
本発明は、リモート端末に向けて送信すべきデータ構成を生成する解決策を提供することを他の目的とする。
本発明は、プロセッサ時間をより少なくするのに使用する解決策を提供することを他の目的とする。
本発明の第1の側面によれば、上記及び他の目的をコンピュータシステムにより解決する。コンピュータシステムは、リモート端末に向けて送信すべき更新データセットを生成する。更新データセットは、ソート済みのデータ要素を含む第1のデータセットとソート済みのデータ要素を含む第2のデータセットとの差分を記述する演算子を含む。コンピュータシステムは、
第1のデータセット及び第2のデータセットを含むメモリと、
メモリに接続可能なコンパレータであって、第2のデータセット内のデータ要素と第1のデータセット内のデータ要素とを順次比較し、先の比較結果が、第1のデータセット内のどのデータ要素と第2のデータセット内のどのデータ要素が次の比較において比較されるかを制御し、各比較の後にメモリ内の変更パラメータを更新し、第2のデータセット内のデータ要素が第1のデータセット内のデータ要素に一致することを検出するとセレクタを起動するコンパレータと、
メモリ内に格納された変更パラメータに基づいて演算子を決定し、メモリ内に決定した演算子を格納するメモリ及びコンパレータに接続可能なセレクタと
を含み、
第2のデータセット及び第1のデータセットの差分を記述する演算子を含むリモート端末に送信すべき更新データセットを生成する。
コンピュータシステムは、商取引システム等のコンピュータシステムが、より少ないCPU時間を用いて更新データセットをより効率的に生成することを可能にするという利点を有する。例えば、コンピュータシステムは、各データセットを介した1度のみの実行により、好ましい第1のデータセット及び第2のデータセットの比較を可能にする。
更に、コンピュータシステムは、更新データセットを含む更新メッセージを生成及び送信するセレクタに関連するコミュニケータを含む。メッセージは、リモート端末に向けて送信すべきデータセットを含むリスト、配列、ビットボード、スタック、ヒープ、木又はコレクション、その他等のデータ構成を含む。好ましくは、メッセージはFIX基準を用いて送信されるが、Omnet API、XTP、SSL又は他の任意の基準等の当業者がメッセージ送信に使用する周知の任意の他のプロトコル、又は独自仕様のプロトコルであってもよい。
好ましくは、第1のデータセット及び第2のデータセットは、時間とともに変化する動的データ要素を含む。例えば、第1のデータセットは、時刻T1での商取引システムにおけるオーダー・ブック(order book)であり、第2のデータセットは、時刻T2でのオーダー・ブックであってもよい。販売金融商品に関する購入又は売り出しといった新たなオーダーが入力される可能性があるため、オーダー・ブック内のデータは、時刻T1とT2との間で変更される可能性がある。情報配布システムは、ある所定時間間隔か又はオーダー・ブック内のアクティブ時かのいずれかにおいて、リモート端末に向けて情報を配布してもよい。例えば、オーダー・ブックが新たなオーダを全く受信しなければ、リモート端末に向けて新たな更新を送信することは意味がない。しかし、新たなオーダーがオーダー・ブックに入力された場合、新たな情報は、リモート端末に伝播される必要がある。更に、アクティブが発生した時点において、更新メッセージを送信する必要がある。他の例では、オーダー・ブック内で生じる変更が状態遷移している間、例えば、オーダー・ブックが開く又閉じられたときである。
従って、第2のデータセットは、第1のデータセットよりも新しいバージョンである。このように中央システムは、生じた変更を比較でき、リモート端末の有するデータセットを把握できるので、格納及び送信するための演算子を更新データセット内から抽出できる。また更に、リモート端末側のユーザがデータセットの異なる部分に関する情報の取得を所望する場合があるので、第1のデータセット及び第2のデータセットの間の変更の確実な部分を特定のリモート端末に向けて送信することを可能にする。
好ましくは、演算子は、追加演算子(Add operator)、削除演算子(Delete operator)、置換演算子(Replace operator)を含むグループから決められる。変更パラメータに基づいてこれら演算子を決定することにより、更新データセットの生成が可能になる。演算子は、本明細書で後述する組み合わせがなされてもよい。
変更パラメータは、好ましくは、第1のデータセットに関連する第1のカウンタと、第2のデータセットに関連する第2のカウンタとを含む。このようにして選択処理は、より正確な方法でモニタ及び管理されうる。更に、セレクタは、第1のデータセットに関連する第1のカウンタと、第2のデータセットに関連する第2のカウンタとの関係に基づいて演算子を決定する。その関係は、>、<、=、≧、≦又は≠を含む関係群の中から選択された関係であるため、これにより、選択処理が高速化する。カウンタ間の関係に基づいて、追加(Add)、削除(Delete)、置換(Replace)等の演算子の少なくとも1つに決められる。
更に、変更パラメータは、第1のデータセット及び第2のデータセット内におけるコンパレータの論理位置の追跡を維持するために、第1のデータセットに関連する第1の位置パラメータと、第2のデータセットに関連する第2の位置パラメータとを含む。このように第1のリスト及び第2のリストを順次比較した結果は、より正確な方法でモニタ及び管理されうる。
演算子は、差分変更を含む。従って、データ要素の一部のみが変更したのであれば、変更したデータ要素の当該部分を記述する演算子であってもよい。しかし、演算子は、例えば、削除、置換又は追加されるべきデータ要素全てを記述できてもよい。
各データ要素は、通常、少なくともキーを含む。しかし、データ要素は、データ部分を含んでもよい。一般に、データ部分は、空であってもよい。しかし、商取引システムにおいて、一般的なキーは、オーダー・ブック内における値段である。データ部分は、例えば、その値段の合計額であってもよい。しかし、キーが値段及び時間(time)を含むのであれば、全てのキーを送信することは必ずしも必要ではない。要素のソートは、値段及び時間に基づいて行なわれる場合もあるが、リモート端末に向けて送信される値段のみに基づいて行なわれてもよい。
本発明の第2の側面においては、電子商取引システムにより上記及び他の目的を解決する。電子商取引システムは、上述したコンピュータシステムを含む。
コンピュータシステムは、電子商取引システム内における内蔵モジュールであってもよい。また、情報抽出システムとして別々に販売されうるスタンドアローンモジュールであってよい。
本発明の第3の側面においては、方法により上記及び他の目的を解決する実現する。方法は、リモート端末に向けて送信すべき更新データセットを生成する。更新データセットは、ソート済みのデータ要素を含む第1のデータセットとソート済みのデータ要素を含む第2のデータセットとの差分を記述する演算子を含む。方法は、
第1のデータセット内のデータ要素と第2のデータセット内のデータ要素とを順次比較するステップであって、先の比較結果が、第1のデータセット内のどのデータ要素と第2のデータセット内のどのデータ要素が次の比較において比較されるかを制御するステップと、
各比較の後にメモリ内の変更パラメータを更新するステップと、
第2のデータセット内のデータ要素が第1のデータセット内のデータ要素に一致することを検出すると、メモリに格納された変更パラメータに基づいて演算子を決定する選択処理を開始するステップと、
決定された演算子をメモリに格納するステップと
を含み、
第1のデータセット及び第2のデータセットの差分を記述する演算子を含むリモート端末に送信すべき更新データセットを生成する。
方法は、商取引システム等のコンピュータシステムが、より少ないCPU時間を用いて更新データセットをより効率的に生成することを可能にするという利点を有する。本発明は、例えば、各データセットを介した1度のみの実行により、好ましい第1のデータセット及び第2のデータセットの比較を可能にする。
更に、方法は、決定された演算子と比較済みのデータ要素とを関連付けるステップを含む。このようにシステムは、演算子が使用されるべきデータ要素での追跡の維持を可能にする。
また、方法は、追加演算子、削除演算子、置換演算子を含むグループから少なくとも1つの演算子を決定するステップを含む。変更パラメータに基づいてこれら演算子を決定することにより、更新データセットの生成が可能になる。演算子は、本明細書で後述する組み合わせがなされてもよい。
上述した変更パラメータは、第1のデータセットに関連する第1のカウンタと、第2のデータセットに関連する第2のカウンタとを含んでもよい。従って、方法は、第1のデータセットに関連する第1のカウンタと、第2のデータセットに関連する第2のカウンタとの関係に基づいて演算子を決定するステップを更に含んでもよい。
好ましくは、各データ要素は、キー及びデータ部分を含む。方法は、第1のデータセットの要素のキー及びデータ部分の少なくとも1つと、第2のデータセットの要素のキー及びデータ部分の少なくとも1つとを比較するステップを更に含む。
上述した第1のデータセット及び第2のデータセットは、時間とともに変化する動的情報を含んでもよい。
本発明の第4の側面においては、コンピュータプログラム製品により上記及び他の目的を解決する。コンピュータプログラム製品は、上述した側面及び実施形態の少なくとも1つに係わり、記憶媒体に格納される。
本発明のこれら及び他の側面は、後述する実施形態を参照して明白及び明確に示されるであろう。
本発明で用いられるコンピュータネットワークの概要の一例を示す図である。 メモリ、第1のデータセット、第2のデータセット、変更パラメータ、コンパレータ、セレクタ、更新データセット、インターフェースを含む電子装置を示す図である。 データ要素を含むデータセットとキー及びデータを含むデータ要素とを示す図である。 テキストに記載されるデータセットを反復するアルゴリズムを示す図である。 データセットA及びデータセットBを示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 選択方法により選択された第1の演算子を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 データセットAの要素とデータセットBの要素との比較の一例を示す図である。 選択方法により選択された更なる演算子を示す図である。 選択方法により選択された演算子を含む更新データセットの一例を示す図である。 演算子が使用されるより以前のデータセットA及びデータセットBを示す図である。 更新データセットにおける列の一例を示す図である。 第1の演算子を適用した後のデータセットAの変更を示す図である。 更新データセットにおける列の一例を示す図である。 第2の演算子を適用した後のデータセットAの変更を示す図である。 更新データセットにおける列の一例を示す図である。 第3の演算子を適用した後のデータセットAの変更を示す図である。 更新データセットにおける列の一例を示す図である。 第4の演算子を適用した後のデータセットAの変更を示す図である。 演算子がデータセットAに適用された後の結果を示す図である。 選択方法Bを示す図である。
図1は、リモート端末1と、中央コンピュータ2と、ゲートウェイ又はルータ3とを含むコンピュータネットワークを示す。各装置間は、種々の太さを有するライン4により示される接続がなされている。ラインの太さは、帯域幅(データレート)を示す。太いラインは高いデータレートを有し、細いラインは低いデータレートを有している。図1に示す3つのフロントエンドコンピュータは、画面上に文字を有しており、この文字は、ユーザA、ユーザB、ユーザCに属するリモート端末であることを示している。更新データセット6は、ライン4と、ルータや外部等のネットワーク装置とを含むネットワークを介して、中央コンピュータ2からリモート端末1に向けて送信される。更新データセット6は、本発明に係わるコンピュータシステム5において生成される。
図2は、本発明に係わるコンピュータシステム5を示す。コンピュータシステム5は、メモリ10と、コンパレータ14と、セレクタ15と、更新データセット7を送信するためのインターフェース16とを含む。メモリ10は、第1のデータセット11及び第2のデータセット12を含む。更に、メモリは、変更パラメータ13と、更新データセット7と、演算子18とを格納するための領域を含む。
図3は、データセット11と、データセットにおけるデータ要素17の拡大とを示す。図中データ要素17は、キーとデータ部分との両方を含んでいるが、本発明の他の実施形態においては、データ要素17は、キー部分を少なくとも含んでいればよい。
以下、図を参照して本発明の詳細について説明する。演算子がどのようにして決定/選択されるかの詳細について説明する。
以下、2つのデータセット間の差分を効率的に記述する演算子を選択するための方法の一例を示す。
データセットは、1又は複数の要素から構成される。各要素は、キーと、可能であればデータ部分とを有する。キーは、データセット内の要素各々に論理位置を与えるソートアルゴリズムと対応付けられる。
この方法は、1)及び2)に基づく:
1)演算子の効率的なセットの策定
2)2つのデータセットの差分を評価し、演算子のセットを用いて当該差分を記述する効率的なアルゴリズムの策定。これを実現するため、アルゴリズムは、2つのデータセットのワン−パス・トラバース(one-pass traverse)を使用する。
この方法は、下記に示す2つのデータセット間における変更を記述する演算子のセットを使用する:
Figure 2010514035
[方法紹介]
2つのデータセット内で一致する要素(キー及びデータ部分の両方)は変わらない。アルゴリズムは、変わらない要素をバリア(barrier)とみなす。バリアは、演算子の最適化が実行されうる時点を識別するために上記方法により使用される。当該方法は、監視に基づいており、バリアが検出される前に使用された演算子に関して最適化が可能になる。
図5を参照してデータセットA及びデータセットBを想定してみる。まず、データセットAでは、複数の演算子がデータセットBを獲得するのに適用されうる。以下に示すアルゴリズム及び方法は、データセットAをデータセットBに変換するこれら演算子を抽出する。
データセットのトラバースの間、好ましくは、以下に示すカウンタ、#Del及び#Addが使用される。これらには、最初に、0又は同じ目的を果たす任意の値が設定される。
その後、データセットA及びデータセットBは、キーのソート順番に従って、好ましくは開始からトラバースされる。
データセットA内における実際の論理位置は、以降、Aposと名付けられる。Aposは、データセットAに関する位置パラメータを含む。データセットB内における実際の論理位置は、以降、Bposと名付けられる。Bposは、データセットBに関する位置パラメータを含む。Apos及びBposは、最初に、データセットA及びデータセットB内における最初の論理位置に設定される。
初期化:
#Add及び#Delに対して0を設定する。
Apos及びBposに対してデータセットA及びデータセットB内における最初の論理位置を設定する。
AposStartに対してAposを設定し、BposStartに対してBposを設定する。
アルゴリズム:データセットA及びデータセットBを反復し、#Add及び#Delをカウントする:
1.論理位置Apos及びBposにおいて、セットAの要素とセットBの要素とを比較する。
a.A要素及びB要素がなければ、以下に示す方法Bを用いて演算子を選択し、ステップ2を継続する(完了)。
b.キーは一致するがデータ部分が異なれば、#Add、#Del、Apos、Bposを1増加する。ステップ1を継続し、次の要素を比較する。
c.A要素キーがB要素キーよりも(ソート順に照らして)悪い、又はA要素がなければ、#Add及びBposを1増加する。ステップ1を継続し、次の要素を比較する。
d.A要素キーがB要素キーよりも(ソート順に照らして)良い、又はB要素がなければ、#Del及びAposを1増加する。ステップ1を継続し、次の要素を比較する。
e.キー及びデータ部分の両方が一致すれば、バリアが発見される。(#Add≠0又は#Del≠0)であれば、以下に示す方法Bを用いて演算子を選択する。
継続:
#Add及び#Delに対して0を設定する。
#Apos及びBposを1増加する。
AposStartにApos、BposStartにBposを設定する。
ステップ1を継続し、次の要素を比較する。
2.完了
方法B:演算子の選択:#Delと#Addとを比較。
a.#Delが#Addを越えていれば、以下の演算子を選択する。
論理位置AposStartにおいて、(N=#Del)演算子を削除する。
続いて以下を行なう:
論理位置AposStartから開始し、セットB要素から#Add数の演算子を追加する。
b.#Delと#Addとが等しければ、以下の演算子を選択する。
論理位置AposStartから開始し、セットB要素から#Add数の演算子を置換する。
c.#Delが#Addよりも小さければ、以下の演算子を選択する。
AposStart+#Delから開始し、セットB要素から(#Add−#Del)数の演算子を追加する。
[例]
以下、図を参照して種々の方法ステップの一例について説明する。
図5に示すテーブルに従って、データセットA及びデータセットBを想定する。要素は、好ましくは、キーに基づいてソートされ、その結果、論理位置1において最も高い値が得られる。データセットAは古いデータセットを示し、データセットBは新しいデータセットを示す。このタスクは、データセットAをデータセットBに変換することである。
[方法の実行]
初期化:
#Add及び#Delに対して0を設定する。
Apos及びBposに対してデータセットA及びデータセットB内における最初の論理位置を設定する。
Apos及びBposに1を設定する。
AposStartにAposを設定し、BposStartにBposを設定する。
AposStart及びBposStartに1を設定する。
方法及びシステムは、カウンタの初期化を開始する。カウンタは、好ましくは、データセットの反復に使用されるであろう。
その後、反復フェーズが開始される。反復フェーズでは、変更パラメータ#Add及び#Delが反復及び増加される。
[ステップ1]
セットAの要素とセットBの要素とを比較する。Apos及びBposには、両方1が設定されるので、これは、リストにおける1番目の要素が比較されることを意味する。しかし、データセットにおける要素が他の方法でソートされていれば、この方法では、まず、他の要素の比較を開始する場合もある。図6にこの比較を示す。この場合、99は101よりも悪い(アルゴリズムステップc参照)(データセットAの要素(Apos=1)は、データセットBの要素(Bpos=1)よりも悪い)。そのため、#Addを1増加し、#Addに1を設定する。Bposを1増加し、Bposに2を設定する。アルゴリスムにおけるステップ1を継続し、次の要素を比較する。
[ステップ2]
セットAの要素とセットBの要素とを比較する。ここでは、Bposカウンタが1増加しているため、データセットAの(Apos=1)における要素と、データセットBの(Bpos=2)における要素とが比較される。この比較を図7に示す。99は100よりも悪い(アルゴリズムステップc参照)。そのため、#Addを1増加し、#Addに2を設定する。Bposを1増加し、Bposに3を設定する。アルゴリスムにおけるステップ1を継続し、次の要素を比較する。
[ステップ3]
上記同様に、セットAの要素とセットBの要素とを比較する。この比較を図8に示す。99は97よりも良い(アルゴリズムステップd参照)。そのため、#Delを1増加し、#Delに1を設定する。Aposを1増加し、Aposに2を設定する。アルゴリスムにおけるステップ1を継続し、次の要素を比較する。
[ステップ4]
セットAの要素とセットBの要素とを比較する。この比較を図9に示す。98は97よりも良い(アルゴリズムステップd参照)。そのため、#Delを1増加し、#Delに2を設定する。Aposを1増加し、Aposに3を設定する。アルゴリスムにおけるステップ1を継続し、次の要素を比較する。
[ステップ5]
セットAの要素とセットBの要素とを比較する。この比較を図10に示す。キー及びデータ部分の両方が一致するため(アルゴリズムステップe参照)、バリアに到達している。セレクタを起動し、方法Bを用いて演算子を選択する。
[ステップ6]
#Delと#Addとを比較する。方法Bによれば、ステップbが、この状況:(b)に適用される。#Del(2)=#Add(2)であるので、下記に示す演算子を選択する:
置換(Replace)2(#Add)演算子、セットBからデータを選択し、論理位置AposStart=1から開始する。選択された演算子を図11に示す。
[ステップ7]
データセットA及びデータセットBにおける要素の反復及び比較は継続する。
#Add及び#Delに対して0を設定する。
バリアを通り抜けるため、カウンタが増加される。Apos及びBposが1増加され、Apos及びBposに4が設定される。
AposStartにApos、BposStartにBposを設定し、AposStart及びBposStartに4を設定する。
アルゴリズムにおけるステップ1を継続し、次の要素を比較する。
[ステップ8]
セットAの要素とセットBの要素とを比較する。この比較を図12に示す。96は93よりも良い(アルゴリズムステップd参照)。そのため、#Delに1増加し、#Delに1を設定する。Aposを1増加し、Aposに5を設定する。アルゴリズムにおけるステップ1を継続し、次の要素を比較する。
[ステップ9]
セットAの要素とセットBの要素とを比較する。この比較を図13に示す。95は93よりも良い(アルゴリズムステップd参照)。そのため、#Delに1増加し、#Delに2を設定する。Aposを1増加し、Aposに6を設定する。アルゴリズムにおけるステップ1を継続し、次の要素を比較する。
[ステップ10]
セットAの要素とセットBの要素とを比較する。この比較を図14に示す。94は93よりも良い(アルゴリズムステップd参照)。そのため、#Delに1増加し、#Delに3を設定する。Aposを1増加し、Aposに7を設定する。アルゴリズムにおけるステップ1を継続し、次の要素を比較する。
[ステップ11]
セットAの要素とセットBの要素とを比較する。この比較を図15に示す。キーは一致するが、データ部分が異なる(10は、15と等しくない)(アルゴリズムステップb参照)。
#Addを1増加し、#Addに1を設定する。
#Delを1増加し、#Delに4を設定する。
Aposを1増加し、Aposに8を設定する。
Bposを1増加し、Bposに5を設定する。
アルゴリズムにおけるステップ1を継続し、次の要素を比較する。
[ステップ12]
セットAの要素とセットBの要素とを比較する。この比較を図16に示す。B要素がない(空である)(アルゴリズムステップd参照)。
#Delを1増加し、#Delに5を設定する。Aposを1増加し、Aposに9を設定する。アルゴリズムにおけるステップ1を継続し、次の要素を比較する。
[ステップ13]
セットAの要素とセットBの要素とを比較する。この比較を図17に示す。Apos(9)におけるデータセットAの要素と、Bpos(5)におけるデータセットBの要素とが空となる。そのため、アルゴリズムのステップaが適用される。アルゴリズムにおけるステップaは、セレクタを起動する。ステップ14に示されている方法Bである。
上述した選択の後、ステップ2を継続する(完了)。
[ステップ14]
選択方法Bを使用することにより、カウンタ#Delとカウンタ#Addとを比較する。
選択方法Bにおける選択ステップ(a)によれば、#Del(5)が#Add(1)を越えているため、演算子は、好ましくは、下記に示す通りに選択される:
論理位置AposStart(4)において、5(#Del)演算子を削除する。
続いて以下を行なう:
論理位置AposStart(4)から開始し、セットB要素から1(#Add)演算子を追加する。
この演算子の選択を図18に示す。
[ステップ15]
アルゴリズムにおける最後のステップ2(完了)が上述したステップ14に到達する。
アルゴリズム及び方法Bの反復の完了後、データセットAからデータセットBへの変更を記述する複数の完全な演算子が、好ましくは、対応する論理位置、キー、データ部分とともにメモリに格納される。図19に示すように、演算子、論理位置、キー、データ部分を含む更新データセットが生成される。
他の実施形態においては、論理位置は、キーにより記述されうる。この場合、端末が受信する更新データセットが、好ましくは、データ要素のソートが行なえるように、相互に関連する論理位置の状態を示す情報を含む。これにより、論理位置が、1、2、3・・・等である必要はない。また、ソートを容易にするため、位置が相互に関連を有する限り、A、B、C・・・やその他により記述されうる。
データセットAを承知した上で、更新データセットは、図19に示すような演算子を含み、最初から最後まで演算子を一つずつ順番に用いることにより、データセットBが生成されうる。
これがどのようにしてなされるかの段階的な記載が添付の図20〜図29に示される。
図20は、更新データセットがデータセットAに適用されるよりも以前のデータセットA及びデータセットBの状況を示す。そのため、以下のステップは、図19における更新データセットを使用することにより、データセットAからデータセットBを生成する。
図21に示すように、図19に示す更新データセットの1番目の列をデータセットAに適用することにより、図22に示すように、修正されたデータセットAが得られる。
図23に示すように、図19に示す更新データセットの2番目の列を、データセットAに適用することにより、図24に示すように、修正されたデータセットAが得られる。
図25に示すように、図19に示す更新データセットの3番目の列を、データセットAに適用することにより、図26に示すように、修正されたデータセットAが得られる。
図27に示すように、図19に示す更新データセットの4番目の列を、データセットAに適用することにより、図28に示すように、修正されたデータセットAが得られる。
ここで、演算子は、図29に示すように、データセットAをデータセットBに変換する。
上記記載における用語”含む(comprising)”は、他の要素又はステップを除外しない。”単数(a”又は”an”)は、複数を除外しない。
更に、用語”含む(include)”及び”含む(contain)”は、他の要素又はステップを除外しない。

Claims (18)

  1. リモート端末に向けて送信すべき更新データセットを生成するコンピュータシステムであって、前記更新データセットは、ソート済みのデータ要素を含む第1のデータセットとソート済みのデータ要素を含む第2のデータセットとの差分を記述する演算子を含み、
    前記コンピュータシステムは、
    前記第1のデータセット及び前記第2のデータセットを含むメモリと、
    前記メモリに接続可能なコンパレータであって、前記第2のデータセット内のデータ要素と前記第1のデータセット内のデータ要素とを順次比較し、先の比較結果が、前記第1のデータセット内のどのデータ要素と前記第2のデータセット内のどのデータ要素が次の比較において比較されるかを制御し、各比較の後に前記メモリ内の変更パラメータを更新し、前記第2のデータセット内のデータ要素が前記第1のデータセット内のデータ要素に一致することを検出するとセレクタを起動するコンパレータと、
    前記メモリ内に格納された前記変更パラメータに基づいて演算子を決定し、前記メモリ内に前記決定した演算子を格納する前記メモリ及び前記コンパレータに接続可能なセレクタと
    を含み、
    前記第2のデータセット及び前記第1のデータセットの差分を記述する演算子を含む前記リモート端末に送信すべき更新データセットを生成する
    ことを特徴とするコンピュータシステム。
  2. 前記更新データセットを含む更新メッセージを生成及び送信するセレクタに関連するコミュニケータ
    を更に含むことを特徴とする請求項1記載のコンピュータシステム。
  3. 前記第1のデータセット及び前記第2のデータセットは、
    時間とともに変化する動的データ要素
    を含むことを特徴とする請求項1記載のコンピュータシステム。
  4. 前記第2のデータセットは、
    前記第1のデータセットよりも新しいバージョンである
    ことを特徴とする請求項1記載のコンピュータシステム。
  5. 前記演算子は、
    追加演算子、削除演算子、置換演算子を含むグループから決められる
    ことを特徴とする請求項1記載のコンピュータシステム。
  6. 前記変更パラメータは、
    前記第1のデータセットに関連する第1のカウンタと、前記第2のデータセットに関連する第2のカウンタとを含む
    ことを特徴とする請求項1記載のコンピュータシステム。
  7. 前記セレクタは、
    前記第1のデータセットに関連する前記第1のカウンタと、前記第2のデータセットに関連する前記第2のカウンタとの関係に基づいて演算子を選択する
    ことを特徴とする請求項6記載のコンピュータシステム。
  8. 前記変更パラメータは、
    前記第1のデータセット及び前記第2のデータセット内の前記コンパレータの位置の追跡を維持するために、前記第1のデータセットに関連する第1の位置パラメータと、前記第2のデータセットに関連する第2の位置パラメータとを更に含む
    ことを特徴とする請求項1記載のコンピュータシステム。
  9. 前記演算子は、差分変更を含む
    ことを特徴とする請求項1記載のコンピュータシステム。
  10. 各データ要素は、キー及びデータ部分を含む
    ことを特徴とする請求項1記載のコンピュータシステム。
  11. 請求項1に係わるコンピュータシステムを含む電子商取引システム。
  12. リモート端末に向けて送信すべき更新データセットを生成する方法であって、前記更新データセットは、ソート済みのデータ要素を含む第1のデータセットとソート済みのデータ要素を含む第2のデータセットとの差分を記述する演算子を含み、
    前記方法は、
    前記第1のデータセット内のデータ要素と前記第2のデータセット内のデータ要素とを順次比較するステップであって、先の比較結果が、前記第1のデータセット内のどのデータ要素と前記第2のデータセット内のどのデータ要素が次の比較において比較されるかを制御するステップと、
    各比較の後にメモリ内の変更パラメータを更新するステップと、
    前記第2のデータセット内のデータ要素が前記第1のデータセット内のデータ要素に一致することを検出すると、前記メモリに格納された前記変更パラメータに基づいて演算子を決定する選択処理を開始するステップと、
    前記決定された演算子を前記メモリに格納するステップと
    を含み、
    前記第1のデータセット及び前記第2のデータセットの差分を記述する演算子を含む前記リモート端末に送信すべき更新データセットを生成する
    ことを特徴とする方法。
  13. 前記決定された演算子と比較済みのデータ要素とを関連付けるステップ
    を更に含むことを特徴とする請求項12記載の方法。
  14. 追加演算子、削除演算子、置換演算子を含むグループから少なくとも1つの演算子を決定するステップ
    を更に含むことを特徴とする請求項12記載の方法。
  15. 前記変更パラメータは、
    前記第1のデータセットに関連する第1のカウンタと、前記第2のデータセットに関連する第2のカウンタと
    を含み、
    前記第1のデータセットに関連する前記第1のカウンタと、前記第2のデータセットに関連する前記第2のカウンタとの関係に基づいて演算子を決定するステップ
    を更に含むことを特徴とする請求項12記載の方法。
  16. 各データ要素は、キー及びデータ部分を含み、
    前記第1のデータセットの要素のキー及びデータ部分の少なくとも1つと、前記第2のデータセットの要素のキー及びデータ部分の少なくとも1つとを比較するステップ
    を更に含むことを特徴とする請求項12記載の方法。
  17. 前記第1のデータセット及び前記第2のデータセットは、時間とともに変化する動的情報を含む
    ことを特徴とする請求項12記載の方法。
  18. 記憶媒体に格納される請求項12に係わるコンピュータプログラム製品。
JP2009542017A 2006-12-20 2007-12-14 データセットの変更を最適化するシステム及び方法 Active JP5230645B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/641,957 US8117609B2 (en) 2006-12-20 2006-12-20 System and method for optimizing changes of data sets
US11/641,957 2006-12-20
PCT/EP2007/064005 WO2008074751A1 (en) 2006-12-20 2007-12-14 System and method for optimizing changes of data sets

Publications (3)

Publication Number Publication Date
JP2010514035A true JP2010514035A (ja) 2010-04-30
JP2010514035A5 JP2010514035A5 (ja) 2011-01-20
JP5230645B2 JP5230645B2 (ja) 2013-07-10

Family

ID=39253872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009542017A Active JP5230645B2 (ja) 2006-12-20 2007-12-14 データセットの変更を最適化するシステム及び方法

Country Status (8)

Country Link
US (1) US8117609B2 (ja)
EP (1) EP2095272A1 (ja)
JP (1) JP5230645B2 (ja)
CN (1) CN101611402B (ja)
AU (1) AU2007336337B2 (ja)
HK (1) HK1140030A1 (ja)
TW (1) TW200833010A (ja)
WO (1) WO2008074751A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015502619A (ja) * 2011-12-22 2015-01-22 アマデウス エス.エイ.エス データファイリングシステムの方法およびシステム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010039021B4 (de) * 2010-08-06 2023-02-23 Robert Bosch Gmbh Verfahren zur Rekonfiguration von Softwareparametern in einem Mikrocontroller sowie Mikrocontroller und Steuergerät
TWI455520B (zh) * 2010-08-12 2014-10-01 Hon Hai Prec Ind Co Ltd 用戶端設備及更新設備參數的方法
CN103309888A (zh) * 2012-03-14 2013-09-18 北京四维图新科技股份有限公司 电子地图的数据的验证方法和验证装置
CN102855288B (zh) * 2012-08-08 2017-11-03 北京奇安信科技有限公司 差异数据的处理方法和装置
US10354325B1 (en) 2013-06-28 2019-07-16 Winklevoss Ip, Llc Computer-generated graphical user interface
US9892460B1 (en) 2013-06-28 2018-02-13 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
US10269009B1 (en) 2013-06-28 2019-04-23 Winklevoss Ip, Llc Systems, methods, and program products for a digital math-based asset exchange
US9535936B2 (en) * 2013-09-05 2017-01-03 The Boeing Company Correlation of maximum configuration data sets
JP5915627B2 (ja) * 2013-11-26 2016-05-11 横河電機株式会社 プロセス制御システム
US10438290B1 (en) 2018-03-05 2019-10-08 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US11139955B1 (en) 2018-02-12 2021-10-05 Winklevoss Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US11475442B1 (en) 2018-02-12 2022-10-18 Gemini Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11909860B1 (en) 2018-02-12 2024-02-20 Gemini Ip, Llc Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US11200569B1 (en) 2018-02-12 2021-12-14 Winklevoss Ip, Llc System, method and program product for making payments using fiat-backed digital assets
US10540654B1 (en) 2018-02-12 2020-01-21 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US11308487B1 (en) 2018-02-12 2022-04-19 Gemini Ip, Llc System, method and program product for obtaining digital assets
US11522700B1 (en) 2018-02-12 2022-12-06 Gemini Ip, Llc Systems, methods, and program products for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain
US10373158B1 (en) 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US11334883B1 (en) 2018-03-05 2022-05-17 Gemini Ip, Llc Systems, methods, and program products for modifying the supply, depositing, holding and/or distributing collateral as a stable value token in the form of digital assets
CN108664593A (zh) * 2018-05-08 2018-10-16 东软集团股份有限公司 数据一致性校验方法、装置、存储介质及电子设备
US11501370B1 (en) 2019-06-17 2022-11-15 Gemini Ip, Llc Systems, methods, and program products for non-custodial trading of digital assets on a digital asset exchange

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418965A (en) * 1988-06-24 1995-05-23 Mahar; Robert C. Subroutine-type computer program for enhancing the speed of data processing in data management programs systems
US5473772A (en) * 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5899998A (en) * 1995-08-31 1999-05-04 Medcard Systems, Inc. Method and system for maintaining and updating computerized medical records
US5924083A (en) * 1996-05-29 1999-07-13 Geneva Branch Of Reuters Transaction Services Limited Distributed matching system for displaying a book of credit filtered bids and offers
US6847971B1 (en) * 1998-05-28 2005-01-25 Oracle International Corporation Lightweight data replication
CA2414281C (en) * 2000-11-17 2009-06-02 Bitfone Corporation System and method for updating and distributing information
AU2002305432A1 (en) 2001-05-08 2002-11-18 Stafford Trading, Inc. A low-bandwidth distribution system and method for option quotes, theoretical prices, and derivatives
US7340412B2 (en) * 2002-01-11 2008-03-04 Ncr Corporation Methods and apparatus for performing delta updates of an electronic shelf label
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US20030229570A1 (en) * 2002-06-05 2003-12-11 Hughes John T. Quote updates in a securities market
US20040010456A1 (en) * 2002-07-09 2004-01-15 Hoang Khoi Nhu Incrementally updated electronic catalog with localized distribution
US7797403B2 (en) * 2002-07-12 2010-09-14 Microsoft Corporation Deployment of configuration information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012056976; Wilburt Labio: 'Efficient snapshot differential algorithms for data warehousing' ProceedingVLDB '96 Proceedings of the 22th International Conference on Very Large Data , 1996, p.63 - 74, Morgan Kaufmann Publishers Inc. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015502619A (ja) * 2011-12-22 2015-01-22 アマデウス エス.エイ.エス データファイリングシステムの方法およびシステム

Also Published As

Publication number Publication date
TW200833010A (en) 2008-08-01
EP2095272A1 (en) 2009-09-02
JP5230645B2 (ja) 2013-07-10
CN101611402A (zh) 2009-12-23
AU2007336337B2 (en) 2012-07-05
AU2007336337A1 (en) 2008-06-26
CN101611402B (zh) 2012-12-26
US20080155527A1 (en) 2008-06-26
US8117609B2 (en) 2012-02-14
HK1140030A1 (en) 2010-09-30
WO2008074751A1 (en) 2008-06-26

Similar Documents

Publication Publication Date Title
JP5230645B2 (ja) データセットの変更を最適化するシステム及び方法
CN101009516B (zh) 一种进行数据同步的方法、系统及装置
CN108304554B (zh) 文件拆分方法、装置、计算机设备和存储介质
US8554738B2 (en) Mitigation of obsolescence for archival services
CN109325041A (zh) 业务数据处理方法、装置、计算机设备及存储介质
WO2019024780A1 (zh) 区块链轻量化处理方法、区块链节点及存储介质
CN106126407A (zh) 一种针对分布式存储系统的性能监控调优系统及方法
WO2022110990A1 (zh) 账户管理方法和相关产品
WO2004063928A1 (ja) データベース負荷軽減システムおよび負荷軽減プログラム
US20170070583A1 (en) Network-independent programming model for online processing in distributed systems
CN110362565A (zh) 在事件聚类中使用和更新一组节点之间的拓扑关系
CN111949832A (zh) 批量作业依赖关系的解析方法及装置
US11366821B2 (en) Epsilon-closure for frequent pattern analysis
WO2023078128A1 (zh) 虚拟订单的处理方法、装置、设备及计算机可读存储介质
CN110471935B (zh) 一种数据操作的执行方法、装置、设备和存储介质
CN110795166A (zh) 一种数据处理方法及装置
US11556595B2 (en) Attribute diversity for frequent pattern analysis
WO2018040561A1 (zh) 数据处理方法、装置及系统
CN111475540A (zh) 一种用户关系网的生成方法及设备
KR101823130B1 (ko) 데이터베이스의 이중화를 위한 기법
TW201905726A (zh) 雲端頻繁序列型樣資料探勘方法
CN114510650B (zh) 一种异构社交网络风控处理方法及系统
CN115657901B (zh) 一种基于统一参数的业务变更方法及装置
US20230367814A1 (en) Managing hybrid graph data storage and retrieval for efficient graph query execution
US20200244542A1 (en) Methods for evaluating and optimizing preferred provider organization (ppo) network stacks and devices thereof

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130319

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5230645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250