ホームページ  >  記事  >  データベース  >  Uber の MySQL の選択についての考え

Uber の MySQL の選択についての考え

黄舟
黄舟オリジナル
2017-02-07 11:51:361358ブラウズ

データベース界では、Uber が今年、PostgreSQL を MySQL に切り替えるという大きなイベントを行ったことは誰もが知っています。当時、コミュニティでは大騒ぎがありました。半年以上が経過しましたが、これら 2 つのリレーショナル データベースのどちらが優れているかについては、もう一度議論したくありません。ただ、その選択の背後にある理由を皆さんに考えてもらいたいと思っています。このインシデントで、Uber が移行を提案した重要な理由は次のとおりです。PostgreSQL は、多数の更新されたビジネス シナリオにおいて、IO オーバーヘッド (主にストレージ構造による) が多すぎるため、SSD または PCI-E カード デバイスを使用しているユーザーにとっては、基本的には移行できません。書き込み増幅を許容し、同時に次の要件が提示されます:

    データベースへの永続化が失敗した場合でも後で再試行できるように、書き込みバッファリング機能が必要です。
  • ダウンストリームの依存関係を通知する方法が必要であり、データの変更はロスレスで通知される必要があります。
  • セカンダリインデックスが必要です。
  • システムは、24 時間 365 日のサービスをサポートできるほど堅牢である必要があります。
  • 最も重要なことは、SchemaLess ストレージのサポートが必要であるということです
  • サーバーを追加することで容量を動的に拡張する機能。サーバーを追加すると、使用可能なハードディスク容量が増えるだけでなく、システムの応答時間も短縮されます。
  • これらのニーズに応えて、他のインターネット メーカーと同様に、Uber も Cassandra、Riak、MongoDB を試し、自社開発も検討しましたが、最終的にストレージ層として MySQL を選択しました。 ここで質問があります: MySQL は上記のニーズを満たすことができますか? 例:

    SchemaLess ストレージのサポート
  • 書き込みバッファリング機能、より高速なフェイルオーバー
  • より優れた拡張機能
  • 誰の印象でも、最初の Schemaless は数秒で MySQL を上回ることができます。 Uber の技術リーダーである Jakob Thomsen は、最終的にスキーマレス ストレージ ソリューションとして MySQL を使用したようです。なんと、これは、MySQL で作られたスキーマレス ストレージ ソリューションです。

好奇心に駆られて MySQL をもう一度見てみましょう。MySQL 5.7 から、Uber のニーズを正確に満たす 2 つの強力な機能が導入されていることがわかります:

    DocumentStore
  • X-Protocol
  • それぞれを個別に説明します:

DocumentStore

MySQL 5.7 以降、MySQL も NoSQL になり始め、json タイプをサポートし、さらに json サポートを追加したと考えることができます。ぜひ体感してください:

Uber の MySQL の選択についての考え CRUD などの従来の SQL 操作をサポートします。 NoSQL インターフェイスをより適切にサポートするために、これに基づいて別の強力なプロトコル、X プロトコルが開始されました。さまざまなプログラム用の多数の mysqlsh とドライバーも起動します。今理解できなければ、すぐに挫折してしまうかもしれません

X-Protocol

インタラクションのオーバーヘッドを削減し、メッセージ サイズを削減し、パイプライン処理をサポートし、通知処理をサポートする新しいプロトコルです


NoSQL のよりフレンドリーで豊富なサポートデータを考慮したデータ処理インターフェイス

より高速なクエリ応答


を実現するためのシャーディング 上記 2 つの機能は、MySQL 8.0 が重点を置く 2 つの機能でもあります。知識の更新が非常に早いので、これら 2 つの特徴を知らない場合は、時間をかけて知識を更新する必要があります。 MySQL はその威力を発揮し始めており、最近非常に速く更新されています。

Uber のニーズを正確に満たすのはこれら 2 つの機能です。NoSQL インターフェイス ストレージに基づいて、基盤となるデータは MySQL のレプリケーション レプリケーションを使用することが保証されています (MySQL グループ レプリケーションは間もなく GA になります)。データの分割とルーティングの設定は NoSQL インターフェイス層で簡単に実現でき、基盤となるレプリケーションによりデータの可用性とセキュリティをより確実に確保できます。

MySQL は、元々あったリレーショナル データベースではなくなりました。今では、さらに深く掘り下げる必要がある機能があります


上記は、MySQL を選択する際の Uber の考えに関するものです。詳細については、PHP に注目してください。中国語のウェブサイト (www .php.cn)!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。