著作一覧 |
教科書を読み直したら、補償トランザクションはsagaのdefinitionに組み込まれていました。ということは、補償トランザクションがある=サーガは、少なくてもバーンスタイン本を教科書とする限り正しいです。噛み付いてすみませんでした>WRさん。
This is called a saga: a sequence of transactions that either runs to completion or that runs a compensationg transaction for every committed transaction in the sequence.
(p.120)
完全に実行するか、またはシーケンス上のすべてのコミット済みトランザクションの補償トランザクションを実行する、トランザクションのシーケンス
この定義に従えば、トランザクションのACID特性のうち、Aを満たしたマルチトランザクション(時間軸に注目すればロングトランザクション)をサーガと呼ぶということになります。
ついでに言えば、補償トランザクションは自動化されることが定義上必要です(とは言え、どこまで実用的に運用可能かというと疑問がありますが)。
これを実現するためには補償トランザクションは元のトランザクションの実行順を遡ることになります(なぜならばロールバックによって自動的にアトミシティを満たすための機能を持つことが定義なので)。あるトランザクションが順にA→B→Cの3つのトランザクションを実行する場合に、Cでロールバックした場合に補償トランザクションがCからBへ送り出され、Bを(ロジカルに)ロールバックし、BはAに補償トランザクションを送りAが(ロジカルに)ロールバックする、こういったロングトランザクション/マルチトランザクションの実装形態がサーガトランザクションです。
赤い伝票がA→B→Cと、ロジカルなロールバックを実行する場合、これは意味的には補償トランザクションかも知れませんが、上の定義を満たす補償トランザクションではありません(少なくても自動化されていない)。したがって、これは単なるロングトランザクションまたはマルチトランザクションということになります。
以上が言葉の定義に厳密なトランザクションの伝説(サーガ)です。
#しかし、赤伝だろうが補償トランザクションの実行に人手を介す必要があろうが、アトミシティだけでも守ろうじゃないかという心意気で作ったロングトランザクションシステムはそれだけで立派に伝説(サーガ)足り得るのではないかと思わないでもないけど。
というところで、シベリウスのサガ(op.9)を聴きながら、この後に続くレミンカイネン(op.22)のサガ(英雄詩譚)にでも思いをはせてください。
(性(さが)だと椎名林檎だが)
追記:yoshiさんのTB参照。Garcia-Molinaという人が元らしい。
年配の観客が立ち上がって、「MacPaintというのはプログラムの歴史上、最も素晴らしい作品だったんじゃないかと私は思うのですが、ソースコードを見せていただくということは可能なのでしょうか」という質問をしてきたんだ。その質問をした年配の観客というのは、実はドナルド・クヌースだった。
おもしろい。質問をしたクヌースもおもしろければ、FDにソースを格納するために工夫が必要だった時代もおもしろい。Computer History Museumというのもおもしろい。っていうか、なんか夢があるね。
NerdTVの作品をNHK教育とかでやってくれないかな(もちろん日本語字幕か吹き替えで)。
#く、CCなのか。CCだってことはこういう他力本願寺な言い方は無効化されるんだよな……でも、誰かやってくれないかな。
追記:もちろん、福盛さんが訳されてることについて最大限の謝意と賛辞は惜しまないわけです(が、最初それが抜けてましたな)。感謝してます。
ジェズイットを見習え |