JP6090681B2 - スケーラブルな構造化データ配布のためのシステム及び方法 - Google Patents

スケーラブルな構造化データ配布のためのシステム及び方法 Download PDF

Info

Publication number
JP6090681B2
JP6090681B2 JP2015505983A JP2015505983A JP6090681B2 JP 6090681 B2 JP6090681 B2 JP 6090681B2 JP 2015505983 A JP2015505983 A JP 2015505983A JP 2015505983 A JP2015505983 A JP 2015505983A JP 6090681 B2 JP6090681 B2 JP 6090681B2
Authority
JP
Japan
Prior art keywords
data
bundle
transaction
stream
archive
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.)
Expired - Fee Related
Application number
JP2015505983A
Other languages
English (en)
Other versions
JP2015519639A (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 JP2015519639A publication Critical patent/JP2015519639A/ja
Application granted granted Critical
Publication of JP6090681B2 publication Critical patent/JP6090681B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/25Integrating or interfacing systems involving database management systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照:本願は、2012年4月13日に出願された米国プロビジョナル特許出願第61/623,877号の優先権を主張するもので、該特許出願は、あらゆる目的で参考としてここにそのまま援用される。
本発明の技術の種々の実施形態は、一般的に、データ配信に関する。より特定すれば、本発明の技術の幾つかの実施形態は、スケーラブルな構造化データ配布のためのシステム及び方法に関する。
報告データの品質、一貫性及び入手性を改善するために種々の産業において規制や競争圧力が増大している。データを新たな組み合わせで一緒に結び付けるため、緻密さ、オンライン履歴、冗長性及び収集のような多数の次元に沿って記憶及び処理需要が増大している。更に、データが益々会社内の部門にわたりシェアされるのに伴い、異なるタイミングニーズで部門間の食い違いを管理するため日中バージョニングが必要になってきている。又、各部門は、バッチ処理から増分的リアルタイム及びストリームデータ管理へとそれらを導く道筋を探し始めている。
効率的で且つ一貫したデータ管理の需要が増大しているが、多数の大企業は、欠点のあるACID(原子性、一貫性、独立性、及び恒久性)アーキテクチャーを、スケーラブルなBASEアーキテクチャーに置き換えつつある。大きな又は膨大なデータセットを見て分析する解決策は、平凡になりつつある。というのは、それらの会社は、オープンソースに対して彼等のクラウドスケーリングシステムの観点を公開しているからである。ハイパースケール分析エンジンは、平凡になりつつあるが、データセットの動きを管理するツールは、ペースを保っていない。大企業は、増大する停電のおそれから自分自身を保護することで混乱している。というのは、大きなデータストリームの入手性を管理する手段に欠けるからである。
多数の他の会社も、増大するデータセットを同様に複写できないことに直面している。ACIDアーキテクチャーは、コストがかかり、複雑である上に、データが一貫したもので且つスペース及び時間にわたって入手できること(例えば、部門のデータシェア及びフォレンジック)を保証するのに適切でない。これら増大するデータセットの入手性、一貫性及び統治性についてより高い障壁が一貫してセットされる。
スケーラブルな構造化データ配布のためのシステム及び方法について述べる。ある実施形態では、この方法は、データプロデューサからストリーミングローデータを受け取ることを含む。データは、アーカイブ戦略に基づきデータのパッケージ(即ち、バンドル)に束ねることができる。ある場合には、ストリーミングデータに関連したメタデータが、効率的なポリシー主導ルーティングのためにレバレッジされる。メタデータは、1つ以上のチャンネル(例えば、コントロールチャンネル)に、おそらく繰り返し公表される。データの各パッケージは、マスタークロックにより発生される一連の連続する整数を使用して順序付けされる。データのパッケージは、次いで、アーカイブ化され、そしてデータプロデューサと契約したコンシューマーに配信される(例えば、並列に)。データのパッケージは、データコンシューマから要求があったときに連続する整数により識別された順序に基づいて再生することができる。
又、本発明の技術の実施形態は、ここに述べる方法、方法の変形例及び他の動作を1つ以上のプロセッサに遂行させるためのインストラクションのセットを含むコンピュータ読み取り可能なストレージ媒体も備えている。
又、ある実施形態は、バンドラー、トランスフォーマー、ストリームクロック、及びアーカイブサービスを含むシステムを備えている。バンドラーは、データプロデューサからストリーミングローデータを受け取り、そしてそのデータを一連のデータパッケージへと束ねるように構成され、これは、各データパッケージを、単調に増加する順序をもつ独特の識別子に関連付けることで行われる。トランスフォーマーは、データパッケージを(例えば、アーカイブから)受け取り、そしてデータ契約者に関連したレポートストアのためのロード可能なデータ構造体を生成する。ローダーは、ロード可能なデータ構造体を受け取り、そして論理的順序に基づいてデータ契約者に関連したストレージ装置へそれを記憶する。
ある実施形態は、一連の論理的整数を発生するように構成されたマスタークロックを備え、各整数は、データパッケージのビジネス整合(aligned)、ポリシー主導(宣言的)シリーズにおける単一のデータパッケージに関連している。種々の実施形態において、このシステムは、データプロデューサからのデータをデータ契約者へ連続的にストリーミングさせることのできるデータチャンネルを備えている。更に、メッセージングチャンネルを使用して、データプロデューサからデータ配布システムを経てデータ契約者へ連続的にストリーミングされるデータの現在状態を与えることができる。又、ある実施形態では、データ契約者がデータの再生を要求できるようにするデータチャンネルとは個別のコントロールチャンネルを使用することもできる。
多数の実施形態が開示されるが、当業者であれば、本発明の技術の更に別の実施形態が以下の詳細な説明から明らかとなろう。又、本発明の技術の範囲から逸脱せずに、種々の観点で変更がなされ得ることが明らかであろう。従って、図面及び詳細な説明は、例示に過ぎず、それに限定されない。
本発明の技術の実施形態は、添付図面を使用して記述され説明される。
本発明の技術の幾つかの実施形態が利用される環境の一例を示す図である。 本発明の技術の1つ以上の実施形態によるデータ配布システムの動作の段階を示す図である。 本発明の技術の種々の実施形態によりデータを束ねる1組の動作を示すフローチャートである。 本発明の技術の幾つかの実施形態によりデータストリームを処理する1組の動作を示すフローチャートである。 本発明の技術の1つ以上の実施形態によるデータ配布システムの1組の要素を示す図である。 本発明の技術の種々の実施形態によりデータを配信するための1組の動作を示すフローチャートである。 本発明の技術の1つ以上の実施形態に使用できるデータ配布システムアーキテクチャーの概略図である。 本発明の技術の幾つかの実施形態が使用されるコンピュータシステムの一例を示す図である。
添付図面は、必ずしも正しい縮尺で描かれていない。例えば、ある要素及び/又は動作は、本発明技術の幾つかの実施形態を説明する目的で異なるブロックに分離されるか又は単一のブロックに結合される。更に、この技術は、種々の変更及び代替的形態へと修正できるが、添付図面には特定の実施形態を示して、以下に詳細に説明する。しかしながら、本発明の範囲は、ここに述べる特定の実施形態に限定されない。逆に、本発明は、請求の範囲により規定された技術の範囲内に含まれる変更、等効物及び代替物を全て網羅することが意図される。
本発明の技術の種々の実施形態は、一般的に、データの管理(例えば、ビッグデータの記憶及び移動)に関する。より詳細には、幾つかの実施形態は、スケーラブルな構造化データ配布のためのシステム及び方法に関する。又、幾つかの実施形態は、多量のデータを多数のクライアントに確実に配布するのに適したデータバスを提供する。更に、幾つかの実施形態は、任意のサイズのデータセットを効率的に吸収し、アーカイブ化しそして配布すると共に、リアルタイムストリーミング及び過去のデータの再生を通して大量データを柔軟にポリシーベースで配布するための一体化システムを含む。
データコンシューマは、データの一貫性、入手性及び区画化(CAP)をしばしば希望する。これら全ての属性を瞬時に達成することは、しばしば、困難である。一貫性及び入手性が重要であるが、ある程度の時間的遅延が受け容れられる多くの状況では、遅延型一貫性が有利な妥協である。従って、ここに開示するデータ配布システムの幾つかの実施形態は、一貫性、入手性及び区画化の重要性を保持するが、一貫性のタイミングについてのみ根拠を与える。データにタグ付けするのに使用される独特のクロックスキームを通して、データ配布システムの種々の実施形態は、必要なCAPを最終的に達成する。
規制及び競争圧力から生じるスケールアウト要件に対処するため、種々の実施形態は、BASEアーキテクチャーをレバレッジするデータフロー解決策を提供する。種々の実施形態は、任意のサイズのデータセットを効率的に吸収し、アーカイブ化しそして配布するための一体的システムを提供する。この一体的システムは、スケーラブルな配布(即ち、多数のコンシューマーへの効率的な同時のストリーミング)、一貫性(即ち、一貫したライブバックアップ、データシェア及びフォレンジックサポート)、機敏さ(即ち、ベンダーの独立性及び分析エンジンの迅速な採用)、統治性(即ち、配布に対するセキュアなポリシー主導管理)、及び/又はフォレンジック(即ち、データの過去のバージョンの、高速度での再生及び回復)を提供することができる。
更に、一体型データ配布システムの幾つかの実施形態は、開発者が簡単な用語でデータを識別し(スキーマ及び取引目的)そして大量のデータをバスに提出して、ポリシーで、ストレージ、変換、及び多数のターゲットへの同時のストリーミングを支配することができるようにする。バスを通して送られるデータの全てのバージョンが圧縮されて記憶され、次いで、数秒、数日、又は数年後に、保証された一貫性で、ターゲットへ再生される。幾つかの実施形態は、適用可能な要素ベースの、メッセージ主導のアーキテクチャー、ステートレス及び宣言的セットアップ、並びに特殊な圧縮及び最適化特徴を含めて、より広く適用できる特徴を含む。
幾つかの実施形態は、データフローを内部及び外部ドメインにわたってコスト節約のクラウド技術に橋渡しする。このため、この技術の幾つかの実施形態は、これに限定されないが、次のような種々の配布/非配布フロー組み合わせをサポートする特徴を含む。1)大量データ捕獲及び再生;2)ワイヤ及びディスクのセキュリティのためのポリシーベースの暗号化;3)高スループットの並列トランスポート;4)アンルート(en-route)並列処理又は変換;5)優れた構造化圧縮;6)データ処理を監視及び管理する能力、並びにビジネスレベルでのストレージコスト;及び/又は7)繰り返し可能なデータフローへの及びデータフローからの柔軟な適応。
多くの慣習的システムは、必須のデータフローを使用するが、本発明技術の種々の実施形態は、ルールベースのデータフロー又は「宣言的」データフローを使用する。その結果として、全てのデータの提供、契約、チャンネル化、アーカイブ化及び資格付与が、1組の良く理解されるルールを経て独占的な実施から切り離される。更に、データは、その基礎的なレポジトリーモデルから取り出される。捕獲されたデータは、順序付けされたロー(raw)形態で保持されるので、データは、過去の任意の点から新たなデータベース解決策へと再生され、新規技術を素早く採用するための優れたプラットホームを提供する。内蔵された一貫性メカニズムは、幾つかの実施形態において同時フローを管理する上で助けとなる。これは、異なるデータストアをポピュレートして並列に使用するのを許す。一貫したストアを並列に使用することにより、新規なハイブリッドレポートアーキテクチャーが可能となる。例えば、タンデムリレーショナル及びNoSQLエンジンの組み合わせ効果は、大きなデータレポート挑戦のための新たな性能及びコストスケール原動力を与える仕方でアプリケーション層に利用できるようにされる。
以下の記述において、説明上、本発明の技術の実施形態を完全に理解するために多数の特定の細部が述べられている。しかしながら、当業者であれば、これら特定の細部の幾つかがなくても、本発明技術の実施形態を具現化できることが明らかであろう。
更に、ここに紹介される技術は、特殊目的ハードウェア(例えば、回路)として、又はソフトウェア及び/又はファームウェアで適切にプログラムされたプログラマブル回路として、又は特殊目的回路及びプログラマブル回路の組み合わせとして実施することもできる。従って、これらの実施形態は、コンピュータ(又は他の電子装置)をプログラムしてプロセスを遂行するのに使用される非一時的インストラクションが記憶された非一時的マシン読み取り可能な媒体を含む。マシン読み取り可能な媒体は、これに限定されないが、光学ディスク、コンパクトディスクリードオンリメモリ(CD−ROM)、磁気−光学ディスク、ROM、ランダムアクセスメモリ(RAM)、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、特定用途向け集積回路(ASIC)、磁気又は光学カード、フラッシュメモリ、或いは電子的インストラクションを記憶するのに適した他の形式の媒体/マシン読み取り可能な媒体を含む。
用語
本明細書全体に使用される用語、略語及び句の簡単な定義は、次の通りである。
「接続(connected)」又は「結合(coupled)」及びそれに関連した用語は、動作上の観念で使用され、必ずしも、直接的な物理的接続又は結合に限定されない。従って、例えば、2つの装置は、直接結合されるか、或いは1つ以上の中間媒体又は装置を経て結合される。別の例として、装置は、それらの間に情報を通せるように結合されるが、互いに物理的な接続は共有しない。ここでの開示に基づき、当業者であれば、前記定義に従って種々の仕方で接続又は結合が存在することが明らかであろう。
「幾つかの実施形態では」「幾つかの実施形態によれば」「ここに示す実施形態では」「他の実施形態では」等の句は、一般的に、その句に続く特定の特徴、構造又は特性が、本発明技術の少なくとも1つの実施形態に含まれ、及び2つ以上の実施形態に含まれることを意味する。更に、そのような句は、必ずしも、同じ実施形態又は異なる実施形態を指すものではない。
ある要素又は特徴が含まれるか又はある特性を有しても「よい(may)」か、そのように「できる(can)」か、「できた(could)」か、又は「かもしれない(might)」と本明細書に記載される場合は、その特定の要素又は特徴が含まれ又はその特性を有する必要はない。
一般的な説明
図1は、本発明技術の幾つかの実施形態が利用される環境100の一例を示す。図1に示すように、データプロデューサ110A−110Nは、データを発生し、そのデータは、データ配布ネットワーク120を経てデータコンシューマ130A−130Nへ配布される。種々の実施形態によれば、データ配布ネットワーク120は、特徴の組み合わせを通してスケーラブルなデータフローを達成する。データプロデューサ110A−110Nにより発生されたデータは、構造化され、そして全てのフロー処理要素に、その構造の意識を与えることができる。この意識は、ランタイムに注入され、そしてより動的なリソースシェアでは、必要に応じて、ワークサイクルごとに注入することもできる。データプロデューサによって発生されたデータを系統的に構造化することにより、種々の実施形態は、次の特徴の1つ以上から効果を取り入れることができる。1)効率的なインプロセス及びオンディスク列圧縮;2)データ及びコントロールフローの分離;3)透明度、及び重要なビジネス構造をサーフェイシングすることによるフローの監視;4)契約、フィルタリング、フォーキング又は合流によりストリームを効率的に管理する能力;及び5)構造化データサービスを、ターゲットデータストアの上流の重要な発生サービスのようなフローへ植え込みする能力。
幾つかの実施形態において、データ配布ネットワーク120は、ワークサイクルごとに状態管理及び回復のために外部サービスへ全ての製品をプッシュするフロー処理要素を備えている。状態をセーブするサービスは、その目的のために特殊化される。このように、システムの全ての厳しい処理要素は、外部サービス状態を回復し、そしてサイクルからサイクルへ完全に動的なものとされる。処理のステートレスルールは、下流製品から、管理状態において特殊化する指定のステートフルサービス(処理なし)を通して進行を読み取ることである。同様に、フロー処理要素は、そこにプッシュされた入力を受け取るか、又は宣言された上流サービスからそれに要求するだけである。
設計の実施形態を可視化する1つの方法は、フロー処理要素をパイプのセグメントとして考えることであり、パイプの適合する上流及び下流セグメントに動的に取り付けることができる。パイプの接続は、以前の状態情報をアップロード又は回復する必要なくステートフル要素間でより多くの処理をスピンアップできるという点で非常に動的である。種々の実施形態では、他の全てのステートフルサービスを最終的に回復できるステートフルサービス要素は1つしかない。これは、ローデータアーカイブサービス140である。幾つかの実施形態では、全ての下流状態サービスのアーカイブ要件を緩和することができる。
図2は、この技術の1つ以上の実施形態によるデータ配布システム200の動作段階を示す。図2に示すように、データ配布システム200は、1つ以上のデータプロデューサ110A−110Nからストリーミングデータを摂取することができる。以下に詳細に述べるように、データは、次いで、個別のデータパッケージへと束ねられ、これを圧縮することができる(例えば、列圧縮を使用して)。これらの個別のデータパッケージは、次いで、1つ以上のデータコンシューマへ配布される。実質的に同時に、個別のデータパッケージは、独特の識別子が与えられ、そしてアーカイブ化される(図2には示さず)。データコンシューマは、次いで、個別のデータパッケージからデータをアンパックし、そしてレポートを発生するか、さもなければ、データを使用する。
データ配布システム200は、プラグ可能要素アーキテクチャーを有する。データ配布システムは、処理要素及びステートフルサービスを有する。幾つかの実施形態では、処理要素は、2チャンネルパイプセグメントを含み、一方のチャンネルは、データフロー用であり、そしてもう一方のチャンネルは、コントロールフロー用である。ステートフルサービスは、個別のデータ及びコントロールチャンネルも有するが、図2に示すように扇状に広がる多数の行先に対してデマルチプレクサとしても働く。要素は、言語及びプラットホーム独立である。要素間の契約は、メッセージング契約/公表を通して実施され、これは、記憶/フェッチ特性の狭配信API及びスタートアップ/シャットダウンのプロセスコントロールAPIを通る計装出力を含む。
外部要素は、動作の観点から非常に類似した振舞いをする。それら要素は、配布されたマスタークロックに整合された一貫した計装情報を公表し、システムを通して進行及び容量を理解できるようにする。計装は、データパッケージの独特の識別子(即ち、バンドルID)と整合させることができる。即ち、バンドルを消費し始めるとき又はバンドルの処理完了時に計装事象が生じる。計装のこの観点は、計装事象をマスタークロックでラインアップさせる。マスタークロック事象でのラインアップ計装は、ストリームクロック事象と整合された計装をコントロール事象として作用させることができる。
データ配布システム200の要素は、基本的なトランスポートを越えて延び、データの配信終了に向けて任意のステップで使用される。幾つかの実施形態は、データを将来アクセスできるフォーマットへ整形するデータキュレーションプロセスを提供する。データを回復又は再生する必要がある場合には、アーカイブが、独特の識別子に基づいてデータの厳密な複写を探索して再送信する。例えば、一貫した計装で二重パイプステートレスプロセスモデルをたどる。このように、単一のツールセットでフローを通して常に容量及び監視を管理することができる。
データ配布システム200は、事象を効率的に最大にすることができる。というのは、恒久性要件がアーカイブから本質的に下流ではないからである。恒久性メッセージは、パッケージング及びアーカイブ化のためにバンドルにすることが要求されるだけである。その点から、独特の識別子及びパッケージングに鑑み、全てのデータが繰り返し可能となる。非恒久性トピックを使用して全てのアクティビティをバンドラーからその下流へ公表し、インフラストラクチャーの負担が相当に減少される。
データ配布システム200の要素構成を宣言的にすることにより、システムは、上述したように、フロー処理要素を動的にスピンアップすることができる。データ構造及びデータソースモジュールを宣言的にすることにより、システムは、それらソースにおける動作上の透過性、及びどんなデータがどこから入手できるかのパブリックカタログを構築する簡単な手段を提供する。宣言的契約は、データ配布システム200を使用して部門間でシェアされるデータフローを正確に理解するのに使用される。全てのデータ及びコントロール信号がシステムを通してプッシュされ、従って、動的なセットアップ及びスケーリングと共にデータの公表者と契約者との間の宣言的契約及び切り離しを許す。
図3は、本発明技術の種々の実施形態によりデータを束ねるための1組の動作300を示すフローチャートである。受信動作310は、1つ以上のデータプロデューサからストリーミングデータを受け取る。決定動作320は、バンドリングパラメータに基づいてストリーミングデータの異なる小さな断片を束ねるためにバンドリングパラメータ(例えば、バンドルのサイズ)を決定する。バンドリングパラメータは、どのようにデータを(例えば、コンテンツ、ソース、予想される使用、等に基づいて)データパッケージにグループ化し又は束ねるべきか(例えば、図5に示したバンドラーにより)ビジネスで決定できるようにするビジネスルールを含む。ある場合には、バンドラーは、変換が行われる前にローメッセージ又はデータをアグリゲートする。バンドルを順次に順序付けるため単純に増加するバンドルID又は他の独特の識別子がバンドルに指定される。この独特のIDは、バンドルストリームデータの保証された順序をレバレッジする必要のあるバージョンの報告、検証、及び他の問合せ活動においてレバレッジされるパブリックIDである。
記憶動作330は、束ねられたデータパッケージをアーカイブに記憶する。公表動作340は、コントロールチャンネルにバンドルに関連したメタデータを公表する。幾つかの実施形態において、メタデータは、バンドルIDを含む。メタデータをコントロールチャンネルに公表するのに加えて、公表動作350は、メタデータを個別のストリームに公表する。コントロール情報は、非恒久性トピックに関して送出することができるが、データそれ自体と共にコントロールデータの同一コピーが入手できる。パッケージと共にコントロールデータを含むことの幾つかの効果は、次のことを含む。1)パッケージが全ての事象及びデータを含むときにアーカイブからシステムの厳密な振舞いを読み取って再生することができ;及び2)バンドルそれ自体に位置するインデックス情報を含むコントロール概要情報がファイルの高速スキャン(インデックスのみ)を許し、多くの場合にファイル全体を通してスキャンする必要性を排除する。
図4は、本発明技術の幾つかの実施形態によりデータストリームを処理する1組の動作400を示すフローチャートである。これら動作の1つ以上は、提出サービス又はバンドラーのような種々のシステム要素によって実行することができる。図4に示したように、受信動作410は、1つ以上のデータプロデューサからストリーミングデータを受け取る。バンドリング動作420は、図3に示すように、ストリーミングデータをデータパッケージへと束ね、それらパッケージは、順序付け動作430により独特の識別子が指定される。配信動作440は、データパッケージを、指定された独特の識別子と共に、1つ以上のデータコンシューマへ配信する。
バンドリング動作420は、データ配布システムに入る情報の異なる小さな断片を、データ、データパッケージ又はバンドルの、論理的にクロックされる大きなブロックへとアグリゲートすることができる。バンドリング動作420により行われる大きなデータ流のアグリゲーションは、システムがデータ及びコントロールの分離をレバレッジするのを許す。バンドルのサイズを調整しそしてバンドルのメタデータに含まれる情報をコントロールすることにより、システムは、バンドルのメタデータ(コントロールデータとしても知られている)によりデータを管理するための何倍もの効率を生じさせることができる。種々の実施形態は、コントロールデータのコンテンツを選択して大きなデータフローに対する判断を調整することができる。
バンドリング動作420によるデータのアグリゲーション又は「チャンキング」は、IO性能を改善するための直接的で且つ簡単な利益も有する。幾つかの実施形態において、バンドリングは、独特のIDでバンドルの順序をシリアル化及び識別することに厳密に関連し、これは、データの信頼できる配布を形成する上で有用である。データフローは、シリアル化及び識別により与えられる一貫した順序なしに多数の位置(例えば、一次及びバックアップ)で確実に再現することはできない。
図5は、本発明の技術の1つ以上の実施形態によるデータ配布システム500の1組の要素を示す。図5に示すように、データ配布システム500は、バンドラー510、アーカイブ520、トランスフォーマー530、レポジトリサービス540、ローダー550、レポートストア560、及びストレージ570を備えている。
データフローの関連から、バンドラー510は、提出サービスとアーカイブサービス520との間に位置する。提出サービスは、図示されていないが、1つ以上のデータプロデューサからローストリーミングデータを受け取り、そしてローデータをバンドラー510へ供給する。バンドラー510は、特定のデータストリームに対してシリアルに順序付けされたバンドルを生成し、即ちメッセージフローの形式ごとに特定の1組の整合されたバンドラープロセスがある。これらの整合されたプロセスは、アグリゲートされたデータ表現を生成し、そしてそれをアーカイブサービスに送る。
バンドルが発生されて、単純に増加する順序で流されるとすれば、データフローの異なる部分の動的な加速を容易にするために異なる「バンドルストリーム」が生成され、ここで、ある選択基準に基づいて、あるバンドルが他のバンドルより迅速に流れるようにされる。メタデータの選択は、一連のバンドルを識別しそして別々に列挙するのに使用される。
例えば、多数のバンドルを次の基準により構造化することができる。Business Date, Type: ={Greeks | CreditGreeks | UnderlierAttributes}、及びRegion: = {GL|AS|EU|AM}。これは、business date(取引日)ごとにデータ配布システムを通して流れる12バンドルのストリームを生じ;即ち、各バンドルストリームの独特の識別子は、プライオリティ決め、並びに途切れのない順序付けされた単調に増加する独特のIDを許すために個別のものでなければならない。
幾つかの実施形態では、バンドルのコンテンツは、データと一緒にバンドルへとパッケージングされるコントロールデータを含む。コントロール情報は、非恒久性トピックにも基づいて送られるが、その同じコピーをデータ自体と共に利用することができる。幾つかの効果として次のものを含む。1)バンドルは全ての事象及びデータを含むので、システムの厳密な振舞いをアーカイブから読み取って再生することができ、そして2)バンドルそれ自体に位置するインデックス情報を含むコントロール概要情報は、ファイル(インデックスのみ)の高速スキャンを許し、それにより、全ファイルを通してスキャンする必要性を低減し又は排除する。
バンドルは、変換が行われる前のローメッセージのアグリゲートである。バンドルは、単調に増加するバンドルIDである独特の識別子を経てシリアル化される。この独特の識別子は、バンドルストリームデータの保証された順序をレバレッジする必要のあるバージョンの報告、検証、及び他の問合せ活動においてレバレッジされるパブリックIDである。バンドルメッセージは、次の5つの区分、即ち、1)概要区分、2)品質区分、3)インデックス区分、4)チェック和区分、及び/又は5)データ区分、のいずれかを含む。
バンドルの概要セグメントは、重要情報を伴うバンドルと、データの全ての形式、例えば、束ねられるデータストリーム、バンドルのシリーズ番号、表データの行カウント、及びデータセグメントサイズにわたって一般的に関心のあるバンドルのトップレベル属性も、独特に識別するのに使用される。幾つかの実施形態において、概要セグメントは、全ての他の区分とは独立して、高速コントロール信号として送られる。
品質区分は、ポピュレートすべきソーシングプロセスの裁量でバンドルメッセージに軽い重みで予約される任意のセグメントである。例えば、価格プロセスは、健全なチェック欠陥のような、それが発生するデータの性質に関する指示子を供給する。健全なチェック欠陥をデータとは独立して消費のための特殊なエリアに入れることにより、ソーシングが高速度情報を、この品質セグメントの契約者に供給する。インフラチームは、定刻前の不良データを、それがバンドラーにヒットする前に知るため、そのような信号に契約してもよい。又、MRアナリストも、健全なチェック欠陥の早期警報を得るために、ある信号に契約する。これらメッセージセグメントのサイズは、物理的に制限され、そしてその有用性は、データが与えられるときにデータをどれほど充分に編成するかに依存する。
インデックスセグメントとは、追跡及び問題解決に有用な凝縮形態でバンドルのコンテンツを指示する任意のバンドルセグメントである。品質セグメントとは異なり、インデックスセグメントは、表データに適用されるビジネス整合ポリシーベースの重要なルールを使用してバンドラーにより構築される。インデックスセグメントは、データそれ自体のサイズの一部分であるが、概要及び品質セグメントより若干大きいことが予想される。
チェック和メッセージセグメントは、データセグメントを含むメッセージに含まれる。チェック和メッセージセグメントを含ませることにより、データ負荷は、全ての配布位置において独立して検証可能となる。ある実施形態では、チェック和メッセージセグメントは、データ区分における表データの全ての列のアグリゲーション/和/ハッシュを表わすチェック和を含む。
幾つかの実施形態において、バンドルのデータセグメントは、メッセージ又はデータの集合体の表再公式化である。データは、中性の形態で保持される。データのフォーマットは、到来するメッセージフォーマットとの一貫性を保つことと、多数の他のフォーマットへ変換するために最適化されること、との間でバランスをとることにより選択される。典型的に、データセグメントは、バンドルとして許される最大サイズまでの任意のサイズである。
幾つかの実施形態において、アーカイブサービス520は、全てのセグメントを含む完全なバンドルを記憶する。完全なバンドルを記憶することにより、再生を使用する新たなシステムのフォールトトレランス及びバックポピュレーションを与えることができる。更に、完全なバンドルを記憶することは、コントロールメッセージが恒久性である必要がないので、軽い重みのメッセージングに対して最適な有益さ及び影響も有し、即ち全てのメッセージセグメントが、利用可能なアーカイブストアに保持される場合には、より効率的な配布の利点を取り入れるためにアーカイブポーリングだけで非恒久性メッセージング戦略を支援することができる。
概要セグメントは、バンドルを独特に識別するための重要情報を与え、そして同じバンドルに関して異なるメッセージを関連付けできるようにする。概要区分の非重要要素は、監視ツールにおいてセグメントを見て視覚で識別するのに有用な幾つかの一般的特性を与える(例えば、データカウント、サイズ、データフロー、及びバンドル番号)。データセグメントを有するメッセージは、チェック和セグメントも含む。チェック和セグメントをデータセグメント共に含ませることにより、配布される独立した位置は、変換後にデータの品質を独立して検証し、そして他の位置を相互参照する必要なくアップロードする。この独立性は、大量のデータをロータッチで確実に配布する重要な実現要素である。
これらの制約を使用して、何が必要かに基づいて他のメッセージ組み合わせを生成することができる。簡単な戦略は、データ以外の全てのものをコントロールメッセージとして含む軽い重みのメッセージを生成することである。セグメントが一貫して軽い重みである場合には、この戦略で特定のデータストリームに対して2つのバンドル形式のみが生じ、それは、概要、品質、インデックス、及びチェック和情報を含むコントロールメッセージと、それらの全てにデータをプラスした完全データメッセージとである。バンドラーは、動的メッセージカーゴに対して構成されたルールによる2つのメッセージ形式を公表することができる。
例えば、概要区分は、次の構造を含む。各値の名前は、「:=」の前に示され、そして値は、排他的アイテム、データの形式、又は別の構造を列挙したリストである。
Figure 0006090681
更に、メッセージパーシングに基づいて選択されるか又はその前に検査される必要のある値がメッセージプロパティ区分に含まれる(ストリング及び番号のみに制限される)。例えば、フィルタリングを許すために、バンドルストリームのストリンジファイされた(stringified)バージョンがストリングメッセージプロパティとして追加される。日付、タイムスタンプ、及び解釈のためにパースされねばならないデータは、メッセージのペイロードのみに含まれねばならない(JSONテキスト)。
データは、バンドラー510により束ねられて、独特な識別子でタグ付けされ、そしてアーカイブ520に入れられる。トランスフォーマー530は、アーカイブ520からデータを引き出して、コンシューマーに馴染み易い負荷データに変換する。ターゲットレポートストア560と整合されたローダー550は、データが契約に基づきロードされるように保証する(シリアル及び原子的バンドル)。
アーカイブ520及びレポジトリサービス540は、状態ストレージを管理する。アーカイブサービスは、システムを通る全てのフローをリピートする。配布データの一貫性を達成するには、データに影響する事象を順序付けるための解決策を要求する。データ配布システム500は、事象をデータとして配布し、そして単調に増加する独特の識別子を経て全てのコンシューマーへの配信の順序及び完全性を達成することで、一貫性を達成する。データベース管理に馴染みのある用語でこれを入れるため、データ配布システム500は、トランザクションログ要素を効率的で且つ一貫した仕方で全てのデータベース及び全ての形式のデータストアに配信するのを管理する。トランザクションログ要素ストリームは、フローである。これは、技術者がデータベースについて通常考える方法の逆である。トランザクションログは、通常、多数のデータベースの先頭ではなく、1つのデータベースのデータを支援すると考えられる。
悪い環境の下で一貫性を保証するために、トランザクションデータのこのストリームが持続されそして再生可能とされる。この持続される再生可能なストリームは、パイプライン状態の中心である。これは、回復可能性について入念に管理する必要のある唯一の状態である。このストリームの下流の全ての要素及び状態は、ストリームがどんな割合で流れても回復可能である。
システムにおいてトランザクションログ及びデータベースの位置を逆転すると、そのようなパラダイムに構築されるアプリケーションに複雑さを付加する。この形式の配信のトップに構築されるアプリケーションは、異なる物理的な位置間でデータを比較する必要がある場合にはバージョンメタデータを忘れないことが必要である。データ配布システムの1つの目標は、配布されるバージョニングスキームに対して考えられる最も簡単な基礎を確立することにより、このバージョニングパラダイムをできるだけ採用可能で且つ簡単にすることである。このバージョニングスキームの中心には、正確な配布を目的とする新規なクロッキング方法がある。
本発明の技術の種々の実施形態は、単調なコンシューマー整合クロック及びストリームを使用する。クロック及び順序付け装置の一例は、途切れなく増加する一連の整数である。データ配布システム500は、各指定のデータストリームに対して、データを順序付ける一連の連続する整数チック(即ち、マスタークロック)が1つ及び1つしかないことを保証する。
マスタークロックの最も重要な観点は、コンシューマーに対する整合(alignment)である。クロックのチックがコンシューマーのアップロードと整合される。各チックは、データ又は「バンドル」のロード可能なセットを表わす。クライアントがシステムにおける一貫性の利益を得るために、クライアントは、トランザクションにおいてクロックにより与えられる順序で各バンドルをロードしなければならない。換言すれば、各バンドルは、原子的アップロードクライアントである。これは、必要なバンドルをフェッチするための決定論的ネーミングスキーム及び配信されるべきバンドルの決定論的シリーズ(単調に増加する順序)をもつことにより、クライアントにとって容易なものとされる。
データストリームは、独立したデータフローを確立するためにデータシリーズから構成される。これが技術的に意味するものは、ストリームがそれ自身の独立した一連のクロックチックを有することである。これは、ストリームが他のストリームとは異なるレートで実行されるのを許す。ストリームを宣言するためにデータセットにおける寸法のセットが呼び出される。典型的に、それらは、異なるフロープライオリティと整合される。例えば、クライアント価格評価より成るデータセットが、取引日付、及び選択取引日付の取引価格によりストリームに分割された場合には、取引をより高いプライオリティで他の取引へ流すことが許される。
本発明の技術の幾つかの実施形態は、データを消費しそして書き留めた直後に参照不変アーカイブを生成する契約を許すことで、ストリーミングデータを参照する能力を許す。配布のために生成されるバンドルは、ストリーミングパッケージ(バンドル)アイデンティティに依存する良好に定義された参照戦略を通して永久に識別可能である。この解決策は、ビジネス整合アーカイブルールとで、ストリーミング及びアーカイブデータがディスクに書き込まれるや否や、それらデータをほとんど橋絡する。データ又はデータに関連したレポートに関する各信号は、パッケージに対する永久的な参照をレバレッジすることができる。データの血統には、ストリーミング環境において非常に直近の(ほぼリアルタイムの)サポートが与えられる。
多数のターゲットへの配布配信は、悪夢のような和解要求を導入する。データ配布システム500の種々の実施形態は、チェック和によりフローに和解を含ませる。チェック和は、各データバンドルと共にコントロールメッセージに含まれる。これらのチェック和は、データが、ターゲットストアへの配信後に、予想通りになることを保証するために使用される。
データ配布システム500は、列チェック和戦略を使用することができる。この戦略は、行チェック和より3倍も有効である。第1に、列チェック和は、列圧縮最適化とインラインである。それらは、行チェック和と比較したときに非常に効率的である。第2に、列チェック和は、異なるデータストアにわたって機能し、そして異なるフロート表現をもつプラットホームにわたってエラーを丸めるための寛容度が与えられる。第3に、列チェック和は、クライアントがデータの列のサブセットにしか契約しない場合に列契約とのより有効な組み合わせとなる。
図6は、本発明技術の種々の実施形態によりデータを配信するための1組の動作600を示すフローチャートである。図6に示すように、データ配布システム内に延びる2つのスレッドがある。一方のスレッドは、プロデューサから受け取られるデータパケットをアーカイブ化しそしてデータ契約者へ自動的にプッシュするのを許す。第2のスレッドは、データ契約者が若干のデータの再生を要求するのを許す。
受信動作610は、1つ以上のデータプロデューサからストリーミングデータを受け取る。バンドリング動作620は、データを、順序付けされた独特の識別子が指定されるデータパッケージへ束ねる。データパッケージは、次いで、アーカイブ動作630を使用してアーカイブ化される。変換動作640は、データパッケージを、契約者により要求されたロード可能なフォーマットに変換する。データパッケージは、次いで、配信動作650を使用して望ましいフォーマットでデータコンシューマに配信される。
再生動作660が、データパッケージの幾つかを再生する要求を受け取ると、検索動作670がアーカイブから望ましいデータパッケージを検索する。これらのデータパッケージは、次いで、変換動作640を使用して、ロード可能な要求フォーマットへ変換される。データパッケージは、次いで、配信動作650を使用して望ましいフォーマットで配信される。
図7は、本発明技術の1つ以上の実施形態に使用できるデータ配布システムアーキテクチャー700の概略図である。図7は、メッセージ及びコントロールデータをアーカイブからDC2アーカイブへどのようにして厳密に複写するか示す。アーカイブのフォールトトレランスには2つの基本的な選択肢がある。それは、保証されたローカル複写及び区画横断(across partition)(例えば、DC2アーカイブへの)である。MRTの場合には、データフローが再現可能であり、従って、区画への15分複写を伴うローカル保証がそれらのニーズを満足する。トランザクションアクティビティの場合には、区画を横断するデータ複写の高度な保証が是認される。
アーカイブサービスは、最大スループットを得るために層型(tiered)ストレージを使用する。この層型ストレージは、アーカイブが大量デマルチプレクサ(一回書き込み、多数回読み取り)としてのその役割を果たせるようにする。データは、アーカイブサービスに書き込まれ、その後、ほとんど即座に多数のコンシューマーにより読み取られる。本発明の技術の種々の実施形態は、アーカイブからのバンドルのコンシューマーのためのAPIを含む。APIは、非常に簡単であるが、どんなバンドルが求められるか宣言するためのバンドルのコンシューマー(APIの発呼者で、主としてトランスフォーマー)の責任を明確にし、これは、コンシューマーが消費すべきバンドルの状態を知るという原理を実施する。これは、一方向依存性及び欠陥回復の責任を明確にするのを許す。例えば、APは、次のような単一の機能である。
MsgArchive::Get Bundles (データストリーム、スタート番号、最大バンドル、最大データサイズ、最大待ち時間)
又、データコンシューマは、アーカイブ書き込みの後に始動される事象を通してアーカイブと間接的に対話することもできる。小さなバンドルにおいて全てのデータを公表することで、原子的取り扱い及びリアルタイムロードを要求する小さなメッセージの頻度が増加するときに、この技術の種々の実施形態を効率的に且つ柔軟に機能させることができる。
トランスフォーマーは、データを部分的に変換するだけである(即ち、それらは、それらがアーカイブサービスから消費する構造化データの基本的スキーマ、アグリゲーション及びピボットを維持するという責任がある)。「トランスフォーメーション」とは、アップロードに馴染みのあるフォーマットへの変換である。各トランスフォーマーは、特定のデータストリームに対して連続する一連のバンドルを消費し、そしてそれを、「トランスフォームレポジトリサービス」へアップロードするロード可能なフォームへと変換する。多くの場合、トランスフォーマーの生成物が多数のローダープロセスにより消費される。
トランスフォーマーは、ステートレスであり、データストリームに対してインクリメントな進行をする。その結果、トランスフォーマーは、それらの出力から(トランスフォームレポジトリから)状態をピックアップし、従って、レポジトリーの出力を単に削除するか又は移動することにより非常メンテナンスが可能となり、即ち、トランスフォーマーは、それが書き込むレポジトリーにおいて最後のバッチの終わりから動作を継続する。消費は、動的なメッセージカーゴ構成に基づいてメッセージのプッシュ及びプルを容易にする「心臓鼓動での契約(Subscription With Heartbeat)」パターンをたどる。トランスフォーマーは、バンドルストリームごとに動作し、各ストリームが分離して発生されて、あるバンドルストリームが別のバンドルストリームを妨げるのを防止できるようにする。種々の実施形態によれば、トランスフォーマーは、データのプロデューサ/プロバイダーにより所有され、そして外部コンシューマーがバンドルメッセージを直接消費しないよう保証するためのローデータバンドルの唯一のコンシューマーである。むしろ、トランスフォーマーは、宣言された契約に従うトランスフォーメーションの生成物を消費することができる。
このサービスは、バンドルのためのアーカイブサービスに非常に類似しているが、トランスフォーマーの変換生成物を記憶する。変換されたデータパッケージは、バンドルより著しく大きくアップロードパッケージにおいて多数のバンドルで構成される。
ローダーは、最適化されたパッケージをトランスフォームレポジトリサービスから指定のターゲットストアへアップロードする。ローダーの構成は、ランタイムに与えられ、そしてトランスフォームレポジトリサービス、ターゲットストア及びデータスキーマ情報を含む。トランスフォーマー/アーカイブサービス関係と非常に良く似たこととして、ローダーは、トランスフォームレポジトリコントロール信号と契約し、そしてトランスフォームレポジトリサービスから必要なものをピックアップする。又、トランスフォーマーと同様に、ローダーは、受け取ったバンドルがリピートされないよう保証するためにターゲットステートフルストアにおける状態をレバレッジする。この責任は、トランスフォーマーAPIが、フェッチすべきバッチのスタートバンドルIDを与えるようにローダーに要求することにより、明確にされる。ターゲットストア内のロード状態及びどのように処理されたかの見識があるのはローダーだけであり、従って、ローダーがデータの要求を主導することは道理にかなっている。これは、ローダーが純粋にポーリングすることを意味しないことに注意されたい。トランスフォーマーと同様に、ローダーは、「心臓鼓動での契約」解決策をレバレッジし、最良のプッシュ効率を与えるデータを、付加的な心臓鼓動監視信頼性で与えるデータを収集する。
ローダーは、各データストリームに対してターゲットストアへ付加的なロードコントロールストリームを生成する。この第2のストリームは、ストア特有のロードテーブル履歴及びチェック和の和解結果である。これは、特定データターゲットのロードレコード及びチャック和結果を表わす。データストリームは、このロードレコードストリームとは独立であることに注意されたい。
この技術の実施形態により生成される種々のストリームは、種々のレポートストアへの大量ロードを容易にするように設計することができる。このため、及びその場での更新が多数の形式のストアのための選択肢ではないために、データストリームは、多くの場合、不変事象のテーブルとして最良に捕獲される。この解決策を取るとき、データのテーブルは、全てのそのようなレポートストアにわたって論理的に同一になる。これは、タイムスタンプのようなインスタンス特有の概念を含まない。インスタンス特有の全ての情報は、「ロードコントロールテーブル」に捕獲される。タイムスタンプを除去することの1つの効果は、ロードコントロールテーブルはインスタンス特有であるが、システムにわたって論理的に同一であるデータテーブルの綺麗な分離に生じる簡単さである。独特の識別子を準ユニバーサルクロックインクリメントとして使用することができ、従って、相対的なバージョンを理解するのにデータテーブルにタイムスタンプが必要でなくなる。ロードコントロールテーブルは、インスタンス特有の時間を特定のデータストアのストリーム時間へマップさせる。
ある実施形態は、任意の長さ又はサイズの配布トランザクションを、そのトランザクションに対して物理的ではなく論理的な解決策を通して、多数の異なるデータストリームにわたってサポートする。トランザクションの完成は、行き先において実施され、時間切れを構成することができる。トランザクションは、時間切れのための付加的なサービスを伴うある形式の論理的データセットである。配布型トランザクションは、1つ以上の実施形態において、特殊なトランザクション条件をデータから個別のチャンネルを経て流し、そして意図されたトランザクションの全てのデータにトランザクションIDを指定することにより達成される。トランザクション信号は、トランザクションIDタグ及び時間切れスレッシュホールドを含む。“RowCount”のようなルール及び“2555”のような尺度に一貫した完成基準は、この初期の信号が分かればそれと一緒に送られるか、又はそれが分からなければ、その後の時点で送られる。このアイデンティティと共に提出される全てのデータは、トランザクションの一部分と考えられる。論理的トランザクションの考え方は、全てのトランザクション情報を、それが保留中及び非コミットのトランザクションデータでも、各ターゲットデータストアへ流すことである。トランスポートプロセスのマシンは、ストリームとストリームとの間のトランザクションへ情報を完全に不可知論的にプッシュする。
トランザクションのデータエレメントには独特のトランザクションIDが指定される。バンドラー、トランスフォーマー及びローダーのような要素の場合、このIDは、特殊な目的をもたないデータの別の次元に過ぎない。トランザクションIDは、1つ以上のストリームにわたりデータエレメントに、制約なく、指定される。複雑な緻密なトランザクションの精巧なトランザクション取り扱いについては、トランザクションIDに指定されるエレメント間のギャップも許され、従って、データエレメントにわたるトランザクションを特定することができる。
トランザクションの完了基準は、個別のトランザクションストリームを経て全てのエンドデータストアへ配布される。完了基準は、トランザクションにより影響される各ストリーム(ランディングテーブル)において予想される行の数と同程度に簡単であるか、又はルール主導の構成で許されるものと同程度の複雑さである。完成基準は、ある実施形態では、時間切れインターバルを含む。バンドラー、アーカイブ、トランスフォーマー、及びローダーの観点から、トランザクションストリームは、データ配布システム内の他のものと同様のストリームである。他の高速軽量ストリーム(ユーザ編集ストリームのような)とは異なる特殊な取り扱いは必要ない。完了基準は、参照するデータの前又は後の時間に到着する。
その結果として、配布型トランザクションを優雅にサポートするために、完了基準のないトランザクションIDは、保留中のトランザクションと考えられ、そしてそれらに関連した全てのデータは、未完成と考えられる。IOW、即ち非ゼロトランザクションIDの存在は、全て、データをトランザクションの一部分とマークする必要があるものであり、そしてサポートトランザクション情報の不存在は、完成基準をまだ満足しないトランザクションとして厳密に解釈される。
特殊な「トランザクション完了プロセス」(又はTCP)は、指定の権威あるレポートインスタンスに対して実行され、それが取り扱うトランザクションストリームに影響する全てのローダー事象に契約する。このプロセスは、到着したデータ及び完了基準に基づいてトランザクションが完了したかどうか決定するためのロジックを全てカプセル化する。この複雑なロジックを1つのプロセスに閉じ込める実施及び構成の効果と、この複雑さをレポート/問合せAPIから締め出す効果とに注意されたい。TCPは、全ての保留トランザクションのトランザクションIDによりキーされる簡単なキャッシュを保持する。データが到着するにつれて、「エンドデータストア」におけるトランザクション完了状態を更新しそして完了したトランザクションをキャッシュから除去する。他の健全なシステム要素と同様に、TCPは、スタートアップ/回復のためにエンドデータストアの状態だけをレバレッジすることができる。完了状態は、トランザクションストリームへの公表により更新される。これは、配布される全てのストアに一貫したトランザクション状態を与える。
完了状態事象は、トランザクションIDと、トランザクション完了基準を満足するデータの最大バンドルIDとを含む。データストリーム当たり1つの行エントリーをもつ正規化テーブルがトランザクション状態に対して使用される場合には(一般的な、融通性のある、そしておそらく最良の解決策)、データが予想されるテーブルのみについて完了基準を特定することができ、そして完了状態バンドルIDは、トランザクションを完了したデータの最大バンドルIDとなる。ストリームを処理する他のパイプライン要素と同様に、TCPは、(監視、サポート及び拡張の一貫性のために)全てのトランザクションストリームバンドルに対する開始及び終了取り扱いを公表する。しかしながら、TCPは、他のデータストリームからの信号の受信を公表する必要はない。というのは、それらのストリームにおいて書き込み又はコミットを取り扱うのではないからである。TCPは、所与の時間限界を越えるトランザクションの状態を「時間切れ(Timed Out)」とマークすることにより(及び保留中トランザクションのキャッシュから時間切れしたトランザクションを除去することにもより)時間切れを取り扱う。
レポート問合せは、バンドルIDが「最低保留中TranバンドルID」より小さいときに、問合せデータに対して「トランザクションストリーム」の完了基準をレバレッジする。トランザクションの最も簡単な解釈は、「トランザクション状態」が「時間切れ」に等しくない保留中トランザクションの開始以上であるデータバンドルを無視し、それにより、時間切れしたトランザクションを無視することである。
より複雑なトランザクション取り扱いの場合に、TCPは、保留中及び進行中トランザクションのキャッシュを、特定の重要なスペースにおける重畳(次元の組み合わせ)についてチェックし、そして他の保留中トランザクションの重要なスペースと衝突するその後のトランザクションについてトランザクション失敗を公表し/書き込みするように改善される。
便利なことに、緻密なトランザクションのためにTCPへつぎ込まれる複雑さの増加で問合せの複雑さを減少することができる。複雑な緻密なトランザクションの問合せは、最低の保留中TranバンドルIDからの選択を必要とせず、即ちそれらは、トランザクションが首尾良い完了状態を有するところだけを選択する。トランザクション完了取り扱いを単一のプロセスへと設計することにより、TCPを開始するときにストリームのセットに対する異なる処理戦略をコンフィギュレーションルールとして構成することが容易になる。トランザクション処理の精巧さは、他のコアシステム要素を複雑にすることなく成長する。
トランザクション指定は、ハンドルに対して直交し、そしてそれをデータにわたってどのように適用するかに関して完全に融通性があるので、トランザクション実施は、バンドル依存解決策の場合より精巧さをより成長させる。衝突を構成するもののビジネス特有の取り扱いは、TCPにカプセル化され、その結果、問合せロジックは、緻密さの低いブロックベースの選択の場合より非常に簡単になる。
システム内のプロセスは、その基本的トランスポート責任を純粋に維持するので、性能の異常及び問題が容易に分離されそして理解される。テーブルロックや、フローにおける他の形式の相互作用又は完了待機によって負荷バランス及び最適化が複雑になることはない。全てのトランザクション情報がエンドデータストアへ公表されるので、それがレポート可能となる。又、過剰な数の衝突トランザクション又は時間切れを試験することが簡単になる。
この技術の種々の実施形態は、主要な要素を、ビジネストランザクション要求とは独立したトランスポートインフラストラクチャーとして純粋に維持する。その結果、これらの実施形態は、保留中トランザクションアクティビティ又は他の状態を見張るためにシステムの根本を「覗き込む」ことが必要なプロセスの将来の見込みを減少することができる。むしろ、アプリケーションアクティビティは、プロセス及びツールをサポートするように良好に設計されたエンドデータストアをレバレッジすることができる。
論理的トランザクションは、楽観的ロック作用を経て通常の非トランザクションフローに関連して機能する。トランザクションは、フローではなく、トランザクションと衝突する任意のフローがトランザクションを失敗させるという点で、データフローに対して微弱(即ち、楽観的)である。トランザクション中に到着する全てのデータを無効化する、トランザクションの一部分でないロックトランザクションを使用して、論理的フロー欠陥を生成することにより、トランザクションを強力なものにする(即ちロックする)ことができる。しかしながら、保証された最終的に一貫した配布の精神に対し、データ配布システムにおいてフローをバックアップすることが(物理的ではなく、論理的無効化を通して)考えられる。そのような特徴は、いずれ必要となる場合には、非常に入念に使用しなければならない。
論理的トランザクションは、ストレージ容量が成長しそして何倍にも成長を続けるが、IO能力がその成長に遅れる場合にはハードウェアのトレンドの効果を取り入れる。ここに提案する全てのトランザクションを捕獲し及び記憶することは、安価であり、スペースの浪費は、そんなに問題にならない。上述したように、失敗したトランザクション情報を時々入手することは、システムを理解し調整する上で優れている。
フローを監視し又はデータを交換するためのスキーマと、静的データをレポートするためのスキーマとの間には著しい相違がある。幾つかの実施形態では、トランザクションに載せられた配布データを、履歴的問合せに良く適した綺麗な形態へ変換するためのキュレーションを使用することができる。
幾つかの実施形態は、動的メッセージカーゴを使用して、可変サイズのメッセージに対するメッセージフローを動的に最適化することができる。全てのメッセージバンドルは、コントロール、インデックス、品質及びデータセグメントを含む完全な形態で、アーカイブに依然記憶することができる。大きなメッセージ(バンドルにおいて「大きな」スレッシュホールドを構成できる)の場合には、データ区分を除く全部がEMSバスに公表されて、バンドルの首尾良いアーカイブ化をシグナリングする。次いで、トランスフォーマーは、アーカイブからデータバンドルを要求するようにリーチバックする。しかしながら、小さなメッセージの大きなカウントの場合に、データ区分を含む全メッセージを公表し、コンシューマーが戻ってデータを要求する必要性を排除することができる。
動的なメッセージを消費するトランスフォーマーは、次いで、それらに送られるデータコンテンツをリスペクトするために契約する。純粋なコントロールメッセージに対して、それらは、リーチバックして、アーカイブから大きなデータを掴み取る。小さなメッセージの場合には、それらは、単に前進し、メッセージのデータを消費し、余計なトリップを見合わせる(そして小さなデータセットに対してアーカイブサーバーに要求がどっと押し寄せないようにする)。この動的な戦略は、異なるメッセージフローを、編集、ブレッシング及び可変メッセージコンテンツで強化するので、非常に重要となる。プッシュに適したフローがプッシュを行う。ファイル記憶及びフェッチに適した非常に大きなデータセットをもつフローは、種々のサーバープロセスに対して調整なしにそれを自動的に行う。システムは、バンドルサイズ、メッセージスレッシュホールド及び圧縮戦略に対する調整により高度に同調可能となる。
パケットサイズの同調は、インフラストラクチャーを管理する動作チームに残すことができる。インフラストラクチャーは、頻繁に変更することが予想され、環境ごとに異なるものとなる。層型ストレージの解決策は、進化し、そしてトランスポートのための最適なパッケージングは、ほぼハードウェアがアップグレードされるたびに変更される。このため、バンドルには、時間スレッシュホールドによるものと、サイズスレッシュホールドによるものと、論理的行カウントスレッシュホールドによるものとの、3スレッシュホールド構成が与えられる。
「心臓鼓動での契約」は、時々ポーリングする間に非恒久性メッセージに契約する複合解決策である。心臓鼓動(ポール)は、プロデューサに対する恒久性記憶及び転送責任を緩和し、そしてコントロールの恒久性公表と非恒久性公表との間を選択する能力をフロー設計者に与える。しかしながら、心臓鼓動が回復ロジックと結合されたときには心臓鼓動の利益が単純な監視チェックを越えたものとなり、その複合は、非常に簡単で且つ頑健な回復実施を与える。
一例として、トランスフォーマーがバンドルを次のように消費することを考える。トランスフォーマーは、処理がどの程度進んだか、換言すれば、どんなバンドルを次に処理してレポジトリーに記憶するか変換レポジトリーに尋ねることにより、開始する。次いで、次に処理すべきn個のバンドル(適度な数字と思えるものは何でも)についてアーカイブサービスにコールする。アーカイブサービスは、バンドルを返送する。バッチ処理後に、トランスフォーマーは、望ましい数のバンドルが次のバッチとして準備できたことを指示する信号がアーカイブサービスから到来するのを、ある時間、待機する。
バンドルの準備ができた場合には、トランスフォーマーは、次のステップを要求し、ステップ1を繰り返す。バンドルが準備されず、到来するアクティビティがない場合には、トランスフォーマーは、いずれにせよ前進してハンドルを要求するまで、構成された時間インターバル中、待機となる。信号は、恒久性でなく、従って、信号が到着しない僅かな機会があるが、トランスフォーマーは、前進して、確実であることを尋ねねばならないことを想起されたい。依然バンドルがない場合には、時間減衰が、次の心臓鼓動チェックの待機にある量を付加する。心臓鼓動は、減速を保つ。バンドルが最終的に再び入手できるときには、それらがフェッチされ、コントロールメッセージの不存在においてより頻繁なポーリングに対して心拍数が再び増加される。
データターゲットは、データ配布システムが一貫性を保証するのを許すためにある程度の責任を負う。それらは、データ配布システムが生成されるデータの一貫性を管理すべき場合にはデータ配布システムへ読み取り可能なデータを返送しなければならない。しかしながら、これは、通常、ターゲット間の和解のための低減されたニーズから得られるものに対して僅かなコストである。
異なるターゲットデータストアにわたって一貫したデータを得るためにデータバージョンが使用される。データ配布システムのクライアントに対して、バージョン戦略は、慣習的なACID解決策から、データの各要求がデータだけではなくストリームクロック情報も返送する解決策へのシフトを要求する。異なる行先にわたって一貫したものにする必要のある問合せは、同じ結果を得るか、又はデータがまだ入手できない場合に失敗/警告を得るために、ストリームクロック時間(バンドルID)を与えることが必要になる。しかしながら、データ配布システムの契約は、データが最終的に一貫したものになることである。
データの更新は、本質的に、同じデータの置き換えであり、「同じ」は、アイデンティティ戦略により決定される。アイデンティティ戦略は、基本的に、ランク付け/順序付け及び選択するための重要な属性の選択である。同じアイデンティティのストリームにおいて到着するその後のデータが先のデータに置き換わる。しかしながら、データは、常に、コントロールされ又は置き換えられ或いはアイデンティティにより無効化されるものではない。ある場合には、アイデンティティ以外の属性によりデータを管理することが有用である。以下に述べる論理的データセットは、アイデンティティによるのではなく、他の属性、例えば、誰が又はどんな目的でデータを提出したかによってデータの集合体を管理する別の方法である。
アイデンティティサービスは、埋め込まれた宣言構造を有するデータフローが非構造化フローに勝る顕著な効果をどのように得るかの別の例である。アイデンティティサービスは、選択された列のサブセットに対してフローに短い整数アイデンティティキーを発生し、そしてそれらのキーを使用してデータセットをエンリッチ化することができる。そのようなキーは、ターゲットストアにおいてレポート動作のための性能ブーストとして働く。これは、本質的に、しばしば分散ソーシングのための慣例である広い非正規化ストリームをモデリングするときに特に効果的である。現在、毎日発生されるキーセットを使用することが計画されている。というのは、それは、ブーストが必要とされる毎日のフロー内のことに過ぎないからである。履歴キー発生は、フロー内で行う必要がない。
ロードコントロールテーブルは、特定のシリーズのためのデータがチェック和に対して一貫したものであることを保証する方法である。チェックアウトされた和解データのみを選択するという絶対的保証を望むクライアントは、ロードコントロールテーブルを使用して、彼等が安全に選択できる最高の透かしを決定する必要がある。例えば、BundleID<(Select MIN(InvalidBundleStatus)from DatasetControl)であるデータセットからの選択・・・ここで、InvalidBundleStatusは、まだ首尾良く有効にされていない最低バンドルIDを見つけるか、又は最大バンドルID+1を返送することにより決定される。そのようなアルゴリズムは、全ての保留中の有効性確認を実行まで無効として取り扱う。
これは、バンドルチェック状態に関して注意を払うクライアントにある程度の複雑さのオーバーヘッドを付加するが、個々のデータアイテムに対するバンドルサイズから得られるレバレッジ(典型的に1000対1)は、著しい性能上のオーバーヘッドを意味しない。そのようなシステムの1つの効果は、チェック和欠陥の臨界をクライアントの管理下に置くことである。非常に大きなデータフローでは、クライアントが、チェック和欠陥を知りながらも、依然、データへのアクセスを希望する場合が良くある。クライアントは、データの非実体性に基づき、不良データが修復される間に後続データを使用することを良く判断する。
論理的なデータセットは、トランザクションを生成するのに使用されるアイデアの拡張である。バンドルは、フローを調整するためのインフラストラクチャー動作により完全に所有される物理的パケットドメインであるから、任意の形式のアプリケーションデータセットを管理するために個別の論理的契約を導入しなければならない。論理的データセット定義を独特のアイデンティティと共に送出し、そしてその後に提出される全てのデータにそのアイデンティティをタグ付けすることにより、論理的データセットが生成される。その論理的データセット定義は、それが参照するデータストリーム(1つ又は複数)からの個別の構造と共に個別のストリームにおいて公表される。次いで、クライアントは、論理的セットストリームのプロパティを選択し、そしてそれを適用するデータを選出する。
論理的データセットは、完全さの機能を容易にする上で助けとなる。トランザクションと同様に、論理的データストリームにおいて供給されそして関連データに対してタグ付けされる完全さの基準は、論理的セット内の全てのデータが特定のレポートストアにおいて入手できるかどうか指示することができる。
トランザクションは、時間切れチェックの追加ファクタを伴う完全さ論理的データセットの一形式である。論理的セットは、ストリームとして表わされるので、規則的データストリームと同じバンドル及びバージョン特徴をもっている。これは、論理的セット情報がデータストリームのデータのように進化することを意味する。従って、一連の論理的事象がストリームにおいてキューアップされ、そしてシステムにわたってそれら全ての論理的事象を整合するところの論理的クロックがある。良好な戦略は、論理的セット事象を、デフォールトの一般的消費に含まれるもの又はそこから除外されるものとして見せられるようにすることである。論理的事象ストリームは、このように、全てのコンシューマーに対してデータの共通の観点を形成し、一方、コンシューマーは、それら自身のプレビューにある要素を含ませるか無視するか選択し、次いで、状態更新を論理的セットストリームにプッシュして、望ましい観点を公開にする。次いで、データ及び事象の公式の共通ビューを、データセット及び論理的データセットの両方に対するストリーム/最大バンドルIDペアとして通信する。これは、おそらく、複雑なストリーム事象のそのような選択を表現するための最も簡潔で且つ直感的な方法である。
ストリーム及びバンドルIDの1組の承認されたペアの公表は、「ブレッシング(Blessing)」として知られている。ブレッシングは、特定のポイントに関するデータストリームが消費に適していると決定したストリーム当局により公表される。並列配信ストリームのブレッシングは、大きなデータセットの並列の入手性、及びそれらデータセットの使用における整合/一貫性を与える。
ある実施形態内での編集は、論理的データセットの別の形態である。変更されるデータは、そのデータの以前のバージョンを、編集における他の全てのデータにそれを結合するための独特の編集アイデンティティと置き換えるために、単にストリームに追加される。このように、編集を含ませるか又は無視することができる。削除は、変更の特殊な形態である。削除は、特定の論理的セットの無効化として実施される。例えば、不良のソーシング実行は、そのソーシング実行に関連した論理的セットを無視することにより「削除」できる。特定の論理的セットを無効化することとは独立した個々のアイテムの削除は、削除されるべきものと同じアイデンティティをもつデータアイテムと、データテーブルにおいて真にセットされた論理的削除状態とを提出することにより実行される。
フォールトトレランスは、複写されたメッセージアーカイブから二重のフローを通して達成される。全てのデータをアーカイブから再生できるとすれば、考慮すべき唯一のポイントは、アーカイブそれ自体のフォールトトレランスをどのように生成するかである。
規範的コンピュータシステムの概要
本発明の技術の実施形態は、上述した種々のステップ及び動作を含む。種々のこれらステップ及び動作は、ハードウェア要素により遂行されてもよいし、又はマシンで実行可能なインストラクションで実施されてもよく、そのインストラクションは、そのインストラクションでプログラムされた汎用プロセッサ又は特殊目的プロセッサがそれらステップを遂行するようにさせるのに使用される。或いは又、それらステップは、ハードウェア、ソフトウェア、及び/又はファームウェアの組み合わせにより遂行されてもよい。従って、図8は、本発明技術の実施形態が利用されるコンピュータシステム800の一例である。この例によれば、コンピュータシステムは、バス810と、少なくとも1つのプロセッサ820と、少なくとも1つの通信ポート830と、メインメモリ840と、取り外し可能なストレージ媒体850と、リードオンリメモリ860と、大量ストレージ870とを備えている。
プロセッサ820は、これに限定されないが、Intel(登録商標)プロセッサ;AMD(登録商標)プロセッサ;ARMベースのプロセッサ;又はMotorola(登録商標)ラインのプロセッサのような既知のプロセッサである。通信ポート830は、モデムベースのダイヤルアップ接続に使用するためのRS−232ポート;10/100イーサネット(登録商標)ポート;又は銅又はファイバを使用するギガビットポート;のいずれかである。又、通信ポート830は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、又はコンピュータシステム800が接続される任意のネットワークに基づいて選択される。
メインメモリ840は、ランダムアクセスメモリ(RAM)、又はこの技術で共通に知られた他のダイナミックストレージ装置である。リードオンリメモリ860は、プロセッサ820のインストラクションのようなスタティック情報を記憶するプログラマブルリードオンリメモリ(PROM)チップのような任意のスタティックストレージ装置である。
大量ストレージ870は、情報及びインストラクションを記憶するのに使用される。例えば、SCSIドライブのAdaptec(登録商標)ファミリーのようなハードディスク、光学的ディスク、RAIDのようなディスクのアレイ、RAIDドライブのAdaptecファミリー、又は他の大量記憶ストレージを使用することができる。
バス810は、プロセッサ820を他のメモリ、ストレージ、及び通信ブロックに通信結合する。バス810は、使用するストレージ装置に基づいてPCI/PCI−X又はSCSIベースのシステムバスである。
取り外し可能なストレージ媒体850は、任意の種類の外部ハードドライブ、フロッピー(登録商標)ドライブ、IOMEGA(登録商標)Zipドライブ、コンパクトディスク−リードオンリメモリ(CD−ROM)、コンパクトディスク−再書き込み可能(CD−RW)、及び/又はデジタルビデオディスク−リードオンリメモリ(DVD−ROM)である。
上述した要素は、幾つかの形式の可能性を例示するものである。以上に述べた実施形態は、例示に過ぎないので、本発明の範囲を何ら限定するものではない。
結論として、本発明の技術は、構造化データ配布のための新規なシステム、方法及び構成体を提供する。その技術の1つ以上の実施形態を詳細に説明したが、当業者であれば、本発明の精神から逸脱せずに、種々の代替、変更及び等効物が明らかとなろう。例えば、上述した実施形態は、特定の特徴を参照したが、それら特徴の異なる組み合わせを有する実施形態及びここに述べる全ての特徴を含まない実施形態も本発明の範囲に包含される。
110A、B、N:データプロデューサ
120:データ配布ネットワーク
130A、B、N:データコンシューマ
140:アーカイブサービス
200:データ配布システム
500:データ配布システム
510:バンドラー
520:アーカイブ
530:トランスフォーマー
540:レポジトリサービス
550:ローダー
560:レポートストア
570:ストレージ
800:コンピュータシステム
810:バス
820:プロセッサ
830:通信ポート
840:メインメモリ
850:取り外し可能なストレージ媒体
860:リードオンリメモリ
870:大量ストレージ

Claims (9)

  1. コンピュータに、
    データプロデューサからストリーミングローデータを受け取り、そのローデータを一連のデータパッケージへと束ね、そしてそのデータパッケージの各々に、前記データプロデューサからのアップロードに基づき単調に増加する順序を有する独特の識別子を関連付けるように構成されたバンドラーと、
    前記関連付けられた独特の識別子を有するデータパッケージを受け取り、そしてデータ契約者に関連したレポートストアのためのロード可能なデータ構造体を発生するトランスフォーマーと、
    前記ロード可能なデータ構造体を受け取り、そして前記単調に増加する順序に基づき前記データ契約者に関連したストレージ装置に記憶するローダーと、
    前記データプロデューサからのデータを、前記バンドラーを通して前記データ契約者へ連続的にストリーミングできるようにするデータチャンネルと、
    前記データプロデューサから前記データ契約者へ連続的にストリーミングされているデータの現在状態を与えるメッセージングチャンネルと、
    前記データ契約者がデータの再生を要求できるようにする、前記データチャンネルとは個別のコントロールチャンネルと、
    実現させるためのプログラム
  2. 前記ストリーミングローデータは、複数のストリームを含む、請求項に記載のプログラム
  3. 前記複数のストリームの各々からのデータパッケージは、独特の識別子の異なるセットが指定される、請求項に記載のプログラム
  4. 前記ストリーミングローデータの複数のストリームの各々は、フロープライオリティが指定される、請求項に記載のプログラム
  5. コンピュータに、ストリームクロックから論理的な一連の整数を受け取り、そして論理的な順序を有する前記独特の識別子を発生する識別モジュール機能を更に実現させる、請求項に記載のプログラム。
  6. 前記ストリームクロックはさらに、前記論理的な一連の整数を発生するように構成され、単一の整数は、前記一連のデータパッケージ内の単一のデータパッケージに関連した独特の識別子である、請求項に記載のプログラム
  7. 前記コントロールチャンネルは、前記データチャンネルより速いレートで実行される、請求項に記載のプログラム
  8. 前記コントロールチャンネルは、前記データパッケージに関するメタデータを繰り返し公表する、請求項に記載のプログラム
  9. コンピュータに、データパッケージをアーカイブ化するアーカイブサービス機能を更に実現させる、請求項に記載のプログラム
JP2015505983A 2012-04-13 2013-04-15 スケーラブルな構造化データ配布のためのシステム及び方法 Expired - Fee Related JP6090681B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261623877P 2012-04-13 2012-04-13
US61/623,877 2012-04-13
PCT/US2013/036652 WO2013155532A2 (en) 2012-04-13 2013-04-15 Systems and methods for scalable structured data distribution

Publications (2)

Publication Number Publication Date
JP2015519639A JP2015519639A (ja) 2015-07-09
JP6090681B2 true JP6090681B2 (ja) 2017-03-08

Family

ID=49326108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015505983A Expired - Fee Related JP6090681B2 (ja) 2012-04-13 2013-04-15 スケーラブルな構造化データ配布のためのシステム及び方法

Country Status (7)

Country Link
US (4) US20130275612A1 (ja)
EP (2) EP3926931A3 (ja)
JP (1) JP6090681B2 (ja)
CN (2) CN104641614B (ja)
AU (4) AU2013245651B2 (ja)
CA (1) CA2870021C (ja)
WO (1) WO2013155532A2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9274668B2 (en) 2012-06-05 2016-03-01 Dimensional Insight Incorporated Guided page navigation
US10755233B2 (en) 2012-06-05 2020-08-25 Dimensional Insight Incorporated Guided page navigation
US10671955B2 (en) 2012-06-05 2020-06-02 Dimensional Insight Incorporated Dynamic generation of guided pages
US10445674B2 (en) 2012-06-05 2019-10-15 Dimensional Insight Incorporated Measure factory
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9509529B1 (en) * 2012-10-16 2016-11-29 Solace Systems, Inc. Assured messaging system with differentiated real time traffic
US9536096B2 (en) * 2012-12-17 2017-01-03 Business Objects Software Ltd. Presenting visualizations of business intelligence data
US9582475B2 (en) * 2012-12-17 2017-02-28 Business Objects Software Ltd. Packaging business intelligence documents with embedded data
US9596279B2 (en) 2013-02-08 2017-03-14 Dell Products L.P. Cloud-based streaming data receiver and persister
US9191432B2 (en) 2013-02-11 2015-11-17 Dell Products L.P. SAAS network-based backup system
US9141680B2 (en) 2013-02-11 2015-09-22 Dell Products L.P. Data consistency and rollback for cloud analytics
US9442993B2 (en) 2013-02-11 2016-09-13 Dell Products L.P. Metadata manager for analytics system
US9659078B2 (en) * 2013-08-29 2017-05-23 Oracle International Corporation System and method for supporting failover during synchronization between clusters in a distributed data grid
US9798727B2 (en) 2014-05-27 2017-10-24 International Business Machines Corporation Reordering of database records for improved compression
US9860292B2 (en) 2014-06-04 2018-01-02 Inmobi Pte. Ltd. Method and system for delivering data to a batch consumer and a streaming consumer
US9846632B2 (en) 2014-10-08 2017-12-19 Signalfx, Inc. Real-time reporting based on instrumentation of software
US10394692B2 (en) * 2015-01-29 2019-08-27 Signalfx, Inc. Real-time processing of data streams received from instrumented software
US11030063B1 (en) * 2015-03-30 2021-06-08 Amazon Technologies, Inc. Ensuring data integrity during large-scale data migration
WO2016168211A1 (en) * 2015-04-13 2016-10-20 Risk Management Solutions, Inc. High performance big data computing system and platform
US10044788B2 (en) * 2015-11-17 2018-08-07 Wyse Technology L.L.C. Native client multimedia redirection
US10838965B1 (en) * 2016-04-22 2020-11-17 EMC IP Holding Company LLC Data valuation at content ingest
US10725947B2 (en) * 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
CN106934593A (zh) * 2017-02-22 2017-07-07 上海爱韦讯信息技术有限公司 一种基于fog数据的独立性控制方法及实现装置
US10812560B2 (en) * 2017-05-09 2020-10-20 EMC IP Holding Company LLC System and method for packet transmission using segment routing
US10922287B2 (en) 2017-05-24 2021-02-16 Cisco Technology, Inc. Intelligent layout of composite data structures in tiered storage
CN110019025B (zh) * 2017-07-20 2021-12-21 中移动信息技术有限公司 一种流数据处理方法和装置
US10545823B2 (en) 2017-10-13 2020-01-28 Cisco Technology, Inc. Accelerating erasure code replication in distributed systems
US10915516B2 (en) 2017-10-18 2021-02-09 Cisco Technology, Inc. Efficient trickle updates in large databases using persistent memory
EP3489774B1 (de) * 2017-11-22 2024-04-17 Siemens Aktiengesellschaft Automatisierte ermittlung einer parametrierung eines auswerteverfahrens
US10691671B2 (en) 2017-12-21 2020-06-23 Cisco Technology, Inc. Using persistent memory to enable consistent data for batch processing and streaming processing
US11188865B2 (en) 2018-07-13 2021-11-30 Dimensional Insight Incorporated Assisted analytics
US10678699B2 (en) 2018-07-26 2020-06-09 Cisco Technology, Inc. Cascading pre-filter to improve caching efficiency
WO2021168009A1 (en) 2020-02-18 2021-08-26 Sony Group Corporation Common database architecture to support largescale transactions and node archival on a maas platform
TWI758736B (zh) * 2020-05-26 2022-03-21 昕力資訊股份有限公司 應用在並行處理環境的工作排程與執行的電腦程式產品及裝置
CN111694828A (zh) * 2020-06-08 2020-09-22 山东伏羲智库互联网研究院 数据处理方法、设备、系统及存储介质
CN114125020B (zh) 2020-09-11 2023-08-29 京东方科技集团股份有限公司 实时数据通信的方法、电子设备和系统
US11929163B1 (en) 2020-10-16 2024-03-12 Express Scripts Strategic Development, Inc. Automated device efficacy determination systems for health monitoring devices
US11515035B1 (en) 2020-10-16 2022-11-29 Express Scripts Strategic Development, Inc. Automated device efficacy determination systems for health monitoring devices
US12481772B2 (en) 2020-11-24 2025-11-25 International Business Machines Corporation Automatically adjusting data access policies in data analytics
US12554776B1 (en) 2023-03-08 2026-02-17 The Pnc Financial Services Group, Inc. Systems and methods for a graph database

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341476A (en) * 1992-12-23 1994-08-23 Abbott Laboratories Dynamic data distribution network with sink and source files for particular data types
US6594682B2 (en) * 1997-10-28 2003-07-15 Microsoft Corporation Client-side system for scheduling delivery of web content and locally managing the web content
US6549540B1 (en) * 1999-03-15 2003-04-15 Sun Microsystems, Inc. Method and apparatus for bundling serial data transmission links to obtain increased data throughput
AU2001276034A1 (en) * 2000-08-04 2002-02-18 Goldman Sachs And Co. System for processing raw financial data to produce validated product offering information to subscribers
US7051315B2 (en) * 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
GB2368247A (en) * 2000-10-18 2002-04-24 Power X Ltd Method and apparatus for regulating process state control messages
US8352988B2 (en) * 2000-11-27 2013-01-08 Cox Communications, Inc. System and method for time shifting the delivery of video information
US7882257B2 (en) * 2000-12-29 2011-02-01 Avaya Inc. Stream processing node
US20020144283A1 (en) * 2001-03-30 2002-10-03 Intertainer, Inc. Content distribution system
JP3588061B2 (ja) * 2001-05-16 2004-11-10 日本ユニシス株式会社 データ交換装置、データ交換方法及びデータ交換プログラム
US6877107B2 (en) * 2001-07-05 2005-04-05 Softwired Ag Method for ensuring operation during node failures and network partitions in a clustered message passing server
US20030145089A1 (en) * 2002-01-29 2003-07-31 Xerox Corporation System and method for enabling arbitrary components to transfer data between each other
FR2838589B1 (fr) * 2002-04-10 2005-03-04 Thomson Licensing Sa Dispositif de transmission de donnees et dispositif de reception de donnees
US7290057B2 (en) * 2002-08-20 2007-10-30 Microsoft Corporation Media streaming of web content data
CN100417156C (zh) * 2003-07-16 2008-09-03 中兴通讯股份有限公司 一种流控传输协议中数据传输实现方法及系统
GB2407006A (en) * 2003-10-08 2005-04-13 Sony Uk Ltd Communicating streamed payload data and packet based auxiliary data
CA2634489C (en) * 2005-12-21 2016-08-30 Digimarc Corporation Rules driven pan id metadata routing system and network
US20070208828A1 (en) * 2006-01-24 2007-09-06 Brier John J Jr Systems and methods for data mining and interactive presentation of same
EP2008232A4 (en) * 2006-03-09 2011-10-12 Evolveware Inc SYSTEM AND METHOD FOR KNOWLEDGE ANALYSIS AND EXTRACTION
JP5372743B2 (ja) * 2006-05-01 2013-12-18 ケーク・フィナンシャル・コーポレーション 投資情報のコンソリデーション、共有、及び分析
US8094685B2 (en) * 2006-10-04 2012-01-10 Siemens Medical Solutions Usa, Inc. Systems and methods for synchronizing multiple video streams
WO2008063164A2 (en) 2006-11-17 2008-05-29 Barclays Capital Inc. System and method for generating customized reports
CN101232623A (zh) * 2007-01-22 2008-07-30 李会根 基于传输流的立体音视频数字编码传输方法和系统
WO2010114451A1 (en) * 2009-03-31 2010-10-07 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements for system providing media via multicast distribution
US8326880B2 (en) * 2010-04-05 2012-12-04 Microsoft Corporation Summarizing streams of information
US9588951B2 (en) * 2010-12-06 2017-03-07 Smart Technologies Ulc Annotation method and system for conferencing
US9930379B2 (en) * 2012-01-31 2018-03-27 Comcast Cable Communications, Llc System and method for data stream fragmentation
US9264747B2 (en) * 2012-03-11 2016-02-16 Broadcom Corporation Audio/video channel bonding configuration adaptations

Also Published As

Publication number Publication date
US20130275612A1 (en) 2013-10-17
CN104641614A (zh) 2015-05-20
WO2013155532A2 (en) 2013-10-17
CA2870021C (en) 2018-07-31
CN104641614B (zh) 2018-04-13
AU2020202988A1 (en) 2020-05-28
AU2020202988B2 (en) 2021-05-13
EP2837158A2 (en) 2015-02-18
US20160072866A1 (en) 2016-03-10
AU2016225945A1 (en) 2016-09-29
CN108337320B (zh) 2020-09-01
EP2837158A4 (en) 2015-12-16
AU2013245651A1 (en) 2014-10-30
EP3926931A2 (en) 2021-12-22
HK1251935A1 (zh) 2019-05-03
US9479556B2 (en) 2016-10-25
CN108337320A (zh) 2018-07-27
US10904308B2 (en) 2021-01-26
US20170078349A1 (en) 2017-03-16
AU2013245651B2 (en) 2016-06-16
JP2015519639A (ja) 2015-07-09
CA2870021A1 (en) 2013-10-17
EP3926931A3 (en) 2022-05-04
AU2016225945B2 (en) 2018-04-12
AU2018202871A1 (en) 2018-05-17
AU2018202871B2 (en) 2020-02-06
WO2013155532A3 (en) 2013-12-05
US20200186582A1 (en) 2020-06-11
US10601883B2 (en) 2020-03-24

Similar Documents

Publication Publication Date Title
JP6090681B2 (ja) スケーラブルな構造化データ配布のためのシステム及び方法
US11822556B2 (en) Exactly-once performance from a streaming pipeline in a fault-vulnerable system
US7010538B1 (en) Method for distributed RDSMS
US9582541B2 (en) Systems, methods, and computer program products to ingest, process, and output large data
US7702698B1 (en) Database replication across different database platforms
WO2008053372A2 (en) Scalable distributed object management in a distributed fixed content storage system
US20250390478A1 (en) Location-constrained storage and analysis of large data sets
US11809421B2 (en) System and method for data analytics
US11822536B2 (en) Parallel audit cycles between primary and secondary event feeds
CN114328533B (zh) 元数据统一管理方法、系统、介质、设备及程序
US12061608B2 (en) Duplicate detection and replay to ensure exactly-once delivery in a streaming pipeline
US11836124B2 (en) Automatic schema upgrade in a big data pipeline
HK1251935B (zh) 用於可扩展的结构化数据分布的系统和方法
US11947542B2 (en) Certifying events in a streaming pipeline
US20230334037A1 (en) System and method for data analytics
CN118505271A (zh) 一种交易数据处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170126

R150 Certificate of patent or registration of utility model

Ref document number: 6090681

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees