NewSQL(ニュー・エスキューエル)は、従来のデータベースシステムのACID特性を維持しながら、オンライントランザクション処理(OLTP)の作業負荷に対してNoSQLシステムのスケーラビリティを提供しようとするリレーショナルデータベース管理システムの一種である。
関心の高いデータを扱う多くの基幹システム(財務や受注処理システムなど)は、従来のリレーショナルデータベースで扱うには大規模すぎるものの、NoSQLシステムには実用的ではないトランザクションと一貫性の要件を持っている。こうした組織でこれまで利用可能だった唯一の選択肢は、より高性能なコンピュータを購入するか、従来のDBMSにリクエストを分散させるカスタムミドルウェアを開発することであった。どちらのアプローチも、高額なインフラコストや開発コストを特徴とする。NewSQLシステムは、このような矛盾を解決しようとする試みである。
歴史 この用語は、新世代のデータベース管理システムの台頭について論じた2011年の研究論文で、のアナリストであるマシュー・アスレット(Matthew Aslett)が最初に使用した。最初のNewSQLシステムの1つは、システムであった。
アプリケーション 典型的なアプリケーションは、OLTPトランザクション量が大きいことが特徴である。OLTPトランザクションは、
短時間で終了し(つまり、ユーザーの応答待ち(ユーザーストール)がない)、 トランザクションごとに少量のデータにアクセスし、 インデックス付きのルックアップ(テーブルスキャンなし)を使用し、 少数のフォーム(異なる引数を持つ少数のクエリー)を持つ。
しかし、中には(HTAP)アプリケーションをサポートするものもある。このようなシステムでは、大規模なや同時実行制御を省略することで、性能とスケーラビリティを向上させる。
NewSQLデータベースの一覧
Amazon Aurora
Couchbase Server Google Spanner
XD 以前はMemSQLとして知られていた Spaces
Elastic Database VoltDB
特徴 NewSQLデータベースソリューションに共通する際立った2つの特徴は、NoSQLデータベースのオンラインスケーラビリティと、SQLを主要インターフェースとするリレーショナルデータモデル(ACID特性を含む)をサポートすることである。
NewSQLシステムは、大まかに3つのカテゴリーに分類することができる。
新規アーキテクチャ さまざまな内部アーキテクチャを採用したNewSQLシステム。一部のシステムは、シェアードナッシングノードのクラスタを採用し、各ノードがデータのサブセットを管理している。これには、分散同時実行制御、フロー制御、分散クエリ処理などのコンポーネントが含まれる。
SQLエンジン 第2のカテゴリーは、SQL用に最適化されたストレージエンジンである。これらのシステムでは、 SQLと同じプログラミング・インタフェースを提供し、ビルトインエンジンよりも拡張性が高い。
透過的シャーディング これらのシステムは、RaftまたはPaxosコンセンサスアルゴリズムを利用して、データベースを自動的に複数のノードに分割する。
参照項目
トランザクション処理 パーティション (データベース) Distributed Relational Database Architecture
脚注