SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Security Online Day 2026 Spring

2026年3月 オンライン開催予定

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2025年夏号(EnterpriseZine Press 2025 Summer)特集「“老舗”の中小企業がDX推進できたワケ──有識者・実践者から学ぶトップリーダーの覚悟」

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1652772241096-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1652772241096-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1652772241096-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1652772241096-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1652772241096-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
DB Press

フェイスブック松信さんが解説!FacebookはデータベースをInnoDBからMyRocksへ移行中


 2017年6月16日から2日間、インサイトテクノロジーはdb tech showcase OSS 2017を開催した。2日目にはフェイスブックの松信嘉範氏がFacebookで用いているデータベースについて解説した。

フェイスブック 松信嘉範さんが登場!
フェイスブック 松信嘉範さんが登場!

 世界中のユーザーがあらゆる情報を共有しているFacebook。ユーザーの投稿や「いいね!」などのアクティビティはメインデータベースのMySQLに刻々と書き込まれていく。同社はこのMySQLおよびストレージエンジンInnoDBに性能を高めるための独自の改良を加え、日々運用している。

 サイトでは常に大量の書き込みが発生しておりデータはペタバイト級、膨大な処理をまかなうために大量のサーバーでシャーディング(分散)をしている。またMySQLデータベースの前にキャッシュを置き、多くの読み込みはキャッシュでヒットしてすぐ応答を返せるようにしている。

 メインデータベースのストレージにはフラッシュストレージ(SSD)を使用。SSDは高いIOPS性能を出せるものの、価格はいまだにHDDよりも高い。なにしろ台数が半端ないので、ストレージ使用量(スペース)を少しでも減らすことができれば、コスト削減に貢献する。これはフェイスブックにおいて長年優先度が高い課題となっていた。

 これまではMySQLのストレージエンジンはInnoDBで運用していた。しかし、ストレージ使用に関してInnoDBならではの課題も抱えていた。例えば耐障害性を高めるために二重に書き込む処理(Doublewrite)、データのフラグメンテーション(断片化)、データ圧縮でデータサイズを縮小してもまだストレージ使用スペースに冗長さが残るなど、InnoDBではストレージ使用量が増えてしまいがちな性質があった。

RocksDBが効率よくストレージを使える理由

 そこでフェイスブックではストレージ効率が高いLevelDBに目をつけた。これはGoogleが開発した階層化されたキーバリュー型NoSQLデータベースで、C++で書かれている。このLevelDBをFacebookで使えるように改良したのがRocksDB。LevelDBから見ればフォークとなる。

 さらにRocksDBをMySQLのストレージエンジンとして使えるようにしたのがMyRocks(http://myrocks.io/)。ストレージ効率の高さを持ちつつ、SQLやレプリケーションなどMySQLの機能が利用できる。フェイスブックはMyRocksを2016年にオープンソースとしてGitHubで公開し、今では本番でも一部運用している。

 RocksDBはHBaseやCassandraのようなLSM(Log Structured Merge)構造をしており、構成要素としては主にMemTable、WAL(Write Ahead Log)、圧縮、カラムファミリーからなる。書き込みがコミットされると、まずはWALに書き込み、次に書き込みを保持するMemTableに書き込む。両方に書き込めたら書き込み成功。アクティブなMemTableがいっぱいになるとMemTableとWALが新しく切り替わる。MemTableがメモリに一定量たまると、データファイルに書き出す(フラッシュする)。このデータファイルはさらに何段階か圧縮して容量を減らし、ストレージの使用スペースを抑えている。

RocksDBのアーキテクチャ
RocksDBのアーキテクチャ

 WAL(ログ)やMemTableが一定量に達すると書き出すデータファイルはSST(Sorted String Table)と呼ばれ、作成時にソートと圧縮される。このSSTが一定量たまるとマージしてより大きなSSTを作る。この時も全体でソートと圧縮が行われる。

 InnoDBだとデータは16KBのページ単位となる。圧縮して5KBに縮小できたとしても、実際にストレージで使用するスペースは8KBになるなど、非効率さがある。一方RocksDBのSSTファイルは32MBや64MBなど大きなサイズとなる。複数のSSTファイルをまとめて圧縮して縮小して書き込む時にはOSのセクタ単位(4KBなど)となるので、InnoDBほど冗長にならない。ここが圧縮効率がいいとされる理由だ。

 またRocksDBで大きな特徴となるのが階層化だ。LevelDBの由来でもある。この階層化とは先述したように、SSTファイルをまとめた段階のようなもの。最初にMemTableからSSTを作成した時(レベル0)はあまり大きくないが、まとめる(レベル1~)たびに約10倍ほど巨大化する。

 書き込み効率はいいものの、範囲検索のような読み込みでは複数のレベルにデータが分散する可能性もあり、InnoDBほど効率はよくない。読み込み時の非効率さを防ぐ対策として、ブルームフィルターがある。ブルームフィルターは探しているデータがどのレベルに存在するか見分けられるようになっている。

 繰り返しになるが、RocksDBはストレージの使用効率は優れている(あまりスペースを使わなくてすむ)。ただし読み込み時は多少不利という特徴がある。

次のページ
MyRocksの効果、そして本番環境データをどのように移行したか

' ); }

この記事は参考になりましたか?


広告を読み込めませんでした

広告を読み込み中...

  • Facebook
  • X
  • note
DB Press連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

EnterpriseZine/Security Online キュレーターフリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Online ã®å–材・記事も担当しています。Webサイト:https://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/9450 2017/06/22 13:43

Job Board

AD

' ); document.write(''); } $(window).on('load', function() { // 中身が無い広告でslotOnloadを通らない場合がある var show_ad = 0; dfp_job_board.map(function(ad_id) { var ad = $('#'+ad_id[0]).find('iframe').last(); var contents = ad.contents(); if (contents.find('body').length === 0 || !contents.find('body').html()) { $('#' + ad_id[0]).remove(); //$('#' + ad_id[0]).attr('class', 'noad'); } else { show_ad++; } }); if (show_ad == 0) { $('.ad-job-board-wrap-sp').hide(); } }); } else { $('.ad-job-board-wrap-sp').hide(); }

おすすめ

アクセスランキング

  1. 1
    キリンはAI時代を「データメッシュ」で戦う──独自生成AIの活用拡大で新たに挑むマネジメントの現在地
  2. 2
    「中小だから……」は言い訳 超アナログな地方中堅企業を2年半で変貌させ、四国のITをリードする存在に
  3. 3
    AIが出した答えを、投資家に説明できますか? SAS中村氏が語るAI時代の意志決定リテラシー
  4. 4
    日本企業の「人への優しさ」がAI活用の足かせに?経済産業省が官民連携で進める“現場データのAI化”
  5. 5
    村田製作所が挑む「自律分散型DX」の現在地──80年の歴史に新たな基盤を築くDXリーダーの覚悟
  1. 6
    現場に根付いた「カイゼン文化」を管理間接部門でも──矢崎総業が生成AI活用で重視する“利益追求”
  2. 7
    なぜカプコンは超人気ゲームにTiDBを選んだのか?モンスターハンターワイルズを支えるDB基盤に迫る
  3. 8
    データサイエンティストを疲弊させてきた“分析前処理”が「Gemini」で改善!活用法を実例で解説
  4. 9
    松屋 古屋毅彦×テックタッチ 井無田仲──伝統と革新の両立を実現する、松屋銀座のデジタル変革の舞台裏
  5. 10
    集中か? 分散か? NTTドコモがDWH/データレイクから「データメッシュ」に移行したワケ

アクセスランキング

  1. 1
    キリンはAI時代を「データメッシュ」で戦う──独自生成AIの活用拡大で新たに挑むマネジメントの現在地
  2. 2
    「中小だから……」は言い訳 超アナログな地方中堅企業を2年半で変貌させ、四国のITをリードする存在に
  3. 3
    AIが出した答えを、投資家に説明できますか? SAS中村氏が語るAI時代の意志決定リテラシー
  4. 4
    日本企業の「人への優しさ」がAI活用の足かせに?経済産業省が官民連携で進める“現場データのAI化”
  5. 5
    村田製作所が挑む「自律分散型DX」の現在地──80年の歴史に新たな基盤を築くDXリーダーの覚悟
  6. 6
    現場に根付いた「カイゼン文化」を管理間接部門でも──矢崎総業が生成AI活用で重視する“利益追求”
  7. 7
    なぜカプコンは超人気ゲームにTiDBを選んだのか?モンスターハンターワイルズを支えるDB基盤に迫る
  8. 8
    データサイエンティストを疲弊させてきた“分析前処理”が「Gemini」で改善!活用法を実例で解説
  9. 9
    松屋 古屋毅彦×テックタッチ 井無田仲──伝統と革新の両立を実現する、松屋銀座のデジタル変革の舞台裏
  10. 10
    集中か? 分散か? NTTドコモがDWH/データレイクから「データメッシュ」に移行したワケ
  1. 1
    「中小だから……」は言い訳 超アナログな地方中堅企業を2年半で変貌させ、四国のITをリードする存在に
  2. 2
    データサイエンティストを疲弊させてきた“分析前処理”が「Gemini」で改善!活用法を実例で解説
  3. 3
    トライアルの西友買収でどんな“化学変化”が起こるのか?──技術革新を担うRetail AIに訊く
  4. 4
    「敵を知って己を知る」──悪用厳禁の“ハッキングデモ”から攻撃者に与えている侵入の隙に気づく
  5. 5
    アサヒが突かれた脆弱性、日本企業の実態……Tenableが訴えるプロアクティブなセキュリティへの転換
  6. 6
    なぜアシックスは営業利益率を飛躍的に向上できたのか? ──企業価値を高めた「ガチンコ経営」とは?
  7. 7
    MUFG、スクウェア・エニックスなどが進める“着実な”システム基盤刷新:クラウドシフトで見据える未来
  8. 8
    社員が作った便利なツール、それは会社のもの?それとも社員の「発明」?ある裁判から見えた判決のポイント
  9. 9
    AWS障害を受けて考える「もしも、データ基盤が止まってしまったら?ユーザー側がするべき備えとは?」
  10. 10
    止めずに移行 メルカリの40TB超・50台MySQLからTiDB Cloudへ

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    キリンはAI時代を「データメッシュ」で戦う──独自生成AIの活用拡大で新たに挑むマネジメントの現在地
  2. 2
    「中小だから……」は言い訳 超アナログな地方中堅企業を2年半で変貌させ、四国のITをリードする存在に
  3. 3
    AIが出した答えを、投資家に説明できますか? SAS中村氏が語るAI時代の意志決定リテラシー
  4. 4
    日本企業の「人への優しさ」がAI活用の足かせに?経済産業省が官民連携で進める“現場データのAI化”
  5. 5
    村田製作所が挑む「自律分散型DX」の現在地──80年の歴史に新たな基盤を築くDXリーダーの覚悟
  1. 6
    現場に根付いた「カイゼン文化」を管理間接部門でも──矢崎総業が生成AI活用で重視する“利益追求”
  2. 7
    なぜカプコンは超人気ゲームにTiDBを選んだのか?モンスターハンターワイルズを支えるDB基盤に迫る
  3. 8
    データサイエンティストを疲弊させてきた“分析前処理”が「Gemini」で改善!活用法を実例で解説
  4. 9
    松屋 古屋毅彦×テックタッチ 井無田仲──伝統と革新の両立を実現する、松屋銀座のデジタル変革の舞台裏
  5. 10
    集中か? 分散か? NTTドコモがDWH/データレイクから「データメッシュ」に移行したワケ

アクセスランキング

  1. 1
    キリンはAI時代を「データメッシュ」で戦う──独自生成AIの活用拡大で新たに挑むマネジメントの現在地
  2. 2
    「中小だから……」は言い訳 超アナログな地方中堅企業を2年半で変貌させ、四国のITをリードする存在に
  3. 3
    AIが出した答えを、投資家に説明できますか? SAS中村氏が語るAI時代の意志決定リテラシー
  4. 4
    日本企業の「人への優しさ」がAI活用の足かせに?経済産業省が官民連携で進める“現場データのAI化”
  5. 5
    村田製作所が挑む「自律分散型DX」の現在地──80年の歴史に新たな基盤を築くDXリーダーの覚悟
  6. 6
    現場に根付いた「カイゼン文化」を管理間接部門でも──矢崎総業が生成AI活用で重視する“利益追求”
  7. 7
    なぜカプコンは超人気ゲームにTiDBを選んだのか?モンスターハンターワイルズを支えるDB基盤に迫る
  8. 8
    データサイエンティストを疲弊させてきた“分析前処理”が「Gemini」で改善!活用法を実例で解説
  9. 9
    松屋 古屋毅彦×テックタッチ 井無田仲──伝統と革新の両立を実現する、松屋銀座のデジタル変革の舞台裏
  10. 10
    集中か? 分散か? NTTドコモがDWH/データレイクから「データメッシュ」に移行したワケ
  1. 1
    「中小だから……」は言い訳 超アナログな地方中堅企業を2年半で変貌させ、四国のITをリードする存在に
  2. 2
    データサイエンティストを疲弊させてきた“分析前処理”が「Gemini」で改善!活用法を実例で解説
  3. 3
    トライアルの西友買収でどんな“化学変化”が起こるのか?──技術革新を担うRetail AIに訊く
  4. 4
    「敵を知って己を知る」──悪用厳禁の“ハッキングデモ”から攻撃者に与えている侵入の隙に気づく
  5. 5
    アサヒが突かれた脆弱性、日本企業の実態……Tenableが訴えるプロアクティブなセキュリティへの転換
  6. 6
    なぜアシックスは営業利益率を飛躍的に向上できたのか? ──企業価値を高めた「ガチンコ経営」とは?
  7. 7
    MUFG、スクウェア・エニックスなどが進める“着実な”システム基盤刷新:クラウドシフトで見据える未来
  8. 8
    社員が作った便利なツール、それは会社のもの?それとも社員の「発明」?ある裁判から見えた判決のポイント
  9. 9
    AWS障害を受けて考える「もしも、データ基盤が止まってしまったら?ユーザー側がするべき備えとは?」
  10. 10
    止めずに移行 メルカリの40TB超・50台MySQLからTiDB Cloudへ