私は、HaskellとSTMに関するBeautiful Concurrencyの記事を読んできました。Haskellの並行性と永続性
この例は、銀行口座振替です。
ヒープメモリに置かれた2つの数字の間のノーディーな銀行振込です。これはすぐに私の頭の中で提起
質問は以下のとおりです。
転送がアトミックにディスクを打ちますか。銀行取引が永続的に記録されるまで - ACID - 私の本では起こっていません。 Haskellのような言語を使っている人は、STMの内部でIOを行なわないようにするために、揮発性メモリだけでなく、実際には原子の変化をどうやって行うのでしょうか?
これをどのように多くのマシンに配布するか。トランザクションを分散させ、横方向のアプリケーションをスケーリングするにはどうしたらいいですか?
答えが暗示しているように、銀行業務の例は比喩として理解されていると思われます。 – jberryman
@jberrymanだから、それは何のために便利ですか?より代表的な問題は何でしょうか?以下、2つの答えと1つのstm-io-hooksのコメントがあります.1)stmがioで動作する可能性があり、2)これはhaskellコミュニティでもあまりよく知られていません。ここにまだ公開されていない脆弱性があります。 – Will
STMは、並行性があり、ロックで必要なものを実装するのが簡単ではない場合に便利です。あなたの質問がより重視されていれば、本当に面白い答えを得るかもしれないと思います。 – jberryman