最近、STM (ソフトウェア トランザクショナル メモリ) フレームワークと言語拡張への関心が高まっているようです。 特にClojureは、ローリング コミット ログではなくMVCC (マルチバージョン同時実行制御)を使用する優れた実装を備えています。GHC Haskell には、トランザクション合成も可能にする非常にエレガントな STM モナドもあります。最後に、私自身の口癖を少しだけ説明するために、私は最近、参照制限を静的に適用する Scala 用の STM フレームワークを実装しました。
これらはどれも興味深い実験ですが、その領域だけに限定されているようです (実験)。私の質問は、現実の世界で STM を見たり使用したりしたことがある人はいますか? もしそうなら、なぜですか?それはどのような利益をもたらしましたか。パフォーマンスはどうですか?(この点については多くの矛盾する情報があるようです) STM を再び使用しますか、それともアクターのような他の並行処理の抽象化を使用したいと思いますか?