詳しく見る / ランタイム・ラボ

ランタイム・ラボ

並列 / 並行 / コンポーザブル

ALUX はリプレイ可能な長期トランザクションに対応します。独立したタスクは同時に進み、トランザクションはメッセージを通じて協調します。予約シナリオでは、関連するシステム横断の効果を1つのアトミックな結果として決済する目標モデルを示します。

位置付け分散型並行ランタイム
実行実行、相互作用、待機、決済
境界ケイパビリティで範囲を限定したワークフロー
ALUX ランタイムがノード、クラウドサービス、デバイス、エージェント、ケイパビリティトークン、コミット経路を接続する高精細な技術イラスト。 ALUX ランタイムがノード、クラウドサービス、デバイス、エージェント、ケイパビリティトークン、コミット経路を接続する高精細な技術イラスト。

3つの違い

3つの言葉が担う、3つの異なるランタイム機能

並列性は、独立したトランザクションを同時に実行します。並行性は、トランザクション同士をチャネルで相互作用させます。あるトランザクションは別のトランザクションから一致するメッセージを待ち、受信後に処理を続けられます。コンポーザビリティ(合成可能性)は、異なるシステムの状態遷移を監査可能な1つのアトミックな遷移として結び付けます。

現行の ALUX ランタイムでは、独立した処理を並列に実行し、トランザクション同士をメッセージで協調させ、ブロックをまたいで実行を再開できます。独立したシステム間のアトミック・コンポーザビリティは、引き続きアーキテクチャ上の目標です。

複数の分離された実行レーンが、同時に前進する様子。 複数の分離された実行レーンが、同時に前進する様子。
並列4つの旅行検索がそれぞれのレーンで独立して完了します
可能になること

同じ時間で、より多くの独立作業を完了できます。ただし並列性だけでは、作業同士がメッセージを交換したり、長期トランザクションが待機後に処理を続けたりすることはできません。

並列性は複数の答えを同時に探しますが、それらの作業を相互作用させるものではありません。

並列

航空券、ホテル、送迎、保険を
同時に検索します

何を意味するか
並列実行とは、独立した作業を同時に進めることです。旅行エージェントは、1つの検索の完了を待たずに、航空券、客室、送迎、保険を並行して検索できます。
ALUX の方法
並列実行は ALUX のプロセス計算に組み込まれています。トランザクションはメモリを共有せず、相互作用はタプル空間チャネルに限定されます。そのため独立したトランザクションは別々の TVM レーンで進み、コミット時の状態競合は Block Merge が解決します。
可能になること
同じ時間で、より多くの独立作業を完了できます。ただし並列性だけでは、作業同士がメッセージを交換したり、長期トランザクションが待機後に処理を続けたりすることはできません。

並列性は複数の答えを同時に探しますが、それらの作業を相互作用させるものではありません。

ランタイム全体を体験

アトミックな予約をモデル化

4つの操作で目標とするコンポーザビリティ・モデルを試せます。予約確認と決済確認を開始し、空室待ちの条件を残し、ホテルから一致するメッセージを届け、最後に両方をまとめて確定するモデルを確認します。

012つの確認を開始

予約と決済の確認がそれぞれ進みます。

02空室を待つ

予約がチャネルに空室条件を残します。

03ホテルが応答

一致するメッセージが予約の後続処理を起動します。

04一緒に確定

客室確保と決済承認が1つの結果としてコミットされます。

状態 0 / 4

順番に操作

ステップ1から始めます。予約と決済は同じランタイムで管理されますが、状態は互いに独立しています。

並列2つの確認を同時実行

独立作業が1つのグローバルキューに並ぶ必要はありません。

並行予約がホテルの返答を待つ

依存関係はチャネルに残り、ランタイム全体を止めません。

メッセージ照合返答が次の処理を生成

COMM が後続処理を生成し、照合が非決定的な場合にだけ ReplayTrie が選択を記録します。

コンポーザブル客室と決済を一緒に確定

目標は、決済を再現できる証拠を伴う、全成功か全取消かの1つの結果です。

ランタイムの経路

サービスを動かし続けるもの

長期稼働するサービスの一貫性が保たれるのは、各ステップが実行、相互作用、明示的な権限の保持、決定論的リプレイを行い、ひとつの検証可能なアトミックな経路に沿って確定できるためです。

実行

TVM プロセスのライフサイクル

プロセスは分岐し、あるブロックで待機し、ローカル実行コンテキストを再起動せずに後続ブロックで再開できます。

相互作用

タプルスペース + COMM

待機中の consume が別のトランザクションの produce と一致すると、継続処理が起動します。その間も、無関係な処理は進み続けます。

権限付与

OCAP の権限境界

偽造不能なケイパビリティ参照を明示的に渡すため、各ステップが受け取るのは必要な権限だけです。ID が無関係な権限を自動的にスコープへ持ち込むことはありません。

リプレイ

ReplayTrie

結果に影響する非決定的な COMM 選択だけを記録し、検証者が同じ実行を再現できるようにします。

決済

BlockGit + Block Merge

並行処理は検証済みのフリンジに入り、重複する効果はファイナリティの前に、受理・拒否・未決定へ分類されます。

次のレイヤー

異なる実行環境をつなぐ、ひとつの論理ランタイム

Runtime Lab は、現行の並列実行とメッセージ駆動実行を示し、その上で目標とする原子的合成モデルを図解します。GLVM は、この論理モデルをブロックチェーンノード、クラウドサービス、個人デバイスへ拡張する、より広いアーキテクチャを説明します。

GLVM を詳しく見る

なぜ重要か

より速いブロックではなく、長期稼働サービス

並列性は独立した実行を、並行性はメッセージ駆動の相互作用と待機・再開を担います。ALUX は現在、これらのランタイム基盤を実装しており、システム境界をまたぐアトミック・コンポーザビリティの実現へ向けて開発を進めています。

並列性のみ

スループットは向上しますが、トランザクション間の依存関係やメッセージ照合は扱えません。

並行性のみ

トランザクション同士は相互作用して待機できますが、システムをまたぐ効果は別々に決済される可能性があります。

コンポーザビリティのみ

アトミックな境界はあっても、相互作用と待機がなければ長期的な依存関係を扱えません。