バックエンドサーバーが2台止まっていました
3台中2台のアプリケーションサーバー(lighttpdが起動したfastcgi-php)が応答を返さない状態になっており、500エラーを返す状態になっていました。先ほど復旧させましたが、今のところ原因は不明です。高負荷が原因かなー。でも特筆するほど高負荷になっていたとは思えないんだけどなー。
ユーザーページでの各種アフィリエイト利用が可能になりました
ユーザー設定から、
- Amazonアソシエイト
- bk1ブリーダー
- Google AdSense
の各アフィリエイトのIDを登録しておくことで、1470.netのユーザーページ(http://1470.net/user/[ユーザー名]/以下)で、自分のアフィリエイトIDを利用することができるようにしました。
キャッシュの関係で、しばらく設定が反映されないことがありますが、数分程度で設定したIDを利用して表示されるようになります。
なお、この設定を利用してアフィリエイトを行う場合は、各アフィリエイトの規約等を確認した上で、自らの責任で設定を行ってください。何らかの不都合が起きても、1470.netサービス提供者は一切の責任を負いかねます。
あと、各アフィリエイトIDの入力チェックが結構いい加減なので、もしかしたら正規のIDなのに不正なIDだとエラーが出て、入力が弾かれる場合があるかもしれません。その場合はコメント等で教えてもらえれば、チェックロジックを修正します。
バグってました
設定を保存しないバグがありました。修正したのでもう一度設定をやり直してみてください。今度はちゃんと設定できると思います。
はてな認証APIに対応しました
リニューアル版1470.netで、はてな認証APIによるはてなアカウントでのログインに対応しました。使い方としては、
- すでにTypeKeyを使って登録した1470.net上のアカウントに、新しくはてなアカウントを結びつけ、TypeKeyとはてなのどちらを使っても、1470.net上の一つのアカウントにログインできるようにする(TypeKeyサービスが落ちている時などの代替手段)
- TypeKeyではなくはてなアカウントを使って、1470.net上のアカウントを作成し、以降はてなアカウントを使って1470.netにログインする。
があります。従来の、
- TypeKeyアカウントを使って1470.net上のアカウントを作成し、以降TypeKeyアカウントを使って1470.netにログインする
とあわせると3パターンの使い方があることになります。
ただ、現在セッション周りの挙動がちょっと怪しいです。特にIEコンポーネントブラウザを使ったときに、セッションがうまく保存されず、ログインページを延々とリダイレクトし続けることがあります。
現在使用しているセッションハンドラが、諸事情により、あわててでっち上げたやつなんで、何かおかしい部分があるのかもしれませんが、再現率が低く、いまいち状況がつかめていません。挙動がおかしい場合は、IEコンポーネントブラウザ以外を利用するとうまくいくかと思います(って、1470.netを使うためにブラウザを変えろってのもひどい話ですが)。原因が分かり次第なおしますんで。
スケーラビリティとミニマムの負荷
旧バージョンはDBのselectクエリーは分散できるものの、それ以外は分散がほとんど効かないような設計だった。今回はアプリケーションサーバーもDBサーバーも単純に追加できるような設計にしてみたんだけど、そういう設計だとミニマムでの負荷はどうやってもある程度ベタに書いた設計よりも高くなってしまうなー。
すでに現段階で結構な手数を高速化(大量に呼び出されるurlForをベタに書き直したり、エスケープ処理の呼び出しにかかるコストを下げたりとか、とか)に費やしているんだけど、それでも1台増やしたサーバーがぱんぱんだ。DB負荷対策のためにメモリを増やしておいたんだけど、ロジックに費やすCPUパワーの方が先に頭打ちになってしまった。
商売でやってるんだったら、素直にサーバーを増やせばいいんだろうけど、個人でやっていると金だけじゃなく運用にかかる人的コストもばかにならない(俺は開発にかけるコストは趣味だから気にならないけど、運用は趣味じゃないから、その分のコストが増えるとうんざりしてくる)から、サーバーを増やす敷居が高い。
というわけで、単純にサーバーを追加するだけでスケールするような設計は、商売でやるにはいいんだろうけど、個人では実はあまり使えず、それよりも小技で高速化しやすいような設計(キャッシュをメソッド単位できめ細かくかましたり、フレームワーク依存のロジックを高速バージョンに差し替えやすかったり)の方がメリットが大きいかもなー。ひとまずメモリはまだ余っているんで、CPUパワーをメモリ使用量とトレードするような高速化を補助する仕組みをいろいろ追加していこう。っつーのはまあ、一般的には大して需要が大きくはないだろうけど。
