1 ポイント 投稿者 GN⁺ 2023-10-01 | 1件のコメント | WhatsAppで共有
  • この記事では、約50年前に発明された一般的な同時実行制御である Two-Phase Locking(2PL)の概念について論じます。
  • 2PL は、より強力な分離レベルである Serializability と Opacity を提供し、複数のデータ項目に対するトランザクションで使用されます。
  • 著者は、2PL のシンプルさと強力な分離レベルが主な利点だと強調しています。
  • しかし 2PL には、読み取りのスケーラビリティが低いことと、ライブロック進行という欠点があります。
  • 著者は、2PL の問題点を解決する新しい同時実行制御である Two-Phase Locking Starvation-Free(2PLSF)を紹介します。
  • 2PLSF は、より優れたリーダー・ライターロックを使用し、最も高い形のブロッキング進行である飢餓状態のないトランザクションを提供します。
  • 2PLSF は、特定の種類の競合を解決するのに効果的であるため、一部の競合が発生してもスケールできます。
  • 著者は、2PLSF は 2PL と比べて大幅に改善されていると結論づけており、それをジャックハンマーとつるはしの違いになぞらえています。
  • この記事には、2PLSF アルゴリズムに関する論文とソースコードへのリンクが含まれており、さらに学ぶための参考にできます。

1件のコメント

 
GN⁺ 2023-10-01
Hacker Newsの意見
  • 二相ロック(2PL)について、そしてそれが最初に開発されてから50年後の今日における関連性を論じた記事。
  • あるコメント投稿者はこの話題の初心者で、分散マイクロサービスアーキテクチャ向けに簡単にデプロイできる一貫性ソリューションを探している。
  • 同じコメント投稿者が、マルチスレッド・マルチプロセッシング環境における非決定性をテストするPythonコードを共有している。
  • 別のコメント投稿者は、まずロックアルゴリズムが本当に必要かを検討し、並行性とロックを減らすためにリクエストをバッチ処理することを提案している。
  • 新しいアプローチが2PLの改良版として宣伝されている直列化可能スナップショット分離(SSI)と、どのように比較されるのかという質問が出ている。
  • あるコメント投稿者は、公開されるすべてのリンクをHTTPS必須にする新しいHacker Newsポリシーが必要だと提案している。
  • 2PLSFに関する論文へのリンクが共有されており、2PLは本来こうあるべきだったと著者は主張している。
  • 原子的な処理のスケーラビリティを向上させるため、ランダムキューを追加することが提案されている。
  • Wait-Or-DieアプローチにおいてトランザクションIDを取得して追加する必要があるのか、代わりにスレッドIDや乱数を使うべきではないかという質問が出ている。
  • あるコメント投稿者は、読み取り専用トランザクションの文脈における緩和AVL木について、最後の図を理解できなかった。
  • 疎結合なAPI呼び出しの文脈で、2PLが適用可能かどうかという質問が出ている。
  • 書き込みトランザクションの大半では、多くの競合オブジェクトに対する一貫した読み取りが必要だが、実際の書き込み対象は1つか2つのオブジェクトにすぎないことが多いという点が挙げられ、2PLがこれを解決できるのかという質問が出ている。