背景
分散データベースとブロックチェーンの最大の違い:
従来のデータベースには信頼できるノードが必要であり、ブロックチェーンテクノロジーはビザンチンノードをサポートしています。
2つのモデル
注文実行
最初にコンセンサスアルゴリズムで並べ替え、次に各ノードでローカルに実行します。代表には、ビットコイン、イーサリアムなどがあります。
モデルには2つの欠点があります。
-
並列実行できません
-
すべてのノードを実行する必要があります
その結果、拡張できず、パフォーマンスが低下します。
分散データベースは、何年も前にこれらの問題を解決しました。
注文の有効データのコミットをシミュレート
並列シミュレーション、検証後。代表者はHyperledger Fabricです。
同時実行のサポート。ただし、Hyperledger Fabricの実装は十分ではありません。多数のトランザクションが中止され、その結果tpsが低くなります。
最適化
著者は、Hyperledger Fabricを最適化するために、同時実行制御に2つの最適化方法を使用しています。
- トランザクションレコーダー
- 早期トランザクションアボート(きめの細かい同時サポートが必要)
なぜこれら2つの同時実行制御最適化手段が採用されるのですか?
- ブロックの形でトランザクションをコミットします。いくつかの最適化は個々のトランザクション用です
- ブロックチェーンは分散および複製され、従来のデータベースはスタンドアロン、パーティション、
- ブロックチェーントランザクションは複数のノードでシミュレートされ、ノードの状態は不整合である可能性があり、データベースの状態は整合している必要があります
- ブロックチェーンのパフォーマンスのボトルネックは、暗号化された署名、ネットワーク通信、信頼の検証です。従来のデータベースのボトルネックは、ロックメカニズムなどの低レベルコンポーネントの使用です。一部の最適化は低レベルを目的としています
同時実行制御技術は2つのカテゴリに分けられます。1つはスループットを向上させることであり、もう1つは中止されたトランザクションを成功したトランザクションに変換することです
著者は、分析後に2番目のものしか使用できません。
達成する
トランザクションレコーダー
#1 强连通分量
#2 simple 环
#3 统计各点的环数
#4 去点,同时更新环数
#5 拓扑排序,逆序
早期トランザクションアボート
シミュレーションフェーズまたはシーケンスフェーズの早い段階で終了します。
シミュレーション段階:
並行してシミュレーションと検証を行います。シミュレーション中にデータを読み取るときにバージョンを確認します。バージョンが最終バージョンよりも大きい場合は、検証フェーズ中にデータが変更され、シミュレーションを終了し、トランザクションを早期に終了します。
選別ステージ:
同じブロック内の異なるトランザクションが同じデータの異なるバージョンを読み取る場合、2つのシミュレーション間の他のトランザクションがデータを変更し、後者のトランザクションは無効になり、並べ替えられなくなり、トランザクションは早期に終了します。