2005年05月25日
川俣晶の縁側ソフトウェアMagSite1開発日誌 total 3028 count

MagSite1 0.49リリース アクセスカウント巻き戻り現象の対策……?

Written By: 川俣 晶連絡先

 2005年05月25日に、MagSite1を0.49にバージョンアップしました。

 今回のバージョンはいくつか重要な問題への対処を含んでいます。

入手先 §

 MagSite1 0.49は、MagSiteMan1上からダウンロードできるほか、MagSiteDistシステムよりダウンロードできます。

MagSite1手動ダウンロード

変更点 §

 変更点は以下の通りです。

  • 同じ日付時刻のコンテンツを書き込もうとした時に、適切なメッセージを示し、受け付けない
  • 遅延書き込みスレッドでスレッド優先順位を変更するのをやめる。(下げると永遠に実行チャンスが回ってこない可能性がある)
  • 遅延書き込みスレッドで例外が発生した場合、電子メールでルートキーワードの管理者メールアドレスに通知

 変更点の詳しい説明を以下に述べます。

同じ日付時刻のコンテンツを書き込もうとした時に、適切なメッセージを示し、受け付けない §

 コンテンツ新規作成時には、自由な日付と時刻を書き込むことができます。つまり、過去や未来の日付時刻のコンテンツを作成できます。MagSite0.48以前では、この機能を利用する際、既に同じ日付時刻のコンテンツが存在する状況で、その日付時刻のコンテンツを追加で作成しようとすると、エラーが表示され成功しません。その後、MagSite1が再起動された時点で致命的な例外が発生し、MagSite1は動作しなくなります。

 本バージョンでは、この問題を回避するために、完全に同じ日付時刻を持ったコンテンツの作成をチェックし、そもそも書き込みを行えないようにしました。

 なお、読者に時刻が提示されることはありませんので、同じ時刻のコンテンツを作成することに意味はありません。必要な場合は、1秒ずらした時刻で作成をお願い致します。

遅延書き込みスレッドでスレッド優先順位を変更するのをやめる。(下げると永遠に実行チャンスが回ってこない可能性がある) §

 「アクセスカウントの巻き戻り現象」への対策として試みたものです。

 アクセスカウントの巻き戻り現象とは、コンテンツやキーワードのアクセスカウントが一度上がったはずなのに、しばらくするとより古い段階の値に巻き戻る現象を意味します。

 主な原因は、アクセスカウントをファイルに書き込む遅延書き込み機能が機能していないことにあると考えられます。(メモリ上でカウントアップしても、ファイルが更新されないので、再起動時に古い値から再開してしまう)

 調査の結果、遅延書き込みスレッドの優先順位を下げていると、高負荷時に永遠に実行チャンスが巡ってこない場合があることが分かりました。それにより、本バージョンでは優先順位の変更をやめています。

 これによって、全てのケースで問題が解決されるかは断定できません。

遅延書き込みスレッドで例外が発生した場合、電子メールでルートキーワードの管理者メールアドレスに通知 §

 遅延書き込みスレッドで例外が発生した場合、その情報がどこにも通知されず、どこにも残らないことを確認したため、これを電子メールで通知する機能を追加しました。

 なお、同じ例外が繰り返される場合は、360回(1時間~に相当)ごとに通知されます。