JP6434021B2 - データフィードの管理 - Google Patents

データフィードの管理 Download PDF

Info

Publication number
JP6434021B2
JP6434021B2 JP2016533421A JP2016533421A JP6434021B2 JP 6434021 B2 JP6434021 B2 JP 6434021B2 JP 2016533421 A JP2016533421 A JP 2016533421A JP 2016533421 A JP2016533421 A JP 2016533421A JP 6434021 B2 JP6434021 B2 JP 6434021B2
Authority
JP
Japan
Prior art keywords
data
node
data unit
result
feed
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
JP2016533421A
Other languages
English (en)
Other versions
JP2016527846A (ja
Inventor
クレイグ ダブリュー. スタンフィル
クレイグ ダブリュー. スタンフィル
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
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 アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2016527846A publication Critical patent/JP2016527846A/ja
Application granted granted Critical
Publication of JP6434021B2 publication Critical patent/JP6434021B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Retry When Errors Occur (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

関連出願の相互参照
本出願は、2013年8月7日に出願した「MANAGING DATA FEEDS」と題した米国特許出願第61/863,062号明細書の優先権を主張するものである。
この説明は、データフィードを管理することに関する。
データフィードは、明確に定義された順序を有し、実質的に定期的にその順序で順番に送信されるデータユニットのセットを提供する。データユニットは、ネットワーク内の複数のノードにブロードキャストされるようにネットワーク上で送信される。特定のデータソースは、順序付けられたデータユニットのリアルタイムでブロードキャストされるデータフィードを出力する。そのようなリアルタイムでブロードキャストされるデータフィードの例は、時系列(time series)である。このデータフィードは、例えば、連続する時間における商品の価格を含む。
ネットワークのノードは、データフィードをキャプチャし、そのデータフィードを記憶することができ、したがって、クライアントがデータの選択された部分を必要とするときにそのデータフィードをストレージから取り出し、そのデータフィードをクライアントに提供することができる。ノードがキャプチャされたデータを管理するときに満たさなければならない特定の要件がある。例えば、1組の要件は、データが常に利用可能でなければならないこと、及びいかなるデータも失われてはならないことである。
発生する不具合は、ノードがデータフィードの一部をキャプチャし、記憶することに失敗する可能性があることである。リアルタイムでデータフィードをブロードキャストするようにのみ(つまり、再送信しない)構成されるデータソースからのリアルタイムでブロードキャストされるデータフィードに、これが起こると、見つからないデータは、そのノード及びそのノードのクライアントから永久に失われる。
この失敗は、例えば、ノードがそのノードのネットワーク接続を一時的に喪失するためか、又はノードが動作不可能になるか若しくはバッファの容量を使い果たすためかのどちらかの理由で起こる。これが起こるとき、ノードは、データフィードのデータの一部をキャプチャし、記憶することに失敗する可能性がある。したがって、クライアントがデータフィードの特定の部分をノードに要求するとき、ノードがデータフィードからのデータをキャプチャし、記憶することができなかった時間にかかるようにその部分が発生する場合、ノードは、要求を満たすことができない。
一態様においては、概して、ソースからの再送信を必要としないソースからの中断されるデータフィードのデータユニット(例えば、データユニットの完全なセット)を受信するための方法が提供される。データフィードは、ネットワークの複数のノードに送信されている。各ノードは、データフィードの少なくとも一部のデータユニットを受信するためのネットワークインターフェースと、そのノードにおいて受信されたデータユニットに対応する結果を保存するためのデータストアとに接続された処理モジュールを含む。第1のノードが、1又は2以上のデータユニットが見つからないデータフィードの不完全なコピーをキャプチャし、2つの受信されたデータユニットの間の隔たりを特定する。第1のノードは、隔たりの範囲を特定し、隔たりに対応するデータユニットの要求を送信する。
別の態様においては、概して、データフィードのソースによる再送信を必要としないデータフィードからブロードキャストされたデータユニットを管理するための方法。方法は、ネットワークの第1のノードにおいて、複数のデータユニットを含むデータフィードの少なくとも一部を受信するステップと、ネットワークの第2のノードにおいて、データフィードの少なくとも一部を受信するステップと、第1のノードにおいてデータフィードの受信の中断を特定するステップと、中断の前に第1のノードによって受信された最後のデータユニットと中断の後に第1のノードによって受信された最初のデータユニットとの間に広がるデータの欠落の範囲を特定するステップと、第2のノードによって保存された結果の要求を第1のノードから送信するステップであって、第2のノードによって保存された結果がデータの欠落に対応する、ステップとを含む。
態様は、以下の特徴のうちの1又は2以上を有する可能性がある。
方法は、中断を特定するステップの前に、第1のノードにおいてデータフィードのデータユニットを処理して第1のノードにおいてデータユニットに対応する結果を保存し、第2のノードにおいてデータフィードのデータユニットを処理して第2のノードにおいてデータユニットに対応する結果を保存するステップをさらに含む。
データユニットを処理してデータユニットに対応する結果を保存するステップは、データユニットの表現を永続的に記憶するステップを含む。
最初のデータユニットの表現は、最初のデータユニットのまったくそのままのコピーである。
最初のデータユニットの表現は、最初のデータユニットの圧縮された表現である。
方法は、第1のノードにおいて、データの欠落に対応する第2のノードによって保存された結果を受信し、第1のノードにおいて結果を保存するステップをさらに含む。
方法は、第1のノードにおいて、第1のノードにおけるデータフィードからの第1のデータユニットに基づいて第1の結果を保存するステップ、第2のノードにおいて、第2のノードにおけるデータフィードからのデータに基づいて結果を保存するステップであって、結果が第1の結果、第2の結果、及び第3の結果を含み、第2の結果が第2のデータユニットに基づき、第3の結果が第3のデータユニットに基づき、第2のデータユニットが第1のデータユニットの後及び第3のデータユニットの前に受信される、ステップをさらに含む。データの欠落の範囲を特定するステップは、第1のノードにおいて、中断の後、第3のデータユニットを受信するステップと、第1のノードにおいて、第1のデータユニットが中断の前に受信された最後のデータユニットであることを特定するステップと、第1のノードにおいて、第1のデータユニットと第3のデータユニットとの間に広がるデータの欠落の存在を特定するステップとを含む。
方法は、第1のノードにおいて、データの欠落に対応する第2のノードによって保存された結果を受信し、第1のノードにおいて第2の結果を含む結果を保存するステップをさらに含む。
方法は、第1のノードから要求を送信するステップの前に、複数のノードの中から第2のノードを選択するステップであって、複数のノードのすべてがデータフィードをストリーミングされている、ステップをさらに含む。
方法は、第1のノードと通信するクライアントから要求を受信するステップをさらに含む。
クライアントからの要求は、要求に関連する1又は2以上のデータユニットを特定する。
方法は、クライアントからの要求によって特定されたデータユニットのうちの少なくとも1つがデータの欠落の中にあると判定したことに応答して、第2のノードによって保存された結果の要求を第1のノードから送信するステップをさらに含む。
方法は、第2のノードによって保存された結果を受信した後、クライアントからの要求に応答するステップをさらに含む。
方法は、クライアントからの要求に応答して要求を第2のノードにリダイレクトするステップをさらに含む。
別の態様においては、概して、データフィードのソースによる再送信を必要としないデータフィードからブロードキャストされたデータユニットを管理するためのソフトウェアが、コンピュータ可読媒体上に非一時的形態で記憶される。ソフトウェアは、ネットワークの第1のノードに、複数のデータユニットを含むデータフィードの少なくとも一部を受信させることと、ネットワークの第2のノードにデータフィードを受信させることと、第1のノードにデータフィードの受信の中断を特定させることと、第1のノードに、中断の前に第1のノードによって受信された最後のデータユニットと中断の後に第1のノードによって受信された最初のデータユニットとの間に広がるデータの欠落の範囲を特定させることと、第1のノードに、第2のノードによって保存された結果の要求をデータフィードの少なくとも一部をやはり受信していた第2のノードに送信させることであって、第2のノードによって保存された結果がデータの欠落に対応する、送信させることとのための命令を含む。
別の態様においては、概して、データフィードのソースによる再送信を必要としないデータフィードからブロードキャストされたデータユニットを管理するためのシステムが、複数のノードを含む。少なくとも第1のノード及び第2のノードは、それぞれ、複数のデータユニットを含むデータフィードの少なくとも一部を受信するように構成されたネットワークインターフェースと、データフィードを処理するように構成された少なくとも1つのプロセッサとを含む。処理は、データフィードの受信の中断を特定することと、中断の前にノードによって受信された最後のデータユニットと中断の後にノードによって受信された最初のデータユニットとの間に広がるデータの欠落の範囲を特定することと、別のノードによって保存された結果の要求を別のノードに送信することであって、別のノードによって保存された結果がデータの欠落に対応する、送信することとを含む。
別の態様においては、概して、データフィードのソースによる再送信を必要としないデータフィードからブロードキャストされたデータユニットを管理するためのシステムが、複数のノードを含む。少なくとも第1のノード及び第2のノードは、それぞれ、複数のデータユニットを含むデータフィードの少なくとも一部を受信するための手段と、データフィードを処理するための手段であって、処理が、データフィードの受信の中断を特定すること、中断の前にノードによって受信された最後のデータユニットと中断の後にノードによって受信された最初のデータユニットとの間に広がるデータの欠落の範囲を特定すること、及び別のノードによって保存された結果の要求を別のノードに送信することであって、別のノードによって保存された結果がデータの欠落に対応する、送信することを含む、手段とを含む。
態様は、以下の利点のうちの1又は2以上を含む可能性がある。
データフィードからデータを復元できないように失う確率を少なくする1つの方法は、複数の受信ノードのそれぞれがデータを同時に受信し、すべてが計画通りに動いているときにデータをキャプチャする複数の受信ノードを設けることである。データの一部をキャプチャすることに失敗し、したがって、データの要求された部分をクライアントに供給することができないノードが、クライアントを別のノードにリダイレクトすることができる。もちろん、そのノードはデータの要求された部分を提供することがやはりできないが、データを受信するノードが多くあるほど、データがそれらのノードのいずれによってもキャプチャされない可能性がより低くなることがあり得る。長期的に、各ノードは、いつかは、見つからないデータを生じる何らかの故障に見舞われる可能性が高い。したがって、いかなるさらなるステップも行われない場合、いつかは、いかなる単一のノードも、現在の時間から何らかの任意の以前の開始時間までのすべての期間にわたるデータの完全な組を持たなくなる可能性が高い。しかしながら、本明細書において説明される技術を用いれば、データが見つからないときを速やかに検出し、見つからないデータを正確に特定することが可能である。そして、この能力は、各ノードがそのノードのデータセット内のデータの欠落を検出し、見つからないデータによってデータの欠落を埋めるために必要とされるデータの要求をその他のノードに対して行うノードの自己治癒システムを提供するために使用され得る。
本発明のその他の特徴及び利点は、以下の説明及び請求項から明らかになるであろう。
ノードのセットがリアルタイムでブロードキャストされる、共通のデータフィードを同時に受信するネットワーク図である。 データの欠落した送信されるリアルタイムでブロードキャストされるデータフィード及び対応する記憶されるデータフィードの時間プロットを示す図である。 図1に示されたノードのセットからの典型的なノードの構造ブロック図である。 図1に示されたノードのセットの中の特定のノードによって実行される方法のフローチャートである。 1対のノードの間の通信を示す1対のタイムラインである。
データの管理のためのシステムが、ネットワーク12に接続された複数のノード10A、10B...10Zを含む。通常動作中、ノード10A、10B...10Zのそれぞれは、データフィード14が入手可能なネットワーク12へのそれぞれの対応する接続14A、14B...14Zを介してデータフィード14を同時に受信する。このデータフィード14は、任意の2つのデータユニット18、20が与えられると2つのデータユニット18、20の間のデータの欠落22を特定することが可能である特性を有する、図2に示される、順番に送信されるデータユニットのセットを含む。そのようなデータフィード14の状況で、「データの欠落」は、例えば、データユニットに関する一連の暗黙的な又は明示的な識別子の間の隔たりに基づくなど、何らかの既知の方法で特定可能である、2つのデータユニットの間の欠落(つまり、埋められていない空間又は間隔)に対応する。
そのようなデータフィード14の例は、データユニットのそれぞれがシーケンス番号又はタイムスタンプでタグ付けされるデータユニットのフィードである。1ずつ増える整数のシーケンス番号の場合、あるノードがデータユニットmを受信し、次に続く受信されたデータユニットがデータユニットm+kである場合、そのノードは、k−1個の見つからないデータユニットがなければならないということだけでなく、それらの見つからないデータユニットがデータユニットm+1からm+k−1までであったに違いないということも判定することができる。その他の場合は、データユニットが一定の時間間隔で期待される場合を含み、その場合、2つのデータユニット及び(例えば、関連するタイムスタンプからの)それらのデータユニットの関連する時間が与えられると、ノードは、データユニットが期待され、既知の一定の時間間隔に基づいてデータの欠落22の範囲を計算することができる。
ノード10A、10B...10Zなどのネットワークのノードの例は、(複数のプロセッサコアを有する)中央演算処理装置(CPU,central processing unit)、CPUのプロセッサコア、又はFPGA、又はその他のプログラミング可能な若しくは専用の論理回路である、処理回路の制御の下にあるサーバなどのコンピューティングシステムである。処理回路は、潜在的に中間ネットワーク(例えば、ローカルエリアネットワーク(LAN,local area network)及び/又は広域ネットワーク(WAN,wide-area network))を介してネットワーク上で通信するためのネットワークインターフェースを含む。ここで、図3を参照すると、この例において、ノード10Aは、データフィード14からの送信されたデータユニットのセットが記憶されたデータユニット24のセットとして記憶されるデータストレージ20を含むか、又はデータストレージ20に接続される。データストレージ20は、データユニットを永続的に記憶するように構成される場合、データユニット24が、たとえ(電源の喪失などの)ノード10Aの動作の中断があったとしても、例えば、不揮発性ストレージ媒体を使用するデータストレージ20によって、提供された通りに後で取り出されることを可能にする。場合によっては、記憶されたデータユニット24のセットは、データフィード14からの送信されたデータユニットのセットのコピーである。しかし、その他の場合、記憶されたデータユニット24のセットは、データフィード14からの送信されたデータユニットが処理されたもの(versions)を含む。例えば、記憶されたデータユニットは、送信されたデータユニットの圧縮されたものであることも、抽出された特定の関連する値及び/又は引きはがされた(stripped)特定のオーバーヘッド情報を有することもある。
記憶されたデータユニット24のセットは送信されたデータユニットのセットと一致しないことがあり得る。例えば、これは、停電が原因でノード10Aが動かなくなる場合、又はネットワーク接続が中断される場合に起こり得る。これは、記憶されたデータユニット24のセットの中の1又は2以上のデータの欠落22を生じる結果となる。
そのようなデータの欠落22の存在を検出するために、欠落ディテクタ26が、記憶されたデータユニット24のセットを調べる。欠落ディテクタ26は、データ送信の特徴の情報(knowledge)に基づいて無理なく計算される任意の方法でそのようにして、データの欠落を検出する。例えば、欠落ディテクタ26は、一定の間隔で、又は中断ディテクタ28から中断を検出したことに応答してのどちらかで、記憶されたデータユニットのセットを調べる。
その他の場合、図1に示されるクライアント30が、特定のデータを要求する可能性がある。クライアント30は、ネットワーク12の別のノードである可能性があり、又はたとえクライアントがネットワーク12への一定の接続を持たないとしてもメッセージによってネットワーク12のノードのいずれかと通信することができるデバイス若しくはシステム(例えば、ユーザのコンピュータシステム若しくは端末)である可能性がある。クライアント30は、例えば、地理的な近さ又は現在の負荷に基づいてデータを要求すべき特定のノード10Aを選択する可能性がある。要求されたデータがデータの欠落にかかることが、起こり得る。そのような場合、クライアントの要求が、要求されたデータにデータの欠落22がないことを確かめるためにクライアント30によって要求されているデータを調べるように欠落ディテクタ26をトリガする。要求されたデータに少なくとも1つのデータの欠落22がある場合、ノード10Aは、以下でより詳細に説明されるように、データの欠落22のデータユニットに対応する保存された結果をネットワーク12の第2のノード10Bに要求する。ノード10Aは、データの欠落22が修復された後、クライアントの要求に応答する可能性があり、又はそのノード10Aにおけるデータの欠落22が修復されている間、ネットワーク12の別のノードにクライアントの要求をリダイレクトする可能性がある。
データの欠落を検出すると、欠落ディテクタ26は、ノード間コミュニケータ32に与えられる要求30を組み立てる。要求30は、任意の検出されたデータの欠落22の指定を含む。そして、ノード間コミュニケータ32が、要求を第2のノード10Bに送信する。その第2のノード10Bは、中断の結果として抜かされたデータユニットを含む記憶されたデータユニットのセットを有する可能性があり又は有さない可能性がある。第2のノード10Bは、必要とされるデータを持っている場合、その必要とされるデータを第1のノード10Aに送り返す。そうでない場合、第2のノード10Bは、やはり必要とされるデータを有する可能性があり又は有さない可能性がある第3のノード10Cに要求を再送信する。この手順は、最終的にノードが必要とされるデータを有するまで継続する。
場合によっては、第2のノード10Bが、必要とされるデータのすべてではないが一部を有する可能性がある。その場合、第2のノード10Bは、その第2のノード10Bが何を有するかを第1のノード10Aに送信し、残りに関する第3のノード10Cへのメッセージを、残りが第3のノード10Cにおいて利用可能である場合に残りを第1のノード10Aに送信する命令とともに組み立てる。この手順は、最終的にすべての見つからないデータが得られるまで継続する。
原則として、見つからないデータがノード10A〜10Zの全体で発見され得ない可能性があり、その場合、ノード10Aは、クライアント30にエラーを報告する。しかし、これは、可能性が非常に低い事態であるはずである。
データフィードを管理するための手順の例であるフローチャート40を示す図4を参照する。通常動作(42)中、ノード10Aが、データフィードを受信し、クライアントの要求に応答する。データフィードの受信の中断を特定すること(44)に応じて、ノード10Aは、欠落修復手順を実行する。欠落ディテクタ26は、データ内の中断前に受信された最後のデータユニットXを特定することによってデータの欠落22の範囲を特定する(46)。そして、欠落ディテクタ26は、データの取得の再開後に受信された最初のデータユニットXm+kを特定する。それから、欠落ディテクタ26は、データユニットXからXm+k−1を特定する抜かされたデータの要求を組み立て、その要求を第2のノード10Bに送信する(48)ためにその要求をノード間コミュニケータ32に与える。一部の実装形態においては、各ノードが、その他のノードの支援なしにデータフィードの受信の中断を判定する(44)役割を担う。その他の実装形態において、データフィードの受信の中断を判定するステップ(44)は、ネットワークのその他のノードによって容易にされ得る。例えば、マスターノードが、その他のノードによって使用されるデータストレージデバイスを周期的に検査し、記憶されたデータユニットのそれらのその他のノードのそれぞれの組内のデータの欠落を検出するように構成される可能性がある。そのとき、マスターノードは、ノードと通信して中断のそれらのノードの特定及び/又はそれらのノードのデータの欠落のそれらのノードの特定を助ける可能性がある。ノードがサーバである場合、マスターノードは、例えば、一群のサーバで実行される分散型の合意アルゴリズムでリーダーとして選ばれたサーバである可能性がある。
最終的に、第1のノード10Aは、抜かされたデータの一部又はすべてを、第2のノード10Bか又は(例えば、第2のノード10Bもデータユニットのいずれかを見つけられない場合)別のノード10Zかのどちらかから受信する。ノード10Aは、抜かされたデータを用いてデータの欠落22を修復する(50)。抜かされたデータは、抜かされたデータをデータの欠落22に書き込む欠落修復ユニット36に与えられ、したがって、データの欠落22の範囲を狭めるか、又は場合により、与えられた抜かされたデータの範囲によっては、データの欠落22を完全になくす。そして、ノード10Aは、通常動作(42)に戻る。
図5は、データの欠落が特定され、修復される例示的な筋書きにおけるアクション及びノード10Aとノード10Bとの間の通信に関するタイムラインを示す。各ノードは、タイムラインの上から下に向かって時間が増すときにデータフィードを受信する。ノード10Aは、データユニットの受信が再開した後、データフィードの中断を判定する(500)。ノード10Aは、データの欠落504の範囲を特定する(502)。ノード10Aは、要求を送信し(506)、それよりわずか後に、データの欠落504がノード10Aによって受信されたデータユニットに起きていなかったならば受信され、処理されたであろうデータユニットの範囲510に対応する保存された結果をノード10Bから受信する(508)。
上述のデータフィードの管理手法は、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェアで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステムで実行される1又は2以上のコンピュータプログラムの手順を含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
ソフトウェアは、CD−ROM又は(例えば、汎用若しくは専用のコンピューティングシステム若しくはデバイスによって読み取り可能な)その他のコンピュータ可読媒体などの有形の非一時的媒体で提供されるか、或いはそのソフトウェアが実行されるコンピューティングシステムの有形の非一時的媒体にネットワークの通信媒体を介して配信される(例えば、伝播信号で符号化される)可能性がある。処理の一部又はすべては、専用のコンピュータで、又はコプロセッサ若しくはフィールドプログラマブルゲートアレイ(FPGA)若しくは専用の特定用途向け集積回路(ASIC,application-specific integrated circuit)などの専用のハードウェアを用いて実行される可能性がある。処理は、ソフトウェアによって指定された計算の異なる部分が異なる計算要素によって実行される分散された方法で実装される可能性がある。それぞれのそのようなコンピュータプログラムは、本明細書において説明された処理を実行するためにストレージデバイスの媒体がコンピュータによって読み取られるときにコンピュータを構成し、動作させるために、汎用又は専用のプログラミング可能なコンピュータによってアクセス可能なストレージデバイスのコンピュータ可読ストレージ媒体(例えば、ソリッドステートメモリ若しくは媒体、又は磁気式若しくは光学式媒体)に記憶されるか又はダウンロードされることが好ましい。本発明のシステムは、コンピュータプログラムで構成された有形の非一時的媒体として実装されると考えられる可能性もあり、そのように構成された媒体は、本明細書において説明された処理ステップのうちの1又は2以上を実行するために特定の予め定義された方法でコンピュータを動作させる。
本発明のいくつかの実施形態が、説明された。しかしながら、上述の説明は、添付の請求項の範囲によって画定される本発明の範囲を例示するように意図されており、限定するように意図されていないことを理解されたい。したがって、その他の実施形態も、添付の請求項の範囲内にある。例えば、本発明の範囲を逸脱することなくさまざまな修正がなされ得る。さらに、上述のステップの一部は、順序に依存しない可能性があり、したがって、説明された順序とは異なる順序で実行され得る。

Claims (16)

  1. データフィードのソースによる再送信を必要としない前記データフィードからブロードキャストされたデータユニットを管理するための方法であって、
    ネットワークの第1のノードにおいて、複数のデータユニットを含む前記データフィードの少なくとも一部を受信し、前記第1のノードにおいて前記データフィードからの第1のデータユニットに基づいて第1の結果を保存するステップと、
    前記ネットワークの第2のノードにおいて、前記データフィードの少なくとも一部を受信し、前記第2のノードにおいて前記データフィードからのデータに基づいて結果を保存するステップであって、前記結果が、前記第1の結果、第2の結果、及び第3の結果を含み、前記第2の結果が第2のデータユニットに基づき、前記第3の結果が第3のデータユニットに基づき、前記第2のデータユニットが前記第1のデータユニットの後及び前記第3のデータユニットの前に受信されるステップと、
    前記第1のノードにおいて前記データフィードの受信の中断を判定するステップと、
    前記中断の前に前記第1のノードによって受信された最後のデータユニットと前記中断の後に前記第1のノードによって受信された最初のデータユニットとの間に広がる、前記中断の結果として前記第1のノードによって受信されていない抜かされたデータユニットに対応する、データの欠落の範囲を特定するステップと、
    前記第2のノードによって保存された前記結果の少なくとも一部に対する要求を前記第1のノードから送信するステップであって、前記第2のノードによって保存された前記結果の少なくとも一部が前記データの欠落に対応する、ステップと
    を含
    前記データの欠落の範囲を特定するステップが、
    前記第1のノードにおいて、前記中断の後、前記第3のデータユニットを受信すること、
    前記第1のノードにおいて、前記第1のデータユニットが前記中断の前に受信された前記最後のデータユニットであることを判定すること、
    前記第1のノードにおいて、前記第1のデータユニットと前記第3のデータユニットとの間に広がる前記データの欠落の存在を判定し、前記第1のデータユニット及び前記第3のデータユニットと関連するそれぞれのシーケンス番号又はタイムスタンプに基づき前記データの欠落の範囲を特定すること
    とを含む、前記方法。
  2. 中断を判定するステップの前に、第1のノードにおいてデータフィードのデータユニットを処理して前記第1のノードにおいて前記データユニットに対応する結果を保存し、第2のノードにおいて前記データフィードのデータユニットを処理して前記第2のノードにおいて前記データユニットに対応する結果を保存するステップをさらに含む請求項1に記載の方法。
  3. データユニットを処理して前記データユニットに対応する結果を保存するステップが、前記データユニットの表現を永続的に記憶するステップを含む請求項2に記載の方法。
  4. ータユニットの表現が、前記ータユニットのまったくそのままのコピーである請求項3に記載の方法。
  5. ータユニットの表現が、前記ータユニットの圧縮された表現である請求項3に記載の方法。
  6. 第1のノードにおいて、データの欠落に対応する第2のノードによって保存された結果を受信し、前記第1のノードにおいて前記結果を保存するステップをさらに含む請求項1に記載の方法。
  7. 第1のノードにおいて、データの欠落に対応する第2のノードによって保存された結果を受信し、前記第1のノードにおいて第2の結果を含む前記結果を保存するステップをさらに含む請求項に記載の方法。
  8. 第1のノードから要求を送信するステップの前に、複数のノードの中から第2のノードを選択するステップであって、前記複数のノードのすべてがデータフィードをストリーミングされている、ステップをさらに含む請求項1に記載の方法。
  9. 第1のノードと通信するクライアントから要求を受信するステップをさらに含む請求項1に記載の方法。
  10. クライアントからの要求が、前記要求に関連する1又は2以上のデータユニットを特定する請求項に記載の方法。
  11. クライアントからの要求によって特定されたデータユニットのうちの少なくとも1つがデータの欠落の中にあると判定したことに応答して、第2のノードによって保存された結果に対する要求を第1のノードから送信するステップをさらに含む請求項10に記載の方法。
  12. 第2のノードによって保存された結果を受信した後、クライアントからの要求に応答するステップをさらに含む請求項に記載の方法。
  13. クライアントからの要求に応答して前記要求を第2のノードにリダイレクトするステップをさらに含む請求項に記載の方法。
  14. データフィードのソースによる再送信を必要としない前記データフィードからブロードキャストされたデータユニットを管理するための、コンピュータ可読媒体上に非一時的形態で記憶されるソフトウェアであって、
    ネットワークの第1のノードに、複数のデータユニットを含む前記データフィードの少なくとも一部を受信させ、前記第1のノードにおいて前記データフィードからの第1のデータユニットに基づいて第1の結果を保存させることと、
    前記ネットワークの第2のノードに前記データフィードを受信させ、前記第2のノードにおいて前記データフィードからのデータに基づいて結果を保存させることであって、前記結果が、前記第1の結果、第2の結果、及び第3の結果を含み、前記第2の結果が第2のデータユニットに基づき、前記第3の結果が第3のデータユニットに基づき、前記第2のデータユニットが前記第1のデータユニットの後及び前記第3のデータユニットの前に受信させることと、
    前記第1のノードに前記データフィードの受信の中断を判定させることと、
    前記第1のノードに、前記中断の前に前記第1のノードによって受信された最後のデータユニットと前記中断の後に前記第1のノードによって受信された最初のデータユニットとの間に広がる、前記中断の結果として前記第1のノードによって受信されていない抜かされたデータユニットに対応する、データの欠落の範囲を特定させることと、
    前記第1のノードに、前記第2のノードによって保存された前記結果の少なくとも一部に対する要求を、前記データフィードの少なくとも一部をまた受信している前記第2のノードに送信させることであって、前記第2のノードによって保存された前記結果の少なくとも一部が前記データの欠落に対応する、送信させることとのための命令を含
    前記第1のノードに前記データの欠落の範囲を特定させることが、前記第1のノードに
    前記中断の後、前記第3のデータユニットを受信させ、
    前記第1のデータユニットが、最後のデータユニットであると判定させ、
    前記第1のデータユニットと前記第3のデータユニットとの間に広がる前記データの欠落の存在を判定し、前記第1のデータユニット及び前記第3のデータユニットに関連するそれぞれのシーケンス番号又はタイムスタンプに基づき前記データの欠落の範囲を特定させる、
    前記ソフトウェア。
  15. データフィードのソースによる再送信を必要としない前記データフィードからブロードキャストされたデータユニットを管理するためのシステムであって、
    複数のノードを含み、少なくとも第1のノード及び第2のノードが、それぞれ、
    複数のデータユニットを含む前記データフィードの少なくとも一部を受信し、前記第1のノードにおいて、前記データフィードからの第1のデータユニットに基づいて第1の結果を保存し、前記第2のノードにおいて、前記データフィードからのデータに基づいて結果を保存するように構成されたネットワークインターフェースであって、前記結果が、前記第1の結果、第2の結果、及び第3の結果を含み、前記第2の結果が第2のデータユニットに基づき、前記第3の結果が第3のデータユニットに基づき、前記第2のデータユニットが前記第1のデータユニットの後及び前記第3のデータユニットの前に受信される前記ネットワークインターフェースと、
    前記データフィードを処理するように構成された処理回路であって、前記処理が、前記データフィードの受信の中断を判定すること、前記中断の前に前記ノードによって受信された最後のデータユニットと前記中断の後に前記ノードによって受信された最初のデータユニットとの間に広がる、前記中断の結果として前記第1のノードによって受信されていない抜かされたデータユニットに対応する、データの欠落の範囲を特定すること、及び前記第2のノードによって保存された結果の少なくとも一部に対する要求を前記第2のノードに送信することであって、前記第2のノードによって保存された前記結果の少なくとも一部が前記データの欠落に対応する、送信することを含む、前記処理回路とを含
    前記データの欠落の範囲を特定することが、
    前記第1のノードにおいて、前記中断の後、前記第3のデータユニットを受信すること、
    前記第1のノードにおいて、前記第1のデータユニットがシーケンス番号又はタイムスタンプに関連した、前記中断の前に受信された最後のデータユニットであることを判定すること、
    前記第1のノードにおいて、前記第1のデータユニットと前記第3のデータユニットとの間に広がる前記データの欠落の存在を判定し、前記第1のデータユニット及び前記第3のデータユニットに関連するそれぞれのシーケンス番号又はタイムスタンプに基づき前記データの欠落の範囲を特定すること
    とを含む、前記システム。
  16. データフィードのソースによる再送信を必要としない前記データフィードからブロードキャストされたデータユニットを管理するためのシステムであって、
    複数のノードを含み、少なくとも第1のノード及び第2のノードが、それぞれ、
    複数のデータユニットを含む前記データフィードの少なくとも一部を受信するための手段、前記第1のノードにおいて、前記データフィードからの第1のデータユニットに基づき第1の結果を保存するための手段、及び前記第2のノードにおいて、前記データフィードからのデータに基づき結果を保存するための手段であって、前記結果が、前記第1の結果、第2の結果及び第3の結果を含み、前記第2の結果が第2のデータユニットに基づき、前記第3の結果が第3のデータユニットに基づき、前記第2のデータユニットが前記第1のデータユニットの後及び前記第3のデータユニットの前に受信される前記手段と、
    前記データフィードを処理するための手段であって、前記処理が、前記データフィードの受信の中断を判定すること、前記中断の前に前記ノードによって受信された最後のデータユニットと前記中断の後に前記ノードによって受信された最初のデータユニットとの間に広がる、前記中断の結果として前記第1のノードによって受信されていない抜かされたデータユニットに対応する、データの欠落の範囲を特定すること、及び前記第2のノードによって保存された前記結果の少なくとも一部に対する要求を前記第2のノードに送信することであって、前記第2のノードによって保存された前記結果の少なくとも一部が前記データの欠落に対応する、送信することを含む、前記手段とを含
    前記データの欠落の範囲を特定することが、
    前記第1のノードにおいて、前記中断の後、前記第3のデータユニットを受信すること、
    前記第1のノードにおいて、前記第1のデータユニットが前記中断の前に受信された最後のデータユニットであることを判定すること、
    前記第1のノードにおいて、前記第1のデータユニットと前記第3のデータユニットとの間に広がる前記データの欠落の存在を判定し、前記第1のデータユニット及び前記第3のデータユニットに関連するそれぞれのシーケンス番号又はタイムスタンプに基づき前記データの欠落の範囲を特定すること
    とを含む、前記システム。
JP2016533421A 2013-08-07 2014-08-07 データフィードの管理 Active JP6434021B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361863062P 2013-08-07 2013-08-07
US61/863,062 2013-08-07
PCT/US2014/050038 WO2015021220A1 (en) 2013-08-07 2014-08-07 Managing data feeds

Publications (2)

Publication Number Publication Date
JP2016527846A JP2016527846A (ja) 2016-09-08
JP6434021B2 true JP6434021B2 (ja) 2018-12-05

Family

ID=51493022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016533421A Active JP6434021B2 (ja) 2013-08-07 2014-08-07 データフィードの管理

Country Status (10)

Country Link
US (1) US9413542B2 (ja)
EP (1) EP3031172B1 (ja)
JP (1) JP6434021B2 (ja)
KR (1) KR102225815B1 (ja)
CN (1) CN105556898B (ja)
AU (1) AU2014305966B2 (ja)
CA (1) CA2920430C (ja)
HK (1) HK1224106A1 (ja)
SG (1) SG11201600888XA (ja)
WO (1) WO2015021220A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2322723T5 (es) 1998-05-08 2013-03-11 The Regents Of The University Of California Métodos para detectar e inhibir la angiogénesis
JP6021120B2 (ja) * 2014-09-29 2016-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データをストリーム処理する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
WO2016194235A1 (ja) * 2015-06-05 2016-12-08 富士通株式会社 観測システムおよび観測方法
JP6911546B2 (ja) 2017-06-06 2021-07-28 栗田工業株式会社 希薄薬液製造装置
JP6835126B2 (ja) 2019-03-28 2021-02-24 栗田工業株式会社 希薄薬液製造装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7764683B2 (en) * 2005-12-16 2010-07-27 Oracle America, Inc. Reliable multicast operating system (OS) provisioning
US20070300234A1 (en) * 2006-06-27 2007-12-27 Eliezer Dekel Selecting application messages from an active feed adapter and a backup feed adapter for application-level data processing in a high speed, low latency data communications environment
CN1878074A (zh) * 2006-07-10 2006-12-13 武汉理工大学 一种基于广播中继的Ad hoc网络多播路由的建立方法
US7680063B2 (en) * 2006-11-10 2010-03-16 Motorola, Inc. Method and apparatus for synchronizing transmissions from multiple transmitters
EP2143274A1 (en) * 2007-03-30 2010-01-13 THOMSON Licensing Robust file casting for mobile tv
US20080253369A1 (en) * 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
US8320302B2 (en) * 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
KR101420099B1 (ko) * 2007-09-21 2014-07-16 삼성전자주식회사 방송 컨텐트 재생 방법 및 장치와 방송 컨텐트 제공 방법및 장치
CN101539873B (zh) * 2009-04-15 2011-02-09 成都市华为赛门铁克科技有限公司 数据恢复的方法、数据节点及分布式文件系统
EP2309668A1 (en) * 2009-10-09 2011-04-13 Thomson Licensing A digital receiver and corresponding digital transmission system server
KR101158020B1 (ko) * 2010-12-29 2012-06-25 전자부품연구원 중계 전송 시스템 및 방법
JP2012151622A (ja) * 2011-01-18 2012-08-09 Sony Corp 受信端末、パケットデータ受信方法、送信端末、送受信システム、中継端末およびパケットデータの中継方法

Also Published As

Publication number Publication date
CA2920430A1 (en) 2015-02-12
US20150043579A1 (en) 2015-02-12
KR20160042933A (ko) 2016-04-20
CN105556898B (zh) 2019-03-29
AU2014305966B2 (en) 2016-12-01
WO2015021220A1 (en) 2015-02-12
AU2014305966A1 (en) 2016-03-17
JP2016527846A (ja) 2016-09-08
SG11201600888XA (en) 2016-03-30
US9413542B2 (en) 2016-08-09
KR102225815B1 (ko) 2021-03-09
HK1224106A1 (zh) 2017-08-11
CN105556898A (zh) 2016-05-04
EP3031172B1 (en) 2017-06-28
CA2920430C (en) 2022-05-31
EP3031172A1 (en) 2016-06-15

Similar Documents

Publication Publication Date Title
US10764369B2 (en) Data storage method and server applicable to distributed server cluster
JP6434021B2 (ja) データフィードの管理
US11218541B2 (en) Data storage method, storage server, and storage medium and system
CN110830283B (zh) 故障检测方法、装置、设备和系统
WO2014166265A1 (en) Method, terminal, cache server and system for updating webpage data
JP2011091464A (ja) ネットワーク構成の想定のための装置、システム
US9754032B2 (en) Distributed multi-system management
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
WO2017071384A1 (zh) 报文处理的方法及装置
US11611485B1 (en) Shared risk link group-disjoint routing in data communication networks
US11930292B2 (en) Device state monitoring method and apparatus
JP6509344B2 (ja) タグ交換パス接続性の検出方法及び装置
CN111552494B (zh) 一种容器组的管理方法、设备、系统及介质
CN114090342A (zh) 存储容灾的链路管理方法及消息执行节点、存储控制集群
CN113111074A (zh) 基于区块链的交互数据监测方法及装置
WO2016082368A1 (zh) 一种保持数据一致性的方法、装置及ptn传输设备
US11816095B2 (en) Metrics and events infrastructure
CN116980280A (zh) 应用于分布式系统的数据处理方法及装置、设备、介质
CN114928654A (zh) 节点状态监测方法、装置、设备、存储介质和程序产品
CN117176815A (zh) 数据发送方法、装置、计算机设备和存储介质
CN117235029A (zh) 一种边缘文件存储方法、系统、电子设备及存储介质
CN112559087A (zh) 信息生成方法、装置、电子设备和计算机可读介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180828

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181107

R150 Certificate of patent or registration of utility model

Ref document number: 6434021

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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