JP2019525293A - リアルタイムデータ収集において使用するための階層データコレクタおよび関連技法 - Google Patents

リアルタイムデータ収集において使用するための階層データコレクタおよび関連技法 Download PDF

Info

Publication number
JP2019525293A
JP2019525293A JP2018564749A JP2018564749A JP2019525293A JP 2019525293 A JP2019525293 A JP 2019525293A JP 2018564749 A JP2018564749 A JP 2018564749A JP 2018564749 A JP2018564749 A JP 2018564749A JP 2019525293 A JP2019525293 A JP 2019525293A
Authority
JP
Japan
Prior art keywords
scope
tier
hdc
data
local
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
JP2018564749A
Other languages
English (en)
Other versions
JP6680908B2 (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 JP2019525293A publication Critical patent/JP2019525293A/ja
Application granted granted Critical
Publication of JP6680908B2 publication Critical patent/JP6680908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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
    • 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
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • General Factory Administration (AREA)

Abstract

多数の相互接続されたエンドポイントを有する分散型コンピューティングシステムにおいて使用するための、分散型リアルタイムデータ収集、処理および対処システム、および関連技法について説明する。分散型リアルタイムデータ収集、処理および対処システムおよび技法は、階層データコレクタおよび動作の方法を利用する。【選択図】図4

Description

本明細書で説明する概念は一般に、監視および/または制御のためにコンピューティングデバイスの大きなシステムからデータを収集する1つの例示的なアプリケーションを用いた、分散型リアルタイムデータ収集、処理および対処の方法に関する。
世界中に分散されたコンピューティングデバイスの大きなシステムからのデータ収集は、一般的なタスクであるが、今日、大規模で迅速かつ確実に行うことは、驚くほど困難な問題である。たとえば、ソフトウェアアズアサービス(SaaS)ベンダーは、彼らがそのクライアントに提供している現在の可用性、性能、およびコストを理解し、現状に対応するその世界的なロードバランスシステムにおいて活動をトリガするために、その世界的なインフラストラクチャのリアルタイム状況を瞬時に分析することを望む場合がある。別の例では、モノのインターネット(IoT)ベンダーは、世界的な気象パターンがどのように変化したかを理解し、次いで、たとえば、竜巻警告システムにおいて活動をトリガするために、すべてのその気象センサからのデータを瞬時に分析することを望む場合がある。これらのようなアプリケーションでは、1)データを瞬時に収集し、2)リアルタイムの確実性でそのデータを分析し、3)活動を迅速にトリガし得る、1つの簡潔なパッケージの形で結果を提供することが望ましい。その上、この解決策はスケーリング可能である。より多くのコンピューティングデバイス、センサ、サーバ、およびデータが追加されるにつれて、データの完全性およびシステムの動作が損なわれなければ有益である。解決策はやはり低コストであるべきである。
市場のデータ収集システムは、今日、多くの場合、2つの範疇、すなわち、(1)「中央データベース」手法、および(2)「分散型ロギング」手法のうちの1つに該当する手法を利用する。図1を参照すると、中央データベース手法に基づく監視システム100は、中心位置(たとえば、ニューヨーク市)内にデータベース102を含む。モニタ104は、データベース102からデータを取り出すための1つまたは複数のコンピューティングデバイスを含んでよく、「ネットワークオペレーションセンターモニタ」または「NOCモニタ」と呼ばれることがある。NOCモニタ104は、データベース102にアクセスして、データベース102内に収集されたデータに基づいて異変を発見することができる。システム100の部分であり、ローカルにまたは遠隔に位置し得る、個々のコンピューティングデバイスは、生データをデータベース102内にプッシュすること(または、データベース102からプルすること)ができる。いくつかのシステムにおいて、データは個々の機械からデータベース内にプルされ得るか、またはNOCモニタ104はデータをデータベース102内にプルし得る。
中央データベース手法は、(たとえば、数百の世界的に分散されたシステムを監視する)比較的小さなシステムとうまく動作するが、この手法にはいくつかの欠点がある。たとえば、様々な領域(たとえば、アジア、欧州、およびアフリカ)内に位置する機械は、遠く離れている場合がある中央データベースに通信することを要求される場合がある。(たとえば、距離に伴ってより多くみられる、ネットワーク区分化または他の接続性問題点により)ネットワーク接続性問題が生じた場合、これらの遠隔機械は、中央データベースと通信する能力を失う。この問題は、コンピューティングデバイスの区分へのセグメント化、および損なわれた接続性または限定された帯域幅をもたらし得る。この現象は、「ネットワーク区分化問題」と呼ばれることがある。
いくつかの旧来のシステムによって使用される「ネットワーク区分化問題」の部分を軽減するための1つの方法は、各遠隔領域内(たとえば、遠隔システムと中央データベースとの間の地理的領域内に配置し得るデータセンター106、108、および/または110)内にプロキシをインストールすることである。プロキシは、中央データベース102に送信するためにデータをアグリゲートおよびキャッシュすることを試みる。この解決策は、ネットワーク区分化に対してある程度の弾力性を提供し得る(データは、ネットワークが分割されるときにプロキシによって記憶され、サービスが復活したときに中央データベース内に再送信される)。このキャッシング機能性は、データ損失から保護する。しかしながら、基本的な問題、すなわち、センター106、108、110と中央データベース102との間の接続性の損失が依然として存在し得る。システムのサブセットからデータが利用可能でない場合、いずれの事象に関しても、それらの区分化されたシステムから何の活動もトリガされ得ない。一例として、企業は、インドにおいてインド内のエンドユーザにビデオをサーブする機械のセットと、合衆国において「中央データベース」監視システムとを有する。この例では、ネットワークを区分化し、「中央データベース」監視システムがインドにおける機械を確認することを妨げる接続性問題がインドと合衆国との間に存在し得る。インドのサーバは、インドのエンドユーザにビデオをサーブすることができる。しかしながら、インドにおいて何らかの問題(たとえば、サーバのうちの1つがハードウェア故障を有する)が生じた場合、監視システムは、その問題を知らないことになる。通常、監視システムは、活動を迅速にトリガして、そのような不健全な機械をサービスから取り除くことができるが、中央データベースがその問題点を知らない場合、監視システムは、不健全な機械を取り除くことができない。
中央データベース手法に伴う別の問題は、「スケール問題」、すなわち、システムのサイズおよび範囲の増大である。個々のシステムのサイズは限定されているため、すべてのデータが中央データベース102内に記憶されている場合、そのようなシステムをスケーリングして、大きな分散型データセット(たとえば、数十万のエンドポイントから収集された数百のデータポイント)に対応することは困難な可能性がある。
さらに別の問題は、「データセット問題」と呼ばれ、これは、分散されたデータを相関させて分析するシステムの能力に関する。たとえば、気象アプリケーションは、すべての郵便番号範囲内の温度を収集し、温度がしきい値を上回るときに(たとえば、温度が凍結に関する氷点下警告を下回る場合に)行うべき活動を規定することができる。しかしながら、利益は、データが、露点、気圧の変化など、他のデータポイントと相関されるときに達成され得る。相関されて分析されたデータセットが大きくなるにつれて、データを処理するためにより多くのインフラストラクチャが必要とされ得ることを当業者は理解されよう。中央データベース手法を使用するシステムは、大きな分散型データセットを処理し、データに基づいて自動化された活動を行うためのシステム能力の点で制限され得る。
別の問題は「対応時間問題」であり得る。キャリアグレードネットワークでは、99.999%のシステム可用性基準が要求され得る。この要件を満たすために、故障は迅速に検出されて修正されなければならない。そのような先行技術の監視システムにおける1つの問題は、データが収集され、相関され、分析され、次いで、結果がディスプレイを介して、その問題を修正するように対応しなければならない技術者(一般に、「警告」と呼ばれる)に提示されるということである。これは、したがって、システムの制御ループ内に人間の関与を必要とする。しかしながら、技術者が大きなシステムを監視する平均的な対応時間は、通常、数分程度であり、これは、1つの問題に対する通常の対応時間は、99.999%の可用性を損なう可能性があることを意味する。
ネットワーク区分化問題と同様に、対応時間問題にはワークアラウンドも存在する。次に、図2を参照すると、1つのワークアラウンドは、NOCモニタ206、208によって作成される警告202、204を消費し、警告202、204を処理するための自動化された応答を実行するスクリプティング(scripting)サブシステムの構築を必要とする。これらの自動化された応答は、さもなければ、それらの警告に対応するNOC技術者によって実行されている場合がある単純な活動であり得る。
警告自動化はNOCモニタ206、208とインターフェースをとる。NOCモニタ206、208が、エラーが発生したことを認識すると、警告が作成され得、次いで、スクリプティングシステムが、たとえば、遠隔システムに遠隔に接続して、その状態に対処することができる。したがって、警告システムによって検出されたエラー状態のサブセットは、NOC技術者210、212ではなく、警告自動化によって対処され得る。これは、対応時間を削減するように機能するが、「ネットワーク区分化問題」によって妨げられる場合がある。たとえば、接続性または帯域幅における限定によるネットワーク区分化(すなわち、断片)が存在するとき、この問題は遠隔機械に対する中央データベースのアクセスをブロックする場合がある。加えて、この手法は、比較的長い制御ループを要求し得る。システムの複雑性とともにエラーが増大する確率を仮定すると、このような長い制御ループを確実に維持することは困難であり得る。
これらのエラーの除去に努めるために、そのような警告自動化システムは、多くの場合、その独自の監視システムを要求し、これはシステム複雑性を増し得る。その上、制御ループが故障するとき、多くの場合、人間の介入(たとえば、NOC)が必要とされ、これはレイテンシを追加し得る。
対応時間問題に対する別のワークアラウンドは、遠隔システム214に近いハードウェアロードバランサに健全性検査を統合することである。これは、制御ループを中央システムから遠くに分散し、その場合、ロードバランサ214がローカルなエラー状態に迅速に対応し得る。この手法では、クライアント216は、ロードバランサ214を通してシステムにアクセスすることができる。ロードバランサ214は、個々のサーバ(たとえば、サーバ218、220)に対して1つまたは複数の「健全性テスト」を実行することができる。サーバ218、220が「健全である」と見なされる場合、たとえば、エラーがなく、入ってくるジョブを処理することが可能である場合、ロードバランサは、クライアントを健全なサーバに導く。サーバが多くの分散型データセンターにわたって拡散されている場合、ロードバランサが検査しなければならない一連の多様なエラー状態は、ロードバランサの能力を上回る可能性がある。その上、両方の診断問題(すなわち、ロードバランサとエラー状態を検査するNOCモニタの両方)において異なるビューを有する複数のシステムの使用は、非一貫性をもたらし、トリアージおよび/または回復を複雑化させる。
そのような非一貫性からもたらされる問題の一例として、サーバ218、220がエラーを有する場合、NOCモニタ206、208は、(実際にはロードバランサが検出しなかったとき)ロードバランサがその状態を検出したと仮定し、エラー状態を見逃すことを可能にし得る。
要約すれば、中央データベースを有する監視システムを使用する分散型システムは、少なくとも4つの問題、すなわち、(1)「ネットワーク区分化問題」、(2)「データセット問題」、(3)「スケール問題」、および(4)「対応時間問題」を受ける場合がある。したがって、そのようなシステムは、そこからデータを収集するための多くのエンドポイントを有する分散型システム(すなわち、システム上でまたはシステムにわたって通信するコンピューティングデバイス)と使用するのに適さない可能性がある。
第2のタイプの先行技術システムは、中央データベースに対するすべてのデータを収集する代わりに、ログと呼ばれるテキストファイル(または、他のタイプのファイル)内にデータを記憶する方法を利用する。ログファイル内にすべての統計を記憶した状態で、システムは、次いで、バッチ処理され得る。たとえば、ログファイルは、処理システム、たとえば、Hadoopと呼ばれるプラットフォームなど、いわゆる、「ビッグデータ」システムに送られてよい。ビッグデータシステムは、水平にスケーリングする方法で、マップリデュース処理を実行して、データを分析し、その結果を記憶する。次いで、多くの異なるクライアントは、これらの計算された結果にアクセスすることができる。これらの分析結果は、システム警告として実現され、NOC技術者は、次いで、警告を確かめ、基礎的なエラー状態に対応することができる。
そのような手法は、Hadoopクラスタ内により多くの機械を単に追加することによって、(たとえば、監視アプリケーション内の数千程度のサーバ上に)多くのエンドポイントを有するシステムに申し分なくスケーリングする。この手法は、「スケール」問題を解決する(たとえば、Hadoopスケールなどの「ビッグデータ」システムは、設計により水平にスケーリングする)が、この手法は、他の問題をもたらし得る。
1つのそのような問題は「コスト問題」である。この機構によるデータ分析をキューアップするために、すべてのデータはファイル内に記憶されなければならない。したがって、ログファイル内に記憶されたデータの量は迅速に増え、そのようなシステムでは、ログファイルが大きくなるほど、データを搬送、記憶、および分析するために余計にコストがかかる。大きなまたは比較的複雑なアプリケーションの場合、これは、大規模なデータファイルをもたらし、コストは相当になり得る。さらに、ログ手法は、上記で説明した「対応時間問題」を依然として有し得る。
これらの問題に鑑みて、システムが1)データを瞬時に収集し、2)リアルタイムの確実性でそのデータを分析し、3)活動を迅速にトリガし得る、1つの簡潔なパッケージの形で結果を提供することが有益であろう。システムが(1)「ネットワーク区分化問題」、(2)「データセット問題」、3)「スケール問題」、および(4)「対応時間問題」、および(5)「コスト問題」をすべて1つのディスクリートシステムにおいて解決または軽減することが有益であろう。
一実施形態では、多数のエンドポイントを有する分散型処理システムにおいて使用するためのリアルタイムデータ収集および分析方法は、ローカルスコープティアに割り当てられた第1の複数のエンドポイントであって、ローカルスコープティア内の各エンドポイントが、複数の別個の位置のうちの1つに関連付けられる、第1の複数のエンドポイントを含む。ローカルスコープティア内の各エンドポイントは、ローカルスコープ階層データコレクタ(HDC)が存在するエンドポイントにローカルな情報を収集するように構成されたローカルスコープHDCと、処理済みデータのコンシューマとを含み得る、第1の複数のエンドポイントを含み得る。
システムは、Nティアであり、これは、任意の数のティアを有し得ることを意味するが、一実施形態では、システムは、グローバルスコープティアに割り当てられた第1の複数のエンドポイントであって、グローバルスコープティア内の各エンドポイントが、グローバルスコープ階層データコレクタ(HDC)が存在するエンドポイントにローカルな情報を収集し、ローカルスコープティア内の任意のエンドポイントからの情報も収集するように構成されたグローバルスコープHDCと、処理済みデータのグローバルスコープコンシューマとを含む、第1の複数のエンドポイントをも含み得る。
システムは、ユニバーサルスコープティアに割り当てられた、少なくとも1つのエンドポイントであって、ユニバーサルスコープティア内の少なくとも1つのエンドポイントの各々が、ユニバーサルスコープ階層データコレクタ(HDC)が存在するエンドポイントにローカルな情報を収集し、グローバルスコープティア内の任意のエンドポイントおよびローカルスコープティア内の任意のエンドポイントからの情報も収集するように構成されたユニバーサルスコープHDCと、処理済みデータのユニバーサルスコープコンシューマとを含む、少なくとも1つのエンドポイントをも含み得る。
別の実施形態では、多数のエンドポイントを有する分散型処理システムにおいて使用するためのリアルタイムデータ収集および分析方法は、ローカルスコープティア、グローバルスコープティア、およびユニバーサルスコープティアのうちの1つにエンドポイントを割り当てることであって、少なくともローカルスコープティア内の各エンドポイントが、複数の異なる位置のうちの1つに関連付けられる、割り当てることと、エンドポイントの各々の中に階層データコレクタ(HDC)を提供し、HDCを介して各エンドポイント内にデータを収集することであって、ローカルティアにおける各HDCが、HDCが存在するエンドポイントに関するデータを収集し、グローバルスコープティアにおける各HDCが、HDCが存在するエンドポイントに関するデータを収集し、ローカルスコープティア内の1つまたは複数のエンドポイントからのデータを収集する、収集することと、ローカルスコープティアにおけるエンドポイントの各々の中にコンシューマを提供することと、グローバルスコープティアにおけるエンドポイントの各々の中にコンシューマを提供することとを含む。
中央データベースを有する処理システムのブロック図である。 ログファイルの処理を含む処理システムのブロック図である。 階層データコレクタ(HDC)システムのブロック図である。 ローカルスコープティア、グローバルスコープティア、およびユニバーサルスコープティアを含むHDCシステムのブロック図である。 コンシューマとして外部ロードバランサを含むHDCシステムのブロック図である。 HDCプロセス、データテーブル、およびCテーブルを含む、処理機のブロック図である。
図面内の同様の参照番号は同様の要素を示す。
本明細書で説明する、概念、システムおよび技法の一態様によれば、分析されたデータの収集、トランスポート、分析、消費、およびデータによってトリガされる後続の外部活動が、そのような動作が別個の目標を有する別個のエンドポイントにおいて実行されるのではなく、システム内のエンドポイント(すなわち、機械/コンピューティングデバイス)間に分散される方法およびシステムについて説明する。すべてのエンドポイント間に要素を分散することによって、増大された弾性およびスケーラビリティを有するシステムが提供される。
本明細書で説明するデータ処理システムは、エンドポイントがティアに割り当てられ、各エンドポイントが、関連する階層データコレクタ(HDC)とコンシューマ(すなわち、ロードバランサ)とを有する、階層データ収集方式を使用し得る。本明細書で説明するHDC手法は、「中央データベース」および「ロギングシステム」の先行技術によって要求される上述の「データセット」、「スケール」、「対応時間」、および「コスト」の問題ワークアラウンドなど、ワークアラウンドの必要性を回避することができる。
これらの概念、システム、および技法のさらなる態様によれば、システムは、分散型システム内の複数のエンドポイント間に分散された階層データコレクタと、分散型システム内の複数のエンドポイント間に分散されたコンシューマと、分散型システム内の複数のエンドポイント間に分散されたトランスポートモジュールと、分散型システム内の複数のエンドポイント間に分散されたデータ分析ユニットとを含む。
この構成を備えた、大きい分散型システムにおいて使用するためのリアルタイムデータ処理システムが提供される。データ処理システムは、分散型処理システム内のエンドポイントがリソース割り当てのために利用可能であるかどうかを表示し得るか、またはエンドポイントまたはさらにエンドポイントのクラスタの全体状況を表示し得る。
いくつかの実施形態では、リアルタイム分散型データ処理システムは、データ分析のために自律的に動作し、分析されたデータへのビュー(たとえば、監視デバイスおよび/またはグラフィカルユーザインターフェース)、または活動を引き出すプログラム、スクリプト、または他のシステムなど、他のコンシューマをコンシューマに提供する。
実施形態では、リアルタイム分散型データ処理システムコンシューマは、システム監視アプリケーション内でNOC技術者に提供される処理済みデータのビューに対応する。しかしながら、リアルタイム分散型データ処理システムは、NOCにビューを提供することに限定されない。いくつかの実施形態では、リアルタイム分散型データ処理システムコンシューマは、たとえば、ウェブサイトを通してビューをカスタマに提供することもできる。リアルタイム分散型データ処理システムのコンシューマ
いくつかの実施形態では、システムは、サービスプロバイダにビューを提供することもできる。したがって、たとえば、特定の機械またはクラスタで何かがおかしいとき、情報または通知がサービスプロバイダに提供され得る。
バックエンドとして、リアルタイム分散型データ処理システムが適用され得るアプリケーションは多数である。
本明細書で説明する概念によれば、階層データコレクタ(HDC)は、(1)エンドポイントに可能な限り近くでデータを処理または分析すること、(2)たとえば、制御ループから人間の介入を除去するために、分析された実施可能なデータをコンシューマに提供すること、(3)システムを区分化する基盤内に接続性問題が存在した場合、アイランドが自律的に機能し得るように、制御ループを可能な限りエンドポイントの近くに維持すること、および/または(4)一貫性のある分散型システムとして分析および活動を統合すること、ができる。
たとえば、1つの位置(たとえば、ニューヨーク)内にエンドポイントの1つまたは複数のクラスタが存在し、第2の異なる位置(たとえば、東京内)にエンドポイントのクラスタが存在する場合、これらのクラスタは独立して動作し得る。1つが故障した場合、中央処理サイトにデータを送る必要は存在し得ない。むしろ、クラスタは、データを収集、トランスポート、および処理し、その結果に関して活動を実行するように自律的に機能することができる。したがって、システムは、可能な限り、その決定が関係するエンドポイントの近くで意思決定が実行されることを可能にする。
したがって、システム監視における一実施形態では、NOC内の技術者がエラーを確かめ、活動を行うのではなく、HDCが、トリアージループから技術者を除去し、人間の介入の必要を回避し、たとえば、サーバをDNS回転から除去することによって、可能な限りエンドポイントの近くで問題を解決するように他のサブシステムをトリガする。
HDCアーキテクチャでは、エンドポイントのクラスタは、「POD」と呼ばれることがある。したがって、NY内のエンドポイントは、1つの特定のpodと見なされてよく、東京内のエンドポイントは別のpodと見なされることになる。
HDC手法では、HDCプロセスは、各pod内の各エンドポイント上で実行し得る。ローカルスコープレベルで、HDCは、エンドポイントから収集されるために利用可能であるデータ(たとえば、センサからのデータ、アプリケーション、ネットワーク自体、エンドユーザからのデータ:潜在的に、データの数百または数千の異なる収集物)について知らされる。ライブデータセットを小さく追跡可能に維持するために、いくつかの実施形態では、HDCはポーリングオンリー方式(poll−only scheme)を使用することができる。HDCは、データをアクティブに要求し、次いで、HDCがタスクを達成するために必要とするライブデータを収集および記憶することができる。さらに、いくつかの実施形態では、HDCは、特定の質問に回答するか、またはタスクを実行するために要求される最低限の量のデータだけを要求(または、ポーリング)することができる。たとえば、一定の間隔でディスク統計をプッシュまたはポーリングするのではなく、ローカルスコープHDCは、親HDCまたはコンシューマがディスクに関する質問をしたときのみ、ディスク統計をポーリングすることができる。これは、HDCシステムにおいてトランスポートされるデータの量を削減し得る。これはでデータに関して要求されるロードおよび処理を削減するだけでなく、データセットを小さく維持することによって、HDCがデータを相関させる(および、したがって、「このPODは、システムの平均を上回る2つの標準偏差の割合でパケット損失を受けているか?」または「現在のセンサデータに基づくこの特定の位置におけるこの特定の瞬間の雨の確率は何であるか?」など、複雑な条件付き質問をリアルタイムで組織立てる)ように追跡可能である。
いくつかの実施形態では、そのような質問を組織立てるために、構造化クエリ言語(SQL)(米国国家規格協会(ANSI)標準)を使用することができる。たとえば、質問は、「あなたはフルディスクを有しているか?」であり得る。加えて、そのような質問は、アドホックである(たとえば、技術者が質問を対話型インターフェースに入力する)か、または(後でCテーブル内でより詳細にカバーされる)一定の間隔でポーリングするようにシステム自体の中にプログラムされるか、のいずれかであり得る。いずれの場合も、HDCは、HDCエンドポイント階層を下方にトラバースして、質問に回答するために必要なデータを収集し、ツリーを上方へとトラバースして戻るにつれて、そのデータをアグリゲート、削減、および分析することによって、これらの質問に対する回答を得ることを円滑にする。たとえば、複数のエンドポイント上のディスクが90%を上回る程度にフルであるかどうかを質問する1つの単純なSQLクエリは、次のSQLクエリを使用することができる:
SELECT ip,device,path,
blocks_free*100/blocks as pcnt_free
FROM mounts
WHEREAS blocks>0
HAVING pcnt_free<10;
質問「あなたはフルディスクを有しているか?」に対する応答が、「はい」である場合(すなわち、SQLタプルが戻された場合)、コンシューマがポーリングするためにこの情報が利用可能にされてよく、コンシューマはこの情報の活動を行うことができる。次いで、HDC階層内で「より上位の」他のHDCがポーリングするために、この決定の結果が利用可能にされ得る。そのようなHDCは、次いで、システム監視の例では、エラー状態をNOC技術者に通信し、そのエラー状態をウェブインターフェイス内でカスタマに表示するか、またはさらなる分析のために別のシステム内に記憶することができる。
一例としてSQLが使用されているが、システムは、質問を他のクエリ言語で組織立てることができるクエリインターフェースを含んでよい。言い換えれば、システムは、HDCおよびHDC階層内の他の機械に問い合わせるために使用され得る代替のまたは追加のクエリインターフェースまたはクエリ言語を含んでよい。
したがって、HDC手法では、比較的小さなデータになるまでセグメント化することが望ましい(上記の例と同様に、ディスクに関する生データは単純な「はい」になるまで分析されたか、またはディスクがフルであるかどうかにするは応答ない)。これは、より複雑な決定を行うために、非常に小さなデータセットを階層内のより上位のHDCにトランスポートさせる。たとえば、ロードバランサなどのローカルスコープHDCコンシューマは、その機械上のストレージディスクがフルである場合、機械をサービスから除去することができる。階層内のより上位のHDCがポーリングするために、そのローカルスコープHDC決定の結果が利用可能にされ得る。グローバルスコープHDCは、次いで、それらの結果を確かめ、多くの機械がフルストレージディスクを有することに留意することができ、したがって、グローバルスコープHDCは、その状況を修正するためのデータパージなど、より高次の活動をトリガすることができる。そのグローバルスコープHDC決定の結果は、ユニバーサルスコープHDCに利用可能にされ、ユニバーサルスコープHDCは、データ内の変更などに関してカスタマに通知するためにさらに高次の活動をトリガすることができる。この例では、データのソースの近くで分析が実行され、十分なデータが利用可能になるとすぐに活動がトリガされ、より複雑な活動を実行するために、分析されたデータ(結果)が階層内のより上位のエンドポイントに利用可能にされる。
その上、たとえば、技術者が意思決定の基礎をなすデータの詳細を調査することを望む場合、すべてのこれらの決定の裏にある、基礎的なデータが階層内の上部においてオンデマンドでポーリングするために依然として利用可能にされる。
一実施形態では、本明細書で説明するHDC手法は、SQLをリアルタイムで使用する。エンドポイントは、互いと通信し、階層を下方に、クエリからの結果を再帰的にアグリゲートし、分析する。
HDCリアルタイム分散型データ処理システムの利点は、以下を含むが、これらに限定されない:(1)(数千のデータポイントを有する数十万のエンドポイントに対する)スケーラビリティ、(2)高い可用性(基盤故障によりセグメントに区分化された場合、アイランドは自律的に機能し得る)、(3)より少ない人間の介入を可能にする、コンシューマに近い小さな制御ループ、(4)分析が分散されると仮定して、より複雑なデータの相関、(5)そのシステムが1つの調整された決定的システムであると仮定して、より良好な一貫性、および(6)そのシステムがその瞬間にそのコンシューマを満足させるために必要な裸の最低限のデータのみをトランスポートおよび分析すると仮定して、より低いコスト。
本明細書で説明するHDC技法は、したがって、以下を含むが、これらに限定されない、多種多様なアプリケーションにおける使用法を見出す:(1)ウェブまたはインターネットアプリケーションの基礎となるシステムなど、分散型アプリケーション、(2)IoTアプリケーション(サーモスタット、火災警報器、セキュリティ、健康支援、産業自動化などに限定されないが、これらなど、任意のインターネットインターフェースセンサ)、または(3)大量の分散データ(たとえば、住宅、建物、国、大陸などの中のすべてのデータ)を収集および分析することが有益であり、収集されたデータに基づいて、コストの低い様式でリアルタイムに決定を行う、任意のシステム。
図3を参照すると、階層データコレクタ(HDC)アーキテクチャを有するリアルタイム分散型データ処理システム300が、複数の(N個の)ティアを含んでいる。
HDCは、複数のティア内に位置するエンドポイントにデータ処理を拡散する。一実施形態では、HDCシステムは、3個のティア、すなわち、(1)ローカルスコープティア、(2)グローバルスコープティア、および(3)ユニバーサルスコープティアを利用する。したがって、実施形態では、この手法は、1つの「中央データベース」または「ロギング」バッチ処理手法を使用しないことを諒解されたい。
上述したように、HDC手法の原理は、(1)データセットを小さく維持する、(2)分散処理、(3)1つの故障点も有さない、(4)システム断片が自律的に動作することを可能にする、(5)速度、および(6)低コスト、を含む。また、そのデータが使用される場所に可能な限り近くでデータを分析し、その活動が必要とされる場所に可能な限り近くで活動を実行し、最小データのみを使用し(すなわち、必要に応じたデータのみを要求し)、ますます複雑な分析において使用するために、階層内のより上位のエンドポイントに結果を利用可能にすることが重要である。
履歴情報が利用可能である場合、その情報は、HDCプロセス内またはその外部の1つまたは複数のシステムによって収集され得る。履歴データは、非常に大きい可能性があり、したがって、履歴データの処理は、これらの目標と対照をなし得る。現在のシステムの1つまたは複数の実施形態によって現在のデータのみを処理することは、したがって、速度を高め、システムのコストを削減する。
HDCシステム300では、分析および対応動作は、システム300の任意のまたはすべてのティア内のエンドポイントによって実行され得る。分析されたデータは、異なるティア内のエンドポイント間でトランスポートされ得る(たとえば、通信され得る)。HDCシステム300内のエンドポイントは、任意のコンシューマと通信して、追加の活動を実行することもできる。システム監視のアプリケーションでは、そのようなコンシューマは、必要なとき、トリアージを実行し、不健全なシステムをサービスから除去することができるロードバランサ302であり得る。
次に図4を参照すると、HDCシステムは、複数の機能を並行して実行することが可能なコンピューティングアーキテクチャ400内のいくつかのまたはすべてのエンドポイント上で実行しているHDCプロセス402として実装され得る。一実施形態では、HDCシステムは、C++プログラミング言語で実装され、1つまたは複数のプロセッサによって実行される、マルチスレッドの、非ブロッキングプロセスとして提供され得る。当然、HDCプロセス402は、任意のプログラミング言語で、または任意のタイプのソフトウェア、ファームウェア、スクリプトなどによって、実装され得る。
図4の例示的なシステムは、このアプリケーションのために、ローカルスコープティア、グローバルスコープティア、およびユニバーサルスコープティアとして識別されている、3つのレベルまたは論理ティアを示す。一般的な概要では、ユニバーサルスコープティアにおけるエンドポイントは、分析され要約されたたいていのデータに関心を有するコンシューマとインターフェースをとる。システム監視のアプリケーションでは、コンシューマはNOC技術者であり得るが、他の実施形態では、コンシューマは、エンドユーザ、別のシステム、活動を実行するプログラムなどであり得る。この例示的な実施形態では、ユニバーサルスコープティアにおいて1個のエンドポイントのみが示されているが、他の実施形態では、ユニバーサルスコープティアにおいて複数のエンドポイントを有することが望ましい場合がある。
各エンドポイントは、ティアが割り当てられるか、またはさもなければ、ティアと関連付けられる。各エンドポイントは、少なくとも階層データコレクタ(HDC)を含む。実施形態では、各ティアにおけるエンドポイントは、HDCとコンシューマとを含む。たとえば、ローカルスコープティアにおけるエンドポイントは、ローカルスコープコンシューマを含み得る。いくつかの実施形態では、コンシューマは、個々のエンドポイントの外部にあってよい。たとえば、ローカルロードバランサなどのコンシューマは、エンドポイントの外部、たとえば、podレベル(図4Aを参照されたい)に提供され得る。
システム監視のアプリケーションでは、グローバルエンドポイントは、グローバルサーバロードバランサ(GSLB)などのコンシューマに関連付けられ得る。ユニバーサルスコープティアに関しても同じことが当てはまる場合がある。各エンドポイントは、ポーリングのために利用可能な複数の異なるデータテーブルを有し、たとえば、1つまたは複数のデータテーブル、1つまたは複数のCテーブル、および他のテーブルタイプについて、下でより詳細に説明される。あえて言うなら、クエリ(たとえば、SQLクエリ)に応答して、HDCは、クエリに回答するために必要な量のデータのみを(たとえば、図5のテーブル1、テーブル2などから)取り出す。すなわち、クエリに応答して、削減された、理想的には最低限の量のデータがHDCに戻される。質問に回答するために、削減されたまたは最低限のデータセットのみが使用されるため、エンドポイント自体の中に受けるオーバヘッドの量は比較的に低い。この手法は「コスト問題」に対処するが、これは、削減された、または最低限の処理が必要とされるためである。さらに、クエリに応答して戻されているデータセットは比較的に小さいため、「スケール問題」にも対処される。またさらに、少量のデータを利用することによって、相関が実行され得、すなわち、システムは、より複雑な分析(たとえば、複数の変数を必要とするクエリ)を実行することができる。
実施形態では、エンドポイントは、データのテーブルをHDCに利用可能にする。HDCコレクタと呼ばれるサブルーチンに対してプラグインインターフェースを使用する「データテーブル」を含むが、これらに限定されない、データがテーブル内にポピュレートされる多くの方法が存在する。いくつかの実施形態では、コレクタは、データ収集を円滑にし、データがシステムにおいて利用可能であることをHDCが知ることを可能にする。
たとえば、HDCプロセスがエンドポイント上で開始するとき、HDCプロセスは、HDCプロセスに利用可能なすべてのコレクタプラグインを起動させることができ、ひいては、プラグインは、HDCに対してプラグインが何のデータをポピュレートすることができるかをオンデマンドで通信する。たとえば、ボーダゲートウェイプロトコル(BGP)と呼ばれるインターネットルーチンの形で情報を収集するコレクタの場合、スタートアップ時に、BGPコレクタは、以下の情報を収集するようにそのローカルスコープHDCに命令することができる:
Figure 2019525293
実施形態では、実際のBGPデータはポピュレートされない。このとき、コンシューマが、(以下のコード:「SELECT prefix FROM bgproutes」を使用することができる)ユニバーサルスコープHDCに対して、SQL内で「すべてのBGPルートを示してください」などの質問をした場合、ユニバーサルスコープHDCは、階層内の各レベルがそのレベルにおいてデータをアグリゲートするHDCツリーの再帰をインスタンス化することができる。たとえば、ユニバーサルスコープHDCは、データに関してそのbgproutesコレクタに尋ね、次いで、HDC階層ツリーを下方に探求し、その子(グローバルスコープHDC)からbgproutesデータを要求し、次に、その子(グローバルスコープHDC)は、データに関してそのbgproutesコレクタに尋ね、次いで、HD階層ツリーを下方に探求し、その子(ローカルスコープHDC)からbgproutesデータを要求し、その子(ローカルスコープHDC)は、ひいえた、データに関してそのbgproutesコレクタに質問する、などである。この階層内のコレクタは、そのローカルスコープBGPルータに連絡し、ルートを照合し、結果をbgproutesデータテーブルにポピュレートすることができる。bgproutesデータテーブルの一例は以下の通りである:
Figure 2019525293
実施形態では、階層内のHDCは、データを集めるようにローカルBGPコレクタに求める。HDCは、次いで、結果をbgproutesデータテーブル内にポピュレートする。階層内の各HDCは、結果をアグリゲートして、その親までツリーを再帰的に戻ることができる。たとえば、ローカルスコープHDCは、bgproutesテーブルをグローバルスコープHDCに戻すことができ、グローバルスコープHDCは、そのbgproutesテーブルをローカルスコープテーブルでアグリゲートし、次いで、そのテーブルをユニバーサルスコープHDCに渡し、ユニバーサルスコープHDCは、そのbgproutesテーブルをグローバルスコープテーブルでアグリゲートする。実施形態では、ユニバーサルスコープHDCは、システム全体内のすべてのノードからのBGPデータを1つの簡潔なbgproutesテーブル内に戻すことができる。要約すれば、HDCコレクタは、事前に規定されたデータタイプを用いたテーブルの形式でそのデータを表す任意の方法で任意のデータを集めることができる。
より上位のティアにおけるHDCは、より下位の階層ティア内の子からのデータにアクセスすることができる。このいわゆる、探求およびアグリゲート機能は、「分岐テーブル」と呼ばれるテーブルによって実現され得る。上記のbgproutesの例では、グローバルスコープHDCは、そのコレクタを介してそのbgproutesデータテーブルをポピュレートし、次いで、その子からのbgproutesデータを得るために下方に探求することができる。これは、すべての子のbgproutes「データテーブル」に問い合わせる内部機能を実行する、「bgproutes_branch」と名付けられた特別なテーブルに問い合わせることによって行われ得る。HDCは、次いで、このbgproutes_branch分岐テーブルを介して子エンドポイントからのデータを組み合わせ、そのデータをそのローカルbgproutes「データテーブル」と組み合わせる。前に述べたように、この機能は、再帰的であり、すなわち、いずれのティアNもクエリを下方に探求し、この「分岐テーブル」インターフェースを介して、N+1ティアからのデータをアグリゲートすることができる。
データテーブルおよび分岐テーブルに加えて、連続的なクエリテーブル(「Cテーブル」)が存在し得る。図5をやはり参照すると、HDCプロセス402を実行している各機械500は、その機械500が有するテーブルに対してSQLクエリを実行することによって自らに質問することができる(たとえば、「私にはディスクエラーがあるか?」)。そのような自問に対するステートフルな回答は、これらのHDCエンドポイント上の、いわゆる「連続的なクエリテーブル」(または、より単純に「Cテーブル」)内に記憶される。この自問は、HDCがデータを削減し、階層内のより上位のHDCにこれらの結果を利用可能にする、1つの方法である。したがって、Cテーブル502は、HDCの自問に応答して、連続的に更新され得る。
したがって、データテーブル504は、HDCが関連付けられた機械上に記憶されるか、またはさもなければ、その機械上で利用可能なデータをその中に記憶させること(またはさもなければ、そのデータに関連付けさせること)が可能であり、Cテーブル502は、HDC自問からのデータをその中に記憶させ(またはさもなければ、そのデータに関連付けさせ)、したがって、Cテーブル502は、質問またはクエリに対する「リアルタイム」回答をその中に記憶させる。特定の状態セットが満たされる(言い換えれば、Cテーブルがステートフルである)ときのみ、エントリ(たとえば、行)がCテーブル502に追加され得ることを諒解されたい。したがって、テーブル内に記憶された情報は、他のテーブル内に記憶された情報から導出されるため、Cテーブル502は「導出された」テーブルと呼ばれることがある。
ローカルティアHDCは、(監視のアプリケーションでは):「私にはディスクエラーがあるか?」、「私にはメモリエラーがあるか?」、「私は過負荷であるか?」、「私のインターフェースは破損しているか?」、または、たとえば、気象観測のアプリケーションでは、「露点は低いか?」、「氷点下であるか?」、「風速はハリケーンレベルであるか?」など、複数のクエリを提示することができる。これらの質問の結果はCテーブル内に記憶される。システムは、任意の数のCテーブルを作成することができる。したがって、1つまたは複数のCテーブルが存在し得る。たとえば、システム監視のアプリケーションでは、警告が機械によって発せられた警告に対応する「警告Cテーブル」が存在し得る。気象のアプリケーションでは、分析されたステートフルな気象基準の「local_weather_conditions」Cテーブルが存在し得る。任意のエンドポイントにおいて要求または所望される任意のCテーブルが作成され得る。
システムはまた、再帰動作を採用し得る。たとえば、再帰動作は、そのサイズを削減するためにデータを連続的に処理することを必要とし得る。一態様では、HDCは、Cテーブルに問い合せ、次いで、前のCテーブルクエリに対する応答に基づいて追加のCテーブルを生成することによって、これを行う。
Cテーブルは、分析された要約情報を含み得る。これは、コンシューマが、データセットを変更することに応答して、非常に知的な決定を行うことを可能にすることになる。監視の例では、ローカルロードバランサは、システムをサービスから除去するためにHDCデータを消費することができる。気象のアプリケーションでは、モバイルフォンアプリケーションは、潜在的な厳しい気象状態についてユーザに警告するためにHDCデータを消費することができる。
任意のティアにおいて任意のタイプのテーブルが存在し得る。同様のデータ(同じスキーマ)を提供するテーブルは、同じ名称を共有し、問い合わされたとき、ティアを上方にアグリゲートされる。これらのテーブルはまた、1個のティアまたは1個のエンドポイントにおいてのみ存在する個々のテーブルと組み合わされるか、または相関され得る。言い換えれば、テーブルの組合せ、タイプ、および配置には何の制限も存在しない。たとえば、気象アプリケーションでは、数千のローカルスコープHDCコレクタは、「温度」と呼ばれるテーブル内に動的温度データを提供することができ、少数のグローバルスコープHDCコレクタは、「cities_latlon」と呼ばれるテーブル内に都市の緯度および経度などの統計データを提供することができる。ユニバーサルスコープHDCティアにおいてより高次の質問がされるとき、ローカル「温度」テーブルからデータが階層の形でローカルスコープからグローバルスコープにアグリゲートされ、次いで、そのデータがグローバルスコープ「cities_latlon」テーブルと相関され組み合わされて、都市単位の温度を示す分析をユニバーサルスコープコンシューマに示す。たとえば、システム監視のアプリケーションでは、グローバルスコープHDCは、システム内のすべての機械の物理的位置に関する情報を提供するそのティアに独自のコレクタを有してもよく、この情報は、「machine_locations」と呼ばれるテーブル内に記憶され得る。たとえば、グローバルスコープHDCコレクタは、1つの特定の機械がアジアにあり、別の機械が欧州にあり、別の機械がオーストラリアにある、等々を明記するデータを提供することができる。次いで、グローバルロードバランサなどのHDCコンシューマは、アジアにおけるクライアント要求に応答して、グローバルスコープHDCに「アジアにおいてどの機械が健全であるか」を尋ねることができる。HDCは、グローバルスコープにおける「machine_locations」テーブルをローカルスコープからの、アグリゲートされた「machine_health」テーブルと組み合わせて、ロードバランサに回答を提供することができる。要約すると、任意のタイプの任意のテーブルが、任意のティアから、一度または再帰的のいずれかに、アグリゲートされてよく、組み合わされてよく、または相関されてよい。
コンシューマは、任意のティアにおいて任意のタイプのHDCテーブルに対して質問(SQLクエリ)を提示することができる。たとえば、システム監視のアプリケーションでは、ロードバランサなどのHDCコンシューマは、質問「ユーザ要求に応答して、この位置においてどの機械を割り当てることができるか?」をローカルスコープHDCに提示することができる。したがって、HDCは、ローカルロードバランサが決定を行うことを可能にするポイントまでデータを処理することができる。同様に、グローバルサーバロードバランサ(GSLB)などのHDCコンシューマは、「欧州のトラフィック急増に対処するために、機械のどの領域的収集が割り当てられるべきか?」など、より高次の質問をグローバルスコープHDCに提示することができる。このようにして、HDCは、GSLBが決定を行うことを可能にするポイントまでデータを処理することができる。したがって、HDCは任意の数のNティアを有し得るため、そのような質問および意思決定は、Nティア内で実行され得る。
前に述べたように、任意のティアにおける各エンドポイントは、Cテーブルおよびデータテーブルを含むが、これらに限定されない、任意のタイプのテーブルを含み得る。さらに、異なるティアにおいて利用可能なテーブルは異なり得る。任意のティアにおいて、HDCは、連続的に自問し、Cテーブルを構築し、Cテーブルからデータ/回答をプルして、その独自の質問に回答することができる。より高次の各スコープHDCは、より下位のティアから受信した回答に応答して追加のCテーブルを構築することもできる。いくつかの実施形態では、ローカルスコープティア内で収集されたデータは、そのティアに関するデータに関連し得ることを諒解されたい。しかしながら、グローバルスコープティアまたはユニバーサルスコープティアなど、すべてのより上位のティアにおいて、HDCがティアの全域でデータを調べることが可能である。さらに、任意のより上位のスコープティアにおけるHDCは、より下位のティアにおけるHDCに遠隔で問い合わせ、データをプルして、その独自の質問に回答することができる。HDCは階層的であるため(図3および図4を参照されたい)、HDCは、その独自のテーブルからの、ならびに階層のより下位のレベルに存在するテーブルからのデータ(たとえば、データテーブルを含む任意の形のテーブルからのデータまたは他のCテーブルからのデータ)をプルすることができる。一実施形態では、HDCは、HDCがHDCの階層内のどこにフィットするかを知っており、したがって、HDCは、システム内の他のHDCプロセスに問い合わせることができる。実施形態では、HDCプロセスの作成の間に、HDCプロセスの場所を階層内に規定する設定が設定され得る。
各ティアにおいて、特定のエンドポイント上で実行しているLBおよび/またはHDCプロセスの可視度に少なくとも部分的に応じて、異なる範囲のデータが利用可能であることを諒解されたい。したがって、グローバルスコープティアにおいて利用可能なデータの範囲は、ローカルスコープティアにおいて利用可能なデータのセットよりも大きい場合がある。したがって、グローバルスコープティアにおける機械は、より下位のティアにおける機械内のデータを含み得るグローバル視野を有すると言われる場合があり、ローカルスコープティアにおける機械は、その機械にローカルなデータに対する視野を有する。
上述のように、任意のティアにおけるHDCは、自らに質問し(すなわち、自問し)、Cテーブルを生成することができる。しかしながら、HDCの1つのティアにおいて尋ねた質問のタイプは、HDCの別のティアにおいて尋ねた質問のタイプとは異なり得る。たとえば、システム監視のアプリケーションでは、ローカルスコープHDCに「特定の機械にディスクエラーまたはメモリエラーがあるか?」尋ねるのではなく、グローバルスコープにおいて「私の下の階層内のどのpodが使用され得るか?」などの質問をすることができる。そのような質問に対する回答は、たとえば、グローバルティア内に記憶されることになる、「pod_availability」と名付けられたグローバルスコープCテーブル内に記憶され得る。
したがって、収集されたグローバル情報は、下のティア内のエンドポイントに関する情報を含み得る。他のエンドポイント(たとえば、ローカルティアにおけるエンドポイント)に関してグローバルスコープHDCによって収集された情報は、分岐テーブルと呼ばれるテーブル内に記憶されてもよい。いくつかの実施形態では、分岐テーブルは、ローカルスコープティアの上のすべてのティアにおけるエンドポイントからの情報をその中に記憶させている場合がある。
任意のより上位のティアにおけるHDCテーブルは、分岐テーブル機構を介して、その独自のティアにおけるデータ(たとえば、データテーブル、Cテーブルなど)、ならびにそのティアの下のティアからのテーブルを再帰的にアグリゲートし得ることを諒解されたい。
図4Aを手短に参照すると、ロードバランサなどのコンシューマが各機械内にローカルに提供され得る。いくつかの実施形態では、ロードバランサコンシューマ410が個々の機械の外部に提供され得る。たとえば、いくつかの実施形態では、ローカルロードバランサの形のコンシューマが各クラスタ内に提供され得る。しかしながら、他の実施形態では、ローカルロードバランサは、各クラスタの外部であってよい。ロードバランサは、機械が特定のタスクの要件を満たすことができるかどうか、すなわち、機械が特定の処理ジョブ(たとえば、ロードバランサによって割り当てられた処理ジョブ)を受け入れることができるかどうかに関する特定の決定を行うことができる。したがって、ロードバランサ410が、1つのリソースは幾分破損しており、別のリソースはひどく破損しており、別のリソースは健全であると理解した場合、ロードバランサ410は、破損したリソースのうちの1つではなく、健全なリソースに処理ジョブを割り当てることができる。ローカルロードバランサは、人間の介入なしにその独自の決定を自律的に行うことができる。故障状態は、システムからリソースを自動的に除去し得る。一実施形態では、その独自のロードバランサを有する各クラスタが提供されてよく、各ロードバランサは他のロードバランサと通信する。
図4を再び参照すると、HDCはCテーブルを利用して、追加の質問を生成することができることをやはり理解されたい。たとえば、システム監視のアプリケーションでは、エンドポイントが警告Cテーブルおよび健全性Cテーブルを含む場合、HDCは、Cテーブル内に記憶されたデータを使用して追加の質問を作成することができる。
最高レベル(すなわち、いわゆる、図4の例示された実施形態におけるユニバーサルスコープティア)において、HDCは、下のティア内のHDCと同様の様式で動作する。ユニバーサルティアにおいて、HDCは、ネットワークオペレーションセンタ(NOC)または任意の数のデータセンター内に常駐し得、自ら分散され得る。一実施形態では、ユニバーサルスコープティアにおけるHDCは、その下のノードのみを知っている。
HDC技法は、本質的に分散された任意の数の異なるデータセットに関して使用されることを諒解されたい。HDC手法は、たとえば、IoTアプリケーション(たとえば、住宅監視センサ、リアルタイム製造プロセスにおける工場内の監視センサなど)において使用され得る。たとえば、HDCは、住宅内のセンサのシステムからデータを収集し、そのデータを分析し、次いで、コンシューマを介して結果をクラウド内に記憶するために適用され得る。別のHDCシステムは、リアルタイム温度データを収集および分析し、温度が所定の温度よりも高いかどうかを判定することができる。そうである場合、コンシューマは、住宅内の空調をオンにするためのコマンドをトリガすることができる。
そのような要求はポーリングベースであることを諒解されたい。したがって、ポーリングが入り、質問をHDCに提示したとき、HDCは、データをプルし、データが有効である時間量を提供する。機械は、次いで、割り振られた時間内でデータを適切に処理する。したがって、本質的なレイテンシは存在しない。1つの例示的な実施形態では、システムの目標は、30秒以下で課題点を検出することである。
本明細書で説明したのは、たとえば、図4に示した処理システムなど、処理システムの部分として提供され得る処理装置によって実行される処理であることを諒解されたい。処理のいくつかは、経験的手順またはデータベースを介して実行されてよく、他の処理は、コンピュータソフトウェア命令またはプロセッサ上で実行している命令のグループを利用して実行されてよい。したがって、本明細書で説明したプロセスのいくつかは、コンピュータプロセッサによって実行されるコンピュータソフトウェアを介して実装され得、他のプロセスは、異なる様式で、たとえば、経験的手順を介して実装され得る。
代替として、処理のいくつかは、デジタル信号プロセッサ(DSP)回路または特定用途向け集積回路(ASIC)など、機能的に等価の回路によって実行され得る。本明細書で説明したプロセスは、任意の特定のプログラミング言語のシンタックスを示さない。むしろ、本明細書で説明した処理は、特定の装置の要求される処理を実行する目的で、プロセスを実行するために、もしくは回路を製作するために、またはコンピュータソフトウェアを生成するために当業者が必要とする機能情報を例示する。コンピュータソフトウェアが使用され得る場合、ループおよび変数の初期化および一時変数の使用など、多くのルーチンプログラム要素は示されていないことに留意されたい。本明細書で別段に示されていない限り、説明したプロセスの特定の順序は、単なる例示であり、本発明の趣旨から逸脱せずに、変更され得ることを当業者は諒解されたい。
本明細書で説明したシステムおよび方法は、ハードウェア、ソフトウェア、または組合せで実装され得る。ソフトウェアは、1つまたは複数のプロセッサによって実行されると、プロセッサにシステムおよび方法を実装する動作を実行させる、1つまたは複数のコンピュータ可読媒体上に記憶されたソフトウェア命令を含み得る。
本発明の好ましい実施形態を説明してきたが、これらの概念を組み込んだ他の実施形態が使用され得ることが当業者には現在明らかであろう。したがって、本発明は、説明した実施形態に限定されるべきでなく、続く請求項の趣旨および範囲によってのみ限定されるべきである。

Claims (15)

  1. 多数のエンドポイントを有する分散型システムにおいて使用するための分散型リアルタイムデータ収集、処理および対処システムであって、
    ローカルスコープティアに割り当てられた第1の複数のエンドポイントであって、前記ローカルスコープティア内の各エンドポイントが、複数の異なる位置のうちの1つに関連付けられ、前記ローカルスコープティア内の各エンドポイントが、
    ローカルスコープ階層データコレクタ(HDC)が存在する前記エンドポイントにローカルな情報を収集するように構成された前記ローカルスコープHDCと、
    活動を実行することが可能な、処理済みデータのローカルコンシューマと
    を含む、第1の複数のエンドポイントと、
    グローバルスコープティアに割り当てられた第1の複数のエンドポイントであって、前記グローバルスコープティア内の各エンドポイントが、
    グローバルスコープ階層データコレクタ(HDC)が存在する前記エンドポイントにローカルな情報を収集し、前記ローカルスコープティアよりも下の任意のエンドポイントからの情報も収集するように構成された前記グローバルスコープHDCと、
    前記処理済みデータのグローバルスコープコンシューマと
    を含む、第1の複数のエンドポイントと、
    ユニバーサルスコープティアに割り当てられた、少なくとも1つのエンドポイントであって、前記ユニバーサルスコープティア内の前記少なくとも1つのエンドポイントの各々が、
    ユニバーサルスコープ階層データコレクタ(HDC)が存在する前記エンドポイントにローカルな情報を収集し、前記グローバルスコープティア内の任意のエンドポイントおよび前記ローカルスコープティア内の任意のエンドポイントからの情報も収集するように構成された前記ユニバーサルスコープHDCと、
    前記処理済みデータのユニバーサルスコープコンシューマと
    を含む、少なくとも1つのエンドポイントと
    を含む、分散型リアルタイムデータ収集、処理および対処システム。
  2. 前記ローカルスコープティア内の各エンドポイントが、前記処理済みデータのローカルスコープコンシューマを含む、請求項1に記載の分散型リアルタイムデータ収集、処理および対処システム。
  3. 前記グローバルスコープティア内の各エンドポイントが、前記処理済みデータのグローバルスコープコンシューマを含む、請求項1に記載の分散型リアルタイムデータ収集、処理および対処システム。
  4. 前記ローカルスコープティア、前記グローバルスコープティア、および前記ユニバーサルスコープティア内の各エンドポイントが、少なくとも1つのデータテーブルを含む、請求項1に記載の分散型リアルタイムデータ収集、処理および対処システム。
  5. 各ローカルスコープHDC、グローバルスコープHDC、およびユニバーサルスコープHDCが、Cテーブルを生成するための手段を含む、請求項1に記載の分散型リアルタイムデータ収集、処理および対処システム。
  6. 前記ローカルスコープティア、前記グローバルスコープティア、および前記ユニバーサルスコープティア内の各エンドポイントが、
    その中に情報を記憶した、少なくとも1つのデータテーブルと、
    少なくとも1つの他のテーブル内に記憶された情報から導出された情報をその中に記憶した、少なくともCテーブル
    の少なくとも1つを含む、請求項5に記載の分散型リアルタイムデータ収集、処理および対処システム。
  7. 前記グローバルスコープティアおよび前記ユニバーサルスコープティア内の各エンドポイントが、少なくとも1つの分岐テーブルを含む、請求項5に記載の分散型リアルタイムデータ収集、処理および対処システム。
  8. 多数のエンドポイントを有する分岐型処理システムにおいて使用するための分散型リアルタイムデータ収集、処理および対処方法であって、
    ローカルスコープティア、グローバルスコープティア、およびユニバーサルスコープティアのうちの1つにエンドポイントを割り当てることであって、少なくとも前記ローカルティア内の各エンドポイントが、複数の異なる位置のうちの1つに関連付けられる、割り当てることと、
    前記各エンドポイント内に階層データコレクタ(HDC)を提供し、前記HDCを介して各エンドポイント内のデータを収集することであって、前記ローカルスコープティアにおける各HDCが、前記HDCが存在する前記エンドポイントに関するデータを収集し、前記グローバルスコープティアにおける各HDCが、前記HDCが存在する前記エンドポイントに関するデータを収集し、前記ローカルスコープティア内の1つまたは複数のエンドポイントからのデータを収集する、収集することと、
    前記ローカルティアにおける前記エンドポイントの各々の中に処理済みデータのローカルスコープコンシューマを提供することと、
    前記グローバルスコープティアにおける前記エンドポイントの各々の中に前記処理済みデータのグローバルスコープコンシューマを提供することと
    を含む、
    分散型リアルタイムデータ収集、処理および対処方法。
  9. 前記ローカルスコープティア、前記グローバルスコープティア、および前記ユニバーサルスコープティアのうちの1つまたは複数における1つまたは複数のエンドポイント内に記憶された1つまたは複数のテーブルに記憶された情報に基づいて、外部エンティティに関する活動を自律的に実行すること
    をさらに含む、請求項8に記載の分散型リアルタイムデータ収集、処理および対処方法。
  10. 前記ローカルスコープティアにおけるHDCシステム、前記グローバルスコープティアにおけるHDCシステム、および前記ユニバーサルスコープティアにおけるHDCのうちの少なくとも2つの間でデータをトランスポートすることをさらに含む、請求項9に記載の分散型リアルタイムデータ収集、処理および対処方法。
  11. データ分析動作がすべてのティア内のすべてのエンドポイント間で分散されるように、前記ローカルスコープティア、前記グローバルスコープティア、および前記ユニバーサルスコープティアの各々の中のすべての前記エンドポイント間で前記データ分析動作を実行することをさらに含む、請求項10に記載の分散型リアルタイムデータ収集、処理および対処方法。
  12. 外部エンティティに関する活動を実行するための処理済みデータのコンシューマをさらに含む、請求項10に記載の分散型リアルタイムデータ収集、処理および対処方法。
  13. 前記ローカルスコープティア、前記グローバルスコープティア、および前記ユニバーサルスコープティアの各々における外部エンティティに関する活動がすべてのティアにおける任意のエンドポイント間で分散されるように、前記外部エンティティに関する活動を実行するコンシューマをさらに含む、請求項10に記載の分散型リアルタイムデータ収集、処理および対処方法。
  14. モノのインターネット(IoT)アプリケーションならびにソフトウェアアズアサービス(SaaS)アプリケーションにおいて前記方法を使用することをさらに含む、請求項8に記載の分散型リアルタイムデータ収集、処理および対処方法。
  15. リアルタイム製造プロセスにおいて工場内のセンサからのデータに基づいて、活動を収集、分析、および実行するために前記方法を使用することをさらに含む、請求項13に記載の分散型リアルタイムデータ収集、処理および対処方法。
JP2018564749A 2016-06-10 2017-06-09 リアルタイムデータ収集において使用するための階層データコレクタおよび関連技法 Active JP6680908B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662348407P 2016-06-10 2016-06-10
US62/348,407 2016-06-10
PCT/US2017/036749 WO2017214500A1 (en) 2016-06-10 2017-06-09 Hierarchical data collector for use in real time data collection and related techniques

Publications (2)

Publication Number Publication Date
JP2019525293A true JP2019525293A (ja) 2019-09-05
JP6680908B2 JP6680908B2 (ja) 2020-04-15

Family

ID=60572828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018564749A Active JP6680908B2 (ja) 2016-06-10 2017-06-09 リアルタイムデータ収集において使用するための階層データコレクタおよび関連技法

Country Status (6)

Country Link
US (1) US20170357707A1 (ja)
EP (1) EP3469767A4 (ja)
JP (1) JP6680908B2 (ja)
KR (1) KR20190017947A (ja)
CN (1) CN109644147A (ja)
WO (1) WO2017214500A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10862988B2 (en) * 2017-12-18 2020-12-08 The Chinese University Of Hong Kong On-demand real-time sensor data distribution system
US11483326B2 (en) 2019-08-30 2022-10-25 Palo Alto Networks, Inc. Context informed abnormal endpoint behavior detection
US11803569B2 (en) * 2021-10-05 2023-10-31 Procore Technologies, Inc. Computer system and method for accessing user data that is distributed within a multi-zone computing platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197856A1 (en) * 2011-01-28 2012-08-02 Cisco Technology, Inc. Hierarchical Network for Collecting, Aggregating, Indexing, and Searching Sensor Data
JP2013510545A (ja) * 2009-11-03 2013-03-21 スパイリア、インコーポレイテッド 動的分散型電力グリッド制御システム
CN103259809A (zh) * 2012-02-15 2013-08-21 株式会社日立制作所 负载均衡器、负载均衡方法及分层数据中心系统
JP2016076217A (ja) * 2014-10-06 2016-05-12 フィッシャー−ローズマウント システムズ,インコーポレイテッド 地域的ビッグデータノード、プロセスプラントの動作を向上する方法、プロセスプラント内で地域的ビッグデータをサポートするためのシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739208B2 (en) * 2005-06-06 2010-06-15 Numenta, Inc. Trainable hierarchical memory system and method
US7849069B2 (en) * 2006-06-21 2010-12-07 International Business Machines Corporation Method and system for federated resource discovery service in distributed systems
US7984151B1 (en) * 2008-10-09 2011-07-19 Google Inc. Determining placement of user data to optimize resource utilization for distributed systems
WO2012015507A1 (en) * 2010-07-29 2012-02-02 Spirae, Inc. Dynamic distributed power grid control system
US11288277B2 (en) * 2012-09-28 2022-03-29 Oracle International Corporation Operator sharing for continuous queries over archived relations
US20140222522A1 (en) * 2013-02-07 2014-08-07 Ibms, Llc Intelligent management and compliance verification in distributed work flow environments
US9578171B2 (en) * 2013-03-26 2017-02-21 Genesys Telecommunications Laboratories, Inc. Low latency distributed aggregation for contact center agent-groups on sliding interval
CN104079871A (zh) * 2013-12-29 2014-10-01 国家电网公司 视频处理方法
US10846257B2 (en) * 2014-04-01 2020-11-24 Endance Technology Limited Intelligent load balancing and high speed intelligent network recorders
US9679125B2 (en) * 2014-04-29 2017-06-13 PEGRight, Inc. Characterizing user behavior via intelligent identity analytics
US10524101B2 (en) * 2016-05-26 2019-12-31 Theo Kanter Distributed context-sharing networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013510545A (ja) * 2009-11-03 2013-03-21 スパイリア、インコーポレイテッド 動的分散型電力グリッド制御システム
US20120197856A1 (en) * 2011-01-28 2012-08-02 Cisco Technology, Inc. Hierarchical Network for Collecting, Aggregating, Indexing, and Searching Sensor Data
CN103259809A (zh) * 2012-02-15 2013-08-21 株式会社日立制作所 负载均衡器、负载均衡方法及分层数据中心系统
JP2016076217A (ja) * 2014-10-06 2016-05-12 フィッシャー−ローズマウント システムズ,インコーポレイテッド 地域的ビッグデータノード、プロセスプラントの動作を向上する方法、プロセスプラント内で地域的ビッグデータをサポートするためのシステム

Also Published As

Publication number Publication date
KR20190017947A (ko) 2019-02-20
US20170357707A1 (en) 2017-12-14
JP6680908B2 (ja) 2020-04-15
EP3469767A4 (en) 2020-01-22
WO2017214500A1 (en) 2017-12-14
EP3469767A1 (en) 2019-04-17
CN109644147A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
US11088900B2 (en) Configuring system resources for different reference architectures
US10785140B2 (en) System and method for identifying components of a computer network based on component connections
US10693734B2 (en) Traffic pattern detection and presentation in container-based cloud computing architecture
US10749939B2 (en) Application monitoring for cloud-based architectures
US10229175B2 (en) High-throughput extract-transform-load (ETL) of program events for subsequent analysis
US10917324B2 (en) Network health data aggregation service
US9647904B2 (en) Customer-directed networking limits in distributed systems
US20030225876A1 (en) Method and apparatus for graphically depicting network performance and connectivity
US20220058042A1 (en) Intent-based telemetry collection service
US11463303B2 (en) Determining the health of other nodes in a same cluster based on physical link information
US20140304407A1 (en) Visualizing Ephemeral Traffic
CN114143203A (zh) 一种基于动态服务拓扑映射的Kubernetes容器网络数据包指标采集的方法及系统
US8891403B2 (en) Inter-cluster communications technique for event and health status communications
CN110659109B (zh) 一种openstack集群虚拟机监控系统及方法
CN112702214A (zh) 配置网络
US11283638B1 (en) Determining the status of a node based on a distributed system
JP6680908B2 (ja) リアルタイムデータ収集において使用するための階層データコレクタおよび関連技法
US20230198860A1 (en) Systems and methods for the temporal monitoring and visualization of network health of direct interconnect networks
US11388109B2 (en) Hierarchical capacity management in a virtualization environment
US10498617B1 (en) System, method, and computer program for highly available and scalable application monitoring
CN114338684B (zh) 一种能源管理系统及方法
Calderon et al. Monitoring framework for the performance evaluation of an IoT platform with Elasticsearch and Apache Kafka
US10715608B2 (en) Automatic server cluster discovery
US20240070002A1 (en) Hang detection models and management for heterogenous applications in distributed environments
CN117435444A (zh) 检测方法、装置、电子设备、存储介质及请求响应方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200319

R150 Certificate of patent or registration of utility model

Ref document number: 6680908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250