JP2021523474A - グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器 - Google Patents

グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器 Download PDF

Info

Publication number
JP2021523474A
JP2021523474A JP2020563591A JP2020563591A JP2021523474A JP 2021523474 A JP2021523474 A JP 2021523474A JP 2020563591 A JP2020563591 A JP 2020563591A JP 2020563591 A JP2020563591 A JP 2020563591A JP 2021523474 A JP2021523474 A JP 2021523474A
Authority
JP
Japan
Prior art keywords
data
calculation
task
blockchain network
graph
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
JP2020563591A
Other languages
English (en)
Other versions
JP7158801B2 (ja
Inventor
博 ▲鄭▼
博 ▲鄭▼
日佳 ▲劉▼
日佳 ▲劉▼
志斌 ▲劉▼
志斌 ▲劉▼
▲謙▼ ▲陳▼
▲謙▼ ▲陳▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2021523474A publication Critical patent/JP2021523474A/ja
Application granted granted Critical
Publication of JP7158801B2 publication Critical patent/JP7158801B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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
    • 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
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)

Abstract

本願に係るグラフデータ処理方法は、分散型計算ノードクラスタ内の計算ノードに分散されたコンピュータ機器により実行され、処理対象グラフデータから分割されたサブグラフデータを取得するステップと、前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップと、前記グローバルデータをブロックチェーンネットワークに書き込むステップであって、前記ブロックチェーンネットワークにおけるグローバルデータが、前記分散型計算ノードクラスタによって更新されるものである、ステップと、前記ブロックチェーンネットワークから最新のグローバルデータを取得するステップと、取得した最新のグローバルデータと、前記ローカルデータとに基づいて、反復停止条件が満たされるまで、前記サブグラフデータに対する計算タスクを反復実行して、計算結果を取得するステップと、を含む。

Description

本願は、2018年5月16日に中国特許庁に提出された、出願番号が201810467817.8であり、発明の名称が「グラフデータ処理方法、及びグラフデータの計算タスクの配布方法」である中国特許出願に基づく優先権を主張し、その全ての内容は参照することにより本願に組み込まれる。
本願は、グラフ計算の技術分野に関し、特に、グラフデータ処理方法及び装置、グラフデータの計算タスクの配布方法、装置、記憶媒体、及びコンピュータ機器に関する。
コンピュータ技術の発展に伴い、「グラフ理論」を基礎としたグラフ構造の、現実世界に対する抽象的な表現、及びこのようなデータ構造上の計算パターン、即ち、グラフ計算が現れている。
グラフ計算は、「グラフ理論」を基礎とした「グラフ」構造の、現実世界に対する抽象的な表現、及びこのようなデータ構造上の計算パターンである。グラフデータ構造には、データ間の関連性が良く表現されるので、適用に発生した問題の多くは、グラフに抽象して表し、グラフ理論の思想で、又はグラフを基にモデルを作ることにより、問題を解決することができる。例えば、ソーシャルネットワーク、商品購入関係、道路交通ネットワーク、通信ネットワークなどの情報をグラフデータで表すことができるが、グラフデータに基づく計算のニーズもますます多くなり、ますます複雑になる。
本願の実例では、グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータ可読記憶媒体、及びコンピュータ機器が提供されている。
本願の実例では、分散型計算ノードクラスタ内の計算ノードに分散されたコンピュータ機器が実行するグラフデータ処理方法が提供されている。この方法は、
処理対象グラフデータから分割されたサブグラフデータを取得するステップと、
前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップと、
前記グローバルデータをブロックチェーンネットワークに書き込むステップであって、前記ブロックチェーンネットワークにおけるグローバルデータが、前記分散型計算ノードクラスタによって更新されるものである、ステップと、
前記ブロックチェーンネットワークから最新のグローバルデータを取得するステップと、
取得した最新のグローバルデータと、前記ローカルデータとに基づいて、反復停止条件が満たされるまで、前記サブグラフデータに対する計算タスクを反復実行して、計算結果を取得するステップと、を含む。
また、本願の実例では、グラフデータ処理装置が提供されている。この装置は、計算管理モジュールと、通信モジュールと、を含み、
前記計算管理モジュールは、処理対象グラフデータから分割されたサブグラフデータを取得し、
前記計算管理モジュールは、さらに、前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得し、
前記通信モジュールは、前記グローバルデータをブロックチェーンネットワークに書き込み、前記ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものであり、
前記通信モジュールは、さらに、前記ブロックチェーンネットワークから最新のグローバルデータを取得し、
前記計算管理モジュールは、さらに、取得された最新のグローバルデータと、前記ローカルデータとに基づいて、反復停止条件が満たされるまで、前記サブグラフデータに対する計算タスクを反復実行して、計算結果を取得する。
また、本願の実例では、コンピュータプログラムを記憶したコンピュータ可読記憶媒体が提供されており、前記コンピュータプログラムが、プロセッサによって実行されると、前記プロセッサに、前記グラフデータ処理方法のステップを実行させる。
また、本願の実例では、メモリとプロセッサとを備えるコンピュータ機器が提供されており、前記メモリには、コンピュータプログラムが記憶され、前記コンピュータプログラムが、前記プロセッサによって実行されると、前記プロセッサに、前記グラフデータ処理方法のステップを実行させる。
また、本願の実例では、コンピュータ機器が実行する、グラフデータの計算タスクの配布方法が提供されている。前記方法は、
処理対象グラフデータに対応するタスク情報を取得するステップと、
新たなブロックを作成するステップと、
前記タスク情報を前記新たなブロックに書き込むステップと、
前記新たなブロックがブロックチェーンネットワークの検証に合格した場合、前記新たなブロックを前記ブロックチェーンネットワークに追加するステップと、
前記ブロックチェーンネットワークで前記タスク情報をブロードキャストするステップであって、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、前記ブロックチェーンネットワークに基づいて前記サブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである、ステップと、を含む。
また、本願の実例では、グラフデータの計算タスクの配布装置が提供されている。前記装置は、
処理対象グラフデータに対応するタスク情報を取得するタスク管理モジュールと、
新たなブロックを作成する通信モジュールと、含み、
前記通信モジュールは、さらに、前記タスク情報を前記新たなブロックに書き込み、
前記通信モジュールは、さらに、前記新たなブロックがブロックチェーンネットワークの検証に合格した場合、前記新たなブロックを前記ブロックチェーンネットワークに追加し、
前記通信モジュールは、さらに、前記ブロックチェーンネットワークで前記タスク情報をブロードキャストし、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、前記ブロックチェーンネットワークに基づいて前記サブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである。
また、本願の実例では、コンピュータプログラムを記憶したコンピュータ可読記憶媒体が提供されており、前記コンピュータプログラムが、プロセッサによって実行されると、前記プロセッサに、前記グラフデータの計算タスクの配布方法のステップを実行させる。
また、本願の実例では、メモリとプロセッサとを備えるコンピュータ機器が提供されており、前記メモリには、コンピュータプログラムが記憶され、前記コンピュータプログラムが、前記プロセッサによって実行されると、前記プロセッサに、前記グラフデータの計算タスクの配布方法のステップを実行させる。
いくつかの実例におけるグラフデータ処理方法の適用環境図である。 いくつかの実例におけるグラフデータ処理方法の手順の模式図である。 いくつかの実例におけるブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップの手順の模式図である。 いくつかの実例における紛失データを再構築するステップの手順の模式図である。 いくつかの実例におけるグラフノードを交換するステップの手順の模式図である。 他のいくつかの実例におけるグラフデータ処理方法の手順の模式図である。 いくつかの実例におけるグラフデータの計算タスクの配布方法の手順の模式図である。 いくつかの実例におけるタスク編集インタフェースのインタフェース模式図である。 いくつかの実例におけるタスク実行状態表示インタフェースの構成の模式図である。 いくつかの実例における計算ノード状態表示インタフェースの構成の模式図である。 他のいくつかの実例におけるグラフデータの計算タスクの配布方法の手順の模式図である。 いくつかの実例におけるグラフデータ処理装置の構成ブロック図である。 他のいくつかの実例におけるグラフデータ処理装置の構成ブロック図である。 いくつかの実例におけるグラフデータ処理装置のモジュールの模式図である。 いくつかの実例におけるコンピュータ機器の構成ブロック図である。 いくつかの実例におけるグラフデータの計算タスクの配布装置の構成ブロック図である。 いくつかの実例におけるコンピュータ機器の構成ブロック図である。
本願の目的、構成、及びメリットをより明確にするために、以下、図面および実例を参照して、本願をさらに詳しく説明する。理解すべきものとして、ここで説明される具体的な実例は、本願を解釈するためのものにすぎず、本願を限定するものではない。
いくつかの実例では、グラフ計算方法は、中心化思想に基づくグラフ計算方法であってもよく、グラフ計算過程において、パラメータサーバを使用して、共有する必要があるデータの記憶及び更新を行うことが多い。パラメータサーバは、共有する必要があるデータを各サーバノードに分散的に記憶して、ある程度で単一ノード障害を避けることができるが、データの更新には、中心化されたドライバに依存して処理を協調する必要がある。これは、グラフ計算過程において、巨大なネットワークスループットをもたらすことが多い。これにより、ネットワーク通信がグラフ計算システムのボトルネックとなる。特に、超大規模データ量の処理時に、データ更新が遅延することで、中心化に基づく従来のグラフ計算方法には、計算効率が低い問題がある。
これに基づき、グラフデータの計算効率が低い技術的問題に対して、グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータ可読記憶媒体、およびコンピュータ機器を提供する必要がある。
図1は、いくつかの実例におけるグラフデータ処理方法の適用環境図である。図1を参照すると、このグラフデータ処理方法は、分散型グラフ計算システムに適用される。この分散型グラフ計算システムは、制御ノード110と、計算ノード120と、データウェアハウス130と、を備える。制御ノード110及び計算ノード120は、ブロックチェーンネットワークを介して接続される。制御ノード110及び計算ノード120は、それぞれ、ネットワークを介して、データウェアハウス130に接続される。制御ノード110は、端末によって実現されてもよく、具体的には、デスクトップ端末又は移動端末であってもよい。移動端末は、例えば、携帯電話、タブレットコンピュータ、又はノートブックコンピュータなどである。計算ノード120は、1つ又は複数のサーバに配置されたプログラムによって実現されてもよい。例えば、図1に示す計算ノードa、b、cなどは、それぞれ、高性能コンピュータ1〜高性能コンピュータNに分散されている。データウェアハウス130は、集中型の記憶デバイスであってもよく、分散型の記憶クラスタ又はデバイスであってもよい。いくつかの実例では、該分散型グラフ計算システムは、分散型計算ノードクラスタを備え、該グラフデータ処理方法は、分散型計算ノードクラスタ内の計算ノードに適用可能である。
図2に示すように、いくつかの実例では、グラフデータ処理方法が提供されている。この実例では、主に、この方法を上記図1における分散型計算ノードクラスタ内の計算ノードに適用される場合を例にして説明する。図2を参照すると、このグラフデータ処理方法は、具体的に、下記のステップを含む。
S202で、処理対象グラフデータから分割されたサブグラフデータを取得する。
ここで、グラフデータは、グラフ構造で組織された構造データであり、グラフ理論を適用することにより、エンティティ間の関係情報を格納する。
Figure 2021523474
通常、グラフデータは、グラフノード、及びグラフノード間のエッジから構成される。グラフノードは、グラフデータにおける頂点であり、グラフデータにおける主体を表すために使用されてもよい。例えば、ソーシャルネットワークにおける個体間の情報をグラフデータで格納する場合、グラフデータにおける異なるグラフノードで、異なる個体を表すことができ、又は、グラフデータで商品購入関係を表す場合、各ユーザ及び各商品は、いずれも、1つのグラフノードである。ここで、グラフノードは、グラフノードのノード識別子及びノード属性などの情報を含んでもよい。グラフノード間のエッジは、グラフデータにおけるエッジであり、グラフデータにおける異なる主体間の関係を表すために使用されてもよい。例えば、ソーシャルネットワークにおける個体間の情報をグラフデータで格納する場合、グラフデータにおける異なるグラフノードで、異なる個体を表し、グラフデータにおけるエッジで、個体間の関係、例えば、友達関係を表すことができ、グラフデータで商品購入関係を表す場合、各ユーザ及び各商品は、いずれも、1つのグラフノードであり、ユーザが商品を購入することは、1つのエッジとして表されるなどである。
いくつかの実例では、各計算ノードは、1つ又は複数のサーバに配置されたプログラムであってもよく、計算ノードは、ブロックチェーンという媒体を介して、仮想的なネットワーク構造を構成することができる。計算ノードは、データ、計算タスク実行ログ、又は計算ノード状態などの情報を新たなブロックに書き込んで、新たなブロックをブロックチェーンに追加することにより、計算ノード同士間の通信協調を容易にして、サブグラフデータに対応する計算タスクを完了させ、さらに、処理対象グラフデータに対応する計算タスクを完了させることができる。計算ノード状態は、計算ノードの状態情報であり、現在計算ノードが計算タスクを実行するのに消費される中央処理装置(CPU:Central Processing Unit)メモリリソース、アルゴリズムの名称及びタイプ、エラー回数などを含む。
いくつかの実例では、該分散型グラフ計算システムは、制御ノードを備え、制御ノードは、該分散型グラフ計算システム内の1つ又は複数の計算ノードと通信することにより、このブロックチェーンネットワークにアクセスすることができる。制御ノードは、処理対象グラフデータに対応するタスク情報を新たなブロックに記録して、新たなブロックをブロックチェーンネットワークに追加することにより、ブロックチェーンネットワークで該タスク情報をブロードキャストすることができる。このように、該ブロックチェーンネットワークの全ての計算ノードは、いずれも、ブロードキャストされたタスク情報を受信することができる。ここで、タスク情報は、計算タスクに関する情報である。
いくつかの実例では、計算ノードは、タイマー又はタイミングプログラムなどによって、ブロックチェーンネットワークにおける最新のブロックに記録された情報を定期的に検出してもよい。タスク情報を検出した場合、計算ノード自身の負荷状態を判断する。計算ノードが過負荷でない場合、計算ノードは、ブロックチェーンネットワークから該タスク情報をロードすることができる。
いくつかの実例では、タスク情報は、タスク実行可能ファイルの取得パス、計算タスク実行用アルゴリズムパラメータ、サブグラフデータの取得パス、計算結果の出力パス、及び所望の完了時間などを含んでもよい。計算ノードは、ブロックチェーンネットワークから該タスク情報をロードした後、処理対象グラフデータに対応するグラフ構造におけるサブグラフ構造を取得し、取得したサブグラフ構造に基づいて、データウェアハウスから相応のサブグラフデータを取得してもよい。
いくつかの実例では、計算ノードは、ブロックチェーンネットワークから該タスク情報をロードした後、自身の負荷状態に応じて、処理対象グラフデータに対応するグラフ構造から、一定数のグラフノード及び相応のエッジをランダムに取得して、サブグラフ構造を形成し、タスク情報に記載されたサブグラフデータの取得パスに基づいて、データウェアハウスから、該サブグラフ構造に対応するサブグラフデータを取得してもよい。
いくつかの実例では、分散型グラフ計算システムは、現在の計算ノード数に基づいて、例えば、平均又はランダムのような所定の条件に従って、処理対象グラフデータを相応の数のサブグラフデータに分割してもよい。
S204で、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得する。
ここで、計算タスクは、処理対象グラフデータの処理に必要な計算の作業量である。グローバルデータは、各計算ノードによるサブグラフデータの計算過程にグローバル共有及びグローバル更新が必要なデータであり、グローバルデータの規模が限られている。ローカルデータは、各計算ノードによるサブグラフデータの計算過程で少数の計算ノードによってのみ使用・更新されるデータである。
具体的には、計算ノードは、処理対象グラフデータから分割されたサブグラフデータを取得した後、取得したサブグラフデータにおけるグラフノード及びエッジに対して、相応の計算を行うことにより、相応のグローバルデータ及びローカルデータを取得してもよい。
いくつかの実例では、サブグラフデータにおける各グラフノードそれぞれは、1つの単位計算タスクに対応してもよい。この実例では、単位計算タスクは、該分散型グラフ計算システム内の最小計算割当単位であり、例えば、今回の反復計算過程におけるあるグラフノードに対応する計算タスクである。
いくつかの実例では、計算ノードは、タスク情報をロードした後、タスク情報に記載されたタスク実行可能ファイルの取得パス、及び計算タスク実行用アルゴリズムパラメータなどの情報に基づいて、データウェアハウスから、相応のタスク実行可能ファイル及び計算タスク実行用アルゴリズムパラメータをプルする。さらに、計算ノードは、サブグラフデータを取得した後、プルしたタスク実行可能ファイルを計算タスク実行用アルゴリズムパラメータで実行することにより、サブグラフデータに対する計算タスクを実行する。
いくつかの実例では、計算ノードは、ランダムに、又は過去の経験に従って、グローバルデータ及びローカルデータに初期値を付与してもよい。計算ノードは、計算タスク実行用アルゴリズムパラメータ、並びに、グローバルデータ及びローカルデータの初期値に基づいて、タスク実行可能ファイルを実行し、グローバルデータ及びローカルデータを更新する。
いくつかの実例では、処理対象グラフデータに対する計算は、反復計算であり、アルゴリズムの反復更新に伴い、毎回の反復過程に新たな計算タスクが生成される。サブグラフデータにおける各グラフノードは、アルゴリズムの駆動により、計算が必要な単位計算タスクを継続的に生成することができる。
いくつかの実例では、計算ノードは、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得した後、異なるタスク、異なるグラフノードによって、相応のデータを分けて記憶してもよい。
S206で、グローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものである。
ここで、ブロックチェーンネットワークは、ブロックチェーン技術を実行するためのキャリア及び組織方式である。ブロックチェーン技術は、BT(Blockchain technology)と略称され、分散型台帳技術とも呼ばれ、脱中心化、オーペン性、透明性を特徴とするインターネットデータベース技術であり、誰でもデータベースの記録に参与可能にする。ブロックチェーン技術は、ブロックチェーンデータ構造を使用してデータを検証・格納し、分散型ノードコンセンサスアルゴリズムを使用してデータを生成・更新し、暗号学的な方式でデータの伝送及びアクセスのセキュリティを確保し、自動化スクリプトコードで構成されるスマートコントラクトを使用して、プログラミング及びデータの操作を行う真新しいタイプの分散型インフラストラクチャ及び計算方式である。分散型計算ノードクラスタは、分散型計算ノードで構成された集合である。
具体的には、計算ノードは、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得した後、ブロックチェーンネットワークを介して、取得したグローバルデータを分散型計算ノード間で共有してもよい。計算ノードは、グローバルデータを新たなブロックに書き込み、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークの末尾に付加することにより、グローバルデータをブロックチェーンネットワークに書き込んでもよい。
いくつかの実例では、該分散型グラフ計算システム内の各計算ノードは、サブグラフデータに対する計算タスクを非同期的に実行することにより、それぞれ、相応のグローバルデータ及びローカルデータを取得してもよい。各計算ノードは、計算タスクを非同期的に実行して、相応の計算タスクを完了すると、各計算ノード自身の状況に応じて、グローバルデータをブロックチェーンネットワークに書き込んでもよい。ブロックチェーンネットワークにおけるグローバルデータは、分散型計算ノードクラスタによって共同で更新される。
いくつかの実例では、計算ノードは、グローバルデータをハッシュ暗号化することにより、相応の文字列を取得し、所定の秘密鍵を使用して文字列を暗号化して署名を生成し、グローバルデータ及び署名の両方をブロックチェーンネットワークに書き込んでもよい。他のノードは、グローバルデータ及び署名を取得すると、データウェアハウスから相応の公開鍵を取得して、署名の正当性を検証し、検証に合格した場合、相応のグローバルデータを取得してバッファリングし、ローカルにおけるグローバルデータを更新してもよい。
いくつかの実例では、上記ブロックチェーンネットワークは、プライベートブロックチェーンで構成されてもよく、ブロックチェーンネットワークにデータを記録するのに必要な鍵は、例えば、楕円曲線暗号化アルゴリズムやRSA暗号化アルゴリズム(非対称暗号化アルゴリズムの1つ)のような関連する非対称暗号化アルゴリズム標準に従って事前に生成されて、データウェアハウスに記憶されてもよい。計算ノードは、使用の必要に応じて、データウェアハウスにアクセスして、関連する鍵を取得してもよい。
いくつかの実例では、計算ノードは、前のブロックから現在の時間までの全ての関連データ、例えば、現在のグローバルデータ、計算タスク実行ログ、又は計算ノード状態などを新たなブロックに記録して、新たなブロックをブロックチェーンネットワークに追加してもよい。
いくつかの実例では、計算ノードは、新たなブロックに記録された関連データを自発的にブロードキャストすることにより、ブロードキャストされた関連データ、例えば、新たなブロックに記録されたグローバルデータを分散型グラフ計算システム内の全ての計算ノードと共有してもよい。又は、新たなブロックに記録された関連データを要求の形で拡散してもよい。ここで、要求の形で拡散することは、計算ノードが、要求を送信することにより、新たなブロックに記録された関連データを取得してもよいことを指す。
具体的な適用シナリオでは、処理対象グラフデータに係るグラフ計算問題において、通常、処理対象グラフデータに対応するグラフ構造が、比較的まばらなグラフであり、処理対象グラフデータにおけるエッジ数Mが、グラフノード数Nの2つずつの組み合わせより遥かに小さい
Figure 2021523474
このように、通常、グローバル共有が必要なグローバルデータの規模が限られており、大部分のデータは、一定の局所性を有し、少数の計算ノードの計算にのみ使用される。該分散型グラフ計算システムを採用すると、ブロックチェーンネットワークを介して、グローバルデータがグローバル共有され、ローカルデータが、相応の計算ノードにバッファリングされ、要求の形で取得され、大量の不要なネットワーク通信オーバヘッドが回避される。
S208で、ブロックチェーンネットワークから最新のグローバルデータを取得する。
具体的には、計算ノードは、ブロックチェーンネットワークを介して、新たなブロックに記録された最新のグローバル計算データを取得してもよい。いくつかの実例では、計算ノードは、新たなブロックを定期的に検出することにより、ブロックチェーンネットワークから最新のグローバル計算データをバッファリングしてもよい。
いくつかの実例では、ブロックチェーンネットワークで新たなブロックがブロードキャストされると、計算ノードは、該新たなブロックにおけるグローバルデータを取得してもよい。計算ノードは、取得したグローバルデータをローカルにバッファリングする。計算ノードは、タイマーの駆動により、最も古いグローバルデータを置き換えて更新してもよい。その更新ポリシーは、通常の先入れ先出し(FIFO:First Input First Output)キューや、最も使用頻度の低いページ置換アルゴリズム(LFU:least frequently used)のポリシーと類似しており、ここで説明を省略する。
いくつかの実例では、計算ノードは、ブロックチェーンネットワークにおけるブロック数を定期的に検出し、ブロック数が増加すると、新たなブロックに記録されたグローバルデータを取得し、取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新してもよい。
いくつかの実例では、計算ノードは、タイマー、又は所定のタイミング検出プログラムの実行によって、ブロックチェーンネットワークにおけるブロックデータを定期的に検出してもよい。ブロック数が増加すると、計算ノードは、新たなブロックに記録されたグローバルデータを要求の形で取得し、取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新してもよい。このように、グローバルデータを迅速かつ便利に更新して、サブグラフデータに対する後続の処理の実行効率を向上させることができる。
いくつかの実例では、計算ノードは、グローバルデータ及びローカルデータに基づいて、新しいラウンドの反復計算の計算タスクを生成してもよい。計算ノードは、新しいラウンドの反復計算の計算タスクを生成する際に、データ要求の形で、ブロックチェーンネットワークから最新のグローバルデータを取得し、隣接する計算ノードから必要なローカルデータを取得し、取得した最新のグローバルデータ、隣接する計算ノードにおけるローカルデータ、及びローカルにおけるローカルデータに基づいて、新しいラウンドの反復計算の計算タスクを生成する。
S210で、取得した最新のグローバルデータと、ローカルデータとに基づいて、反復停止条件が満たされるまで、サブグラフデータに対する計算タスクを反復実行して、計算結果を取得する。
ここで、反復停止条件は、反復計算を終了させる条件である。反復停止条件は、所定の反復回数に達するか、又は反復計算が所定の時間に達するか、又は反復計算で取得された計算結果が安定値に収束するかなどである。
具体的には、計算ノードは、取得した最新のグローバルデータと、ローカルデータとに基づいてサブグラフデータに対する計算タスクを反復実行し、サブグラフデータに対する計算タスクの実行が完了した後、反復停止条件が満たされない場合、ステップS204に戻って計算を継続し、反復停止条件が満たされると、計算を終了してもよい。
いくつかの実例では、サブグラフデータにおけるグラフノードは、アルゴリズムの駆動により、計算が必要な計算タスクを継続的に生成することができる。計算ノードは、サブグラフデータ、完了済みの計算タスクの数量及び内容、最新のグローバルデータ、及びローカルデータに基づいて、サブグラフデータにおける処理対象の計算タスクを決定してもよい。例えば、計算ノードは、サブグラフデータに基づいて、現在の反復計算の計算タスクの依存する前のs個の時点の完了済みの計算タスク、並びに、相応の最新のグローバルデータ及び現在のローカルデータを生成し、アルゴリズムの駆動により、次回の反復計算の計算タスクを生成してもよい。計算ノードは、生成した計算タスクを実行し、グローバルデータ及びローカルデータを更新する。このように、反復停止条件が満たされるまで、繰り返し反復して、計算結果を取得する。
該グラフデータ処理方法をモデル訓練に適用する場合を例にして説明すると、グラフデータを機械学習モデルに入力して、グラフデータにおけるグラフノードに対応する中間予測結果を決定し、中間予測結果とグラフデータにおける相応のラベルとの差異に応じて、機械学習モデルのモデルパラメータを調整して訓練を続け、反復停止条件が満たされると、訓練を終了してもよい。ここで、毎回のモデル訓練過程において、訓練で取得されたモデルパラメータには、グローバルデータ及びローカルデータが含まれてもよい。今回のモデル訓練過程では、前回のモデル訓練で取得されたモデルパラメータが用いられ、今回のモデル訓練で取得されたモデルパラメータは、次回のモデル訓練に用いられ、このように繰り返す。
いくつかの実例では、グラフ計算問題において、データの整合性要件がアルゴリズムによって大きく異なる。この実例では、ブロックチェーンネットワークにおける情報伝達がフラッディングであるため、計算ノードが取得したグローバルデータには、通常、一定のデータ遅延が存在し、強い整合性を保証することができない。つまり、グローバルパラメータの誤差は、制御可能な範囲内にある。これは、確率的勾配降下法のようなアルゴリズムに敏感ではない。しかしながら、これに応じて、ローカルデータは、ローカルに格納されるか、又はポイントツーポイントの直接接続を介して通信・共有されるので、その整合性が十分に保証され、データ遅延が存在しない。
いくつかの実例では、計算ノードは、取得した最新のグローバルデータと、ローカルデータとに基づいてサブグラフデータに対する計算タスクを反復実行し、反復停止条件が満たされると、サブグラフデータに対応する計算結果を取得することができる。各計算ノードは、各サブグラフのローカルデータと、計算結果とをデータウェアハウスに格納してもよい。データウェアハウスは、ブロックチェーンネットワークにおけるグローバルデータ、各サブグラフのローカルデータ、及び各サブグラフに対応する計算結果の整合性を取ることができる。
上記グラフデータ処理方法では、処理対象グラフデータをサブグラフデータに分割して分散型処理を行うことにより、グラフデータの処理効率を大幅に向上させることができる。また、各計算ノードがグラフデータの分散型計算過程において取得した、グローバル共有が必要なグローバルデータを、ブロックチェーンネットワークに書き込んで、ブロックチェーンネットワークを介してグローバル共有する。これにより、データ共有に消費される通信量を大幅に減少させる。また、処理対象グラフデータに対する反復計算過程では、ブロックチェーンネットワークから、最新のグローバルデータと、ローカルにバッファリングされたローカルデータとを迅速かつ直接に取得することができ、データの更新を協調するための中心化されたドライバが必要ではなく、グラフデータの処理効率を大幅に向上させる。
いくつかの実例では、ステップS202は、具体的に、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップと、タスク情報に基づいて、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取るステップと、を含む。ステップS204は、具体的に、タスク実行可能ファイルを実行することにより、サブグラフデータに対する計算タスクを実行して、相応のグローバルデータ及びローカルデータを取得するステップを含む。
具体的には、計算ノードは、ブロックチェーンネットワークを介して、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得し、タスク情報に基づいて、ローカル又はデータウェアハウスから、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取ってもよい。タスク実行可能ファイルを実行することにより、サブグラフデータに対する計算タスクを実行する。
いくつかの実例では、該分散型グラフ計算システムは、制御ノードを備え、制御ノードは、処理対象グラフデータに対応するタスク情報を新たなブロックに記録して、新たなブロックをブロックチェーンネットワークに追加することにより、ブロックチェーンネットワークで該タスク情報をブロードキャストすることができる。
いくつかの実例では、ブロックチェーンネットワークの全ての計算ノードは、いずれも、新たなブロックのブロードキャストによって、処理対象グラフデータに対応するタスク情報を受信することができる。
いくつかの実例では、計算ノードは、タイマー又はタイミングプログラムなどによって、ブロックチェーンネットワークにおける最新のブロックに記録された情報を定期的に検出し、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を自発的に取得してもよい。
上記実例では、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得し、タスク情報に基づいて、相応のタスク実行可能ファイル、及び相応のサブグラフデータを読み取り、タスク実行可能ファイルを実行することにより、計算タスクを実行するステップを実現することができる。ここで、タスク情報は、非常に軽いファイルであってもよい。このように、ブロックチェーンネットワークを介してタスクの配布を行うことにより、分散型グラフ計算システムにおけるタスクの配布及び取得の通信量を大幅に減少させることができ、タスクの配布効率を大幅に向上させる。
いくつかの実例では、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップは、具体的に、下記のステップを含む。
S302で、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出する。
具体的には、計算ノードは、タイマー又はタイミングプログラムなどによって、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出してもよい。いくつかの実例では、制御ノードは、タスク情報を新たなブロックに記録することにより、ブロックチェーンネットワークを介してタスク情報をブロードキャストする。
S304で、タスク情報を検出した場合、現在計算ノードの負荷状態を決定する。
具体的には、計算ノードは、新たなタスク情報があることを検出した場合、現在計算ノードの負荷状態を決定してもよい。
S306で、負荷状態が所定の負荷条件を満たす場合、タスク情報をプルする。
ここで、所定の負荷条件は、予め設定された条件であり、例えば、負荷量が所定の閾値より小さいか、又は負荷量が所定の範囲内にあるなどである。計算ノードは、現在の負荷状態が所定の負荷条件を満たすか否かを判断してもよい。計算ノードの負荷状態が所定の負荷条件を満たす場合、例えば、計算ノードがアイドル状態にある場合、計算ノードは、タスク情報をプルしてもよい。計算ノードの負荷状態が所定の負荷条件を満たさない場合、例えば、計算ノードが過負荷状態にある場合、計算ノードは、該タスク情報を無視してもよい。
上記実例では、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出することにより、最新のタスク情報をリアルタイムで取得することができる。計算ノードの負荷状態が所定の負荷条件を満たす場合にのみ、タスク情報をプルすることにより、タスク情報をプルする計算ノードには、相応の計算タスクを処理するためのアイドルリソースがあることを保証することができ、無効なプルが回避され、グラフデータの処理効率をさらに向上させる。
いくつかの実例では、ステップS206は、具体的に、新たなブロックを作成するステップと、作成した新たなブロックにグローバルデータを書き込むステップと、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップと、を含む。
具体的には、計算ノードは、新たなブロックを定期的に作成し、サブグラフデータに対する計算タスクを実行して取得されたグローバル計算データを、作成した新たなブロックに書き込んでもよい。新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加する。
いくつかの実例では、計算ノードは、相応のコンセンサスアルゴリズムに従って、新たなブロックを生成してもよい。コンセンサスアルゴリズムは、例えば、コンセンサスハッシュアルゴリズムである。計算ノードは、完了済みの計算タスクに応じたグローバルデータを新たなブロックに書き込んでもよい。いくつかの実例では、計算ノードは、グローバルデータ、計算タスク実行ログ、グラフノードの交換データ、又は計算ノード状態などの情報を新たなブロックに書き込んでもよい。
いくつかの実例では、ブロックチェーンがプライベートチェーンである場合、処理効率を向上させて、システムのスループットを向上させる目的を達成するために、コンセンサスハッシュアルゴリズムのビット数を縮減してもよい。コンセンサスハッシュアルゴリズムのビット数を縮減することは、例えば、256ビットの代わりに128ビットのセキュアハッシュアルゴリズム(SHA:Secure Hash Algorithm)を使用したり、コンセンサスハッシュアルゴリズムをプルーフ・オブ・ワーク(POS:Proof of Work)に調整し、コインエイジを使用して、次の新たなブロックの生成者を決定したりしてもよい。
いくつかの実例では、コンセンサスハッシュ関数に対して、コンセンサスプレフィックス0の数を制限することにより、複雑さを制御してもよい。ビット数の制御と類似して、制約ハッシュ結果のプレフィックス0の数が多いほど、コンセンサス問題の難しさが大きくなる。
いくつかの実例では、ブロックチェーンネットワークは、相応のコンセンサスアルゴリズムを用いて、新たなブロックを検証してもよい。新たなブロックがブロックチェーンネットワークの検証に合格した場合、計算ノードは、該新たなブロックをブロックチェーンネットワークに追加してもよい。
いくつかの実例では、該分散型グラフ計算システムにおいて、複数の新たなブロックが同時に生成されることで、ブロックチェーンネットワークが分岐することがある。分岐を処理するポリシーとして、一般的な多数決原則が採用されることで、最終的には、1つのみの分岐がメインチェーンとなる。現在計算ノードが作成した新たなブロックがメインチェーンとならなかった場合、計算ノードの状態は、新たなブロックを作成する前の状態に戻る。該新たなブロックに記録されたデータの紛失を回避するために、各計算ノードは、相応のデータをローカルに一定の期間だけバッファリングしてもよい。
上記実例では、グローバルデータを新たなブロックに書き込み、新たなブロックがブロックチェーンネットワークの検証に合格した場合、ブロックチェーンネットワークでグローバルデータを共有することができ、グローバルデータの共有に必要な通信量を大幅に減少させる。
いくつかの実例では、作成した新たなブロックにグローバルデータを書き込むステップは、グローバルデータ及び相応の計算タスク実行ログを新たなブロックに書き込むステップを含む。該グラフデータ処理方法は、紛失データを再構築するステップをさらに含む。該ステップは、具体的に、下記のステップを含む。
S402で、ブロックチェーンネットワークにおける計算タスク実行ログに基づいて、障害計算ノード及び相応の紛失データを決定する。
ここで、計算タスク実行ログは、計算タスクの実行に生じたログデータである。いくつかの実例では、計算ノードは、隣接ノードからローカルデータを取得することに失敗した場合、ブロックチェーンネットワークから、必要に応じて、相応の計算タスク実行ログをプル・整理して、障害計算ノード及び相応の紛失データを決定してもよい。
S404で、紛失データの再構築に参与する計算ノードを決定する。
具体的には、紛失データの再構築に参与する計算ノードは、通常、障害ノードの隣接計算ノードである。いくつかの実例では、障害計算ノードが決定されると、該障害計算ノードの隣接計算ノードは、自身の負荷状態に応じて、該障害計算ノードの一部のサブグラフデータ構造を取得し、取得した一部のサブグラフデータ構造に基づいて、データウェアハウスから相応の一部のサブグラフデータを取得してもよい。一部のサブグラフデータを結合することにより、新たなサブグラフデータが形成される。
S406で、決定した計算ノードから、障害計算ノードに関するローカルデータを取得する。
具体的には、計算ノードは、紛失データの再構築に参与する他の計算ノードから、障害計算ノードに関するローカルデータを取得してもよい。いくつかの実例では、計算ノードは、ローカルにバッファリングされたローカルデータから、障害計算ノードに関するローカルデータを検索し、検索したローカルデータを、紛失データの再構築に参与する計算ノードに共有してもよい。共有されたローカルデータは、他の計算ノードが紛失データを再構築するためのものである。ここで、共有の方式として、計算ノードが、ローカルにおける、障害計算ノードに関するローカルデータを相応の計算ノードに自発的に送信してもよいし、データを必要とする計算ノードが、データ取得要求を開始することにより、相応のローカルデータを取得してもよい。
いくつかの実例では、紛失データの再構築に参与する計算ノードは、無負荷の計算ノードであってもよい。この場合、紛失データの再構築に参与する計算ノードは、障害計算ノードに隣接する計算ノードで共有された、障害計算ノードに関するローカルデータを取得し、共有されたローカルデータに基づいて、紛失データを再構築してもよい。
S408で、取得したローカルデータに基づいて、紛失データを再構築する。
具体的には、計算ノードは、最小誤差原則に従って、紛失データを再構築してもよい。計算ノードは、取得したローカルデータに基づいて、補間法を用いて紛失データを再構築してもよい。ここで、よく使われる補間法は、例えば、スライディング平均ウィンドウ法、回帰法、補間関数法などである。或いは、取得したローカルデータの平均値、中央値、又は最頻値を紛失データの再構築値とする。
上記実例では、ブロックチェーンネットワークに記録された計算タスク実行ログによって、障害ノード及び相応の紛失データを迅速に探すことができる。紛失データの再構築に参与する計算ノードで共有されたローカルデータに基づいて、紛失されたデータを迅速に再構築することができ、計算ノードの単一ノード障害が全体の計算に影響を及ぼすことが回避され、分散型グラフ処理システム全体は、高い信頼性を持つ。
いくつかの実例では、該グラフデータ処理方法は、グラフノードを交換するステップをさらに含む。該ステップは、具体的に、下記のステップを含む。
S502で、相応のブロックチェーンデータが形成された完了済みの計算タスクに対応する第1量子化値を取得する。
ここで、ブロックチェーンデータは、ブロックチェーンネットワークに記録されたデータであり、ブロックチェーンネットワークにおける新たなブロックは、記録された情報をブロードキャストの方式で共有することができる。量子化値は、計算タスクを量子化することにより取得された値であり、例えば、1つの単位計算タスクは、1つの単位の量子化値に対応する。第1量子化値は、計算ノードにおける、相応のブロックチェーンデータが形成された完了済みの計算タスクを量子化することにより取得された値である。第1量子化値は、計算ノードの計算能力をはかることができ、完了済みの計算タスクの一部に対応する。第1量子化値は、具体的に、ブロックチェーンネットワークで流通・交換されるリソースであってもよく、通貨値や仮想通貨値などと呼ばれてもよい。
具体的には、計算ノードは、サブグラフデータに対する計算タスクを実行した後、完了済みの計算タスクの一部に対応するグローバルデータをブロックチェーンネットワークに記録して、相応のブロックチェーンデータを形成してもよい。この完了済みの計算タスクの一部に対応する量子化値が、第1量子化値である。
いくつかの実例では、計算ノードは、前のブロックから現在の時間までの全ての関連データ、例えば、現在のグローバルデータ、計算タスク実行ログ、又は計算ノード状態などを新たなブロックに記録し、新たなブロックをブロックチェーンネットワークに追加し、相応の第1量子化値を取得してもよい。
S504で、相応のブロックチェーンデータが形成されていない完了済みの計算タスクに対応する第2量子化値を取得する。
ここで、第2量子化値は、計算ノードにおける、相応のブロックチェーンデータが形成されていない完了済みの計算タスクを量子化することにより取得された値である。第2量子化値は、計算ノードの計算能力をはかることができ、計算ノードにおける完了済みの計算タスクの他の一部に対応する。第2量子化値は、具体的に、計算ノードが現在所有する、第1量子化値に引き換え可能なリソースであってもよく、資産値と呼ばれてもよい。計算ノードが、完了済みの計算タスクに対応するデータをブロックチェーンネットワークに記録して、相応のブロックチェーンデータを形成した後、この部分のブロックチェーンデータに対応する資産値は、ブロックチェーンネットワークで流通する同額の通貨値に変換可能になる。
具体的には、計算ノードは、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得する。計算ノードは、完了済みの計算タスクを量子化することにより、第2量子化値を取得する。いくつかの実例では、計算ノードは、サブグラフデータに対する計算タスクを実行した後、相応の計算タスクを完了する。計算ノードは、相応の計算タスクを完了すると、完了済みの計算タスクに対応する第2量子化値を取得することができる。
いくつかの実例では、計算ノードは、グローバルデータを新たなブロックに書き込む前に、完了済みの計算タスクに対応する過去の第2量子化値を取得する。ここで、過去の第2量子化値は、グローバルデータを新たなブロックに書き込む前の完了済みの計算タスクに対応する。計算ノードは、グローバルデータを新たなブロックに書き込み、かつ該新たなブロックがブロックチェーンネットワークの検証に合格した場合、過去の第2量子化値から、書き込んだグローバルデータに応じた計算タスクに対応する第1量子化値を差し引くことにより、現在の第2量子化値を取得する。
このように、グローバルデータを新たなブロックに書き込んで、相応のブロックチェーンデータを形成することにより、相応の過去の第2量子化値を第1量子化値に変換することができる。記帳の形で、今から引き換え可能な第2量子化値を相応の流通可能な第1量子化値に迅速かつ便利に変換する。このように、第1量子化値と現在の第2量子化値との総和は、計算ノードの現在の計算能力を表すことができる。
S506で、サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定する。
ここで、第3量子化値は、計算ノードにおける未完了の計算タスクを量子化することにより取得された値である。第3量子化値は、具体的に、計算ノードにおける計算待ちの計算タスクに対応する値であってもよく、負債値と呼ばれてもよく、計算ノードの負荷状態をはかることができる。計算ノードは、未完了の計算タスクを実行して完了すると、相応の第3量子化値を同額の第2量子化値に変換して、さらに同額の第1量子化値に変換することができる。
具体的には、計算ノードは、現在の未完了の計算タスクをリアルタイムで取得し、未完了の計算タスクに基づいて、相応の第3量子化値を決定してもよい。いくつかの実例では、第1量子化値、第2量子化値、及び第3量子化値の単位は、同じであり、いずれも、計算タスクに対応する。
いくつかの実例では、処理対象グラフデータに対応する総タスクが常に変化しており、各計算ノードにおけるサブグラフデータにより生成されたサブタスクも常に変化している。計算ノードは、サブグラフデータに基づいて、計算タスクを反復生成してもよい。アルゴリズムの反復更新に伴い、毎回の反復過程に新たな計算タスクが生成される。サブグラフデータにおける各グラフノードは、アルゴリズムの駆動により、計算が必要な単位計算タスクを継続的に生成することができる。
いくつかの実例では、計算ノードは、サブグラフデータ、完了済みの計算タスクの数、完了済みの計算タスクの内容、ブロックチェーンネットワークで共有されたグローバルデータ、及びローカルデータに基づいて、サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定してもよい。
S508で、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行う。
ここで、均衡条件は、予め設定された、計算ノードの現在の計算能力と負荷状態との間に均衡関係があることをはかるための条件である。均衡条件は、例えば、サブグラフデータの現在の第3量子化値の第2総和と、サブグラフデータの現在の第2量子化値の第1総和との対比値が指定の範囲内にあることである。ここで、対比値は、2つの数値の差異値である。具体的には、数学計算により、2つの数値の差異値を決定してもよい。数学計算は、例えば、2つの数値を、直接に除算したり、対数を取って除算したり、減算したり、又は他の演算を行った後に対数を取って除算したりするなどである。対比値は、1つの数値の、他の数値に対する差異状態をはかることができる。
具体的には、第2量子化値と第3量子化値とが均衡条件に合うことを保持するために、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行ってもよい。
いくつかの実例では、均衡条件に対応する指定範囲は、所定の固定範囲であってもよく、時間とともに変化する関数によって決定される範囲であってもよい。
いくつかの実例では、計算ノードは、サブグラフデータの現在の第2量子化値の第1総和を取得し、サブグラフデータの現在の第3量子化値の第2総和を取得してもよい。第1総和に対する第2総和の対比値を決定し、対比値が指定範囲を超えた場合、第2量子化値と第3量子化とが均衡条件に合わない。
いくつかの実例では、計算ノードは、下記の数式によって、第1総和に対する第2総和の対比値を計算してもよい。
Figure 2021523474
Figure 2021523474
いくつかの実例では、対比値が、第2総和及び第1総和を、対数を取って除算することにより取得された値である場合、指定範囲の最小値μ(t)及び最大値λ(t)は、いずれも時間tとともに変化する線形減少関数であり、かつμ(t)<λ(t)である。例えば、対比値が指定範囲内にあることを下記の数式で表すことができる。
Figure 2021523474
具体的な一実例では、定数aは10であってもよく、定数mは1である。この場合、上記数式は、
Figure 2021523474
と簡略化することができる。
いくつかの実例では、対比値が指定範囲の最小値より小さい場合、対比値が指定範囲内にあることを保持するように、現在計算ノードの第1量子化値と、非現在計算ノードの相応のグラフノードとを交換し、対比値が指定範囲の最大値より大きい場合、対比値が指定範囲内にあることを保持するように、現在計算ノードのグラフノードと、非現在計算ノードの相応の第1量子化値とを交換する。
指摘すべきものとして、上記実例では、対比値は、第1総和に対する第2総和の対比値であり、対比値が指定範囲内にあることを保持するために、対比値が指定範囲の最小値より小さい場合、現在計算ノードの第1量子化値と、非現在計算ノードの相応のグラフノードとを交換し、対比値が指定範囲の最大値より大きい場合、現在計算ノードのグラフノードと、非現在計算ノードの相応の第1量子化値とを交換する。これに応じて、対比値は、第2総和に対する第1総和の対比値であってもよく、対比値が指定範囲内にあることを保持するために、対比値が指定範囲の最大値より大きい場合、現在計算ノードの第1量子化値と、非現在計算ノードの相応のグラフノードとを交換し、対比値が指定範囲の最小値より小さい場合、現在計算ノードのグラフノードと、非現在計算ノードの相応の第1量子化値とを交換する。
いくつかの実例では、計算ノード間でグラフノードと第1量子化値との交換を行うステップは、具体的に、交換を行う計算ノード間で、交換対象グラフノードを提供する第1者、及び交換対象グラフノードを受け取る第2者を決定するステップと、第1者の交換対象グラフノードに対する第1推定量子化値を決定し、第2者の交換対象グラフノードに対する第2推定量子化値を決定するステップと、第1推定量子化値及び第2推定量子化値に基づいて、交換対象グラフノードと交換する第1量子化値を決定するステップと、交換を行う計算ノード間で、交換対象グラフノードと、決定した第1量子化値との交換を行うステップと、を含む。
ここで、推定量子化値は、推定された、交換対象グラフノードの所有している未完了の計算タスクを量子化した値である。第1推定量子化値は、交換対象グラフノードを提供する第1者が、交換対象グラフノードの所有している未完了の計算タスクを量子化した値である。第2推定量子化値は、交換対象グラフノードを受け取る第2者が、交換対象グラフノードの所有している未完了の計算タスクを量子化した値である。
具体的には、計算ノードが、交換対象グラフノードを提供する第1者である場合、計算ノードは、交換対象グラフノードに対応する第2量子化値と、第1者に対応する第2量子化値との関係、交換対象グラフノードに対応する第3量子化値と、第1者に対応する第3量子化値との関係に基づいて、第1者の交換対象グラフノードに対する第1推定量子化値を決定してもよい。例えば、計算ノードは、下記の数式によって第1推定量子化値を計算してもよい。
Figure 2021523474
ここで、vは、交換対象グラフノードを表し、kは、交換対象グラフノードを提供する第1者を表し、y1(v,k)は、第1者の交換対象グラフノードに対する第1推定量子化値を表し、Dは、交換対象グラフノードの第3量子化値を表し、Cは、交換対象グラフノードの第2量子化値を表し、
Figure 2021523474
は、交換対象グラフノードを提供する第1者kにおけるグラフノードの第3量子化値の平均を表し、
Figure 2021523474
は、交換対象グラフノードを提供する第1者kにおけるグラフノードの第2量子化値の平均を表し、α及びβは、それぞれ、相応のパラメータであり、eは、ネイピア数である。
いくつかの実例では、計算ノードが、交換対象グラフノードを受け取る第2者である場合、計算ノードは、第2推定量子化値を決定する際に、交換対象グラフノードを受け取った後、第2者に対応する計算ノードの、追加する必要がある計算タスク、及び減少される通信距離量を考慮してもよい。このため、計算ノードは、交換対象グラフノードの第3量子化値、及び交換対象グラフノードと第2者におけるグラフノードとの通信距離に基づいて、第2者の交換対象グラフノードに対する第2推定量子化値を決定してもよい。例えば、計算ノードは、下記の数式によって第2推定量子化値を計算してもよい。
Figure 2021523474
ここで、vは、交換対象グラフノードを表し、lは、交換対象グラフノードを受け取る第2者を表し、y(v,l)は、第2者の交換対象グラフノードに対する第2推定量子化値を表し、Dは、交換対象グラフノードの第3量子化値を表し、
Figure 2021523474
は、交換対象グラフノードを受け取る第2者lにおけるグラフノードjと交換対象グラフノードiとの通信距離の総和を表す。
いくつかの実例では、dist(i, j)は、グラフノードiとグラフノードjとの通信距離を表すことができる。グラフデータにおける任意2つのグラフノード間の通信距離を計算する計算量が巨大であるため、計算ノードは、数学的な近似方法を用いて、グラフノード間の通信距離を計算し、例えば、局所近似法を用いて、グラフノード間の通信距離を計算してもよく、具体的には、下記の数式によって、グラフノード間の通信距離を計算してもよい。
Figure 2021523474
ここで、dist(i, j)は、交換対象グラフノードを受け取る第2者lにおけるグラフノードjと交換対象グラフノードiとの通信距離を表し、ei,j∈Eは、グラフノードjとグラフノードiとがエッジを介して接続されることを表し、
Figure 2021523474
は、グラフノードjとグラフノードiとの間にエッジがないことを表す。
つまり、グラフノードiとグラフノードjとがエッジを介して接続される場合、近似的には、グラフノードiとグラフノードjとの距離が近いと考えられる。第2者に対応する計算ノードが交換対象グラフノードを受け取った後、計算ノードは、相応の通信距離が減少することができるので、第2推定量子化値が高くなる。グラフノードiとグラフノードjとの間に、接続するためのエッジがない場合、第2者に対応する計算ノードが交換対象グラフノードを受け取った後、計算ノードは、通信距離が減少しない。
いくつかの実例では、計算ノードは、第1推定量子化値及び第2推定量子化値に基づいて、交換対象グラフノードと交換する第1量子化値を決定してもよい。例えば、第1推定量子化値及び第2推定量子化値の平均値を計算し、平均値を、交換対象グラフノードと交換する第1量子化値としてもよい。或いは、計算ノードは、一定の重み比で第1推定量子化値及び第2推定量子化値を重み付け加算して平均値を取り、重み付け加算後の平均値を、交換対象グラフノードと交換する第1量子化値としてもよい。さらに、交換を行う計算ノード間で、第2者は、第1者の交換対象グラフノードを、決定した第1量子化値と交換に受け取ってもよい。
上記実例では、第1量子化値、第2量子化値、及び第3量子化値をそれぞれ取得し、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノートと第1量子化値との交換を行う。ここで、第1量子化値及び第2量子化値は、計算ノードの計算能力をはかることができ、第3量子化値は、計算ノードの負荷状態をはかることができる。このように、計算ノードの計算能力及び負荷状態を、計算タスクに応じた量子化値で正確かつ直感的に量子化表現することができる。計算ノード間でグラムノードと第1量子化値との交換を行うことにより、第2量子化値と第3量子化値とが均衡条件に合うことを保持する。このように、タスクを割り当てるために特定のサーバまたはノードに依存する必要はなく、計算ノード間の互いの協調によってグラフノードを割り当て、割り当てを動的に調整し、自己組織化された負荷分散を実現し、特定のサーバの単一ノード障害及びネットワーク輻輳の問題を回避し、タスクのスケジューリング効率を大幅に向上させる。また、このような自己組織化された動的なタスクスケジューリング方法を用いると、より大規模のクラスタの計算タスクのスケジューリングに適応でき、計算ノードの数を動的に増減しても既存の計算タスクに影響を与えることなく、高いスケーラビリティを持つ。
図6に示すように、具体的な一実例では、グラフデータ処理方法は、
ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出するステップS602と、
タスク情報を検出した場合、現在計算ノードの負荷状態を決定するステップS604と、
負荷状態が所定の負荷条件を満たす場合、タスク情報をプルするステップS606と、
タスク情報に基づいて、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取るステップS608と、
タスク実行可能ファイルを実行することにより、サブグラフデータに対する計算タスクを実行して、相応のグローバルデータ及びローカルデータを取得するステップS610と、
新たなブロックを作成するステップS612と、
グローバルデータ及び相応の計算タスク実行ログを新たなブロックに書き込むステップS614と、
新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップであって、ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものである、ステップS616と、
相応のブロックチェーンデータが形成された完了済みの計算タスクに対応する第1量子化値を取得するステップS618と、
相応のブロックチェーンデータが形成されていない完了済みの計算タスクに対応する第2量子化値を取得するステップS620と、
サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定するステップS622と、
第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行うステップS624と、
ブロックチェーンネットワークにおけるブロック数を定期的に検出するステップS626と、
ブロック数が増加すると、新たなブロックに記録されたグローバルデータを取得するステップS628と、
取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新するステップS630と、
取得した最新のグローバルデータと、ローカルデータとに基づいて、反復停止条件が満たされるまで、サブグラフデータに対する計算タスクを反復実行して、計算結果を取得するステップS632と、
ブロックチェーンネットワークにおける計算タスク実行ログに基づいて、障害計算ノード及び相応の紛失データを決定するステップS634と、
紛失データの再構築に参与する計算ノードを決定するステップS636と、
決定した計算ノードから、障害計算ノードに関するローカルデータを取得するステップS638と、
取得したローカルデータに基づいて、紛失データを再構築するステップS640と、を含む。
上記グラフデータ処理方法では、処理対象グラフデータをサブグラフデータに分割して分散型処理を行うことにより、グラフデータの処理効率を大幅に向上させることができる。また、各計算ノードがグラフデータの分散型計算過程において取得した、グローバル共有が必要なグローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークを介してグローバル共有する。これにより、データ共有に消費される通信量を大幅に減少させる。また、処理対象グラフデータに対する反復計算過程では、ブロックチェーンネットワークから、最新のグローバルデータと、ローカルにバッファリングされたローカルデータとを迅速かつ直接に取得することができ、データの更新を協調するための中心化されたドライバが必要ではなく、グラフデータの処理効率を大幅に向上させる。
図6は、いくつかの実例におけるグラフデータ処理方法の手順の模式図である。理解すべきものとして、図6のフローチャートにおける各ステップは、矢印の指示に従って順次示されているが、これらのステップは、必ずしも矢印に示す順序に従って順次実行されるとは限らない。本明細書で明確に説明されない限り、これらのステップの実行順序には、厳しい制限がない。これらのステップは、他の順序で実行されてもよい。また、図6における少なくとも一部のステップは、複数のサブステップ又は複数のステージを含んでもよい。これらのサブステップ又はステージは、必ずしも同一の時刻に実行完了するとは限らず、異なる時刻に実行されてもよい。これらのサブステップ又はステージの実行順序も、必ずしも順次に実行するとは限らず、他のステップ、或いは、他のステップのサブステップ又はステージの少なくとも一部と代わる代わる又は交代で実行されてもよい。
具体的な一実例では、制御ノードが、タスク情報を新たなブロックに書き込み、ブロックチェーンネットワークでタスク情報を配布し、計算ノードが、タスク情報を検出すると、自身の負荷状態を判断し、負荷状態が所定の負荷条件を満たす場合、タスク情報をプルし、タスク情報に基づいて、データウェアハウスから、サブグラフデータ及びタスク実行可能ファイルを取得するようにしてもよい。計算ノードは、タスク実行可能ファイルを実行することにより、サブグラフデータの計算を行う。計算ノードは、計算過程において、計算されたグローバルデータ、計算タスク実行ログ、及び計算ノード状態などの情報をブロックチェーンネットワークに書き込んでもよい。計算ノードは、計算過程において、相応の第1量子化値、第2量子化値、及び第3量子化値をそれぞれ取得し、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノートと第1量子化値との交換を行ってもよい。このようにして、反復停止条件が満たされるまで、グラフデータに対して繰り返し反復計算を継続的に行って、計算結果を取得する。計算ノードは、相応の計算結果を、ブロックチェーンに記録するか、又はデータウェアハウスに格納してもよい。
具体的な適用シナリオでは、例えば、巡回セールスマン問題(TSP:Traveling Salesman Problem)では、上記のグラフデータ処理方法によって、より良い解を効率的に求めることができる。ここで、TSPとは、具体的に、セールスマンが如何に最短距離で全ての都市(グラフノード)を回って出発都市に帰還するかを指す。これは、非決定性多項式(NP:Non−deterministic Polynomial)完全問題であり、通常、その近似解を求める。本発明におけるグラフデータ処理方法によれば、該TSPをサブグラフにおける最短トラバース問題に分割し、つまり、ローカル最適を探索することにより、近似的にグローバル最適解に近づくことができる。ここで、グローバルデータは、即ち、現在の処理対象グラフデータにおけるパス及び全長であるが、ローカルデータは、各サブグラフデータにおけるより良いパス長を含む。計算過程は、パス選択を継続的に最適化することである。計算ノード間では、グローバルデータをブロックチェーンネットワークに書き込むことにより共有し、計算過程に消費されるネットワーク通信量を大幅に減少することができる。継続的に更新されるグローバルデータ及びローカルデータに基づいて、計算タスクを実行し、最適解を求める。
図7に示すように、いくつかの実例では、グラフデータの計算タスクの配布方法が提供されている。この実例では、主に、該方法を上記図1における制御ノード110に適用する場合を例に説明する。図7を参照すると、このグラフデータの計算タスクの配布方法は、具体的に、下記のステップを含む。
S702で、処理対象グラフデータに対応するタスク情報を取得する。
いくつかの実例では、制御ノードは、ローカルに格納された、処理対象グラフデータに対応するタスク情報を取得するか、又はネットワーク接続、インタフェース接続などの方式で、他の機器に格納されたタスク情報を取得してもよい。
いくつかの実例では、制御ノードは、タスク追加指示を受け付け、タスク追加指示に応じて、タスク編集インタフェースを表示させてもよい。ユーザは、タスク編集インタフェースを介して、タスク情報を入力してもよい。制御ノードは、タスク編集インタフェースに入力された、処理対象グラフデータに対応するタスク情報を取得することができる。
図8は、いくつかの実例におけるタスク編集インタフェースのインタフェース模式図である。図8に示すように、制御ノードは、タスク編集インタフェースを表示させることができ、具体的に、タスク編集インタフェースの上部に、タスク数、実行中タスク数、成功タスク数、失敗タスク数などの情報を表示させてもよい。タスク編集インターフェースの中央部分に、各タスクの関連情報、例えば、タスク名、実行時間、実行コマンド、進捗、及び既存のタスクの状態を変更可能な処理コントロールユニットをテーブルの形で表示させる。タスク編集インタフェースの下部に、タスク追加用のテキストボックスを表示させる。ユーザは、「タスク追加」ボタンをクリックすると、タスク編集インタフェースの下部にある対応するテキストボックスに、例えば、アルゴリズムパラメータ、タスク実行可能ファイル取得パス、入力データパス、結果出力パス、及び所望の完了時間などの相応のタスク情報を入力することができる。
S704で、新たなブロックを作成する。
具体的には、制御ノードは、新たな計算タスクを配布する際に、新たなブロックを作成し、タスク情報を新たなブロックに書き込むことにより、タスク情報を配布してもよい。
いくつかの実例では、制御ノードは、既存又は実行中の計算タスクに対して、パラメータを修正するか、又は結果パスなどの情報を出力する際にも、新たなブロックを作成し、修正された内容を新たなブロックに書き込むことにより、ブロックチェーンネットワークでタスク情報を更新してもよい。
いくつかの実例では、制御ノードは、既存又は実行中の計算タスクに対して、タスクを終了する際に、ブロックチェーンにおいて、それを使用不可状態にマークしてもよい。同様に、新たなブロックを追加することにより、ブロックチェーンネットワークでブロードキャストする。
S706で、タスク情報を新たなブロックに書き込む。
具体的には、制御ノードは、取得したタスク情報を新たなブロックに書き込んでもよい。
S708で、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加する。
いくつかの実例では、ブロックチェーンネットワークは、相応のコンセンサスアルゴリズムを用いて、新たなブロックを検証してもよい。新たなブロックがブロックチェーンネットワークの検証に合格した場合、計算ノードは、該新たなブロックをブロックチェーンネットワークに追加してもよい。
S710で、ブロックチェーンネットワークでタスク情報をブロードキャストし、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである。
具体的には、制御ノードがタスク情報を記録するための新たなブロックがブロックチェーンネットワークの検証に合格した場合、ブロックチェーンネットワークを介して、新たなブロックにおけるタスク情報をブロードキャストしてもよい。ブロードキャストされたタスク情報は、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである。
上記のグラフデータの計算タスクの配布方法では、取得したタスク情報をブロックチェーンネットワークにおける新たなブロックに書き込むことにより、ブロックチェーンネットワークで該タスク情報をブロードキャストして配布する。このように、ブロックチェーンネットワークにおける他のノードは、相応のタスク情報をプルし、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得することができる。このように、ネットワーク通信量の消費が非常に低い条件下で、ブロックチェーンネットワークにある計算ノードは、配布されたタスク情報を迅速かつ効果的に受信することができる。これにより、グラフデータの計算タスクの配布効率を大幅に向上させ、さらにグラフデータ計算の処理効率を向上させる。
いくつかの実例では、制御ノードによって、ブロックチェーンネットワークにおける計算ノードのタスク実行状態を表示させることができる。具体的には、制御ノードは、タスク実行状態表示指示を受け付け、タスク実行状態表示指示に応じて、ブロックチェーンネットワークで相応の計算ノードに対応する計算タスク実行ログにアクセスすることにより、タスク実行状態情報を取得し、タスク実行状態表示インタフェースを表示させ、ブロックチェーンネットワークにおける既存の計算タスクに対応するタスク実行状態情報をタスク実行状態表示インタフェースに表示させてもよい。
図9に示すように、図9は、いくつかの実例におけるタスク実行状態表示インタフェースの構成の模式図である。図9に示すように、タスク実行状態表示インタフェースには、計算ノード数、タスク数、連続実行時間、累積実行時間、成功タスク数、失敗タスク数、実行中タスク数、CPU使用率、ネットワークスループット、メモリ使用率、及びノード可用率などの情報を表示させてもよい。ここで、上記の関連情報をグラフの形で補助的に表示させてもよい。特定の計算ノードに対して、制御ノードは、該計算ノードのブロックチェーンネットワーク上の計算タスク実行ログにアクセスして、タスク実行状態表示インタフェースに表示させることができる。
図10に示すように、図10は、いくつかの実例における計算ノード状態表示インタフェースの構成の模式図である。図10に示すように、計算ノード状態表示インタフェースには、計算ノード数、計算ノード可用率、計算ノード障害数、CPU使用率、メモリ使用率、ネットワークスループットなどの情報を表示させてもよい。計算ノード状態表示インタフェースには、例えば、計算ノード名、実行時間、現在状態、負荷率、ログ閲覧などの各ノードの状態情報を表示させてもよい。計算ノード状態表示インタフェースの下部にノード追加用のテキストボックスを表示させる。ユーザは、「ノード追加」ボタンをクリックすると、計算ノードを追加するために、計算ノード状態表示インタフェースの下部にある対応するテキストボックスに相応の計算ノード情報を入力することができる。ここで、計算ノード情報は、例えば、グローバルデータ、ノードパラメータ、ログオプション、及び計算タスクなどである。
いくつかの実例では、制御ノードによって、例えば、ブロックサイズ、更新速度、検証方式、及び暗号化アルゴリズムなどのブロックチェーンネットワークパラメータを含むシステム実行パラメータを設定することができる。
図11に示すように、具体的な一実例では、グラフデータの計算タスクの配布方法は、
タスク追加指示を受け付けるステップS1102と、
タスク追加指示に応じて、タスク編集インタフェースを表示させるステップS1104と、
タスク編集インタフェースに入力された、処理対象グラフデータに対応するタスク情報を取得するステップS1106と、
新たなブロックを作成するステップS1108と、
タスク情報を新たなブロックに書き込むステップS1110と、
新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップS1112と、
ブロックチェーンネットワークでタスク情報をブロードキャストするステップであって、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである、ステップS1114と、を含む。
上記のグラフデータの計算タスクの配布方法では、取得したタスク情報をブロックチェーンネットワークにおける新たなブロックに書き込むことにより、ブロックチェーンネットワークで該タスク情報をブロードキャストして配布する。このように、ブロックチェーンネットワークにおける他のノードは、相応のタスク情報をプルし、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得することができる。このように、ネットワーク通信量の消費が非常に低い条件下で、ブロックチェーンネットワークにある計算ノードは、配布されたタスク情報を迅速かつ効果的に受信することができる。これにより、グラフデータの計算タスクの配布効率を大幅に向上させ、さらにグラフデータ計算の処理効率を向上させる。
図12に示すように、いくつかの実例では、計算管理モジュール1201と、通信モジュール1202とを含むグラフデータ処理装置1200が提供されている。
計算管理モジュール1201は、処理対象グラフデータから分割されたサブグラフデータを取得し、
計算管理モジュール1201は、さらに、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得し、
通信モジュール1202は、グローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものであり、
通信モジュール1202は、さらに、ブロックチェーンネットワークから最新のグローバルデータを取得し、
計算管理モジュール1201は、さらに、取得された最新のグローバルデータと、ローカルデータとに基づいて、反復停止条件が満たされるまで、サブグラフデータに対する計算タスクを反復実行して、計算結果を取得する。
いくつかの実例では、通信モジュール1202は、さらに、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得し、計算管理モジュール1201は、さらに、タスク情報に基づいて、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取り、タスク実行可能ファイルを実行することにより、サブグラフデータに対する計算タスクを実行して、相応のグローバルデータ及びローカルデータを取得する。
いくつかの実例では、通信モジュール1202は、さらに、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出し、タスク情報を検出した場合、現在計算ノードの負荷状態を決定し、負荷状態が所定の負荷条件を満たす場合、タスク情報をプルする。
いくつかの実例では、通信モジュール1202は、新ブロック生成サブモジュール12021を含み、新ブロック生成サブモジュール12021は、新たなブロックを作成し、作成した新たなブロックにグローバルデータを書き込み、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加する。
いくつかの実例では、新ブロック生成サブモジュール12021は、さらに、グローバルデータ及び相応の計算タスク実行ログを新たなブロックに書き込み、計算管理モジュール1201は、データ復元サブモジュール12011をさらに含み、データ復元サブモジュール12011は、ブロックチェーンネットワークにおける計算タスク実行ログに基づいて、障害計算ノード及び相応の紛失データを決定し、紛失データの再構築に参与する計算ノードを決定し、決定した計算ノードから、障害計算ノードに関するローカルデータを取得し、取得したローカルデータに基づいて、紛失データを再構築する。
いくつかの実例では、データ復元サブモジュール12011は、さらに、ローカルにおける、障害計算ノードに関するローカルデータを検索し、検索したローカルデータを、紛失データの再構築に参与する計算ノードに共有し、共有されたローカルデータが、紛失データを再構築するためのものである。
いくつかの実例では、通信モジュール1202は、さらに、ブロックチェーンネットワークにおけるブロック数を定期的に検出し、ブロック数が増加すると、新たなブロックに記録されたグローバルデータを取得し、取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新する。
図13に示すように、いくつかの実例では、グラフデータ処理装置1200は、スケジューリング管理モジュール1203をさらに含み、スケジューリング管理モジュール1203は、相応のブロックチェーンデータが形成された完了済みの計算タスクに対応する第1量子化値を取得し、相応のブロックチェーンデータが形成されていない完了済みの計算タスクに対応する第2量子化値を取得し、サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定し、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行う。
上記グラフデータ処理装置では、処理対象グラフデータをサブグラフデータに分割して分散型処理を行うことにより、グラフデータの処理効率を大幅に向上させることができる。また、各計算ノードがグラフデータの分散型計算過程において取得した、グローバル共有が必要なグローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークを介してグローバル共有する。これにより、データ共有に消費される通信量を大幅に減少させる。また、処理対象グラフデータに対する反復計算過程では、ブロックチェーンネットワークから、最新のグローバルデータと、ローカルにバッファリングされたローカルデータとを迅速かつ直接に取得することができ、データの更新を協調するための中心化されたドライバが必要ではなく、グラフデータの処理効率を大幅に向上させる。
具体的な適用シナリオでは、図14に示すように、図14は、いくつかの実例では、グラフデータ処理装置が、通信モジュールと、データバッファリングモジュールと、スケジューリング管理モジュールと、計算管理モジュールとを含んでもよいことを示す。ここで、通信モジュールは、新ブロック生成サブブロックと、取引記帳サブモジュールと、ログ管理サブモジュールと、状態報告サブモジュールと、を含む。データバッファリングモジュールは、グローバルデータバッファリングサブモジュールと、ローカルデータバッファリングサブモジュールと、タイマー更新サブモジュールと、データ読み取り/書き戻しサブモジュールと、を含む。スケジューリング管理モジュールは、マルチタスク協調サブモジュールと、自己組織化ネットワークサブモジュールと、プロセス制御サブモジュールと、鍵管理サブモジュールと、を含む。計算管理モジュールは、計算実行サブモジュールと、内部変数記憶サブモジュールと、データ復元サブモジュールと、結果チェックサブモジュールと、を含む。
いくつかの実例では、図14に示す実例の簡略化された実現として、データバッファリングモジュールにおけるグローバルデータバッファリングサブモジュール及びローカルデータバッファリングサブモジュールを計算管理モジュールに入れ、内部変数メモリが直接にデータウェアハウスにアクセスすることを許可し、データバッファリングモジュールを省略し、データバッファリングの作業の全てを計算管理モジュールによって実行し、実行するアルゴリズムによってデータバッファリングの駆動ポリシーを定義してもよい。これにより、よりコンパクトな構成が実現される。
以下、図14を例にして、各モジュール間は如何に互いに協働して動作するかを詳しく説明する。
ここで、通信モジュールは、ブロックチェーンネットワークの正常稼動の維持も、他のモジュールとブロックチェーンネットワークとの有効な情報伝達の維持も含まれる、ブロックチェーンネットワークと通信・やり取りする機能の全てを担当する。ここで、ブロックチェーンネットワークとは、主に、グローバルデータ、計算タスクのアルゴリズム設定、及び計算ノード状態データなどの情報のやり取りを行う。通信モジュールにおける新ブロック生成サブモジュールは、現在のグローバルデータ、計算ノード状態データ(第2量子化値、第3量子化値、及びグラフノードインデックスなどのデータを含む)、及び、前のブロックが生成されてから発生したグラフノード交換情報を新たなノードに書き込む。取引記帳サブモジュールは、グラフノードの交換状況、即ち、グラフノードの売買及び第1量子化値の管理を処理する。ログ管理サブモジュールは、現在計算ノードで発生した計算タスク実行ログを整理し、ブロックチェーンから、必要に応じて、所要の計算タスク実行ログをプル・整理する。これは、障害計算ノードのデータ復元過程において非常に重要である。状態報告サブモジュールは、計算管理モジュールから、現在実行中の計算タスクに消費されたCPUメモリリソース、アルゴリズムの名称及びタイプ、エラー回数などを含む計算ノードの状態情報を取得する。
いくつかの実例では、新たなブロックの生成及び記帳の信頼性を保証するために、通信モジュールは、チェックモジュールをさらに含んでもよい。
データバッファリングモジュールは、グローバルデータバッファリングサブモジュールと、ローカルデータバッファリングサブモジュールと、タイマー更新サブモジュールと、データ読み取り・書き戻しサブモジュールとの4つのサブモジュールを含み、データ更新ポリシーは、通常のFIFO及びLFUのポリシーと類似し、タイマーの駆動により、最も古いバッファリングの代わりをする。
スケジューリング管理モジュールは、分散型グラフ計算システム全体の核心であり、システム全体が順序よく稼動するように駆動する。ここで、自己組織化ネットワークサブモジュールは、グラフノードと交換する第1量子化値の決定、取引策略決定、資産の計算及び管理などを含む自己組織化ポリシーの実行を担当する。マルチタスク協調サブモジュールは、複数の異なるタスクを実行するためのデータの計算を制御する。ここで、通常のキュースケジューリング及び優先度スケジューリングの方法を用いて、制御・協調を行ってもよい。鍵管理サブモジュールは、データウェアハウスから、計算ノードの認証情報及び相応の鍵を取得する。プロセス制御サブモジュールは、計算過程の完全有効性、特に、計算過程をロールバックする必要がある場合の関連コンテキスト処理を監視し制御する。
計算管理モジュールにおける計算実行サブモジュールは、スケジューリング管理モジュールの指示に従って、データウェアハウスから、必要なタスク実行可能ファイルを取得して、関連計算を完了する。対応する変数は、内部変数記憶サブモジュールに記憶され、異なる計算タスク及びグラフノードによって、データを分けて記憶する必要がある。データ復元サブモジュールは、ブロックチェーンネットワークに障害計算ノードがあった場合、該障害計算ノードに格納されたデータを効率的に復元することを試みる。
中心化されたグラフデータ処理装置に比べると、本願の実例におけるグラフデータ処理装置は、下記のメリットを持つ。
信頼性が高い。全ての計算ノードが自発的に計算できるので、単一の計算ノードのドロップは、全体の計算に影響を与えず、タスクの失敗を招くこともない。これにより、システム全体は、高い信頼性を持つ。
柔軟性が高い。前の点で説明したように、新たに加入したノードも同様に、この計算ネットワークに素早く適応的に加入できる。これにより、計算ネットワークの規模は、柔軟に拡大できる。
異種の計算に適応可能である。負荷分散の自主性により、異種の機器がこのネットワークに加入しても、同様に、類似する方式で協調でき、計算能力及び方式の違いによってボトルネックが生じることはない。
図15は、いくつかの実例におけるコンピュータ機器の内部構成図である。このコンピュータ機器は、具体的に、図1における計算ノード120に分散されたコンピュータ機器であってもよい。図15に示すように、該コンピュータ機器は、システムバスを介して接続されるプロセッサと、メモリと、ネットワークインタフェースと、を備える。ここで、メモリは、不揮発性記憶媒体及び内部メモリを含む。該コンピュータ機器の不揮発性記憶媒体には、オペレーティングシステムが記憶され、コンピュータプログラムが記憶されてもよい。該コンピュータプログラムは、プロセッサによって実行されると、プロセッサにグラフデータ処理方法を実現させることが可能である。該内部メモリには、コンピュータプログラムが記憶されてもよい。該コンピュータプログラムは、プロセッサによって実行されると、プロセッサにグラフデータ処理方法を実行させることが可能である。
当業者であれば理解できるように、図15に示された構成は、本願発明に係る一部の構成のブロック図にすぎず、本願発明が適用されるコンピュータ機器を限定するものではない。具体的なコンピュータ機器は、図示よりも多く又は少ない構成要素を含んでもよく、又はいくらかの構成要素を組み合わせたものであってもよく、又は構成要素の異なる配置を有してもよい。
いくつかの実例では、本願で提供されたグラフデータ処理装置は、コンピュータプログラムの形で実現されてもよい。コンピュータプログラムは、図15に示すようなコンピュータ機器上で実行されることができる。コンピュータ機器のメモリには、該グラフデータ処理装置を構成する各プログラムモジュール、例えば、図12に示す計算管理モジュール及び通信モジュールが記憶されてもよい。各プログラムモジュールで構成されるコンピュータプログラムは、プロセッサに、本明細書で説明された本願の各実例のグラフデータ処理方法のステップを実行させる。
例えば、図15に示すコンピュータ機器は、図12に示すようなグラフデータ処理装置における計算管理モジュールによって、ステップS202、S204、及びS210を実行してもよい。コンピュータ機器は、通信モジュールによって、ステップS206及びS208を実行してもよい。
図16に示すように、いくつかの実例では、タスク管理モジュール1601と、通信モジュール1602とを含むグラフデータの計算タスクの配布装置1600が提供されている。
タスク管理モジュール1601は、処理対象グラフデータに対応するタスク情報を取得し、
通信モジュール1602は、新たなブロックを作成し、
通信モジュール1602は、さらに、タスク情報を新たなブロックに書き込み、
通信モジュール1602は、さらに、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加し、
通信モジュール1602は、さらに、ブロックチェーンネットワークでタスク情報をブロードキャストし、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである。
いくつかの実例では、タスク管理モジュール1601は、さらに、タスク追加指示を受け付け、タスク追加指示に応じて、タスク編集インタフェースを表示させ、タスク編集インタフェースに入力された、処理対象グラフデータに対応するタスク情報を取得する。
上記のグラフデータの計算タスクの配布装置では、取得したタスク情報をブロックチェーンネットワークにおける新たなブロックに書き込むことにより、ブロックチェーンネットワークで該タスク情報をブロードキャストして配布する。このように、ブロックチェーンネットワークにおける他のノードは、相応のタスク情報をプルし、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得することができる。このように、ネットワーク通信量の消費が非常に低い条件下で、ブロックチェーンネットワークにある計算ノードは、配布されたタスク情報を迅速かつ効果的に受信することができる。これにより、グラフデータの計算タスクの配布効率を大幅に向上させ、さらにグラフデータ計算の処理効率を向上させる。
図17は、いくつかの実例におけるコンピュータ機器の内部構成図である。このコンピュータ機器は、具体的に、図1における制御ノード110であってもよい。図17に示すように、このコンピュータ機器は、システムバスを介して接続されたプロセッサ、メモリ、ネットワークインタフェース、入力装置、及びディスプレイスクリーンを含む。ここで、メモリは、不揮発性記憶媒体及び内部メモリを含む。該コンピュータ機器の不揮発性記憶媒体には、オペレーティングシステムが記憶され、コンピュータプログラムが記憶されてもよい。該コンピュータプログラムは、プロセッサによって実行されると、プロセッサにグラフデータの計算タスクの配布方法を実現させることが可能である。該内部メモリには、コンピュータプログラムが記憶されてもよい。該コンピュータプログラムは、プロセッサによって実行されると、プロセッサにグラフデータの計算タスクの配布方法を実行させることが可能である。コンピュータ機器のディスプレイスクリーンは、液晶ディスプレイスクリーンやE−inkディスプレイスクリーンなどであってもよい。コンピュータ機器の入力装置は、ディスプレイスクリーンに重ね合わせたタッチ層であってもよく、コンピュータ機器の筐体に設けられたボタン、トラックボール、又はタッチパッドであってもよく、外付けのキーボード、タッチパッド、又はマウスなどであってもよい。
当業者であれば理解できるように、図17に示された構成は、本願発明に係る一部の構成のブロック図にすぎず、本願発明が適用されるコンピュータ機器を限定するものではない。具体的なコンピュータ機器は、図示よりも多く又は少ない構成要素を含んでもよく、又はいくらかの構成要素を組み合わせたものであってもよく、又は構成要素の異なる配置を有してもよい。
いくつかの実例では、本願で提供されたグラフデータの計算タスクの配布装置は、コンピュータプログラムの形で実現されてもよい。コンピュータプログラムは、図17に示すようなコンピュータ機器上で実行されることができる。コンピュータ機器のメモリには、該グラフデータの計算タスクの配布装置を構成する各プログラムモジュール、例えば、図16に示すタスク管理モジュール及び通信モジュールが記憶されてもよい。各プログラムモジュールで構成されるコンピュータプログラムは、プロセッサに、本明細書で説明された本願の各実例のグラフデータの計算タスクの配布方法のステップを実行させる。
例えば、図17に示すコンピュータ機器は、図16に示すようなグラフデータの計算タスクの配布装置におけるタスク管理モジュールによって、ステップS702を実行してもよい。コンピュータ機器は、通信モジュールによって、ステップS704、S706、及びS708を実行してもよい。
いくつかの実例では、本願発明は、計算ノードと、制御ノードとを備える分散型グラフ計算システムを提供しており、制御ノードは、処理対象グラフデータに対応するタスク情報を取得し、新たなブロックを作成し、タスク情報を新たなブロックに書き込み、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加し、ブロックチェーンネットワークでタスク情報をブロードキャストし、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである。計算ノードは、処理対象グラフデータから分割されたサブグラフデータを取得し、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得し、グローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものであり、ブロックチェーンネットワークから最新のグローバルデータを取得し、取得した最新のグローバルデータと、ローカルデータとに基づいて、反復停止条件が満たされるまで、サブグラフデータに対する計算タスクを反復実行して、計算結果を取得する。
上記の分散型グラフ計算システムでは、制御ノードは、取得したタスク情報をブロックチェーンネットワークにおける新たなブロックに書き込むことにより、ブロックチェーンネットワークで該タスク情報をブロードキャストして配布する。このように、ネットワーク通信量の消費が非常に低い条件下で、ブロックチェーンネットワークにある計算ノードは、配布されたタスク情報を迅速かつ効果的に受信することができる。これにより、グラフデータの計算タスクの配布効率を大幅に向上させる。計算ノードは、タスク情報を取得した後、処理対象グラフデータをサブグラフデータに分割して分散型処理を行うことができ、グラフデータの処理効率を大幅に向上させることができる。また、各計算ノードがグラフデータの分散型計算過程において取得した、グローバル共有が必要なグローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークを介してグローバル共有する。これにより、データ共有に消費される通信量を大幅に減少させる。また、処理対象グラフデータに対する反復計算過程では、ブロックチェーンネットワークから、最新のグローバルデータと、ローカルにバッファリングされたローカルデータとを迅速かつ直接に取得することができ、データの更新を協調するための中心化されたドライバが必要ではなく、グラフデータの処理効率を大幅に向上させる。
いくつかの実例では、メモリとプロセッサとを備えるコンピュータ機器が提供されており、メモリには、コンピュータプログラムが記憶され、コンピュータプログラムは、プロセッサによって実行されると、プロセッサに、処理対象グラフデータから分割されたサブグラフデータを取得するステップと、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップと、グローバルデータをブロックチェーンネットワークに書き込むステップであって、ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものである、ステップと、ブロックチェーンネットワークから最新のグローバルデータを取得するステップと、取得した最新のグローバルデータと、ローカルデータとに基づいて、反復停止条件が満たされるまで、サブグラフデータに対する計算タスクを反復実行して、計算結果を取得するステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、処理対象グラフデータから分割されたサブグラフデータを取得するステップを実行させる際に、具体的に、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップと、タスク情報に基づいて、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取るステップと、を実行させる。コンピュータプログラムは、プロセッサに、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップを実行させる際に、具体的に、タスク実行可能ファイルを実行することにより、サブグラフデータに対する計算タスクを実行して、相応のグローバルデータ及びローカルデータを取得するステップを実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップを実行させる際に、具体的に、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出するステップと、タスク情報を検出した場合、現在計算ノードの負荷状態を決定するステップと、負荷状態が所定の負荷条件を満たす場合、タスク情報をプルするステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、グローバルデータをブロックチェーンネットワークに書き込むステップを実行させる際に、具体的に、新たなブロックを作成するステップと、作成した新たなブロックにグローバルデータを書き込むステップと、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、作成した新たなブロックにグローバルデータを書き込むステップを実行させる際に、具体的に、グローバルデータ及び相応の計算タスク実行ログを新たなブロックに書き込むステップを実行させる。コンピュータプログラムは、プロセッサに、ブロックチェーンネットワークにおける計算タスク実行ログに基づいて、障害計算ノード及び相応の紛失データを決定するステップと、紛失データの再構築に参与する計算ノードを決定するステップと、決定した計算ノードから、障害計算ノードに関するローカルデータを取得するステップと、取得したローカルデータに基づいて、紛失データを再構築するステップと、をさらに実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、ローカルにおける、障害計算ノードに関するローカルデータを検索するステップと、検索したローカルデータを、紛失データの再構築に参与する計算ノードに共有するステップであって、共有されたローカルデータが、紛失データを再構築するためのものである、ステップと、をさらに実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、ブロックチェーンネットワークから最新のグローバルデータを取得するステップを実行させる際に、具体的に、ブロックチェーンネットワークにおけるブロック数を定期的に検出するステップと、ブロック数が増加すると、新たなブロックに記録されたグローバルデータを取得するステップと、取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新するステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、相応のブロックチェーンデータが形成された完了済みの計算タスクに対応する第1量子化値を取得するステップと、相応のブロックチェーンデータが形成されていない完了済みの計算タスクに対応する第2量子化値を取得するステップと、サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定するステップと、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行うステップと、をさらに実行させる。
上記コンピュータ機器では、処理対象グラフデータをサブグラフデータに分割して分散型処理を行うことにより、グラフデータの処理効率を大幅に向上させることができる。また、各計算ノードがグラフデータの分散型計算過程において取得した、グローバル共有が必要なグローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークを介してグローバル共有する。これにより、データ共有に消費される通信量を大幅に減少させる。また、処理対象グラフデータに対する反復計算過程では、ブロックチェーンネットワークから、最新のグローバルデータと、ローカルにバッファリングされたローカルデータとを迅速かつ直接に取得することができ、データの更新を協調するための中心化されたドライバが必要ではなく、グラフデータの処理効率を大幅に向上させる。
いくつかの実例では、メモリとプロセッサとを備えるコンピュータ機器が提供されており、メモリには、コンピュータプログラムが記憶され、コンピュータプログラムは、プロセッサによって実行されると、プロセッサに、処理対象グラフデータに対応するタスク情報を取得するステップと、新たなブロックを作成するステップと、タスク情報を新たなブロックに書き込むステップと、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップと、ブロックチェーンネットワークでタスク情報をブロードキャストするステップであって、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである、ステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、処理対象グラフデータに対応するタスク情報を取得するステップを実行させる際に、具体的に、タスク追加指示を受け付けるステップと、タスク追加指示に応じて、タスク編集インタフェースを表示させるステップと、タスク編集インタフェースに入力された、処理対象グラフデータに対応するタスク情報を取得するステップと、を実行させる。
上記のコンピュータ機器では、取得したタスク情報をブロックチェーンネットワークにおける新たなブロックに書き込むことにより、ブロックチェーンネットワークで該タスク情報をブロードキャストして配布する。このように、ブロックチェーンネットワークにおける他のノードは、相応のタスク情報をプルし、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得することができる。このように、ネットワーク通信量の消費が非常に低い条件下で、ブロックチェーンネットワークにある計算ノードは、配布されたタスク情報を迅速かつ効果的に受信することができる。これにより、グラフデータの計算タスクの配布効率を大幅に向上させ、さらにグラフデータ計算の処理効率を向上させる。
コンピュータプログラムを記憶したコンピュータ可読記憶媒体であって、該コンピュータプログラムは、プロセッサによって実行されると、処理対象グラフデータから分割されたサブグラフデータを取得するステップと、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップと、グローバルデータをブロックチェーンネットワークに書き込むステップであって、ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものである、ステップと、ブロックチェーンネットワークから最新のグローバルデータを取得するステップと、取得した最新のグローバルデータと、ローカルデータとに基づいて、反復停止条件が満たされるまで、サブグラフデータに対する計算タスクを反復実行して、計算結果を取得するステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、処理対象グラフデータから分割されたサブグラフデータを取得するステップを実行させる際に、具体的に、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップと、タスク情報に基づいて、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取るステップと、を実行させる。コンピュータプログラムは、プロセッサに、サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップを実行させる際に、具体的に、タスク実行可能ファイルを実行することにより、サブグラフデータに対する計算タスクを実行して、相応のグローバルデータ及びローカルデータを取得するステップを実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップを実行させる際に、具体的に、ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出するステップと、タスク情報を検出した場合、現在計算ノードの負荷状態を決定するステップと、負荷状態が所定の負荷条件を満たす場合、タスク情報をプルするステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、グローバルデータをブロックチェーンネットワークに書き込むステップを実行させる際に、具体的に、新たなブロックを作成するステップと、作成した新たなブロックにグローバルデータを書き込むステップと、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、作成した新たなブロックにグローバルデータを書き込むステップを実行させる際に、具体的に、グローバルデータ及び相応の計算タスク実行ログを新たなブロックに書き込むステップを実行させる。コンピュータプログラムは、プロセッサに、ブロックチェーンネットワークにおける計算タスク実行ログに基づいて、障害計算ノード及び相応の紛失データを決定するステップと、紛失データの再構築に参与する計算ノードを決定するステップと、決定した計算ノードから、障害計算ノードに関するローカルデータを取得するステップと、取得したローカルデータに基づいて、紛失データを再構築するステップと、をさらに実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、ローカルにおける、障害計算ノードに関するローカルデータを検索するステップと、検索したローカルデータを、紛失データの再構築に参与する計算ノードに共有するステップであって、共有されたローカルデータが、紛失データを再構築するためのものである、ステップと、をさらに実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、ブロックチェーンネットワークから最新のグローバルデータを取得するステップを実行させる際に、具体的に、ブロックチェーンネットワークにおけるブロック数を定期的に検出するステップと、ブロック数が増加すると、新たなブロックに記録されたグローバルデータを取得するステップと、取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新するステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、相応のブロックチェーンデータが形成された完了済みの計算タスクに対応する第1量子化値を取得するステップと、相応のブロックチェーンデータが形成されていない完了済みの計算タスクに対応する第2量子化値を取得するステップと、サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定するステップと、第2量子化値と第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行うステップと、をさらに実行させる。
上記のコンピュータ可読記憶媒体では、処理対象グラフデータをサブグラフデータに分割して分散型処理を行うことにより、グラフデータの処理効率を大幅に向上させることができる。また、各計算ノードがグラフデータの分散型計算過程において取得した、グローバル共有が必要なグローバルデータをブロックチェーンネットワークに書き込み、ブロックチェーンネットワークを介してグローバル共有する。これにより、データ共有に消費される通信量を大幅に減少させる。また、処理対象グラフデータに対する反復計算過程では、ブロックチェーンネットワークから、最新のグローバルデータと、ローカルにバッファリングされたローカルデータとを迅速かつ直接に取得することができ、データの更新を協調するための中心化されたドライバが必要ではなく、グラフデータの処理効率を大幅に向上させる。
コンピュータプログラムを記憶したコンピュータ可読記憶媒体であって、該コンピュータプログラムは、プロセッサによって実行されると、処理対象グラフデータに対応するタスク情報を取得するステップと、新たなブロックを作成するステップと、タスク情報を新たなブロックに書き込むステップと、新たなブロックがブロックチェーンネットワークの検証に合格した場合、新たなブロックをブロックチェーンネットワークに追加するステップと、ブロックチェーンネットワークでタスク情報をブロードキャストするステップであって、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである、ステップと、を実行させる。
いくつかの実例では、コンピュータプログラムは、プロセッサに、処理対象グラフデータに対応するタスク情報を取得するステップを実行させる際に、具体的に、タスク追加指示を受け付けるステップと、タスク追加指示に応じて、タスク編集インタフェースを表示させるステップと、タスク編集インタフェースに入力された、処理対象グラフデータに対応するタスク情報を取得するステップと、を実行させる。
上記のコンピュータ可読記憶媒体では、取得したタスク情報をブロックチェーンネットワークにおける新たなブロックに書き込むことにより、ブロックチェーンネットワークで該タスク情報をブロードキャストして配布する。このように、ブロックチェーンネットワークにおける他のノードは、相応のタスク情報をプルし、処理対象グラフデータから分割されたサブグラフデータを取得し、ブロックチェーンネットワークに基づいてサブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得することができる。このように、ネットワーク通信量の消費が非常に低い条件下で、ブロックチェーンネットワークにある計算ノードは、配布されたタスク情報を迅速かつ効果的に受信することができる。これにより、グラフデータの計算タスクの配布効率を大幅に向上させ、さらにグラフデータ計算の処理効率を向上させる。
当業者であれば理解できるように、上記の実例に係る方法の手順の全部又は一部は、コンピュータプログラムを介して関連ハードウェアに指示することにより実行されてもよい。前記プログラムは、不揮発性コンピュータ可読記憶媒体に記憶されてもよい。このプログラムが実行されると、上記のような各方法の実例の手順が実行される。ここで、本願で提供された各実例に使用された、メモリ、ストレージ、データベース、又は他の媒体へのいかなる参照でも、不揮発性及び/又は揮発性メモリを含んでもよい。不揮発性メモリは、読み出し専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、又はフラッシュメモリを含んでもよい。揮発性メモリは、ランダムアクセスメモリ(RAM)、又は外部キャッシュを含んでもよい。限定ではなく説明として、RAMは、例えば、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)、エンハンスドSDRAM(ESDRAM)、シンクリンク(Synchlink)DRAM(SLDRAM)、ダイレクト・ラムバス(Rambus)RAM(RDRAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM)、及びラムバス・ダイナミックRAM(RDRAM)などの多くの形態で利用可能である。
上述した実例の各構成要件は、任意に組み合わせされてもよい。説明を簡潔にするために、上記実例の各構成要件の可能な組み合わせがすべて説明されているわけではない。しかしながら、これらの構成要件の組み合わせは、矛盾がない限り、本明細書に記載された範囲にあると考えられるべきである。
上述した実例は、本願のいくつかの実施形態を示したものにすぎず、説明が具体的で詳しいが、これによって本願の特許範囲への制限と理解されるわけにはいかない。指摘すべきものとして、当業者にとっては、本願の構想を逸脱しない前提で、若干の変形及び改良が可能である。これらの変形及び改良は、いずれも本願の保護範囲に属する。それゆえ、本願の特許保護範囲は、添付の特許請求の範囲に従うべきである。
110 制御ノード
120 計算ノード
130 データウェアハウス
1200 グラフデータ処理装置
1201 計算管理モジュール
12011 データ復元サブモジュール
1202 通信モジュール
12021 新ブロック生成サブモジュール
1203 スケジューリング管理モジュール
1600 グラフデータの計算タスクの配布装置
1601 タスク管理モジュール
1602 通信モジュール

Claims (15)

  1. 分散型計算ノードクラスタ内の計算ノードに分散されたコンピュータ機器が実行するグラフデータ処理方法であって、
    処理対象グラフデータから分割されたサブグラフデータを取得するステップと、
    前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得するステップと、
    前記グローバルデータをブロックチェーンネットワークに書き込むステップであって、前記ブロックチェーンネットワークにおけるグローバルデータが、前記分散型計算ノードクラスタによって更新されるものである、ステップと、
    前記ブロックチェーンネットワークから最新のグローバルデータを取得するステップと、
    取得した最新のグローバルデータと、前記ローカルデータとに基づいて、反復停止条件が満たされるまで、前記サブグラフデータに対する計算タスクを反復実行して、計算結果を取得するステップと、
    を含む方法。
  2. 処理対象グラフデータから分割されたサブグラフデータを取得する前記ステップは、
    ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得するステップと、
    前記タスク情報に基づいて、相応のタスク実行可能ファイルと、処理対象グラフデータから分割されたサブグラフデータとを読み取るステップと、を含み、
    前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得する前記ステップは、
    前記タスク実行可能ファイルを実行することにより、前記サブグラフデータに対する計算タスクを実行して、相応のグローバルデータ及びローカルデータを取得するステップを含む、
    請求項1に記載の方法。
  3. ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を取得する前記ステップは、
    ブロックチェーンネットワークでブロードキャストされた、処理対象グラフデータに対応するタスク情報を定期的に検出するステップと、
    前記タスク情報を検出した場合、現在計算ノードの負荷状態を決定するステップと、
    前記負荷状態が所定の負荷条件を満たす場合、前記タスク情報をプルするステップと、
    を含む請求項2に記載の方法。
  4. 前記グローバルデータをブロックチェーンネットワークに書き込む前記ステップは、
    新たなブロックを作成するステップと、
    作成した新たなブロックに前記グローバルデータを書き込むステップと、
    前記新たなブロックがブロックチェーンネットワークの検証に合格した場合、前記新たなブロックを前記ブロックチェーンネットワークに追加するステップと、
    を含む請求項1に記載の方法。
  5. 作成した新たなブロックに前記グローバルデータを書き込む前記ステップは、前記グローバルデータ及び相応の計算タスク実行ログを新たなブロックに書き込むステップを含み、
    前記方法は、
    前記ブロックチェーンネットワークにおける計算タスク実行ログに基づいて、障害計算ノード及び相応の紛失データを決定するステップと、
    前記紛失データの再構築に参与する計算ノードを決定するステップと、
    決定した計算ノードから、前記障害計算ノードに関するローカルデータを取得するステップと、
    取得したローカルデータに基づいて、前記紛失データを再構築するステップと、をさらに含む、
    請求項4に記載の方法。
  6. ローカルで前記障害計算ノードに関するローカルデータを検索するステップと、
    検索したローカルデータを、前記紛失データの再構築に参与する計算ノードに共有するステップであって、共有されたローカルデータが、前記紛失データを再構築するためのものである、ステップと、
    をさらに含む請求項5に記載の方法。
  7. 前記ブロックチェーンネットワークから最新のグローバルデータを取得する前記ステップは、
    前記ブロックチェーンネットワークにおけるブロック数を定期的に検出するステップと、
    前記ブロック数が増加すると、新たなブロックに記録されたグローバルデータを取得するステップと、
    取得したグローバルデータに基づいて、ローカルにおけるグローバルデータを更新するステップと、
    を含む請求項1に記載の方法。
  8. 相応のブロックチェーンデータが形成された完了済みの計算タスクに対応する第1量子化値を取得するステップと、
    相応のブロックチェーンデータが形成されていない完了済みの計算タスクに対応する第2量子化値を取得するステップと、
    前記サブグラフデータにおける未完了の計算タスクに対応する第3量子化値を決定するステップと、
    前記第2量子化値と前記第3量子化値とが均衡条件に合わない場合、計算ノード間でグラフノードと第1量子化値との交換を行うステップと、
    をさらに含む請求項1〜7のいずれか1項に記載の方法。
  9. コンピュータ機器が実行する、グラフデータの計算タスクの配布方法であって、
    処理対象グラフデータに対応するタスク情報を取得するステップと、
    新たなブロックを作成するステップと、
    前記タスク情報を前記新たなブロックに書き込むステップと、
    前記新たなブロックがブロックチェーンネットワークの検証に合格した場合、前記新たなブロックを前記ブロックチェーンネットワークに追加するステップと、
    前記ブロックチェーンネットワークで前記タスク情報をブロードキャストするステップであって、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、前記ブロックチェーンネットワークに基づいて前記サブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである、ステップと、
    を含む方法。
  10. 処理対象グラフデータに対応するタスク情報を取得する前記ステップは、
    タスク追加指示を受け付けるステップと、
    前記タスク追加指示に応じて、タスク編集インタフェースを表示させるステップと、
    前記タスク編集インタフェースに入力された、処理対象グラフデータに対応するタスク情報を取得するステップと、
    を含む請求項9に記載の方法。
  11. グラフデータ処理装置であって、
    計算管理モジュールと、
    通信モジュールと、を含み、
    前記計算管理モジュールは、処理対象グラフデータから分割されたサブグラフデータを取得し、
    前記計算管理モジュールは、さらに、前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得し、
    前記通信モジュールは、前記グローバルデータをブロックチェーンネットワークに書き込み、前記ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものであり、
    前記通信モジュールは、さらに、前記ブロックチェーンネットワークから最新のグローバルデータを取得し、
    前記計算管理モジュールは、さらに、取得された最新のグローバルデータと、前記ローカルデータとに基づいて、反復停止条件が満たされるまで、前記サブグラフデータに対する計算タスクを反復実行して、計算結果を取得する、
    グラフデータ処理装置。
  12. グラフデータの計算タスクの配布装置であって、
    処理対象グラフデータに対応するタスク情報を取得するタスク管理モジュールと、
    新たなブロックを作成する通信モジュールと、を含み、
    前記通信モジュールは、さらに、前記タスク情報を前記新たなブロックに書き込み、
    前記通信モジュールは、さらに、前記新たなブロックがブロックチェーンネットワークの検証に合格した場合、前記新たなブロックを前記ブロックチェーンネットワークに追加し、
    前記通信モジュールは、さらに、前記ブロックチェーンネットワークで前記タスク情報をブロードキャストし、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、前記ブロックチェーンネットワークに基づいて前記サブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものである、
    グラフデータの計算タスクの配布装置。
  13. 分散型グラフ計算システムであって、計算ノードと制御ノードとを備え、
    前記制御ノードは、処理対象グラフデータに対応するタスク情報を取得し、新たなブロックを作成し、前記タスク情報を前記新たなブロックに書き込み、前記新たなブロックがブロックチェーンネットワークの検証に合格した場合、前記新たなブロックを前記ブロックチェーンネットワークに追加し、前記ブロックチェーンネットワークで前記タスク情報をブロードキャストし、ブロードキャストされたタスク情報が、計算ノードに対し、処理対象グラフデータから分割されたサブグラフデータを取得し、前記ブロックチェーンネットワークに基づいて前記サブグラフデータに対する計算タスクを反復実行することにより、計算結果を取得するよう指示するためのものであり、
    前記計算ノードは、処理対象グラフデータから分割されたサブグラフデータを取得し、前記サブグラフデータに対する計算タスクを実行することにより、相応のグローバルデータ及びローカルデータを取得し、前記グローバルデータをブロックチェーンネットワークに書き込み、前記ブロックチェーンネットワークから最新のグローバルデータを取得し、取得した最新のグローバルデータと、前記ローカルデータとに基づいて、反復停止条件が満たされるまで、前記サブグラフデータに対する計算タスクを反復実行して、計算結果を取得し、前記ブロックチェーンネットワークにおけるグローバルデータが、分散型計算ノードクラスタによって更新されるものである、
    分散型グラフ計算システム。
  14. コンピュータプログラムを記憶したコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、プロセッサによって実行されると、前記プロセッサに、請求項1〜8のいずれか一項に記載の方法のステップ、又は、請求項9〜10のいずれか一項に記載の方法のステップを実行させる記憶媒体。
  15. メモリとプロセッサとを備えるコンピュータ機器であって、前記メモリには、コンピュータプログラムが記憶され、前記コンピュータプログラムは、前記プロセッサによって実行されると、前記プロセッサに、請求項1〜8のいずれか一項に記載の方法のステップ、又は、請求項9〜10のいずれか一項に記載の方法のステップを実行させるコンピュータ機器。
JP2020563591A 2018-05-16 2019-04-11 グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器 Active JP7158801B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810467817.8 2018-05-16
CN201810467817.8A CN108683738B (zh) 2018-05-16 2018-05-16 图数据处理方法和图数据的计算任务发布方法
PCT/CN2019/082192 WO2019218814A1 (zh) 2018-05-16 2019-04-11 图数据处理方法、图数据的计算任务发布方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
JP2021523474A true JP2021523474A (ja) 2021-09-02
JP7158801B2 JP7158801B2 (ja) 2022-10-24

Family

ID=63805486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020563591A Active JP7158801B2 (ja) 2018-05-16 2019-04-11 グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器

Country Status (7)

Country Link
US (1) US11847488B2 (ja)
EP (1) EP3771179B1 (ja)
JP (1) JP7158801B2 (ja)
KR (1) KR102485652B1 (ja)
CN (2) CN108683738B (ja)
SG (1) SG11202010651RA (ja)
WO (1) WO2019218814A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7490394B2 (ja) 2020-03-06 2024-05-27 株式会社日立製作所 情報共有支援方法、及び情報共有支援システム

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318355B2 (en) 2017-01-24 2019-06-11 Oracle International Corporation Distributed graph processing system featuring interactive remote control mechanism including task cancellation
CN108683738B (zh) * 2018-05-16 2020-08-14 腾讯科技(深圳)有限公司 图数据处理方法和图数据的计算任务发布方法
CN108681482B (zh) * 2018-05-16 2020-12-01 腾讯科技(深圳)有限公司 基于图数据的任务调度方法和装置
CN109542602B (zh) * 2018-11-20 2021-05-11 苏州朗润创新知识产权运营有限公司 一种基于区块链的分布式任务处理方法、装置及系统
WO2020107351A1 (zh) * 2018-11-29 2020-06-04 袁振南 模型训练方法及其节点、网络及存储装置
CN109710406B (zh) * 2018-12-21 2023-01-17 腾讯科技(深圳)有限公司 数据分配及其模型训练方法、装置、及计算集群
CN109801070B (zh) * 2019-01-12 2020-11-06 杭州复杂美科技有限公司 交易排队方法、设备和存储介质
CN109947565B (zh) * 2019-03-08 2021-10-15 北京百度网讯科技有限公司 用于分配计算任务的方法和装置
CN110399208B (zh) * 2019-07-15 2023-10-31 创新先进技术有限公司 分布式任务调度拓扑图的展示方法、装置及设备
CN110807125B (zh) * 2019-08-03 2020-12-22 北京达佳互联信息技术有限公司 推荐系统、数据访问方法及装置、服务器、存储介质
CN112487080A (zh) * 2019-08-20 2021-03-12 厦门本能管家科技有限公司 一种用于区块链的差值回退方法及系统
CN110750385B (zh) * 2019-10-25 2022-09-09 东北大学 一种基于受限恢复的图迭代器及方法
CN112988339A (zh) * 2019-12-16 2021-06-18 深圳云天励飞技术有限公司 一种数据管理方法及装置
US11250059B2 (en) 2020-01-09 2022-02-15 Oracle International Corporation Optimizing graph queries by performing early pruning
US11675785B2 (en) 2020-01-31 2023-06-13 Oracle International Corporation Dynamic asynchronous traversals for distributed graph queries
CN111353709B (zh) * 2020-02-29 2023-05-16 国网上海市电力公司 一种基于区块链的电力信息产品的生产方法及系统
CN111369144B (zh) * 2020-03-04 2022-02-18 浙江大学 一种基于雾计算与区块链的智慧能源调度系统及方法
CN111581443B (zh) * 2020-04-16 2023-05-30 南方科技大学 分布式图计算方法、终端、系统及存储介质
CN111598036B (zh) * 2020-05-22 2021-01-01 广州地理研究所 分布式架构的城市群地理环境知识库构建方法及系统
US11461130B2 (en) 2020-05-26 2022-10-04 Oracle International Corporation Methodology for fast and seamless task cancelation and error handling in distributed processing of large graph data
US11456946B2 (en) 2020-06-11 2022-09-27 Oracle International Corporation Regular path queries (RPQS) for distributed graphs
US20220019742A1 (en) * 2020-07-20 2022-01-20 International Business Machines Corporation Situational awareness by fusing multi-modal data with semantic model
CN112118290B (zh) * 2020-08-12 2022-03-18 北京大学 一种基于程序分析的数据资源的管控方法
CN112445940B (zh) * 2020-10-16 2022-05-24 苏州浪潮智能科技有限公司 图划分方法、装置及计算机可读存储介质
US11755543B2 (en) * 2020-12-29 2023-09-12 International Business Machines Corporation Optimization of workflows with dynamic file caching
US20220210140A1 (en) * 2020-12-30 2022-06-30 Atb Financial Systems and methods for federated learning on blockchain
CN113434702A (zh) * 2021-07-27 2021-09-24 支付宝(杭州)信息技术有限公司 一种用于图计算的自适应控制方法和系统
CN113704067B (zh) * 2021-09-09 2023-10-24 合肥新青罗数字技术有限公司 无形资产管理系统监控方法
CN114049213A (zh) * 2021-11-15 2022-02-15 深圳前海鸿泰源兴科技发展有限公司 一种信息化金融数据分析系统与分析方法
CN114553917B (zh) * 2021-12-30 2024-01-26 北京天成通链科技有限公司 一种基于区块链的网络智能治理方法
CN114567634B (zh) * 2022-03-07 2023-02-07 华中科技大学 面向后e级图计算的方法、系统、存储介质及电子设备
CN115378803B (zh) * 2022-04-13 2023-12-12 网易(杭州)网络有限公司 日志管理方法、装置、区块链节点和存储介质
CN114925123A (zh) * 2022-04-24 2022-08-19 杭州悦数科技有限公司 一种分布式的图数据库与图计算系统间的数据传输方法
WO2023206142A1 (zh) * 2022-04-27 2023-11-02 西门子股份公司 数据同步方法、装置、计算机设备和存储介质
CN115017234A (zh) * 2022-06-29 2022-09-06 贵州财经大学 一种区块链信息管理系统、区块链信息存储及查询方法
CN115809686B (zh) * 2023-02-03 2023-06-16 中国科学技术大学 提升循环图结构数据处理系统处理效率方法、设备及介质
CN116681104B (zh) * 2023-05-11 2024-03-12 中国地质大学(武汉) 分布式空间图神经网络的模型建立及实现方法
CN117479235B (zh) * 2023-12-28 2024-03-19 中通信息服务有限公司 一种末梢网络设施调度管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218633A (ja) * 2015-05-18 2016-12-22 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US20170039330A1 (en) * 2015-08-03 2017-02-09 PokitDok, Inc. System and method for decentralized autonomous healthcare economy platform

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2589931B1 (en) * 2011-11-07 2016-06-29 Elektrobit Automotive GmbH Technique for structuring navigation data
US11394773B2 (en) * 2014-06-19 2022-07-19 Jim Austin Joseph Cryptographic currency block chain based voting system
US10121019B2 (en) * 2015-06-02 2018-11-06 ALTR Solutions, Inc. Storing differentials of files in a distributed blockchain
CN105590321B (zh) * 2015-12-24 2018-12-28 华中科技大学 一种基于块的子图构建及分布式图处理方法
CN105404701B (zh) * 2015-12-31 2018-11-13 浙江图讯科技股份有限公司 一种基于对等网络的异构数据库同步方法
CN106033476B (zh) * 2016-05-19 2019-07-23 西安交通大学 一种云计算环境中分布式计算模式下的增量式图计算方法
CN106357405A (zh) * 2016-09-19 2017-01-25 弗洛格(武汉)信息科技有限公司 一种基于区块链技术一致性算法的数据管理方法及系统
US10291627B2 (en) * 2016-10-17 2019-05-14 Arm Ltd. Blockchain mining using trusted nodes
US10726346B2 (en) * 2016-11-09 2020-07-28 Cognitive Scale, Inc. System for performing compliance operations using cognitive blockchains
CN106611061B (zh) * 2016-12-29 2018-02-23 北京众享比特科技有限公司 基于区块链网络的数据库写入方法及系统
CN106777351B (zh) * 2017-01-17 2019-08-09 中国人民解放军国防科学技术大学 基于art树分布式系统图存储计算系统及其方法
CN110663030A (zh) * 2017-03-16 2020-01-07 费赛特实验室有限责任公司 用于处理极端数据的边缘设备、系统和方法
CN113766035B (zh) * 2017-03-28 2023-05-23 创新先进技术有限公司 一种业务受理及共识的方法及装置
CN107943833B (zh) * 2017-10-25 2021-11-19 华南农业大学 一种基于区块链的无中心分布式文件存储及检索方法
CN107864198B (zh) * 2017-11-07 2019-09-24 山东浪潮人工智能研究院有限公司 一种基于深度学习训练任务的区块链共识方法
CN108683738B (zh) * 2018-05-16 2020-08-14 腾讯科技(深圳)有限公司 图数据处理方法和图数据的计算任务发布方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218633A (ja) * 2015-05-18 2016-12-22 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US20170039330A1 (en) * 2015-08-03 2017-02-09 PokitDok, Inc. System and method for decentralized autonomous healthcare economy platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
神田 伶樹,外2名: "「ビットコインネットワーク上でのブロック伝搬遅延推定の試み」", 情報処理学会 研究報告 インターネットと運用技術(IOT) 2018−IOT−040 [ONLINE, JPN6022004635, 26 February 2018 (2018-02-26), pages 1 - 6, ISSN: 0004699931 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7490394B2 (ja) 2020-03-06 2024-05-27 株式会社日立製作所 情報共有支援方法、及び情報共有支援システム

Also Published As

Publication number Publication date
US11847488B2 (en) 2023-12-19
CN108683738A (zh) 2018-10-19
KR102485652B1 (ko) 2023-01-06
EP3771179A4 (en) 2021-05-19
EP3771179A1 (en) 2021-01-27
CN111030802A (zh) 2020-04-17
SG11202010651RA (en) 2020-11-27
KR20200139780A (ko) 2020-12-14
WO2019218814A1 (zh) 2019-11-21
CN111030802B (zh) 2020-12-29
EP3771179B1 (en) 2023-09-20
CN108683738B (zh) 2020-08-14
US20200364084A1 (en) 2020-11-19
JP7158801B2 (ja) 2022-10-24

Similar Documents

Publication Publication Date Title
JP7158801B2 (ja) グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器
KR102499076B1 (ko) 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치
US20210004251A1 (en) Optimizing image reconstruction for container registries
US8713125B2 (en) Method and system for scaling usage of a social based application on an online social network
JP2022511716A (ja) 非集中的な分散型深層学習
JP6556659B2 (ja) ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム
CN104937544A (zh) 计算回归模型
Phuoc Hung et al. An adaptive procedure for task scheduling optimization in mobile cloud computing
US11526791B2 (en) Methods and systems for diverse instance generation in artificial intelligence planning
CN111985631B (zh) 信息处理设备、信息处理方法及计算机可读记录介质
CN107977923A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
US10938891B2 (en) Reducing cloud application execution latency
JP2015001954A (ja) 情報処理システムおよび情報処理方法
US20240179186A1 (en) Predictive load balancing for a digital environment
KR20120044694A (ko) 비대칭 분산 파일 시스템, 연산 분배 장치 및 방법
CN114741029A (zh) 应用于去重存储系统的数据分配方法及相关设备
US20240113945A1 (en) Continuously improving api service endpoint selections via adaptive reinforcement learning
US20230186168A1 (en) Performing automated tuning of hyperparameters in a federated learning environment
US11514125B1 (en) Multi-objective ranking of search results
US20220101174A1 (en) Sharing and executing custom machine learning algorithms
US20220171996A1 (en) Shuffling-type gradient method for training machine learning models with big data
Passos et al. An autonomic parallel strategy for the projection of ecological niche models in heterogeneous computational environments
Baccour et al. Reinforcement learning-based dynamic pruning for distributed inference via explainable AI in healthcare IoT systems
WO2017028930A1 (en) Methods and apparatus for running an analytics function
CN116388388A (zh) 配用电终端交互方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221006

R150 Certificate of patent or registration of utility model

Ref document number: 7158801

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150