ノーチラス・テクノロジーズとNEC、メニーコアと大容量メモリに最適化した国産の次世代インメモリデータベース「劔(Tsurugi)」発表。アーリーアクセス版公開
今回は「ノーチラス・テクノロジーズとNEC、メニーコアと大容量メモリに最適化した国産の次世代インメモリデータベース「劔(Tsurugi)」発表。アーリーアクセス版公開」についてご紹介します。
関連ワード (下記、仕様、産業技術総合開発機構等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
日本電気株式会社と株式会社ノーチラス・テクノロジーズは、NEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)のプロジェクトとして開発をしてきた国産のリレーショナルデータベース管理システム「劔(Tsurugi)」のアーリーアクセス版の公開を発表しました(開発者の神林氏による解説「劔”Tsurugi”とは何か」)。
劔の最大の特徴は、メニーコア、大容量メモリといった最新のハードウェアに対して最適化されたインメモリデータベースとして最初から設計、開発されていることです。
これは、現在主流となっているリレーショナルデータベース製品の多くが10年以上前のコンピュータハードウェアの主流であったシングルコアやデュアルコアなど少数のプロセッサコアと数百メガバイトから数ギガバイト程度のメモリ容量、そしてハードディスクによるストレージをベースに設計開発されているために、メニーコアかつ大容量メモリを搭載した最新のハードウェア性能を十分に引き出せていないという技術的な課題に対応したものといえます。
最新のハードウェアに最適化されたインメモリDB
メニーコア、大容量メモリに最適化した劔は、ハードウエアの性能が向上するほどシステムの性能も高まる特性を有しています。32コア以上のハードウェアでは、456万TPSと219ナノ秒の応答遅延を実現。これは世界最速レベルの処理性能だと説明されています。
下記はPostgreSQLと劔のTPC-Cベンチマークを比較したグラフです(プレスリリースからの引用)。
メニーコアに最適化されている劔が本格的に性能を発揮するのは32コア以上であることが見て取れると同時に、コア数が増えるごとに性能が大きく向上していることが分かります。
劔はインメモリデータベースであることなどにより書き込み性能も非常に高く、これが高速なオンライントランザクション処理およびバッチ処理を可能にしています。
夜間のバッチ処理を営業時間中に実行可能に
劔の内部では、同時実行制御プロトコル(Concurrency Controlプロトコル)としてトランザクション処理用のOCCとバッチ処理用のLTXの両方をサポートしています。
これによりバッチ処理とショートトランザクション処理をそれぞれの一貫性を担保しつつ同時に実行可能であり、しかも従来のリレーショナルデータベースと比較して圧倒的にバッチ処理のパフォーマンスが高いとされています。
従来のデータベースでは、オンライントランザクション処理とバッチ処理を同時に実行すると、処理の失敗や大幅な実行時間の遅延が発生するため、バッチ処理は営業時間中に発生するオンライントランザクション処理を避けて夜間に行われていました。
しかし劔ではオンライントランザクション処理中でも一貫性を保ったままバッチ処理を高速に実行可能なため、バッチ処理を営業時間中などに実行することで、夜間バッチを廃止できることが期待されています。
劔が対応するSQLの仕様は「ANSI 99」(一部ANSI 2003)。アプリケーションからの利用には、PostgreSQLでの接続、Webサービス用API、JDBCライクな同期JavaAPI、非同期ベースのJavaAPI、KVSなど複数のインターフェイスが用意される予定です。
本日7月10日には公式Webサイトでアーリーアクセス版が公開され、9月下旬にはオープンソース版が公開される予定です。公開版はインストーラが用意されセットアップが容易になるほか、Dockerコンテナイメージも提供される予定です。