勉強会について
Transactional Information Systems 5章 MVCC勉強会 第九回 - connpass の議論メモです。
自分のメモをベースにまとめています。発言の聞き間違い、解釈違いの可能性があることをご了承ください。
本エントリのTX本とは "Transactional Information Systems" のことです。
- 作者: Gerhard Weikum,Gottfried Vossen
- 出版社/メーカー: Morgan Kaufmann
- 発売日: 2001/05/24
- メディア: ハードカバー
- クリック: 2回
- この商品を含むブログ (2件) を見る
今回が最終回ということもあり、5章を読み切った後の余った時間で議論(というか神林さんによる講義)した内容を中心にまとめます。
[memo]は私のメモです。勉強会で議論された内容ではないことにご注意ください。関連資料・引用・リンクを適宜挿入しています。
分散処理とトランザクション
分散処理を前提にすると、lock では無理で timestamp を採用するしかない。
TX本の時代より分散処理環境が進んだ。
SSI (Serializable Snapshot Isolation) は MVSR の一種ともいえる。プロトコルレベルでいえばTX本5章 (Multiversion Concurrency Control) に含まれる。だが、SI (Snapshot Isolation) の延長に SSI があることから、理論は SI から考える必要がある。
トランザクション (TX) の理論に分散処理の理論をまだ取り込めていない。TX の理論には通信が重いものだ、という発想がない。
分散処理の理論はノード間の通信(経路)を当然考えているのに対し、TX の理論は考えていない。
1core より NUMA (Non-Uniform Memory Access) のほうが低いパフォーマンスとなる可能性がある。メモリの局所性 (locality) が低いときにパフォーマンスが落ちる。
これに対する一つの解はアプリレベルでパーティショニングすることだ。
[memo]
NUMA 向けのアプリケーションの最適化 | iSUS
知見をためるには失敗を2,3回繰り返さないといけない。でも、失敗を2,3回繰り返すにはシステムを2,3回作らないといけない。ユーザ企業ではシステムをそんなに繰り返し作れない。
アメリカの場合、個人が企業を転々としながらそれぞれでシステムを作ることで、個人にノウハウをためている。
TX本 18章 Distributed Concurrency Control の議論
分散TXは大きくホモとヘテロの2つに分けられる。
[memo]
分散TXではありませんが、ホモとヘテロの違いをイメージしやすい説明がありました。
各ノードの性能が同一であるクラスタはホモ型クラスタと呼ばれる.ホモ型においてハードウェアの更新を行おうとした場合,段階的にシステムを更新したいという要求にこたえることができず,低コストで構築できるというメリットを生かしきることができない.そのため,ヘテロ型クラスタというクラスタ内の各ノードの性能が異なることを許容する形態が現れた.
情報学広場:情報処理学会電子図書館
三森 慶卓,須田 礼仁.ヘテロ型クラスタのための2次元列ベース分割における通信スケジューリングと分割の最適化
TX本 18.1節 の説明を踏まえると、TX本 18章 でのヘテロとはサーバの性能がバラバラであったり、異種DBを組み合わせるようなケースを想定しているように思われます。
a homogeneous federation is characterized by distribution transparency
TX本 18.1 Goal and Overview
ホモのほうが transparency が高い。つまり、ユーザが意識しなくて済む。
スケーラビリティはホモのほうが有利だ。同じスキーマでスケールできるため。
マイクロサービスアーキテクチャやCORBAはヘテロの一種といえる。
TX本 DEFINITION 18.2 "Conflict Serializability" 及びその続きの説明を踏まえて注意すべきは、local で serializable でも gloal に serializable とは限らないということだ。
データセットのサイズが5TBあり、全てメモリ上で処理したいとする。
1ノード5TBメモリを搭載した特注品が用意できればよいが、価格があまりに高くなりすぎる。
そこで1ノード1TBメモリを5ノード以上用意することになる。これでも1ノード5TBメモリの特注品を買うよりは安い。
ただ、1ノードと比較して5ノードであればCPUコア数も5倍になるとということであり、顧客としてはそれだけパフォーマンスが上がってほしい(5倍速、かつTXも欲しい)。が、実際には理想通りにパフォーマンスが向上しないというジレンマがある。
参考
Transactional Information Systems Chapter 5読み会 - nikezono
中園さんの勉強会メモ。「第N回」が今回に相当します。