オブジェクト指向熱イベントパネルディスカッション検討スレッドでオブジェクト指向から話がそれて並列処理の話になってしまったのですが、そこで出てきたのが アクターモデルというものでした。
さて、Wikipediaの解説などを見ているとマルチスレッド特有の 同期の問題について触れていないように思ったわけです。
いや、そもそもアクターモデルでは非同期のメッセージのやり取りがあるわけで、時系列操作は考えてはいけないのでしょうから正しくは分散トランザクションの問題というのが正しいのでしょう。
アクターそれぞれが状態を持つことになるでしょうが、ある「状態」を複数のスレッドで処理する場合、つまり、複数のアクターがあるアクターが持つ単一の「状態」を元になんらかの処理を行う場合、元になる状態が可変であるとシステム全体で情報の不整合が発生しうるということです。
そして、この状態の不整合を起こさないようにどうすればよいかというのが分散トランザクション の関心ごとで別のパラダイムとして議論されているのかな、と思った次第。
いずれにせよ、プログラムをする際にはデータの整合性について考慮しないわけにはいかず、そのための同期処理で苦労するわけなのですが、この苦労は分散トランザクションに答えを求めるのが正しいのかもしれませんね。
投稿日時 : 2007年11月15日 16:25