2015年8月22日発売のWEB+DB PRESS Vol.88 にメルカリのデータベース設計、運用に関する特集記事をインフラチームの@cubicdaiya、@siroken3、@kazeburoの3人で書かせて頂きました。
特集のタイトルは「実戦データベース設計 サービスの急拡大に耐えるスケール戦術」です。メルカリでは、これまでサービスの急激な成長に伴い、何度もデータベースのスケールアップ・スケールアウトを行ったり、NoSQLの導入をして増え続ける負荷とデータに対応してきました。
この特集では、まず、これまでの大規模なWebサービスが直面したデータベースのスケーラビリティの問題とその対応方法を4つの期に分けて紹介します。続く2章、3章ではメルカリでのテーブル設計の工夫や、実際の運用で起きていたデータ領域の不足問題にどのように対処していったのか説明します。4章では視点を変えて、RDBMS以外のデータベースを取り上げました。メルカリで活用しているmemcachedやRedisといったNoSQLから、ログデータの分析サービス、Norikraによるストリーム処理まで幅広く紹介しています。
データベース設計というと、RDBMSのみが取り上げられていると考える方が多いのではないかと思いますが、それだけではさまざまなミドルウェアやクラウドサービスを駆使して運用されている、現在のWebサービスのほんの一部の側面しか紹介することができません。そこでこの特集ではもう少しテーマを広げ、Webアプリケーションが増え続ける様々なデータをどう格納し、どう扱っているかに焦点をあてて章を構成しました。データベースを扱うインフラ系エンジニアだけではなく、アプリケーションの開発を行うエンジニアにとっても参考になれば幸いです。