Transactionについて

以前、といってももう20年近く前のことですが、トランザクション処理に係る標準化の仕事をしていたことがあります。分散トランザクション処理用通信プロトコルやそのAPIの標準化などです。単にこのTransactionという言葉にひかれて、InfoQにあった次のプレゼンテーションを眺めてしまいました(まだ途中ですが)。

  1. The Power of Native Transactions

SpringSourceのJürgen Höllerさんによるもので、懐かしい「XAインタフェース」などの言葉が飛び交います。Native Transactionというのはローカルトランザクションのことだそうで、そうだとすると多分「実際のシステムでは分散している資源のトランザクション管理はあまり必要ない(そもそも設計が悪い)」というような話ではないかと勝手に想像してしまいます。最後まで聞いて間違っていれば後ほど訂正のコメントを書き込みます。

このトランザクション処理の考え方は、通信プロトコルの標準化、APIの標準化(この時はPOSIX準拠システム用API:分かりやすく言うとUnixシステム用APIでした)、と進み、その後CORBAの世界でオブジェクトサービスとして再度標準化され、更に現在ではOASISでWebサービスの世界のトランザクション処理標準として書き換えられています。微妙に進化しているように見えますが、本質的な内容は変わっていないと思います。

トランザクションのような抽象的かつ現実的な概念が形を変えて生き続けるのは当然のことだろうと思いますが、これがCloud Computingの世界でまた新たな形として再定義されることになるのかどうか気になります。従来型と比べデータの管理方法が変わることに対してトランザクション側でも対応が必要かがポイントのような気がしています。利用者側からは余り見えない話でしょうが、Inter-cloudsの可能性なども考えると、Cloudプロバイダ側で何かが必要かもしれません。

Transactionについて

Transactionについて」への1件のフィードバック

  1. rmodp より:

    補足します。最後まで聞いてみましたが、ここでの主張はXAのリカバリログ処理が余りにも重いため、トランザクションを単一リソースだけを扱うローカルトランザクションの集まりに分割してしまうという方式で、途中までコミットが進んだところでロールバック要因が発生した場合には手作業で対応すれば良い(そんな事は殆ど発生しない)という主張でした。ビジネストランザクションの考え方をローカルシステムに持ち込んでいるとも言えそうです。XA策定に関与したものとしては、リスクを承知でやるのならどうぞ、ということになります。また最後にメッセージングの話をしていますが、XAはメッセージングに適用することを想定して設計したものではありませんでした。メッセージング用API標準も検討しましたが当時はメッセージング機能を提供しているベンダ間でアーキテクチャ上の大きな差異があり標準化は断念することになりました。従って、ここで説明している方式で動くと思いますが、少し最適化側に振った設計ですからアプリケーション次第という気がします。もう少し選択肢があればベターだと思います。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中