本文へスキップ

線形化可能性とは?

せんけいかのうせい

線形化可能性とは分散システムにおいて、複数の操作が同時に行われても全体として単一の直列な実行順序があるように見える一貫性の保証のことです。

線形化可能性(Linearizability)は、分散システムや並行プログラミングの分野で用いられる一貫性モデルのひとつです。直感的には「いつどのノードにアクセスしても、最新の書き込みが即座に反映されているように見える」という保証を意味します。

より正確に定義すると、複数の操作が並行して実行されていても、すべての操作をある一点(linearization point)で原子的に効果が発生するものとして並べ直せる逐次実行が存在する場合、そのシステムは線形化可能といいます。

線形化可能性が重要な理由は、分散システムで安全な並行処理を実現するための基礎となるからです。

  • クライアントが書き込んだ後、他のクライアントが即座に同じ値を読める
  • 古い値を観測した後に新しい値を読む操作は成立しない
  • 複数のクライアントが競合する操作を行っても矛盾が生じない

ZooKeeperやetcdは線形化可能な書き込みを提供することで、分散ロックやリーダー選出などの協調処理を可能にしています。一方、線形化可能性はCAP定理においてネットワーク分断時には可用性と両立できず、性能コストもかかるため、設計上の重要なトレードオフとなります。

使い方・例文

分散データベースで銀行口座の残高を複数のノードが同時に更新する場合、線形化可能性が保証されていれば、あるノードへの書き込みが完了した後に別のノードへの読み込みで必ず最新残高が返ってくることが保証されます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語