MemoSTM関係のことをメモっていこうと思います。この広告は、90日以上更新していないブログに表示しています。Obstruction-Freeこの論文がClojureのSTMの基礎になっているらしい。Implementationという修士論文でClojureのSTMのベンチマークを行なってる。論文を軽く眺めてみるとDSTMをベースに書き込み制御に2phase-lockすることで通常の参照に必要な間接参照を0回に減らしているのだとか。値を獲得した時についでにキャッシュラインに載ってるというのは好ましい性質ですね。楽観的な並行制御でありつつもEagerな衝突検知を行うという事で、書き換えにはすこぶる弱そうな特性が揃っています。Eagerに書き込みロックを取ってしまう以上デッドロックは避けられない問題なので、タイムアウトなどの戦略を選ぶわけですし。早期にロックを取る分のコストをRead-Write-Lockにすることで軽減してるようですがあんまりいただけない気がします。最小時間のロックでコミット時にまとめて解放するのなら、普通のSpin-Mutexを使う事でアトミック命令の数を半分に減らせます。その点でTL2なんかは、コミット時にまとめて順序ロックを取るのでデッドロックしないですし素敵ですね。LazyというのはOptimisticな物とよくなじむんじゃないかと思います。設計方針がまとまってて素敵です。それに引き換えClojureのSTMは設計の方針がブレてるような印象があります。そもそもClojureのSTMはJVMに載ってるので、JVMの実装によって如何様にでも高速化され得ます。intelはHaswell世代からHTMを載せるとかいう話も漏れ聞こえてますし、JVMがそれにさえ対応すれば同一のClojureコードがすごく効率の良いHybridSTMで実行される可能性もあるわけで、早々にこの実装のSTMを試した人が「STM遅いわ―ダメだわ―」って話すのはちょっと違う気がします。Spanner」の実力は?』についてこんな記事が目に入った。月別アーカイブはてなブログをはじめよう!kumagiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。