【記事】数値でみるpixivプロダクトの成長フェーズ
ピクシブのオウンドメディア「pixiv inside」にて、2017年9月9日に開催されたpixiv創立10周年記念イベント「pixiv MEETUP」のトークイベントリポート第3弾が掲載されました。テーマは「数値でみるpixivプロダクトの成長フェーズ – pixivの傾向から紐解く」です。
4秒(現在、約4秒に1回投稿されている)、83%(コミケ参加者におけるpixiv参加者数の割合)、446回(pixivが公式に開催しているイラストコンテストの回数)など、「へぇ~」と思わせる数字が並ぶのですが、驚いたのが「2,147,483,647回」というもの。
約21億5000万という数字ですが、これは2016年2月時点の「累計ブックマーク数」なのだとか。エンジニアにはピンとくる人もいるかもしれないとのことですが、この値は「int(整数型)変数」の最大値なのだそうです。
プログラミングに用いるint型(整数型)の変数は-21億4748万3648から21億4748万3647までの数字を格納できるのですが、この数字を超えると従来の変数では格納できません。昔、1999年から2000年に移り変わるときに日付がおかしくなって(99から00になってしまうため)システムに重大な影響を及ぼす「2000年問題」というのがありましたが、それと同じような問題がpixivには起きていたんですね。
時代を遡れば遡るほど、コンピュータやサーバーのメモリーは高価で重要ですから、プログラムやそれを構成する1つである変数などはできる限りコンパクトにしなければなりません。しかし、想定以上に利用者やブックマーク数などの構成要素が増えると、あらかじめ用意されていた変数では対処しきれなくなってしまうというわけです。pixivの場合はそのスピードが尋常じゃなかったのですが、2月14日のバレンタインデーに「ブックマークができない」という問い合わせが多数寄せられることでその問題が発覚し、エンジニアはその問題に急ピッチで対応したそうです。
こういう問題ってよく分からない人だと「そんなこと事前に想定できるんだからもっと大きな数字を格納できるようにしておけばいい」と考えるかもしれません。確かに、1999年から2000年になるときの2000年問題は、年の桁数を4桁にしておくだけで問題が生じなかったかもしれません。しかし、では西暦9999年から1万年になるときは? そこがクリアできても、西暦9万9999年から10万年になるときはどうする?……と、問題は尽きません。「いつか来るであろう問題」が「いつごろに来るかもしれない」ということを把握し(この問題は事前に把握していたわけではないそうですが、数字を見てエンジニアがピンときたんでしょうね)、対処できるようにするというのがシステム提供者としての責務なんでしょうね。
広告の月刊インプレッション数が約170億とか、1日あたりの総登録者数における海外での登録ユーザー数「19500/26000」という数字も興味深かったですが、個人的にはこの数字が最も心に響きました。