JP2015156202A - グラフデータ内のイベント伝搬 - Google Patents

グラフデータ内のイベント伝搬 Download PDF

Info

Publication number
JP2015156202A
JP2015156202A JP2014230332A JP2014230332A JP2015156202A JP 2015156202 A JP2015156202 A JP 2015156202A JP 2014230332 A JP2014230332 A JP 2014230332A JP 2014230332 A JP2014230332 A JP 2014230332A JP 2015156202 A JP2015156202 A JP 2015156202A
Authority
JP
Japan
Prior art keywords
event
resource
propagation
resources
data storage
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.)
Withdrawn
Application number
JP2014230332A
Other languages
English (en)
Inventor
ヒュー・ボ
Bo Hu
メンディ・ロジャー
Menday Roger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2015156202A publication Critical patent/JP2015156202A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation

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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データグラフを符号化するデータを格納するよう構成されるデータ記憶システムを提供する。【解決手段】データグラフは複数のリソース及び複数の相互接続を有し、複数の相互接続の各々は、複数のリソースのうちの2つのリソースを接続し、リンク付けされたリソース間の関係を表す。データ記憶システムは、データグラフを符号化するデータを格納するよう構成されるデータ記憶装置と、複数のイベントハンドラであって、各イベントハンドラは、複数のリソースのうちの1又は複数のリソースに関連付けられ、個々の関連付けられたリソース又はその各々において実行可能である、イベントハンドラと、個々の関連付けられたリソースにおいて複数のイベントハンドラのうち1又は複数のイベントハンドラの実行をトリガすることにより、複数のリソースのうちの1つのリソースにおける処理イベントに応答するよう構成されるイベント伝搬メカニズムと、を有する。【選択図】図1

Description

本発明は、データ記憶の分野に係り、特に、グラフデータベース内のデータ修正のような処理イベントに応答するメカニズムに関連する。
関係型データベースは、データを行と列で格納する。行及び列は、データを格納する前に定める必要のあるテーブルを構成する。テーブルの定義及びこれらのテーブルに含まれるデータ間の関係は、スキーマと称される。関係型データベースは、固定スキーマを用いる。グラフデータベースは、データをノード及びアークの形式で格納することにより、関係型データベースの重要な拡張を表す。ここで、ノードはエンティティ又はインスタンスを表し、アークは任意の2個のノード間の特定種類の関係を表す。無向グラフでは、ノードAからノードBへのアークは、ノードBからノードAへのアークと同じであると考えられる。有向グラフでは、2つの方向は別のアークとして扱われる。
グラフデータベースは、概して2つの主な種類に分類できる広範な種類の異なるアプリケーションで用いられる。第1の種類は、知的意思決定支援及び自己学習のようなクラス記述子の大規模な集合体(「知識ベースアプリケーション」と称される)を有する複雑な知識ベースシステムを有する。第2の種類は、社会的データ及びビジネスインテリジェンスのようなトランザクションデータに対するグラフ検索の実行を含むアプリケーション(「トランザクションデータアプリケーション」と称される)を有する。多くのアプリケーションは、両方の種類を表し得る。しかしながら、大部分のアプリケーションは、主に知識ベース又はトランザクションデータアプリケーションのいずれかで特徴付けられ得る。グラフデータベースは、種々の分野の膨大な構造化又は非構造化データを格納できる大規模な「意味ネットワーク」を維持するために用いることができる。意味ネットワークは、知識表現の形式として用いられ、コンセプトを表すノード及びコンセプト間の意味関係を表すアークを有する有向グラフである。
ウェブブラウザは、処理イベントを扱うよう構成される。イベントは、目標において発火した後、文書ルートに到達するまで又はプログラマが明示的に伝搬を停止するまで、文書を通じてバブリングし、続いて、要素のネスティングにより階層構造が構築される。バブリング経路に沿って、イベントハンドラはイベントに反応できる。ウェブプログラマは、反応連鎖を調整するために、このメカニズムを広く利用する。テーブル要素では、行に結合するハンドラは局所的変化に反応し、テーブル自体のハンドラは、バブリングした行イベントを処理し、次に相応して全テーブルレベルで反応できる。
しかしながら、グラフデータベースは、より広く実装され、グラフデータモデルに適用できるデータ処理手順が探求されている。データエンティティのネットワーク構造を、電子商取引アプリケーションのデータバックエンドとして考える。新しいショッピングカートの生成によりイベント、「ショッピングカート」内に「アイテム」がある、が生じるかも知れない。論理的に、アプリケーション全体に亘るデータの移動及び処理が生じ得る。例えば、関心のあるエンティティは、在庫管理、受注処理、リアルタイム分析、等を有し得る。しかしながら、この効果を支援するために、適切に構成されるデータ記憶システムが必要である。
開示の実施形態は、データグラフを符号化するデータを格納するよう構成されるデータ記憶システムであって、前記データグラフは複数のリソース及び複数の相互接続を有し、前記複数の相互接続の各々は、前記複数のリソースのうちの2つのリソースを接続し、前記リンク付けされたリソース間の関係を表し、前記データ記憶システムは、前記データグラフを符号化する前記データを格納するよう構成されるデータ記憶装置と、複数のイベントハンドラであって、各イベントハンドラは、前記複数のリソースのうちの1又は複数のリソースに関連付けられ、個々の関連付けられた前記リソース又はその各々において実行可能である、イベントハンドラと、個々の関連付けられたリソースにおいて前記複数のイベントハンドラのうち1又は複数のイベントハンドラの実行をトリガすることにより、前記複数のリソースのうちの1つのリソースにおける処理イベントに応答するよう構成されるイベント伝搬メカニズムと、を有するデータ記憶システムを含む。
本発明の好適な特徴は、単なる例として添付の図面を参照して以下に説明される。
処理イベントが本発明を具現化するデータ記憶システム内のデータグラフに及ぼす効果を示す。 本発明の一実施形態におけるシステムアーキテクチャを示す。 本発明を具現化する、図2のシステムアーキテクチャの代替を示す。
<概要>
本発明の実施形態は、データグラフを符号化するデータを格納するよう構成され得るデータ記憶システムを有する。データグラフは、複数のリソースと、複数の相互接続と、を有する。複数の相互接続の各々は、複数のリソースの中の2つのリソースを接続し、リンク付けされたリソース間の関係を表す。データ記憶システムは、データグラフを符号化するデータを格納するよう構成されるデ―タ記憶装置と、それぞれ複数のリソースの中の1又は複数のリソースに関連付けられ該又は個々の関連付けられたリソースで実行可能な複数のイベントハンドラと、個々の関連するリソースで複数のイベントハンドラの中の1又は複数のイベントハンドラの実行をトリガすることにより、複数のリソースの中の1つのリソースで処理イベントに応答するよう構成されるイベント伝搬メカニズムと、を有する。
有利なことに、このようなデータ記憶システムは、処理イベント、例えばリソースに含まれるデータ値を変更する書き込みアクセスが、該処理イベント自体の実行に含まれるのみならず、該処理イベントに処理を実行させる。データ記憶システム内にイベントハンドラを含むこと、及びイベント伝搬メカニズムは、単一のイベントが一連の処理イベント、イベントハンドラの実行を生じるために必要な機能を提供する。イベントハンドラの実行は、イベントハンドラを実行するときに、リソースにあるグラフデータを変更しても良く、追加イベントハンドラの実行の形式で更なる処理イベントを引き起こしても良い。
データグラフは、格納データの明示であり、ユーザ及びイベントハンドラの両者に又はデータ記憶システム内部の他の処理に格納データを表現する手段である。データグラフは、トリプル、例えばRDFトリプルとして符号化され、離粗^巣は主語として命名されるトリプルにより定められても良い。代替又は追加で、データはキー値格納で格納され、トリプルはリソースを定める追加データ(例えば、メタデータ)が格納される記憶場所をインデックス付けするキーとして機能しても良い。
トリプルは、グラフデータを複数の主語−述語−目的語の表現として特徴付けることにより、グラフデータのエンコードを提供する。この文脈では、主語及び述語は、グラフデータのグラフノード/リソースであり、頂点、リソース、インスタンス又はコンセプトのようなエンティティであり、述語は、主語と目的語の間の関係の表現である。述語は、目的語への特定の種類のリンクを提供することにより、主語に関する何かを断言する。例えば、主語は、(例えば、URIを介して)ウェブリソースを示しても良く、述語はリソースの個々の特性、特徴又は状況を示し、目的語は、該特性、特徴又は状況のインスタンスを示す。言い換えると、トリプルステートメントの集合は、元来、方向性グラフデータを表す。RDF標準は、このようなトリプルの形式化された構造を提供する。
本願明細書では、機能がリソース又はグラフデータの特定の他の要素で行われると記載される場合、該機能は実際には該グラフ要素を符号化するデータを含むデータに対して実行されていると想定する。例えば、イベントハンドラがリソースにおいて実行可能である又は実行されたと定められる場合、該イベントハンドラは、実行され、該リソースを符号化するデータに対する読み出し及び/又は書き込み動作を含む処理又は命令セットである。リソースは、ノードとして表されても良い。
用語リソースは、本願明細書を通じて用語頂点により置き換えられても良く、グラフ内のノード、つまりエッジ若しくは相互接続により他のグラフ要素に接続されるグラフ要素として考えられる。
相互接続は、リソース間のラベル付けされた関係である。相互接続は、有向性であっても良い。第1のリソースから第2のリソースへの相互接続は、第1及び第2のリソース間の論理的接続を表し又は定め、該相互接続に割り当てられるラベルは、該論理的関係の形式を定める。例えば、第1のリソースは主語リソースと考えられても良く、第2のリソースは目的語リソースと考えられても良い。相互接続のラベルは主語リソースの特性を識別し、目的語リソースの値は、主語リソースの属性となり得る該特性の範囲又は値を定める。代替で、相互接続は、エッジと表されても良い。述語は、相互接続に割り当てられるラベルを定めるために用いられ得る用語である。
データ記憶装置は、1又は複数のデータ記憶サーバにより具現化されても良い。冗長の要求により及び/又はデータグラフのサイズにより必要とされるように、データグラフを符号化するデータは、1より多いデータサーバに渡り分散されても良い。各データ記憶サーバは、自身に格納されたデータに対する範囲クエリを実行するよう構成される管理モジュールを有しても良い。したがって、異なる記憶サーバに格納されたデータは、同時にアクセス可能である。さらに、各データ記憶サーバは、共同でイベントハンドラを実行するよう構成されるプロセッサ及びメモリを有しても良い。1より多いデータ記憶サーバを有する実施形態では、1より多いデータ記憶サーバは、データグラフ全体へのアクセス可能性を提供する共有管理機能を実現するために協働するよう構成されても良い。各データ記憶サーバは、格納すべきデータグラフの領域を割り当てられても良い。代替で、データ記憶サーバへのデータの割り当ては、符号化グラフデータの順序に従って実行されても良い。
イベントハンドラは、プロセッサにより実行されると、処理を実行させる処理又は命令セットであっても良い。実行中のイベントハンドラは、イベントハンドラが実行されるリソースを符号化するデータに対して行われている読み出し又は書き込みアクセスを有しても良い。処理は、格納データの変更、及び/又は実行を生じる処理イベントの特性を含み得る要因に基づくデータを変更するか否かの検討を有しても良い。イベントハンドラは、データグラフ内のリソースとして格納され又はそれにより表されても良い。
イベントハンドラとリソースとの間の関連付けは、登録、又はイベントハンドラとリソースとの間の特定の他の明示的リンクの形式であっても良い。例えば、イベントハンドラは、イベントハンドラが登録されたリソースのリストと一緒に各条されても良く、イベントハンドラは、イベントハンドラが登録される該リソースにおいて実行するよう構成される。イベントハンドラが登録されるリソースの範囲は、例えば、イベントハンドラ及びリソースが登録されるデータ記憶サーバにより決定されても良い。一実装では、イベントハンドラは、イベントハンドラがデータ記憶サーバの観点で同一場所に配置されるリソースにのみ登録されても良い。イベントハンドラは、特性の種類の処理イベントに応答して実行するよう構成されても良い。例えば、データハンドラは、処理イベント種類の所定のセットの各々について、データ記憶サーバ毎に提供されても良い。
イベント伝搬メカニズムは、個々の関連付けられたリソースにおける1又は複数のイベントハンドラの実行をトリガすることにより、処理イベントに応答するよう構成される。さらに、イベント伝搬メカニズムは、他のリソースにおけるイベントハンドラの更なる実行をトリガすることにより、リソースにおけるイベントハンドラの実行に応答するよう構成されても良い。このように、単一の処理イベントは、伝搬し、該単一の処理イベントにより変更されるリソース以外のリソースにおいて効果(イベントハンドラの実行)を生じることができる。
処理イベントは、新しいリソースの生成及び/又は格納データ内の既存のオブジェクト/範囲/値の変更を含むデータ変更イベントであっても良い。処理イベントは、複数のイベントハンドラのうちの1つの実行、及び/又はデータグラフの外部のエンティティによる特定のリソースに対する読み出し/書き込み要求に関連する処理を有しても良い。処理イベントは、例えば、分析アプリケーションによりリソースに対して行われているアクセスを有しても良い。処理イベントは、リソース(又はリソースを符号化するデータの少なくとも一部)を読み出す試みであっても良い。例えば、リソースの遅延更新を実行するための処理において、つまり必要なときにのみリソースを更新/リフレッシュする。
初期処理イベントに応答したリソースにおけるイベントハンドラのトリガは、パス(初期処理イベントにより開始されたイベント通知を受信したリソース間の一連の相互接続、又は初期処理イベントの結果としてイベントハンドラがトリガされたリソース間の一連の相互接続)により表すことができる。特定の初期処理イベントに応答したイベントハンドラのトリガは、停止されても良い。つまり、データ記憶システムは、イベントを伝搬する更なるリソースが存在しないとき、又は伝搬処理自体により若しくは代替でシステムレベルイベントにより停止が明示的に呼び出されるとき、特定の初期処理イベントに応答する将来のイベントハンドラのトリガを除外しても良い。
例えば、リソースにおける処理イベントは、複数のイベントハンドラの中でも、リソースに関連付けられたイベントハンドラによる、リソースを符号化するデータの変更であっても良い。
例えば、イベント伝搬メカニズムは、個々の関連付けられたリソースにおいて複数のイベントハンドラの中の更なるイベントハンドラの実行をトリガすることにより、個々の関連付けられたリソースにおいて複数のイベントハンドラの中の1つのイベントハンドラの実行に応答するよう構成される。
有利なことに、外部書き込みアクセスのような初期処理イベントに応答して実行されても良い、イベントハンドラにより実行されるデータ変更に応答することにより、イベントに対する応答は、データグラフ内の経路に沿って伝搬する。経路は、リソース間の相互接続により、及び/又はリソース間の関係(interest)の登録により、定められても良い。例えば、処理イベントが第1のリソースにおいて生じ、第2のリソースが第1のリソース内の登録された関係である場合(登録された関係は、イベント伝搬メカニズムに格納されても良く、ユーザ若しくはデータベース管理者により入力されても良い)、イベント伝搬メカニズムは、第2のリソースにおけるイベントハンドラの実行をトリガし、又は第2のリソースにおいてイベントハンドラを実行するか否かを決定する処理を少なくとも実行するよう構成されても良い。
処理イベントは、多数の形式のうちの1つを取っても良く、イベント伝搬メカニズムの応答は、該イベント伝搬メカニズムが応答している処理イベントの形式にある程度依存しても良い。処理イベントは、イベント伝搬メカニズムにより、所定の複数のカテゴリ又は種類のうちの1つとして分類されても良い。所定の複数のカテゴリは、特定の実装シナリオに依存して選択されても良い。特に、リソースにおける処理イベントは、リソースからの指示の結果として、複数のリソースの部分を形成する新しいリソースの生成であっても良い。例えば、別のリソースからの指示の結果としての新しいリソースの生成は、新しいリソースと共に別のリソースをインスタンス化することを有しても良い。このような例では、供給される指示は、新しいリソースの構造及び/又はその属性である特性についてのテンプレートである。別のリソースからの指示の結果としての新しいリソースの生成の更なる例として、別のリソースによる新しいリソースの生成は、別のリソースによる生成エンティティに供給されるパラメータに基づいても良い。言い換えると、別のリソース及び新しいリソースは、祖先/子孫関係を有する。祖先及びその子孫は、(「自然エンティティ」内で複製されるような)同じ種類を有しても良く、又はそれらは異なるが「含有」エンティティ(つまり、病院内の患者、レシピ内の材料、掲示板内の郵便配達員、等)であっても良い。
新しいリソースの生成は、多くの実装では、データグラフ内のどこかで論理的影響を有する種類の処理イベントである。したがって、イベント及びその影響をグラフ全体に広めるメカニズムを提供することは有利である。
特定のリソースにおける処理イベントに応答してイベントハンドラが実行されるリソースは、特定のリソースに論理的にリンク付けされても良い。したがって、イベントハンドラがイベント伝搬メカニズムによりトリガされるリソース又はリソースの各々は、複数の相互接続の中の1又は複数の相互接続により処理イベントが引き起こされたリソースに接続される。
また、1又は複数のリソースにおけるこれらのイベントハンドラの実行は、1又は複数のリソースへの相互接続により接続されるリソースにおけるイベントハンドラの実行をトリガしても良い。
イベントハンドラのリソースとの関連付けは、イベントハンドラをリソースにおいてトリガするか否かを決定するために、イベント伝搬メカニズムにより適用可能な1又は複数の条件と関連付けられて格納されても良い。例えば、関連付けられた条件は、イベントハンドラが応答して実行される処理イベントの種類である。代替又は追加で、イベントハンドラのカテゴリが存在しても良く、関連付けられた条件は、問題のイベントハンドラが応答して実行される実行中のイベントハンドラの種類であっても良い。
リソースにおける処理イベントに対する応答は、複数のイベントハンドラのうちのどれが該リソースに接続されたリソースに関連付けられているかを識別すること、及び各々の識別したイベントハンドラについて、該リソースにリンク付けされたリソース又はリソースの各々においてイベントハンドラをトリガするか否かを決定すること、を有しても良い。
イベント伝搬メカニズムは、別のリソースにおける処理イベントに応答して、あるリソースにおいてイベントハンドラをトリガするよう構成されても良い。例えば、あるリソースは、イベント伝搬メカニズムにより記録された、登録された関係又は別のリソース内での関連を有しても良い。この登録された関係又は関連は、該あるリソースにおいてイベントハンドラのトリガを生じる。
代替又は追加で、イベント伝搬メカニズムは、(複数のリソースの中の)特定のリソースにおける処理イベントに応答して、(複数のイベントハンドラの中の)該特定のリソースに関連付けられたイベントハンドラの実行をトリガするよう構成されても良い。このイベントハンドラの実行は、他のリソースにおける更なるイベントハンドラの実行をトリガしても良い。
イベント伝搬メカニズムは、データベース管理レベル、例えば処理イベントを監視し、及びデータグラフ全体について、処理イベントに応答してどのリソースにおいてどのイベントハンドラをトリガすべきかを決定できる処理マネジャで実行される集中型機能であっても良い。代替で、処理マネジャはデータ記憶サーバ毎に設けられても良い。これは、処理マネジャが設けられるデータ記憶サーバに格納されたリソースについてのみであるが、処理イベントに応答してどのリソースにおいてどのイベントハンドラをトリガすべきかを決定できる。更なる代替として以下に定めるように、イベント伝搬メカニズムは、リソース毎に設けられる機能により実現されても良い。例えば、イベント伝搬メカニズムは、複数のリソースの各々に割り当てられるローカルイベント伝搬マネジャであっても良い。各ローカルイベント伝搬マネジャは、第1の近隣ローカルイベント伝搬マネジャからイベント通知を受信し、受信イベント通知に応答して、ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられるイベントハンドラのうちの任意のイベントハンドラの実行をトリガするか否か、受信イベント通知を第1の近隣ローカルイベント伝搬マネジャ以外の任意の残りの近隣ローカルイベント伝搬マネジャに送信するか否か、を決定するよう構成される。近隣ローカルイベント伝搬マネジャは、複数のローカルイベント伝搬マネジャの中で、複数の相互接続の中のある相互接続を介してローカルイベント伝搬マネジャが割り当てられているリソースにリンク付けされたリソースに割り当てられたローカルイベント伝搬マネジャである。
上述の例では、ローカルイベント伝搬マネジャは、複数のリソースの各々について設けられる。例えば、各ローカルイベント伝搬マネジャは、別個に設定可能である。このように、近隣リソースにおける特定の処理イベントに応答してリソースにおいてイベントハンドラを実行するか否かを決定する条件は、リソースの特定の構造及び使用特性の観点から生成され得る。リソースに割り当てられているローカルイベント伝搬マネジャは、格納された条件及び命令、又はリソースに適用可能な他の属性の形式を取っても良い。決定又は他の機能を実行するために、格納された命令はプロセッサで実行されても良い。
ローカルイベント伝搬マネジャは、どのリソースがイベントハンドラ実行の主体となるべきかについての予め構成されたマッピングを持つ必要を有しないで、処理イベントに対する応答として確立されるべき1又は複数の伝搬パス(つまり、相互接続により接続されたリソースにおける一連のイベントハンドラの実行)のためのメカニズムを提供する。ローカルイベント伝搬マネジャは、1又は複数の伝搬パスがオンザフライで確立され得るメカニズムを提供する。
有利なことに、このような伝搬メカニズムは、イベントハンドラの監視されないイベント連鎖及び連鎖反応を可能にする。さらに、局所化された伝搬イベント管理は、各グラフ頂点について提供されるので、中央イベント管理を除去することにより分散処理を向上する。イベント伝搬に関連する意志決定は個々のリソース及び個々の相互接続レベルでオンザフライで実行されるので、所定のアプリケーションロジックの必要は除去される。したがって、データベースのシステムとの相互運用性が向上する。さらに、初期モデル化及び実装モデルの硬直性に関連するオーバヘッドは低減される。
ローカルイベント伝搬マネジャアプローチは、高い柔軟性を必要とする実装において、及び完全な初期モデル化が不可能な場合に、特に有利である。周期的な改造は、局所的な最適を回避するために必要かもしれない。改造は、例えば、イベントが伝搬し得る複数の候補が存在するとき、特定の無作為を導入するためにこれらの候補を再順序付けすることを有しても良い。したがって、イベント伝搬は、異なる時間において異なる経路に対して実行され得る。ローカルイベント伝搬マネジャアプローチの代表的な利点は、リソースに基づくモデル化及びプログラミングに適応するフレームワークを提供することである。
上述のように、特定のリソースに割り当てられたローカルイベント伝搬マネジャの役割は、(処理イベント、又は近隣リソースにおけるイベントハンドラの実行に応答して)特定のリソースにおいてイベントハンドラを実行するか否かを決定するだけではなく、伝搬が他の近隣リソースまで継続すべきか否かを決定することも含む。イベント通知は、ローカルイベント伝搬マネジャが、処理イベント及び/又はイベントハンドラの実行が生じたことを互いに通知するメカニズムである。イベント通知は、ローカルイベント伝搬マネジャにイベント通知に対してどのように応答するかを決定させる詳細事項を有しても良い。例えば、イベント通知は、イベント通知が応答して生成された処理イベントの種類/カテゴリに従って分類されても良い。更なる詳細事項は、イベントが応答して生成された処理イベントの場所を有しても良い。
イベント通知の最初の生成は、ローカルイベント伝搬マネジャにより実行されても良い。例えば、複数のローカルイベント伝搬マネジャの中の1つのローカルイベント伝搬マネジャは、該ローカルイベント伝搬マネジャが割り当てられているリソース又は個々の近隣ローカルイベント伝搬マネジャのうちの1つが割り当てられているリソースにおける処理イベントに応答して、イベント通知を生成するよう構成される。
イベント通知の生成及びその後の近隣ローカルイベント伝搬マネジャへの受信及び送信は、初期処理イベントの1又は複数の伝搬パスを定める。イベント通知は、ローカルイベント伝搬マネジャにおいて受信される度に、何回も複製され、近隣ローカルイベント伝搬マネジャへ送信されても良い。このように、伝搬パスは、1より多くの経路に分割され得る。
データ記憶システムは、伝搬パスの長さを制御するよう構成されても良い。例えば、イベント通知はカウントで開始し、各ローカルイベント伝搬マネジャは、イベント通知を近隣ローカルイベント伝搬マネジャへ送信する前に該カウントを1だけ減ずることにより、受信イベント通知を変更するよう構成されても良い。このように、イベントが伝搬できる相互接続の最大数は、イベント通知の開始において確立される。
伝搬パスの長さを制御する代替のメカニズムとして、イベント通知の生成は、イベント伝搬値をイベント通知の属性とすることを有しても良く、複数のローカルイベント伝搬マネジャの各々は、以下により受信イベント通知内のイベント伝搬値を変更するよう構成される。
・受信イベント通知の受信に応答して、ローカルイベント伝搬マネジャが割り当てられているリソースに関連するイベントハンドラのうちの任意のイベントハンドラの実行をトリガすることが決定された場合、イベント伝搬値を増大する。
・及び/又は、受信イベント通知の受信に応答して、ローカルイベント伝搬マネジャが割り当てられているリソースに関連するイベントハンドラのうちの任意のイベントハンドラの実行をトリガしないことが決定された場合、イベント伝搬値を減少する。
・及び/又は、イベント伝搬値の変更の後に、イベント伝搬値が所定の閾値より小さくなった場合、受信イベント通知を近隣ローカルイベント伝搬マネジャのうちのいずれにも送信しないことを決定する。
有利なことに、イベント通知の属性である初期値が増大又は減少される上述の手順は、イベントがリソースと関係なくなるとき、(イベント通知を介して)イベントの伝搬を停止するメカニズムを提供する。有効なことに、イベント通知がリソースにおいて受信され、受信リソースにおいてイベントハンドラをトリガしない度に、更なるリソースへ(つまり、更なるリソースのイベント伝搬マネジャへ)転送されるイベント通知の能力は、低減される。イベント通知がイベントハンドラをトリガしないパスに沿って存在するリソースが多すぎると、特定の伝搬パスに終わりをもたらす。他方で、受信されイベントハンドラのトリガに成功するイベント通知は、イベントハンドラが相互接続の観点で伝搬できる可能な距離を増大し得る。
イベント伝搬値は、処理イベントのカテゴリ/種類、及び処理イベントが生じるリソースの特性を含む要因により決定されても良い。
リソースにおけるイベント伝搬値に適用される増大/減少の量は、データグラフ内の全てのリソースに渡って一定である増分増大又は減少であっても良い。抱いたigで、特定のリソースはそれらの重要性及びイベント伝搬値に与える可能性のある影響の観点から重み付けされても良い。例えば、ローカルイベント伝搬マネジャの各々は、ローカルイベント伝搬マネジャが割り当てられているリソースを別のリソースにリンク付けする複数の相互接続の各々の属性である相互接続送信値を維持するよう構成され、受信イベント通知が受信されたリソースにリンク付けする相互接続の属性である相互接続送信値は、イベント伝搬値が増大及び/又は減少される量を決定する。
例えば、階層型データグラフでは、リソースが属する階層レベルは、相互接続送信値を決定する際の要因であっても良い。リソースが階層構造の上位にあるほど、相互接続送信値は高くなっても良い。特定のリソースに接続する相互接続の属性である相互接続送信値は、等しくても良く、或いは代替で、最初は等しく設定されるが、次に使用に依存して異なるように変更されても良い。
そうご送信値は、構造要因により(つまり、リソース及びそれらの相互接続により)決定されても良く、又は問題となっているリソースにおけるイベントハンドラの使用履歴により決定されても良い。代替で、構造要因及び使用履歴は、両方とも、特定の相互接続の相互接続送信値を決定する際に控除されても良い。
使用履歴が要因としてどのように考慮され得るかの特定の例として、ローカルイベント伝搬マネジャが割り当てられているリソースを別のリソースにリンク付けする複数の相互接続の各々の属性である相互接続送信値を維持することは、イベント通知が該別のリソースに割り当てられているイベント伝搬マネジャから受信されると、以下のことを有しても良い。
・受信イベント通知の受信に応答して、ローカルイベント伝搬マネジャが割り当てられているリソースに関連するイベントハンドラのうちの任意のイベントハンドラの実行をトリガしないことが決定された場合、別のリソースにリンク付けする相互接続の属性である相互接続送信値を増大する。
・及び/又は、受信イベント通知の受信に応答して、ローカルイベント伝搬マネジャが割り当てられているリソースに関連するイベントハンドラのうちの任意のイベントハンドラの実行をトリガしないことが決定された場合、別のリソースにリンク付けする相互接続の属性である相互接続送信値を減少する。
代替で、使用履歴に応答して相互接続送信値を変更することにより、受信リソースにおいてイベントハンドラの実行をトリガしないでイベント通知が送信される相互接続は、将来に、イベント通知が通過することを一層困難にする。相互接続送信値の増大は、トリガされていないイベントハンドラにより引き起こされるイベント伝搬値の減少が、イベント伝搬値を閾より下に減少させる可能性が高いこと、したがって、イベント通知の伝搬を停止することを意味する。
実装に依存して、イベント通知及びそれらの伝搬はイベント種類に固有の処理であっても良い。したがって、新しいリソース生成イベントがイベントハンドラの実行をトリガする可能性が非常に高いリソースは、既存リソースのオブジェクト変更イベントがイベントハンドラの実行をトリガする可能性が非常に低いリソースであもある。処理イベントカテゴリ/種類に渡るこのような相違を処理するために、イベント通知の生成、イベント通知が応答して生成される処理イベントに依存して、イベント種類の所定のセットからイベント通知にイベント種類を割り当てることを有しても良く、各ローカルイベント伝搬マネジャは、ローカルイベント伝搬マネジャが割り当てられているリソースを別のリソースにリンク付けする複数の相互接続の各々について、イベント種類の所定のセットからのイベント種類毎に1つの相互接続送信値を維持するよう構成される。
ローカルイベント伝搬マネジャへの代替のアプローチは、中央ブローカ又は処理マネジャを設けることである。中央ブローカ又は処理マネジャ自体は、処理イベントに応答してどのイベントハンドラをどのリソースにおいてトリガするかを決定し、及び相応して実行をトリガするよう構成される。例えば、イベント伝搬メカニズムは処理マネジャであり、処理マネジャは、記録された候補伝搬リンクを識別するよう構成される候補伝搬リンク識別モジュールであって、候補伝搬リンクは複数のリソースの中で第2のリソースから第1のリソースまでであり、第2のリソースに関連付けられるイベントハンドラ及び1又は複数のトリガ条件と関連付けられ、候補伝搬リンク識別モジュールと、複数のリソースの中の1つのリソースにおける処理イベントに応答して、候補伝搬リンク識別モジュールを参照して、処理イベントが発生したリソースが第1のリソースである記録された候補伝搬リンクを識別し、各識別された記録された候補伝搬リンクについて、1又は複数のトリガ条件が満たされるか否かを決定し、1又は複数のトリガ条件が満たされると決定された場合、候補伝搬リンクの第2のリソースにおいて、候補伝搬リンク内の第2のリソースに関連付けられたイベントハンドラの実行をトリガするよう構成されるイベントハンドラトリガモジュールと、を有する。
候補伝搬リンクは、任意の形式で格納されても良い。例えば、各リソースについて、処理マネジャは、問題のリソースにおける処理イベントに応答して、イベントハンドラがトリガされ得るリソースのレジスタを格納しても良い。レジスタは、特定のイベントハンドラに関連する条件を有しても良い(例えば、特定の種類/カテゴリの処理イベントに限定されても良い)。候補伝搬リンクは、処理マネジャにある記憶モジュールに格納されても良く、又はグラフデータの注釈として記録されても良い。
例えば、処理イベントは、新しいリソースの生成、又は特定の既存リソース又は既存リソースの一部を定める値の変更であっても良い。処理イベントは、外部書き込みアクセスの結果であっても良く、及び/又は複数のイベントハンドラのうち、リソースに関連付けられたイベントハンドラの実行であっても良い。
代替又は追加で、処理イベントは、複数のイベントハンドラのうち、リソースに関連付けられたイベントハンドラの実行により引き起こされ又はその結果であっても良い。処理イベントは、リソースに対する読み出しアクセス、又はリソースに対する試行読み出しアクセスであっても良い。
処理マネジャは、伝搬パスに基づく機能を実施し、特定の処理イベントが後に続いても良い。この目的のために、処理マネジャは、マッピング又は初期処理イベントから生じるイベントハンドラの実行のパスを記録する機能を実装する。例えば、データ記憶システムは、個々の関連するリソースにおける、複数のイベントハンドラのうちの1つのイベントハンドラの実行のために、伝搬パスとして、実行されたイベントハンドラ及び個々の関連するリソース、個々の関連するリソースにおいて実行されたイベントハンドラの実行に応答してイベントハンドラトリガモジュールによりトリガされた任意のイベントハンドラ、トリガされたイベントハンドラの各々の実行に応答してイベントハンドラトリガモジュールによりトリガされた任意のイベントハンドラ、トリガされたイベントハンドラの各々について、トリガされたイベントハンドラが実行されたリソース、のうちの1又は複数を識別するレコードを維持するよう構成される伝搬パス記録モジュールを更に有しても良い。
任意で、データ記憶システムは、適応再配置モジュールを更に有しても良い。適応再配置モジュールは、複数のリソースのうちの特定のリソースを、複数のデータ記憶サーバのうちの第1のデータ記憶サーバから複数のデータ記憶サーバのうちの第2の記憶サーバに再配置するよう構成される。適応再配置モジュールは、特定のリソースを有する伝搬パス内に共同で記録されるリソースを格納する複数のデータ記憶サーバのうちの1又は複数のデータ記憶サーバの各々の同一性に基づき、第2のデータ記憶サーバの同一性を決定するよう構成される。
有利なことに、1より多いデータ記憶サーバで応答される特定の処理イベントに関連付けられる性能オーバヘッドは、同じ初期処理イベントの結果としてイベントハンドラが実行するリソースをグループ化する傾向があることにより、軽減され得る。
更なる代替として、適応再配置モジュールは、ローカルイベント伝搬マネジャを含むデータ記憶システムの部分として設けられても良い。適応再配置モジュールは、複数の相互接続のうち、所定の閾より低い相互接続送信値が属性である1つの相互接続により接続されるリソース対を識別し、対が同じデータ記憶サーバに同一場所に配置されるように、リソース対のうちの1つのリソースを再配置するよう構成される。
別の態様の実施形態によると、データグラフを符号化するデータを格納するよう構成されるデータ記憶システムにおいて実行される方法であって、データグラフは複数のリソース及び複数の相互接続を有し、複数の相互接続の各々は、有向性であり、複数のリソースのうちの2つのリソースをリンク付けし、リンク付けされたリソース間の関係を表し、データ記憶システムは、それぞれデータグラフの一部を符号化するデータを格納するよう構成される複数のデータ記憶サーバを有し、当該方法は、複数のイベントハンドラを格納するステップであって、各イベントハンドラは、複数のリソースのうちの1又は複数のリソースに関連付けられて格納され、個々の関連付けられたリソース又はその各々において実行可能である、ステップと、個々の関連付けられたリソースにおける複数のイベントハンドラのうちの1又は複数のイベントハンドラの実行をトリガすることにより、複数のリソースのうちの1つのリソースにおける処理イベントに応答するステップと、を有する方法が提供される。
別の態様の実施形態によると、データグラフを符号化するデータを格納するよう構成されるデータ記憶システムであって、データグラフは複数のリソース及び複数の相互接続を有し、複数の相互接続の各々は、複数のリソースのうちの2つのリソースを接続し、リンク付けされたリソース間の関係を表し、データ記憶システムは、データグラフを符号化するデータを格納するよう構成されるデータ記憶装置と、複数のイベントハンドラであって、各イベントハンドラは、複数のリソースのうちの1又は複数のリソースに関連付けられ、個々の関連付けられた前記リソース又はその各々において実行可能である、イベントハンドラと、複数のリソースのうちの1つに関連付けられた1又は複数のイベントハンドラの実行をトリガすることにより、複数のリソースのうちの1つのリソースにおける処理イベントに応答するよう構成されるイベント伝搬メカニズムと、を有するデータ記憶システムが提供される。
さらに、本発明の実施形態は、コンピューティング装置の分散型ネットワークにより実行されると、コンピューティング装置の分散型ネットワークに、本発明を具現化するシステムとして機能させる、コンピュータプログラムスーツを有しても良い。
本発明の実施形態では、イベントは、多くの異なる伝搬パスを辿ることができ、各々のイベントは異なるアプリケーション要件を提供するよう構成される。
イベント伝搬は、異なるアプリケーションの必要に適合するために、決定論的及び非決定論的の両方の方法で行われ得る。例えば、非決定論的アプローチは、より良好なグラフベースアルゴリズム、例えば最短経路アルゴリズム及びページランクをサポートし、一方で、決定論的アプローチは、安全を重要視すべきアプリケーション、例えば金融向けのような、より厳格なプロセス制御を提供する。
本発明の実施形態は、大容量グラフデータ及びイベントを処理する分散型データ処理をサポートする。
<詳細な説明>
図1は、データのグラフレベル表現で、処理イベントが本発明を具現化するデータ記憶システムに格納されるデータグラフに及ぼす効果を示す。リソース101内の☆は、処理イベントの発生を表す。この例では、処理イベントは、破線により示されるリソース101にある新しいリンクの表明(アサーション)である。例えば、リソース101はリソースのクラスであり、クラス101の新しいインスタンス103がデータグラフ内で生成されても良い。処理イベントの他の例は、リソース101におけるイベントハンドラの実行、及びリソース101を符号化するデータの変更を含む。幾つかの実施形態では、処理イベントのために他のリソースにおけるイベントハンドラの実行をトリガするために、特定のデータ変更が行われる必要があっても良い。このような実施形態では、処理イベントは、データ変更イベントであると考えられ得る。
イベント伝搬メカニズムは、リソース102及びリソース104においてイベントハンドラの実行をトリガすることにより、リソース101における処理イベントに応答する。イベントハンドラは、実行されると、処理イベントが実行をトリガした結果として、自身が実行されているリソースを変更するか否か及びどのように変更するかを決定し、及び場合によっては決定された変更を指示又は実行するよう構成される処理、命令セット、及び/又は実行可能コードであっても良い。例えば、リソース102がリソース101のクラス内のリソースのインスタンス数に基づく特性を有する場合、値は、リソース103の追加に応答して変更される必要があっても良い。リソース102におけるイベントハンドラの実行は、数が変更される必要があるかを決定し、該変更を実行する。
イベントハンドラは、処理イベントの特定のカテゴリ、例えば新しいリンク生成イベントに応答して、実行されるよう構成されても良い。カテゴリの数、及び処理イベントが分類される方法は、実装に依存する。カテゴリ固有イベントハンドラは、処理イベントの1又は複数の指定されたカテゴリに応答して実行されるのみである。代替又は追加で、イベントハンドラは、処理イベントに応答して実行可能であっても良く、イベントハンドラが応答して実行される処理イベントのカテゴリ又は種類に基づいてどの命令/コード/プロセスを実行すべきかを決定するよう構成されても良い。単一のイベントハンドラは、1より多いリソースで実行可能であっても良い。例えば、各データ記憶サーバは、1つのイベントハンドラのみ、又は処理イベント毎に1つのイベントハンドラを格納しても良く、イベントハンドラは同じデータ記憶サーバに格納されるリソースのうちのいずれでも実行可能である。
イベント伝搬メカニズムは、複数のイベント伝搬マネジャであっても良い。各ローカルイベント伝搬マネジャはリソースに割り当てられる。つまり、ローカルイベント伝搬メカニズムは、1つのリソース毎に1つのローカルイベント伝搬マネジャにあるリソースの各々に専用のローカルイベント伝搬マネジャである。
ローカルイベント伝搬マネジャは、処理イベントに応答して、イベントハンドラが割り当てられているリソースにおいて、いつイベントハンドラを実行すべきか、場合によってはどのイベントハンドラを実行すべきか、を決定するよう構成される。さらに、ローカルイベント伝搬マネジャは、近隣のローカルイベント伝搬マネジャに処理イベントをいつ通知するかを決定するよう構成される。
図1の例では、処理イベントはリソース101で生じる。リソース101に割り当てられたローカルイベント伝搬マネジャは、イベント通知を生成することにより及び/又はリソース101においてイベントハンドラの実行をトリガすることにより、処理イベントに応答するよう構成される。さらに、ローカルイベント伝搬マネジャは、生成したイベント通知を、近隣リソース102及び103に転送するよう構成されても良い。
リソース103では応答がない。いかなるイベントハンドラもリソース103に関連付けられなくても良く、又は代替で、リソース103に関連付けられたローカルイベント伝搬マネジャはイベント通知を受信し、リソース103と1又は複数のイベントハンドラとの間の関連付けに適用される条件が満たされないと決定し、したがっていかなる実行もトリガされない。さらに、リソース101以外にイベント通知が受信される近隣リソースが存在しないので、リソース103に割り当てられるローカルイベントマネジャは、イベント通知のいかなる送信も必要ない/可能ではないと決定する。留意すべきことに、本願明細書を通じて、リソース及びリソースに割り当てられるローカルイベント伝搬マネジャの点で、近隣についての記載は、データのグラフ表現における相互接続により記述される。したがって、相互接続により接続される任意のリソース対は、それらの個々に割り当てられるローカルイベント伝搬マネジャのため近隣である。
リソース102に割り当てられるローカルイベント伝搬マネジャは、処理イベントが発生したリソース101に割り当てられるローカルイベント伝搬マネジャからイベント通知を受信し、及びリソース102におけるイベントハンドラの実行をトリガするか否かを決定するよう構成される。このような決定は、イベント通知の内容に依存しても良い。例えば、イベント通知は、処理イベントの種類/カテゴリ、及び/又は処理イベントが発生したリソースの識別情報又は場所を指定しても良い。例えば、ローカルイベント伝搬マネジャは、どの条件が満たされるかに依存してどのイベントハンドラを実行すべきか又は実行するか否かを決定するために、受信イベント通知の内容に適用可能な条件を格納しても良い。図1の例では、リソース102を囲む矢印により示されるように、リソース102においてイベントハンドラの実行をトリガすることにより、受信イベント通知に応答することが、リソース102に割り当てられたローカルイベント伝搬マネジャにより決定される。
リソース102に割り当てられるローカルイベント伝搬マネジャは、受信イベント通知を、イベント通知が受信されたローカルイベント伝搬マネジャ以外の近隣ローカルイベント伝搬マネジャへ送信するか否かを決定するよう構成される。このような決定は、イベント通知の内容に依存しても良い。例えば、イベント通知は、処理イベントの種類/カテゴリ、及び/又は処理イベントが発生したリソースの識別情報又は場所を指定しても良い。例えば、ローカルイベント伝搬マネジャは、どの条件が満たされるかに依存してイベント通知を送信するか否かを決定するために、受信イベント通知の内容に適用可能な条件を格納しても良い。さらに、リソース102におけるイベントハンドラの実行は、送信の前にイベント通知に対して行われる変更を生じる。代替又は追加で、リソース102におけるイベントハンドラの実行は、リソース102に割り当てられるローカルイベント伝搬マネジャにより又は近隣ローカルイベント伝搬マネジャにより生成される新しいイベント通知を生じても良い。図1の例では、リソース104及びリソース105に割り当てられるローカルイベント伝搬マネジャへイベント通知を送信することが、リソース102に割り当てられるローカルイベント伝搬マネジャにより決定される。
リソース105に割り当てられるローカルイベント伝搬マネジャは、受信イベント通知に応答してイベントハンドラを実行しない。リソース104に割り当てられるローカルイベント伝搬マネジャは、受信イベント通知に応答してイベントハンドラを実行し、リソース106に割り当てられるローカルイベント伝搬マネジャへイベント通知を送信する。リソース105に割り当てられるローカルイベント伝搬マネジャ及びリソース106に割り当てられるローカルイベント伝搬マネジャは、両者とも、イベントハンドラを実行しないこと、近隣ローカルイベント伝搬マネジャへイベント通知を送信しないことを決定する。
代替で、初期生成は、リソース101に割り当てられるローカルイベント伝搬マネジャにより実行されず、実際にはリソース102に割り当てられるローカルイベント伝搬マネジャが近隣リソースを観察し、イベント通知を生成し及び/又はリソース102においてイベントハンドラの実行をトリガすることにより近隣リソース(又は特定の近隣リソース)における処理イベントに応答するよう構成されても良い。
ローカルイベント伝搬マネジャの代替として、イベント伝搬メカニズムは、リソース間の有向リンクを格納する中央処理マネジャであっても良い。有向リンクは、リンク付けされたリソースの他方における処理イベントに応答して、イベントハンドラがリンク付けされたリソースのうちの一方において実行されることを示す。中央処理マネジャは、データグラフ全体に対して提供される単一の処理マネジャであっても良く、又は特定のデータ記憶サーバに格納されたデータグラフの領域/部分に割り当てられても良い。データ記憶サーバ毎に1つの処理マネジャが存在しても良い。図1の例では、リソース102及びリソース104の両者は、処理マネジャにおいてリソース101にリンク付けされても良い。例えば、処理マネジャは、特定のリソースについて、特定のリソースにおける処理イベントに応答してイベントハンドラがトリガされる他のリソースのレジスタを格納するよう構成されても良い。さらに、登録は、イベントハンドラが実行されるべきか否かを決定する1又は複数の条件を指定しても良く、特定のイベントハンドラ若しくはイベントハンドラのカテゴリを指定しても良い。
図1の例では、リソース102とリソース101との間のリンクと共に格納される任意の条件が満たされ、したがってイベントハンドラがリソース102において実行される。リソース104は、リソース101の処理マネジャにあるレジスタに含まれても良い。したがって、リソース104においてイベントハンドラの実行を生じるのは、リソース101における処理イベントであっても良い。代替で、リソース104は、リソース102のレジスタに含まれても良く、リソース102におけるイベントハンドラの実行は登録の条件を満たし、したがってリソース104におけるイベントハンドラが実行される。
図2は、本発明の一実施形態を示し、1つのローカルイベント伝搬マネジャ200を詳細に示す。格納データ100は、グラフ表現で示される。破線は、異なるデータ記憶サーバに格納される領域間の境界を示す。サーバ通信モジュール300は、ローカルイベント伝搬マネジャのような、同じデータ記憶サーバに格納される他のエンティティと通信するメカニズムを提供する。通信ネットワーク400は、ローカルイベント伝搬マネジャのような、他のサーバに格納されるエンティティと通信するメカニズムを提供する。
図示のローカルイベント伝搬マネジャ200は、ローカルイベント伝搬マネジャ200とグラフリソースとの間の矢印により示されるように、特定のリソースに割り当てられる。ローカルイベント伝搬マネジャは、残りのグラフリソースの各々にも設けられるが、これらは図2に図示されない。
ローカルイベント伝搬マネジャ200は、伝搬マネジャモジュール210、イベントマネジャモジュール220、イベントハンドラ230、及び頂点通信モジュール240を有する。これらの機能ユニットは、ローカルイベント伝搬マネジャ200の動作を実行するよう構成される機能モジュールの単なる例示的な選択である。ローカルイベント伝搬マネジャ200内の他のタスクの分配が可能であり、又は機能はモジュールに細分化することなく単にローカルイベント伝搬マネジャ200により実行されても良い。図2において、イベントハンドラ230は、ローカルイベント伝搬マネジャ200の機能コンポーネントとして図示される。これは任意的配置であり、イベントハンドラは、データ記憶サーバレベルで設けられても良く、又は1より多いローカルイベント伝搬マネジャによりアクセス可能なエンティティとして設けられても良い。図2の例では、イベントハンドラ230は、特定のリソースに割り当てられる。更なる選択として、1より多いイベントハンドラがリソース毎に設けられても良い。例えば、イベントの種類/カテゴリ毎に1つのイベントハンドラが設けられても良い。
頂点通信モジュール240は、近隣ローカルイベント伝搬マネジャからイベント通知を受信し、イベント通知を近隣ローカルイベント伝搬マネジャへ送信するよう構成される。伝搬マネジャモジュール210は、ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられたイベントハンドラのうちの任意のものの実行をトリガするか否かを決定し、任意の近隣ローカルイベント伝搬マネジャに受信イベント通知を送信するか否かを決定するよう構成される。伝搬マネジャモジュール210は、イベント伝搬値の属性及び変更を含むイベント通知の生成を担う。伝搬マネジャモジュール210は、ローカルイベント伝搬マネジャ200が割り当てられるリソースを他のリソースに接続する複数の相互接続のうちの各々の属性である相互接続送信値を維持するよう構成される。
イベントマネジャモジュール220は、イベントハンドラ230に代わってイベントキュー及びイベント優先度を管理するよう構成される任意モジュールである。イベントハンドラは、イベントに応答して実行可能であり、イベントハンドラが実行されているリソースを変更するか否か、該リソースをどのように変更するかを決定し、及び決定した変更を実行する処理を有しても良い。
ローカルイベント伝搬マネジャは、ローカルイベント伝搬マネジャが割り当てられるリソースをホスティングするデータ記憶サーバで実行する異なる処理スレッドとして実現されても良い。
本発明を具現化するデータ記憶システム内の例示的なローカルイベント伝搬マネジャ200により実行される例示的な処理を以下に説明する。この特定の例では、グラフリソースは頂点として表される。
グラフ頂点vについて、そのグラフの各近隣(v,...,v)は、vにおいて生じるイベントに対する自身の関係を登録する。この関係の登録は、明示的であり、vの各近隣におけるvへのポインタとして格納されても良い。代替で、関係の登録は、黙示的であり、vの近隣からvへの相互接続が単に存在することにより、vの近隣がv内に関係の登録を有すると考えられても良い。
処理イベントは、イベントが伝搬を停止すべきとき(例えば、運動量が0又はそれより低く降下するとき)を決定する初期運動量(momentum)(本願明細書のどこかで言及されるイベント伝搬値の例)を有する。初期イベント運動量は、処理イベントが発生したリソースのローカルイベント伝搬マネジャ200又はその近隣のうちの1つにより、処理イベントに割り当てられる。初期イベント運動量は、ローカルイベント伝搬マネジャ間で転送されるイベント通知の内容の部分を形成し、その初期値は以下を含む要因に基づき割り当てられ得る。
・データグラフ特徴。例えば、高次頂点において生じるイベントは、高い運動量を有するべきである。
・データ特徴。例えば、(例えば、ユーザ若しくはデータベース管理者により)重要として割り当てられるドメインデータに割り当てられるイベントは、より高い運動量を有するべきである。または、
・イベント種類。例えば、システムイベントは、データイベントより高い運動量を有するべきである。
このような運動量値の評価は、実施形態の実施シナリオに依存して構成可能であっても良い。
任意のエッジ<v,v>について(エッジは2つのリソース間の相互接続である)、1≦i≦nとして、例えばエッジに沿ってイベント通知を受信するリソースのローカルイベント伝搬マネジャにより、値は計算されエッジに割り当てられる。値は、どのようにイベント運動量が変更されるかを決定し、続いて、vからvへのエッジ方向に沿った2つの頂点間でイベント通知を転送する。値は、本願明細書のどこかで言及される相互接続送信値の例である。
相互接続送信値は、以下を含んでも良い1又は複数の要因に基づき計算され及び/又は調整されても良い。
・特定のイベントカテゴリ分けにおけるvの関係。
・2つの頂点間の相互接続の特性。
・vにおけるvの信頼。
・エッジの中間のようなグラフ特性。高い中間エッジは低い相互接続送信値を与えられ、より速い及び/又はより多数の(他の頂点により迅速に到達し/受信頂点において停止される可能性が低い)イベント伝搬を可能にしても良い。
・階層的エッジは、他のエッジより高い相互接続送信値を与えられても良い。
イベントがvに到達するのに成功した場合、vがイベント通知を受信し、イベントハンドラがトリガされると、
・vとvとの間のエッジの属性である相互接続送信値は、調整され、例えば減少されても良い。
・イベント通知をらその近隣へ送信するとき、イベント通知に含まれるイベント運動量は、増大されても良い。
が受信イベント通知を拒否する場合、つまり、受信イベント通知がvにおいてイベントハンドラをトリガしない場合、
・vとvとの間のエッジの属性である相互接続送信値は、調整され、例えば増大されても良い。
・イベント運動量は、vからその近隣へ送信されるとき、イベント通知内で減少される。
相互接続送信値は、特定にイベント種類/カテゴリ(例えば、IncomingLinkAddedEvent、IncomingLinkDeletedEvent、等)に固有であっても良い。したがって、1つの相互接続送信値は、相互接続毎のイベント種類/カテゴリ毎に維持される。
図3は、図2の実施形態の代替を示す。図3は、本発明の一実施形態を示し、1つのイベントブローカ500(イベントブローカは、本願明細書のどこかで言及される処理マネジャの例である)を詳細に示す。格納データ100は、グラフ表現で示される。破線は、異なるデータ記憶サーバに格納される領域間の境界を示す。
イベントブローカ500は、特定のデータ記憶サーバに格納されるデータグラフ100の領域に割り当てられる。イベントブローカは、ブローカ間通信モジュール510を有する。ブローカ間通信モジュール510は、通信ネットワーク400と協働して、他のサーバに割り当てられるイベントブローカのようなエンティティと通信するメカニズムを提供する。イベントブローカ500は、単一の処理スレッドとして実行する。ブローカイベントマネジャ520は、イベントキュー及び優先順位を管理し、イベントハンドラの実行を指示し/呼び出し/トリガする。ブローカイベントマネジャ520は、本願明細書のどこかで言及される候補伝搬リンク識別モジュール及びイベントハンドラトリガモジュールの機能を提供する。ブローカイベントハンドラ530は、記憶サーバ毎に設けられるように図示されるが、異なるイベント種類/カテゴリについて異なるブローカイベントハンドラが存在しても良い。
本発明を具現化するデータ記憶システム内の例示的なイベントハンドラ500により実行される例示的な処理を以下に説明する。この特定の例では、グラフリソースは頂点として表される。
任意の頂点vは、頂点vにおけるイベント種類e内の頂点vの関係を明示的に保管する。この関係は、本実施形態では、候補伝搬リンクとして明らかであり、vを格納するデータ記憶サーバに割り当てられるイベントブローカ500において明示的に記録されても良く、又はグラフを符号化するデータのデータ注釈としてキャプチャされても良い。記録された候補伝搬リンクは、例えば指定された種類のリンクをフィルタリングすると共にLinkedAssertedEventに対する関係を登録する特定の条件/フィルタリングロジックを含み又はそれに関連付けられて格納されても良い。さらに、記録された候補伝搬リンクは、関連付けられた条件を満たす処理イベントが頂点vにおいて生じると実行されるべき特定のセクションのイベントハンドラコード、又は特定のイベントハンドラ若しくはイベントハンドラコードのセクションの指示を含み又はそれに関連付けられて格納されても良い。
イベントブローカ500は、自身の管理する頂点(自身の管理する頂点は同じデータ記憶サーバに格納される頂点である)のイベント関係の完全なマッピングを維持し又は(データグラフの注釈を分析することにより)構築しても良い。
はイベントブローカ500が割り当てられるグラフデータを格納するデータ記憶サーバに格納されるので、又はイベントブローカ500は別のイベントブローカによりvにおける処理イベントを通知されるので、vにおいて生じる処理イベントは、イベントブローカ500によりキャプチャされる。イベントブローカ500は、ブローカイベントマネジャ520を介して、頂点のうちのどれが候補伝搬リンクを介してvにリンク付けされるか、及びこれらのリンクに関連付けられた条件が満たされるか否かを決定することにより、イベントキューをコンパイルするよう構成される。それにより、ブローカイベントマネジャ520は、グラフ頂点におけるイベントハンドラ実行のキューをコンパイルできる。
ブローカを通じて通信するとき、1つのデータ記憶サーバにある頂点は、最終的に別のデータ記憶サーバと直接に(ブローカを通じて)通信しても良い。例えば、イベントハンドラは、第1のデータ記憶サーバに格納される第1の頂点において実行される。第2のデータ記憶サーバに割り当てられるイベントブローカは、この実行を通知され、第1の頂点への候補伝搬リンクを有する第2のデータ記憶サーバに格納される頂点を識別する。第1及び第2の頂点は、データ記憶サーバの境界に跨って通信する。サーバsにある頂点vがサーバsにある頂点vからイベントを普通に(つまり、閾頻度より多く)受信するとき、伝搬パスは記録され、したがって、適応再配置モジュールは、v及びvを一緒に同じサーバへ移動することを決定する基準を有する。この場合、直接通信(又はエッジ<v,v>)は必須ではないが、伝搬パス上の2つの頂点の頻繁な共生は再配置のために十分な基準である。
あるデータ記憶サーバから別のデータ記憶サーバへ頂点を再配置するよう構成される適応再配置モジュールの機能の一例として、以下の例を検討する。仲介されたイベント伝搬がパスv,v,...,v,vに沿ってvとvの間で頻繁に行われる場合、関与する全ての頂点の場所は以下のように調整される。sid(v)は頂点vを含むサーバIDを返し、cost(v,id)は頂点vを任意の機械sidへ移動するコスト関数であるとする。適応再配置モジュールは、頂点のサーバへの最適割り当てを考案することにより、総コスト関数を最小化するよう構成される。サーバは、パス上の頂点を既に含んでいても含んでいなくても良い。
Figure 2015156202
サーバがパス頂点を含まないことが、最小の総コストを達成するために選択される場合があり得る。コスト関数は、実装固有であり、例えば、伝搬パスにより横切られるデータ記憶サーバ境界の数に比例して増大する関数であっても良い。勿論、このような関数は、将来の境界交差伝搬パスを最小化しようとするが、関数は過去の伝搬パスデータに基づく。このような伝搬パスデータは、イベントブローカ500により記録されても良く、異なるデータ記憶サーバに割り当てられるイベントブローカ同士の特定の協働を含んでも良い。
態様(ソフトウェア/方法/装置)が別個に議論されたが、1つの態様に関連して議論されたその特徴及び影響は、他の態様にも等しく適用できる。したがって、方法の特徴が議論される場合、装置の実施形態はその特徴を実行する又は適切な機能を提供するよう構成されるユニット又は装置を有すること、及びプログラムは該プログラムが実行されるコンピューティング装置に前記方法の特徴を実行させるものと解釈される。
上述の態様のいずれにおいても、種々の特徴は、ハードウェアで、又は1又は複数のプロセッサで動作するソフトウェアモジュールとして実装されても良い。一態様の特徴は、他の態様のいずれにも適用できる。
本発明は、上述の任意の方法を実行するコンピュータプログラム又はコンピュータプログラムプロダクト、及び上述の任意の方法を実行するプログラムを格納しているコンピュータ可読媒体も提供する。本発明を実施するコンピュータプログラムは、コンピュータ可読媒体に格納されてもよい。或いは、例えば、インターネットウェブサイトから提供されるダウンロード可能なデータ信号のような信号形式又は任意の他の形式であってもよい。
101〜106 リソース
100 格納データ
200 ローカルイベント伝搬マネジャ
210 伝搬マネジャ
220 イベントマネジャ
230 イベントハンドラ
240 頂点通信
300 サーバ通信
400 通信ネットワーク
500 イベントブローカ
510 ブローカ間通信
520 ブローカイベントマネジャ
530 ブローカイベントハンドラ

Claims (17)

  1. データグラフを符号化するデータを格納するよう構成されるデータ記憶システムであって、前記データグラフは複数のリソース及び複数の相互接続を有し、前記複数の相互接続の各々は、前記複数のリソースのうちの2つのリソースを接続し、前記リンク付けされたリソース間の関係を表し、
    前記データ記憶システムは、
    前記データグラフを符号化する前記データを格納するよう構成されるデータ記憶装置と、
    複数のイベントハンドラであって、各イベントハンドラは、前記複数のリソースのうちの1又は複数のリソースに関連付けられ、個々の関連付けられた前記リソース又はその各々において実行可能である、イベントハンドラと、
    個々の関連付けられたリソースにおいて前記複数のイベントハンドラのうち1又は複数のイベントハンドラの実行をトリガすることにより、前記複数のリソースのうちの1つのリソースにおける処理イベントに応答するよう構成されるイベント伝搬メカニズムと、
    を有するデータ記憶システム。
  2. 前記リソースにおける前記処理イベントは、前記複数のイベントハンドラのうち前記リソースに関連付けられたイベントハンドラによる、前記リソースを符号化するデータの変更である、請求項1に記載のデータ記憶システム。
  3. 前記リソースにおける前記処理イベントは、前記リソースからの指示の結果として、前記複数のリソースの部分を形成する新しいリソースの生成である、請求項1に記載のデータ記憶システム。
  4. 前記イベント伝搬メカニズムにより前記イベントハンドラがトリガされる前記リソース又はその各々は、前記複数の相互接続のうちの1又は複数の相互接続により前記処理イベントが生じたリソースに接続される、請求項1に記載のデータ記憶システム。
  5. 前記イベント伝搬メカニズムは、前記複数のリソースの各々に割り当てられるローカルイベント伝搬マネジャであり、
    各ローカルイベント伝搬マネジャは、第1の近隣ローカルイベント伝搬マネジャからイベント通知を受信し、前記の受信イベント通知に応答して、
    前記ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられるイベントハンドラのうちの任意のイベントハンドラの実行をトリガするか否か、
    前記受信イベント通知を前記第1の近隣ローカルイベント伝搬マネジャ以外の任意の残りの近隣ローカルイベント伝搬マネジャに送信するか否か、
    を決定するよう構成され、
    近隣ローカルイベント伝搬マネジャは、前記複数のローカルイベント伝搬マネジャのうち、前記複数の相互接続の中の1つの相互接続を介して前記ローカルイベント伝搬マネジャが割り当てられているリソースにリンク付けされたリソースに割り当てられたローカルイベント伝搬マネジャである、請求項1に記載のデータ記憶システム。
  6. 前記複数のローカルイベント伝搬マネジャのうちの1つのローカルイベント伝搬マネジャは、前記ローカルイベント伝搬マネジャが割り当てられているリソース又は個々の近隣ローカルイベント伝搬マネジャのうちの1つが割り当てられているリソースにおける処理イベントに応答して、イベント通知を生成するよう構成される、請求項5に記載のデータ記憶システム。。
  7. 前記イベント通知の生成は、イベント伝搬値を前記イベント通知の属性とすることを有し、
    前記複数のローカルイベント伝搬マネジャの各々は、
    前記の受信イベント通知を受信するのに応答して、前記ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられたイベントハンドラのうちの任意のイベントハンドラの実行をトリガすることを決定する場合、前記イベント伝搬値を増大し、及び/又は、
    前記受信イベント通知を受信するのに応答して、前記ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられたイベントハンドラのうちの任意のイベントハンドラの実行をトリガしないことを決定する場合、前記イベント伝搬値を減少し、及び/又は、
    前記イベント伝搬値の変更の後に、前記イベント伝搬値が所定の閾値より低い場合、前記近隣ローカルイベント伝搬マネジャのうちの任意の近隣ローカルイベント伝搬マネジャへ前記受信イベント通知を送信しないことを決定する、
    ことにより前記受信イベント通知内の前記イベント伝搬値を変更するよう構成される、請求項6に記載のデータ記憶システム。
  8. 前記ローカルイベント伝搬マネジャの各々は、前記ローカルイベント伝搬マネジャが割り当てられているリソースを別のリソースに接続する前記複数の相互接続の各々の属性である相互接続送信値を維持するよう構成され、
    受信イベント通知が受信されたリソースにリンク付けする相互接続の属性である相互接続送信値は、前記イベント伝搬値が増大及び/又は減少される量を決定する、
    請求項7に記載のデータ記憶システム。
  9. 前記ローカルイベント伝搬マネジャが割り当てられているリソースを別のリソースにリンク付けする前記複数の相互接続の各々の属性である前記相互接続送信値の維持は、イベント通知が前記別のリソースに割り当てられているイベント伝搬マネジャから受信されると、
    前記受信イベント通知を受信するのに応答して、前記ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられたイベントハンドラのうちの任意のイベントハンドラの実行をトリガすることを決定する場合、前記別のリソースにリンク付けする相互接続の属性である前記相互接続送信値を増大し、及び/又は、
    前記受信イベント通知を受信するのに応答して、前記ローカルイベント伝搬マネジャが割り当てられるリソースに関連付けられたイベントハンドラのうちの任意のイベントハンドラの実行をトリガしないことを決定する場合、前記別のリソースにリンク付けする相互接続の属性である前記相互接続送信値を減少する、
    ことを有する、請求項8に記載のデータ記憶システム。
  10. 前記イベント通知の生成は、前記イベント通知が応答して生成される前記処理イベントに依存して、イベント種類の所定のセットから前記イベント通知にイベント種類を割り当てることを有し、
    前記ローカルイベント伝搬マネジャの各々は、前記ローカルイベント伝搬マネジャが割り当てられているリソースを別のリソースにリンク付けする前記複数の相互接続の各々について、イベント種類の前記所定のセットからのイベント種類毎に1つの相互接続送信値を維持するよう構成される、
    請求項9に記載のデータ記憶システム。
  11. 前記イベント伝搬メカニズムは処理マネジャであり、前記処理マネジャは、
    記録された候補伝搬リンクを識別するよう構成される候補伝搬リンク識別モジュールであって、前記候補伝搬リンクは前記複数のリソースのうち第2のリソースから第1のリソースまでであり、前記第2のリソースに関連付けられるイベントハンドラ及び1又は複数のトリガ条件と関連付けられる、候補伝搬リンク識別モジュールと、
    前記複数のリソースのうちの1つのリソースにおける処理イベントに応答して、前記候補伝搬リンク識別モジュールを参照して、前記処理イベントが発生したリソースが前記第1のリソースである記録された候補伝搬リンクを識別し、前記識別した記録された候補伝搬リンクの各々について、前記1又は複数のトリガ条件が満たされるか否かを決定し、前記1又は複数のトリガ条件が満たされると決定された場合、前記候補伝搬リンクの前記第2のリソースにおいて、前記候補伝搬リンク内の前記第2のリソースに関連付けられたイベントハンドラの実行をトリガするよう構成されるイベントハンドラトリガモジュールと、
    を有する、請求項1に記載のデータ記憶システム。
  12. 前記処理イベントは、前記複数のイベントハンドラのうち前記リソースに関連付けられたイベントハンドラの実行である、請求項11に記載のデータ記憶システム。
  13. 個々の関連するリソースにおける、前記複数のイベントハンドラのうちの1つのイベントハンドラの実行のために、伝搬パスとして、
    前記実行されたイベントハンドラ及び前記個々の関連するリソースと、
    前記個々の関連するリソースにおいて前記実行されたイベントハンドラの実行に応答して、前記イベントハンドラトリガモジュールによりトリガされた任意のイベントハンドラと、
    前記トリガされたイベントハンドラの各々の実行に応答して、前記イベントハンドラトリガモジュールによりトリガされた任意のイベントハンドラと、
    前記トリガされたイベントハンドラの各々について、それぞれ前記トリガされたイベントハンドラが実行されたリソースと、
    を識別するレコードを維持するよう構成される伝搬パス記録モジュール、
    を更に有する請求項10に記載のデータ記憶システム。
  14. 適応再配置モジュールであって、前記適応再配置モジュールは、前記複数のリソースのうちの特定のリソースを、前記複数のデータ記憶サーバのうちの第1のデータ記憶サーバから前記複数のデータ記憶サーバのうちの第2の記憶サーバに再配置するよう構成され、前記適応再配置モジュールは、前記特定のリソースを有する伝搬パス内に共同で記録されるリソースを格納する前記複数のデータ記憶サーバのうちの前記1又は複数のデータ記憶サーバの各々の同一性に基づき、前記第2のデータ記憶サーバの同一性を決定するよう構成される適応再配置モジュール、
    を更に有する請求項13に記載のデータ記憶システム。
  15. データグラフを符号化するデータを格納するよう構成されるデータ記憶システムにおいて実行される方法であって、前記データグラフは複数のリソース及び複数の相互接続を有し、前記複数の相互接続の各々は、有向性であり、前記複数のリソースのうちの2つのリソースをリンク付けし、前記リンク付けされたリソース間の関係を表し、前記データ記憶システムは、それぞれ前記データグラフの一部を符号化するデータを格納するよう構成される複数のデータ記憶サーバを有し、
    前記方法は、
    複数のイベントハンドラを格納するステップであって、各イベントハンドラは、前記複数のリソースのうちの1又は複数のリソースに関連付けられて格納され、前記個々の関連付けられたリソースにおいて実行可能である、ステップと、
    個々の関連付けられたリソースにおける前記複数のイベントハンドラのうちの1又は複数のイベントハンドラの実行をトリガすることにより、前記複数のリソースのうちの1つのリソースにおける処理イベントに応答するステップと、
    を有する方法。
  16. 1又は複数のコンピュータプログラムであって、ネットワークを介して互いに通信するよう構成される複数のデータ記憶サーバにより実行されると、前記複数のデータ記憶サーバを、データグラフを符号化するデータを格納するよう構成されるデータ記憶システムとして機能させ、前記データグラフは、複数のリソース及び複数の相互接続を有し、前記複数の相互接続の各々は、前記複数のリソースのうちの2つのリソースを接続し、前記リンク付けされたリソース間の関係を表し、
    前記データ記憶システムは、
    前記データグラフを符号化する前記データを格納するよう構成されるデータ記憶装置と、
    複数のイベントハンドラであって、各イベントハンドラは、前記複数のリソースのうちの1又は複数のリソースに関連付けられ、前記個々の関連付けられたリソースの各々において実行可能である、イベントハンドラと、
    個々の関連付けられたリソースにおいて前記複数のイベントハンドラのうちの1又は複数のイベントハンドラの実行をトリガすることにより、前記複数のリソースのうちの1つのリソースにおける処理イベントに応答するよう構成されるイベント伝搬メカニズムと、
    を有する、コンピュータプログラム。
  17. コンピュータプログラムであって、コンピューティング装置により実行されると、前記コンピューティング装置に、データグラフを符号化するデータを格納するよう構成されるデータ記憶システムにおいて実行される処理を実行させ、前記データグラフは複数のリソース及び複数の相互接続を有し、前記複数の相互接続の各々は、有向性であり、前記複数のリソースのうちの2つのリソースをリンク付けし、前記リンク付けされたリソース間の関係を表し、前記データ記憶システムは、それぞれ前記データグラフの一部を符号化するデータを格納するよう構成される複数のデータ記憶サーバを有し、
    前記処理は、
    複数のイベントハンドラを格納するステップであって、各イベントハンドラは、前記複数のリソースのうちの1又は複数のリソースに関連付けられて格納され、前記個々の関連付けられたリソース又はその各々において実行可能である、ステップと、
    個々の関連付けられたリソースにおいて前記複数のイベントハンドラのうちの1又は複数のイベントハンドラの実行をトリガすることにより、前記複数のリソースのうちの1つのリソースにおける処理イベントに応答するステップと、
    を有する、コンピュータプログラム。
JP2014230332A 2014-02-20 2014-11-13 グラフデータ内のイベント伝搬 Withdrawn JP2015156202A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14155976.5 2014-02-20
EP14155976.5A EP2911069A1 (en) 2014-02-20 2014-02-20 Event propagation in graph data

Publications (1)

Publication Number Publication Date
JP2015156202A true JP2015156202A (ja) 2015-08-27

Family

ID=50184748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014230332A Withdrawn JP2015156202A (ja) 2014-02-20 2014-11-13 グラフデータ内のイベント伝搬

Country Status (3)

Country Link
US (1) US20150234936A1 (ja)
EP (1) EP2911069A1 (ja)
JP (1) JP2015156202A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10545945B2 (en) 2016-10-28 2020-01-28 Microsoft Technology Licensing, Llc Change monitoring spanning graph queries
JP6310532B1 (ja) * 2016-11-24 2018-04-11 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
US10402403B2 (en) * 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
US10936659B2 (en) 2019-01-02 2021-03-02 International Business Machines Corporation Parallel graph events processing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0765582B1 (en) * 1994-06-13 2002-10-23 Telefonaktiebolaget Lm Ericsson A resource model and architecture for a connection handling system
US6041306A (en) * 1996-12-05 2000-03-21 Hewlett-Packard Company System and method for performing flexible workflow process execution in a distributed workflow management system
US6665662B1 (en) * 2000-11-20 2003-12-16 Cisco Technology, Inc. Query translation system for retrieving business vocabulary terms
US20030014513A1 (en) * 2000-12-27 2003-01-16 Ruths Derek Augustus Samuel System and method for collaborative data resource representation
US7559065B1 (en) * 2003-12-31 2009-07-07 Emc Corporation Methods and apparatus providing an event service infrastructure
US8359298B2 (en) * 2006-04-03 2013-01-22 International Business Machines Corporation Method, system, and program product for managing adapter association for a data graph of data objects
US9053437B2 (en) * 2008-11-06 2015-06-09 International Business Machines Corporation Extracting enterprise information through analysis of provenance data
US8209204B2 (en) * 2008-11-06 2012-06-26 International Business Machines Corporation Influencing behavior of enterprise operations during process enactment using provenance data
US8971335B2 (en) * 2009-07-02 2015-03-03 Exafer Ltd System and method for creating a transitive optimized flow path
US20110072442A1 (en) * 2009-09-22 2011-03-24 International Business Machines Corporation Event-handler for selecting responsive actions
US8386495B1 (en) * 2010-04-23 2013-02-26 Google Inc. Augmented resource graph for scoring resources
US8762417B2 (en) * 2010-05-04 2014-06-24 International Business Machines Corporation Event impact analysis
US8819078B2 (en) * 2012-07-13 2014-08-26 Hewlett-Packard Development Company, L. P. Event processing for graph-structured data
US9049249B2 (en) * 2012-11-26 2015-06-02 Linkedin Corporation Techniques for inferring an organizational hierarchy from a social graph

Also Published As

Publication number Publication date
US20150234936A1 (en) 2015-08-20
EP2911069A1 (en) 2015-08-26

Similar Documents

Publication Publication Date Title
US20210049177A1 (en) Multi-partitioning for combination operations
US11151137B2 (en) Multi-partition operation in combination operations
US11580107B2 (en) Bucket data distribution for exporting data to worker nodes
US11593377B2 (en) Assigning processing tasks in a data intake and query system
US11586627B2 (en) Partitioning and reducing records at ingest of a worker node
US11321321B2 (en) Record expansion and reduction based on a processing task in a data intake and query system
US20220327125A1 (en) Query scheduling based on a query-resource allocation and resource availability
JP2015156202A (ja) グラフデータ内のイベント伝搬
US11599541B2 (en) Determining records generated by a processing task of a query
US20220156335A1 (en) Streaming data processing
US11023463B2 (en) Converting and modifying a subquery for an external data system
US20230049579A1 (en) Executing commands from a distributed execution model
US11372532B2 (en) User role-based interface layout profiles in an information technology (IT) and security operations application
WO2020220216A1 (en) Search time estimate in data intake and query system
US20190258632A1 (en) Determining a Record Generation Estimate of a Processing Task
US20190138641A1 (en) Subquery generation based on a data ingest estimate of an external data system
US20190138640A1 (en) Subquery generation based on search configuration data from an external data system
US20180218088A1 (en) Adjacency structures for executing graph algorithms in a relational database
US11500783B1 (en) Evicting data associated with a data intake and query system from a local storage
JP2016100005A (ja) リコンサイル方法、プロセッサ及び記憶媒体
Zhang et al. A top-K QoS-optimal service composition approach based on service dependency graph
EP3076289B1 (en) Method, program, and apparatus, for managing a stored data graph
EP2731020B1 (en) Database system and method for storing distributed data and logic
US11762860B1 (en) Dynamic concurrency level management for database queries
US11916929B1 (en) Automatic assignment of incidents in an information technology (IT) and security operations application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225