NewSQL
開始する
今日、インターネット上のデータの急速な増加を観察することは非常に簡単です。 ある推定によると、2010年に作成されたデータは約1,200 EB(10 18バイト)であり、消費者データの主要プロバイダーであるインターネット上で2015年までに約8,000 EBUに成長します。
この成長はキャパシティの成長を先取りしており、データが分散された状態で格納されているが、同じマシン上にあるかのようにアクセスおよび分析される情報管理システムの出現につながります。
世界中のプログラマーが「SQL vs NoSQL」をテーマにグローバルなホリウォーズを開催していますが、GoogleやFacebookなどの大企業は10億人の視聴者を抱えており、DBMSの能力と究極の仕事に苦労しています。 データのスケーリングを容易にした新しいNoSQLテクノロジーの出現にもかかわらず、ACID要件(原子性、一貫性、分離、耐久性-「原子性、一貫性、分離、耐久性」)の操作のコンプライアンスに関連する問題は解決されませんでした-精度を保証する標準システムが中断された場合でも、DBMSを使用した運用トランザクションの実行。 このような背景に対して、VoltDBは他のいくつかの企業のサポートを受けて、SQLとNoSQLの最高の側面を組み合わせたNewSQLと呼ばれる新しいオープンソースプロジェクトをゼロから開発し始めました。
SQL
現在、10億人のユーザーによって作成された負荷に対処するために、Facebookは4000個のMySQLインスタンス(シャーディング、つまり特定の属性(ログインの最初の文字など)に基づくサーバーデータ間隔を使用)と9000個のmemcachedインストールで動作します。 Facebookは、会社のデータベースを保守する作業を監視する特別なMySQL @ Facebookページも保守しています。
MySQLの広く知られている問題は、このDBMSが大量のデータと大量のトランザクションを処理することを意図していないことです。 Stonebreakerは、他のSQLベースのデータベースと同様に、追加のデータベース操作のオーバーヘッドのために多くのリソースを消費することを追加します(たとえば、マルチスレッドをサポートし、ACIDフレームワーク内でクエリの正しい実行を維持します)。 これらの要件とコストは、少量のデータを扱う作業には干渉しませんが、増加するとすぐに通常の機能に干渉し始めます。
NoSQL
MongoDBやCassandraなどのNoSQLシステムは一般的になりつつあり、多くの人が、従来のリレーショナルDBMSに共通する制限のない代替手段と考えています。
問題を解決するために、大企業はNoSQLパラダイムを採用していますが、NoSQLデータベースは通常の構造化データを格納する役割にはあまり適していません。さらに、NoSQLを使用したACIDロジックをユーザーコードに埋め込む必要があるため、作業が複雑になります。 さらに、Stonebreakerによると、NoSQLのパフォーマンスは、従来のSQL指向のDBMSと比べてそれほど向上していません。
NewSQLに挨拶する
NewSQLソリューションの技術仕様
- 対話の主なメカニズムとしてのSQL。
- ACIDトランザクションのサポート。
- ロックを使用しない制御メカニズム、つまりリアルタイムデータの読み取りは記録と競合しないため、競合が解消されます。
- 従来のRDBMSソリューションよりもはるかに高いノードパフォーマンスを提供するアーキテクチャ。
- ボトルネックに悩まされることなく多数のノードを管理できる便利なスケーリング。
プロジェクト開発者は、NewSQLシステムは従来のOLTP RDBMSよりも約50倍高速であると主張しています。
NewSQLソリューション(dbShards)の1つのアーキテクチャ例。
NewSQL分類
この分類は、SQLインターフェースを保持するため、および従来のOLTPソリューションの問題であるスケーラビリティとパフォーマンスを解決するために取られたさまざまなアプローチに基づいています。
- 新しいデータベース :NewSQLシステムは、スケーラビリティとパフォーマンスを実現するために完全にゼロから開発されています。 生産性を向上させる重要な要素の1つは、プライマリデータのストレージであるRAMまたは新しいタイプのディスク(フラッシュメモリ/ SSD)の使用です。 このソリューションは、プログラム(VoltDB、NuoDB)または鉄レベル(Clustrix、Translattice)で実装できます。開発の例は、Clustrix、NuoDB、Translattice(商用)およびVoltDB、(オープンソース)です。
- 新しいMySQLデータベースエンジン :MySQLはLAMPスタックの一部であり、OLTPで使用されます。 MySQLのスケーラビリティの問題を克服するために、多数のMySQLベースのエンジンが作成されました。 良い面はMySQLインターフェースの使用ですが、悪い面があります-他のデータベース(古いMySQLを含む)からのデータ移行はサポートされていません。 実装例-Xeround、GenieDB(商用)TokuTek; Akiban、MySQL NDB Groupなど(オープンソース)。
- 透過的クラスタリング :これらのソリューションは、OLTPデータベースを元の形式に保ちますが、透過的なグループ化と拡張性を保証する拡張機能を提供します。 別のアプローチは、スケーラビリティを向上させるために透過的なシャーディングを提供することです.Schooner MySQL、Continentnt Tungsten、およびScalArcは最初のアプローチに従い、ScaleBaseおよびdbShardsは2番目のアプローチに従います。 どちらのアプローチも、既存のセットとエコシステムの再利用を可能にし、コードを書き換えたり、データの移行を実行したりする必要を回避します。 実装例-ScalArc、Schooner MySQL、dbShards(商用)ScaleBase; およびContinuent Tungsten(オープンソース)。
おわりに
NewSQLと呼ばれる新世代の情報管理システムは、この傾向と制限を満たしています。 NewSQLは、以下を計画している企業に適しています。
- 新しいデータの増加傾向に適応するための既存のアプリケーションの移行
- 拡張性の高いOLTPシステムでの新しいアプリケーションの開発
- OLTPの使用に関する既存の知識に依存する
NewSQLの作成者によると、従来のSQLは時代遅れであり、複雑すぎて多くの問題を抱えています。さらに、オブジェクト指向DBMSは未来ではなく、現在のものです。 移行を簡素化するために、SQLからNewSQLおよびNewSQLからSQLへのコンバーターが開発され、クエリをその場で変換できるため、変更せずに古いアプリケーションを実行できます。
ソース:
NewSQLプロジェクトは、FacebookがMySQLを使用して発生した問題を解決することを目的としています
NewSQLは、SQLとNoSQLの世界から最高のものを取ります
http://www.linuxforu.com/2012/01/newsql-handle-big-data/
NoSQLはアウト、NewSQLはイン-Google(Google Spanner)が言う
一部の場所での翻訳は正しくない場合があります。
この紹介記事へのご意見をお待ちしております。