2014年05月06日
川俣晶の縁側ソフトウェアYamatoDrive開発日誌total 1982 count

Windows Azureのキューの迷宮

Written By: 川俣 晶連絡先

「キューの迷宮ってダジャレかい?」

「韻を踏んでいると言ってくれたまえ」

「やはりダジャレなんだ」

「本題はある!」

「何だよ」

YamatoDriveでは遅延実行のために以下のような仕組みでキューを使っている」

  • 遅延実行させる機能のためにキューを用意している
  • キューに格納するメッセージは、バージョンに依存する場合がある
  • 互換性の無いメッセージが存在すると困るので、バージョン番号ごとにキューを作ってバージョンを混ぜないようにしている
  • それだと過去のバージョンのキューが全部残ってしまい無駄なので、自分自身以外のバージョンのキューは削除して除去する初期化処理が入っている

「それで、これがどうなんだ?」

「実はこの仕掛けは破綻する場合がある」

「どういうとき?」

「プロダクションとステージング等で別バージョンのインスタンスが同時に起動すると、別バージョンのインスタンスが起動した時点でキューが回収されてしまって、動作が継続できなくなる」

「なんてことだ」

「しかし、消さないという選択肢も無い」

「なんで?」

「非同期で複数バージョンが混在している場合、いつ本当に利用が終了して回収して良いのかが明確に分からないからだ」

「凄く悩ましい」

「メッセージにバージョンを仕込んで、バージョンが一致したメッセージだけ処理するようにすればいいじゃん」

「そうすると、そのバージョンのメッセージを処理するインスタンスが存在しないといつまでも処理されないメッセージが残り続ける」

「じゃ、バージョンが一致しないメッセージは削除する」

「それだと、処理できるインスタンスがあるのにメッセージが握りつぶされてしまう場合が発生する」

「ダメじゃん」

「どう攻めればいいか、とても悩ましい」

オマケ §

「でもさ。それって非同期キューの問題で、Windows Azureとはあまり関係ないんじゃ?」

「そうかもしれない」

Facebook

キーワード【 川俣晶の縁側ソフトウェアYamatoDrive開発日誌
【YamatoDrive開発日誌】の次のコンテンツ
2014年
09月
19日
フォトマップのアルファ版公開・撮影したら即地図に
3days 0 count
total 1790 count
【YamatoDrive開発日誌】の前のコンテンツ
(ありません)

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20140506102929
サイトの表紙【YamatoDrive開発日誌】の表紙【YamatoDrive開発日誌】のコンテンツ全リスト 【YamatoDrive開発日誌】の入手全リスト 【YamatoDrive開発日誌】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.