Month: November 2011

ネットワーク更新エラーの検証法

 - by Don

ここのところずっとupdates2.dauとにらめっこしている生活をしていますが、このファイルに記載されている更新ファイルが存在しなかったりして、ネットワーク更新エラーとなるであろうゴーストがいくつか見受けられました。

MD5不一致エラーの報告をユーザさんから受けた際に、手元の環境で再現せず困惑するゴーストマスタさんもいらっしゃると思います。SSPは差分しか更新対象としないため、すべてのファイルが更新可能であることを検証するためには、ローカルのすべてのファイルを削除する必要があります。

検証の手順

開発用のSSPとは別に、ネットワーク更新検証用のSSPを用意します。そこに自作ゴーストをインストールするわけですが、SSPを終了した後、 ghost/master/descript.txt だけを残して、それ以外のファイルを全て削除します。ゴーストとして起動できなくなりますが、構いません。

descript.txtに次のようにhomeurlを記述します。

homeurl,http://www.example.com/

別のゴーストでSSPを起動し、Ctrl+Eでゴーストエクスプローラを立ち上げ、自作ゴーストを選択してネットワーク更新を開始します。するとなんと、すべての更新ファイルが降ってきます。髪の毛一本から人体を復元する黒魔術みたいですが、差分更新である伺かのネットワーク更新とは元々そういうものであり、そうあるべきものです。この時に必要なファイルの取得に失敗したら、そのファイルを更新ファイルに含めてあらためてアップロードすることで、エラーを解消することができます。

更新エラーを防ぐために

運良く更新エラーの報告を頂けた場合は上記の方法で検証できますが、そもそも更新エラーを起こさないようにするための工夫があったほうが望ましいでしょう。

エラーを未然に防ぐ最良の方法は、ツールに任せることです。人間が手作業で更新していれば当然間違いが起こります。現在入手可能でメジャーなツールと言えば「そだて」でしょうか。他にご紹介できるものが無いので歯痒いですが。

追記

SiReFaSoメンテナンス延期のお知らせ

 - by Don

本日予定していたSiReFaSoのメンテナンスを延期することにしました。

理由は、差し替え予定のシステムに不具合が発覚し、まだ原因調査中であり修正が間に合わなかったためです。今回のメンテナンスはその性質上、急を要するものではなく、新しいシステムも信頼性の面で十分ではないので、アップグレードは時期尚早であると判断しました。

次回メンテナンスの予定ですが、まだ決まっておりません。また、メンテナンスに要する時間が当初の見積もりよりも短い時間で済む見込みなので、次回は予告なしに決行し、速やかに入れ替えを完了するつもりでおります。年内には入れ替えを完了したいと考えていますが、システムの作り直しが必要となる可能性もあるため、来年以降になる場合もあり得ます。

しばらくは新規登録についてもこれまで通りお使いいただけますので、ご利用ください。

SiReFaSoメンテナンスのお知らせ

 - by Don

来週の11-25(金)?11-26(土)にかけての深夜11-26(土) 16:00?SiReFaSoのメンテナンスを開始するため、新規登録が一時的に利用できなくなります(予定日時は変更される可能性があります)(変更されてます)

内部的に全く新しい内容に入れ替えるため、全てのデータを一旦削除します。その後、新しくデータを登録し直す作業を行います。

作業は1日では終わりません。場合によっては1週間かかるかもしれません。その間、新規登録ができないことに加え、必要な場合は更新の補足もストップする場合があります。長期間ご不便をおかけすることになりますが、ご了承願います。作業は1日?2日で終わる可能性が高いです。

内部的な話とか

何故こんなに時間がかかるかというと、データの削除・追加の過程で1日分の無料枠のリソースを消費し尽くしてしまうため、翌日リソースが回復するまで作業が続行できないからです。Twitterで例えるなら、連投し過ぎでAPIを使いきってしまい次の1時間まで規制されるみたいな状況です。

現在SiReFaSoには600件以上のデータが登録されていますが、一回の削除・追加で200件が上限と仮定すると1週間というのは妥当な予測であると考えています。データが何もないまっさらな状態で一日放置とかありえますが、落ち着いて見守っていただければ幸いです。

かなりAPI消費量の切り詰めに成功したため、予定より早い時間で作業が完了する見込みです。

メンテナンスの目的

まず、Google App Engineの料金体系が変更になったことへの対応です。現在、毎日平均で無料枠上限の80%程を消費していますが、アクセスの多い日にはこれを超える可能性があり、また今後登録データが増えればサービスを維持できなくなる場合もありえます。上限の50%以下に抑えることが当面の目標です。

次に、機能の改善です。/?page=20など奥のページに、先頭から順に辿らなくてもいきなりアクセスできるようになります。検索で大文字小文字の区別を廃止し、directory名でも検索できるようになります。一件ずつだった登録が一度に複数件登録できるようになります。他にもありますが、詳細はリリース後に再度告知します。

最後に、応答速度の向上です。レスポンスがめっちゃ早くなります(当社比)。体感的にはさほど変わりません。 :(

DAU-Crawler

本日、DAU-Crawler/1.x系最後のリリースを行いました。SiReFaSoでの正常動作が確認できたら2.0をリリースする予定です。1.x系とまったく互換性がないですが、SiReFaSo以外に使われているという話は聞かないので、移行に関するドキュメントは特に用意しておりません。 :)

参考

昨日あったGAE関連イベントの資料を見つけたので勉強中です。非常にタイムリーで役立つ知識が満載で助かります。無料枠でGAEを運用する人は必読です。

Google App Engine 倹約のすゝめ

NAR-Station更新 日本語ファイル名処理不具合修正

 - by Don

日本語名のファイルを正常に保存できない不具合が以前にもありましたが、
その修正が不十分であったため、再度更新しました。

nikolat / NAR-Station / overview — Bitbucket

併せて、SoSiReMiにアップロードされたNARが正常に保存されていなかったため、差し替え作業を行いました。ご不便をお掛けしております。

それはさておき

Google App EnginePreview版を卒業しました。Python2.7がサポートされたことがウリなのですが、High Replication Datastoreに移行しないと利用できない、移行のためには今のID(ドメイン)を捨てる必要がある、とのことでPython2.5を使い続けることにしました。

他にめぼしいアップデートとしてBlobstoreが無料枠でも使えるようになったのが嬉しいです。今までは頑張ってDatastoreでちまちまファイルを小分けにして保存していたのですが、これでNARをまるごと保存できる上に高速化できそうです。今までの苦労はなんだったのだー。ただ今のソースを書き換えるとなるとかなり大変なので時間がある時に試してみます。

ところで新料金体系になってからも問題なく動いていますね。でもSiReFaSoはかなりギリギリなのでこちらの書き換えが最優先と考え、今ソース最適化の作業中です。

GAE/P 開発者向けリンク

GAE/P SDK 1.6.0 でkayのrunserverがコケる問題の対策

Python2.5とPython2.7のMySQL-python(mysqldb) Windowsインストーラ