詳しく見る / ランタイム・ラボ
ランタイム・ラボ
並列 / 並行 / コンポーザブル
ALUX はリプレイ可能な長期トランザクションに対応します。独立したタスクは同時に進み、トランザクションはメッセージを通じて協調します。予約シナリオでは、関連するシステム横断の効果を1つのアトミックな結果として決済する目標モデルを示します。
ALUX ランタイムがノード、クラウドサービス、デバイス、エージェント、ケイパビリティトークン、コミット経路を接続する高精細な技術イラスト。
3つの違い
3つの言葉が担う、3つの異なるランタイム機能
並列性は、独立したトランザクションを同時に実行します。並行性は、トランザクション同士をチャネルで相互作用させます。あるトランザクションは別のトランザクションから一致するメッセージを待ち、受信後に処理を続けられます。コンポーザビリティ(合成可能性)は、異なるシステムの状態遷移を監査可能な1つのアトミックな遷移として結び付けます。
現行の ALUX ランタイムでは、独立した処理を並列に実行し、トランザクション同士をメッセージで協調させ、ブロックをまたいで実行を再開できます。独立したシステム間のアトミック・コンポーザビリティは、引き続きアーキテクチャ上の目標です。
同じ時間で、より多くの独立作業を完了できます。ただし並列性だけでは、作業同士がメッセージを交換したり、長期トランザクションが待機後に処理を続けたりすることはできません。
並列性は複数の答えを同時に探しますが、それらの作業を相互作用させるものではありません。並列
航空券、ホテル、送迎、保険を
同時に検索します
- 何を意味するか
- 並列実行とは、独立した作業を同時に進めることです。旅行エージェントは、1つの検索の完了を待たずに、航空券、客室、送迎、保険を並行して検索できます。
- ALUX の方法
- 並列実行は ALUX のプロセス計算に組み込まれています。トランザクションはメモリを共有せず、相互作用はタプル空間チャネルに限定されます。そのため独立したトランザクションは別々の TVM レーンで進み、コミット時の状態競合は Block Merge が解決します。
- 可能になること
- 同じ時間で、より多くの独立作業を完了できます。ただし並列性だけでは、作業同士がメッセージを交換したり、長期トランザクションが待機後に処理を続けたりすることはできません。
並列性は複数の答えを同時に探しますが、それらの作業を相互作用させるものではありません。
ランタイム全体を体験
アトミックな予約をモデル化
4つの操作で目標とするコンポーザビリティ・モデルを試せます。予約確認と決済確認を開始し、空室待ちの条件を残し、ホテルから一致するメッセージを届け、最後に両方をまとめて確定するモデルを確認します。
予約と決済の確認がそれぞれ進みます。
予約がチャネルに空室条件を残します。
一致するメッセージが予約の後続処理を起動します。
客室確保と決済承認が1つの結果としてコミットされます。
順番に操作
独立作業が1つのグローバルキューに並ぶ必要はありません。
依存関係はチャネルに残り、ランタイム全体を止めません。
COMM が後続処理を生成し、照合が非決定的な場合にだけ ReplayTrie が選択を記録します。
目標は、決済を再現できる証拠を伴う、全成功か全取消かの1つの結果です。
ランタイムの経路
サービスを動かし続けるもの
長期稼働するサービスの一貫性が保たれるのは、各ステップが実行、相互作用、明示的な権限の保持、決定論的リプレイを行い、ひとつの検証可能なアトミックな経路に沿って確定できるためです。
TVM プロセスのライフサイクル
プロセスは分岐し、あるブロックで待機し、ローカル実行コンテキストを再起動せずに後続ブロックで再開できます。
タプルスペース + COMM
待機中の consume が別のトランザクションの produce と一致すると、継続処理が起動します。その間も、無関係な処理は進み続けます。
OCAP の権限境界
偽造不能なケイパビリティ参照を明示的に渡すため、各ステップが受け取るのは必要な権限だけです。ID が無関係な権限を自動的にスコープへ持ち込むことはありません。
ReplayTrie
結果に影響する非決定的な COMM 選択だけを記録し、検証者が同じ実行を再現できるようにします。
BlockGit + Block Merge
並行処理は検証済みのフリンジに入り、重複する効果はファイナリティの前に、受理・拒否・未決定へ分類されます。
次のレイヤー
異なる実行環境をつなぐ、ひとつの論理ランタイム
Runtime Lab は、現行の並列実行とメッセージ駆動実行を示し、その上で目標とする原子的合成モデルを図解します。GLVM は、この論理モデルをブロックチェーンノード、クラウドサービス、個人デバイスへ拡張する、より広いアーキテクチャを説明します。
なぜ重要か
より速いブロックではなく、長期稼働サービス
並列性は独立した実行を、並行性はメッセージ駆動の相互作用と待機・再開を担います。ALUX は現在、これらのランタイム基盤を実装しており、システム境界をまたぐアトミック・コンポーザビリティの実現へ向けて開発を進めています。
スループットは向上しますが、トランザクション間の依存関係やメッセージ照合は扱えません。
トランザクション同士は相互作用して待機できますが、システムをまたぐ効果は別々に決済される可能性があります。
アトミックな境界はあっても、相互作用と待機がなければ長期的な依存関係を扱えません。
