[フレーム]
BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

InfoQのすべての体験をアンロックして、そのメリットを最大限に活用しましょう

ログインして、InfoQのすべての体験をアンロックしましょう!お気に入りの著者やトピックの最新情報を入手し、コンテンツと交流し、限定リソースをダウンロードできます。

ログイン
または

アカウントをお持ちでない方

登録
  • あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。
  • 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。
  • 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

Topics

地域を選ぶ

InfoQ ホームページ ニュース UberのPostgresからMySQLへの移行

UberのPostgresからMySQLへの移行

2016年9月25日 読了時間 3 分

作者:

翻訳者

原文(投稿日:2016年08月12日)へのリンク

最近のブログ記事により、Uberは、なぜPostgreSQLからMySQLに置き換えをしたのか、詳細を明らかにした。

Userが抱える主要な課題は、Postgresにおけるライトアンプリフィケーション問題に由来している。 ライトアンプリフィケーションは、複数のインデックスが貼られているテーブル内の1レコードを更新することにより、結果的に全てのインデックスが更新され、ディスクへの書き込みが大量発生する現象である。SSDを使用している場合には厄介な問題となる。 HOT(Heap-Only-Tuples)機能は、この問題を軽減でき、いくつかの使用例においては解決策となる。 いずれにせよ、ライトアンプリフィケーションの問題により、レプリケーションの際、1回の更新に対して複数回の更新がネットワーク上に発信されることになる。 これは障害復旧シナリオにおいては大きな問題である。 データセンタはお互いに離れた地点に設置すべきだが、同時に十分な帯域を確保し、常に利用可能でなければならない。

さらに、定期アップグレードの最中、Postgres9.2のバグにより、いくつかのテーブルが破壊された。 非活性にしたはずの項目に対するマークに失敗することが原因である。 影響を受ける項目数の計算が行えなくなり、さらに物理レイヤにてレプリケーションが発生することにより、データベースインデックスが破壊される恐れがある。

また、Postgresは真のレプリカMVCCをサポートしていない。 レプリカは、マスタと同一のWAL(Write Ahead Log)を適用せねばならない。 Postgresの設計では、トランザクションによりオープンされた行による影響を受ける場合、WALによるデータベース更新がブロックされる。 これは、ロングトランザクション(long running transaction)に対しては特に深刻である。 ロングトランザクションは、WALスレッドをブロックしてしまうため、Postgresによって中断される。 これは、この現象を知らないアプリケーション開発者にとって気づきにくい問題となる。 特にトランザクション境界を明確にしないORMを使用しているときには顕著な問題である。

レプリケーションが物理レベルでの処理であるため、データベースの更新は全ノードで同期している必要がある。そうでなければレプリケーションは機能しない。 これがUberにとって、新規リリースにアップグレードする際の大きな問題となった。 この問題は、Postgres 9.4から利用可能なpglogicalにより解消できる。

Uberの抱える柔軟なレプリケーションの課題に対して、MySQLであればいくつかの優位性がある。 MySQLは、接続ごとにプロセスを生成するのではなく、軽量スレッドを生成する。 さらに低コストのキャッシュ機構が、設計判断をする際に有利に働く。 ディスク表現に関する主たる課題は、InnoDBストレージの使用により、効率良くコンパクトになった。Postgresで発生した複数インデックスのライトアンプリフィケーションの影響も防げる。

Uberのユースケースに対する的確な反論はMarkus Winand氏、Simon Riggs氏、およびRobert Haas氏が行っている。 彼らは、これらの問題がいくつかのユースケースでは解決可能であることを示している。 また、全ての状況においてPostgresよりMySQLが適切ともいえないこと、その逆もまた言えることを示している。

Rate this Article

Relevance
Style

この記事に星をつける

おすすめ度
スタイル
  • 関連記事

    • 関連スポンサーコンテンツ

特集コンテンツ一覧

InfoQ ニュースレター

毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。 サンプルを見る

We protect your privacy.

BT

AltStyle によって変換されたページ (->オリジナル) /