図解!セカンドライフのDB変遷!
システム拡張の問題
開始以来、急速な成長を遂げたセカンドライフのシステムは当初の設計通りに拡張され、トラブルもなく、美しく洗練された設計思想のもと進められたものなのでしょうか?
結論から言えば、このセカンドライフのシステムは将来を見越して設計されましたが、今も問題が山積みです。その意味では決して、模範となるDB設計の事例ではないと思われます。
サービスを開始後、何度も問題が発生し、ユーザーのデモが起こり、システム障害が頻繁に起こり、今も週に一度はメンテナンスとして数時間ログインできない状態が続いています。これはログインしないとすべての作業ができないセカンドライフにとっては致命的ともいえるものです。
しかし、これは産みの苦しみというべきものであり、世界初の商用3D仮想空間システムのオープンソース化の過程で発生する問題を理解するには格好の題材です。つまりこれはリアルタイムグラフィックス技術をクライアント、サーバー両方でオープンソースとする過程であり、その意味で大いに参考になるでしょう。
萌芽期(2004年~2006年)のシステム構成
前ページで説明したように、セカンドライフのデータベースはMySQLを採用しています。今も多くのユーザーから、もっと信頼性・可用性の高いデータベースに変更すべきだという要望があるようですが、セカンドライフでははじめからすべてをオープンソースにする予定だったため、その選択はあり得ませんでした。
なぜなら、オープンなバーチャルリアリティー空間を実現する「メタバース」とは、誰でもが自由に仮想世界を作ることを可能にし、それを保証するオープンソースを前提にした世界だからです(これについては創業者がセカンドライフを作る時に参考にしたSF小説「スノウ・クラッシュ」ニール・スティーブンスン著(早川書房)に詳しい)。
当初からそれが前提の世界であったために、オープンソースの中でも高速性と堅牢性を兼ね備え、さらに当時数多くのOSに対応していたMySQLの採用はほぼ決まっていました。しかし、大規模になり、複雑になったデータベースを前にして、それを採用したために障害の度にシステムを停止する羽目になっている事実もあります。さらに当初から拡張性を前提としたシステム設計ではなかったために、余計に混乱を招いているようです。
2004年以降は多くの企業が参入し、ユーザー数が増え始めるといった環境の変化により、ボトルネックがたびたび発生するようになり、また信頼性が問題となってきました。そのためサーバーを増強するなどスケーラビリティに配慮するようになりました。
2004年に3月にはサーバーと1対1対応している「島」を処理する「シミュレーター」を販売するモデルになりました。以来、セカンドライフ内の「島」である「シミュレーター」が急速に数を増し2006年末には、アマゾンのレンタルサーバーサービス「EC2」を利用し「シミュレーター」をアウトソーシングし、要望に対応しています。
次ページでは、現在のシステム構成と将来の構想について紹介しましょう。