3月17日頃から、ツイートをブログ形式で見られる機能を導入しました。新機能の紹介と技術的な変更ポイントをお伝えします。分析の高速化のためにこれまでのwhotwiの分析機能では、アクセスの都度直近600件のツイートを取得、分析して表示していました。ツイートの取得はTwitterのAPI経由で200件ごとに取れるので、3回リクエストする必要があります。いうAPIでは、page/limitのようなページングではなく、max_id/since_idで取得する方式(前のリクエストで帰ってくるidを次のリクエストで使う必要がある)なので、並列化して高速化することはできません。APIを3回叩くのにどうしても時間がかかってしまうので、体感少し早く感じるようにするために、ページをまず返却し、AjaxでAPIを叩き、データを取得するようにしていました。これでもやはりAPIをシリアルに叩く部分の時間はどうしてもかかってしまっていました。結果はキャッシュするので、しばらくの間は時間がかからず表示できるのですが、結局そのキャッシュが切れるとまた1から取得し直す必要があります。そこで、今回、ツイートをDBに保存するようにし、差分のみTwitterから取得するように変更しました。多くのユーザーはデイリーのツイート数が数十に収まるので、数日に一回このAPIを叩けば分析対象を減らさずに、処理時間を短縮できます。分析には1ユーザーあたり600件のツイートが必要です。whotwiでは1日に数万ユーザーの分析が行われるので、それだけで数百万件のツイートを保存する必要があります。したがって、大量のツイートの保存に耐えられる構成にする必要があります。トラブルを減らすために慎重にDBのスキーマ設計を行いました。このため、久しぶりに「ハイパフォーマンスMySQL第三版」を読みました。この本は、体系的に書かれているので、大変勉強になりました。Auroraへの移行ずっと増えていくツイートが増えるたびにディスクスペースの心配する嫌なので運用をできるだけ楽にしたい、「新しいもの使ってみたい」ということで、RDSのAuroraに移行しました。くらべて最大5倍!の性能があるとされています。5.6互換とされていて、移行前はMySQL5.6を使用していたので、本当にソースコードの修正なくさくっと移行できました。ツイート1億件、数十GBくらいまできましたが、今のところ特に問題はありません。サイズがr3.largeからしかないので、本当にスモールスタートという時は使えないですが、スケールアップした途中でAuroraに乗り換えるのは全然ありですね。料金については、思ったよりも時間料金より、I/Oコストがかさみます。一箇所インデックス使えずフルスキャンになっている箇所があり、I/Oのコストがやばいことになっていましたが、修正したら半分になりました。AWSのデイリーコストを見る習慣がなかったらと思うとぞっとします。今後も機能改修を行っていきます。フォロワー募集掲示板」をリリースしました!!こんにちは、小西です。フォロ...2016-01-18whotwiがさらに高速になりました!!こんにちは、@koniです。SocialDog、ユーザ登録100万人を超えるTwitter分析サービス「whotwi」を運営。フォロワー募集掲示板」スパム対策のためログイン必須にし、通報機能をつけました2016-03-15フィッシング詐欺の偽サイトを作られた上、5000以上のアカウントを乗っ取られた件はてなブログをはじめよう!konisimpleさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。