機能説明
一方、LibraDBエンジンは効率的な分析クエリに主にサービスを提供します。これは顧客にリアルタイムかつ高性能な複雑なSQL処理を提供する拡張読み取り専用分析コンポーネントです。LibraDBエンジンのカラムナーストレージ能力、ベクトル化並列実行エンジン、および分散並列実行によって拡張されたオプティマイザを活用することで、顧客はデータベース内で簡単に効率的な分析能力を直接体験できます。さらに、LibraDBのカラムナーストレージは高QPSの変更、トランザクションのACIDに対して特化した最適化を行い、クエリデータのリアルタイム性と一貫性を保証しています。
サポートバージョン
LibraDBエンジンのカーネルバージョンは1.2404.7以上です。
原理
LibraDBエンジンのカーネル実装は主に3つの部分に分けられます。それぞれ、データ同期コンポーネント、計算エンジン、カラムナーストレージです。データ同期コンポーネントは主に行ストレージデータをカラムナーストレージ形式に変換・ロードする役割を担います。主要な実装原理はbinlogの同期と消費であり、MySQLのマスタースレーブレプリケーション機構と同様です。計算エンジンは主にメタデータストレージ、実行計画の生成、実行オペレータの生成などの関連作業を担当します。カラムナーストレージは主にデータストレージやオペレータ実行などの関連する作業を担当します。
サポート機能
LibraDBエンジンのカーネル機能は、複数の優れた特性をサポートしています。以下、製品がサポートする機能について簡単にご紹介します。
1. 大規模並列処理 MPP
MPP(Massively Parallel Processing)アーキテクチャは分散型データ処理技術の一種であり、ワークロードを複数のノードに分散することでデータ処理性能を向上させることができます。LibraDBエンジンでは、マルチレプリカ機能のサポートを拡張したことにより、複数の読み取り専用分析エンジンインスタンスのノードをクラスタに構成可能です。各ノードは独立したディスクとメモリシステムを保有し、専用ネットワークまたは商用汎用ネットワークを介して相互接続・協調計算を行うことで、統合的なデータ処理サービスを提供します。これにより、超大規模データにおける処理性能を効果的に拡張でき、単一ノードの性能ボトルネックの制約を受けず、様々な規模のユーザー要求をサポートできます。
MPP能力の利点は高性能なデータ処理にあり、複数のノードの計算リソースを最大限に活用できます。同一のSQLを実行する際、SQLオペレータを複数のノードに分散し、共同で実行することが可能です。また、水平スケーリングをサポートし、ユーザーのビジネス成長に合わせて処理性能のスケールアウトにも対応しています。
二、ベクトル化実行エンジン
LibraDBエンジンでは、データは単に列ストレージ形式で保存されるだけでなく、列ベースで計算が行われます。TXSQLのような従来のOLTPエンジンでは、通常行ストレージベースの計算が行われます。これは主にトランザクションがポイントクエリ、ポイント読み取り、ポイント書き込みを中心としているためです。しかし、分析が主なシナリオであるLibraDBエンジンでは、単一SQLの計算量が非常に大きくなる可能性があります。したがって、LibraDBエンジンではベクトル化実行モードを実装しています。メモリ内の列形式データに対し、1バッチごとにSIMD命令を1回呼び出すことで、関数呼び出し回数を削減し、キャッシュミスを低減します。また、SIMD命令の並列処理能力を最大限に活用することで、計算時間を短縮できます。
三、高速変更シナリオにおけるカラムナーストレージのサポート
TDSQL-C for MySQLの読み書きインスタンスでは、100万レベルを超えるデータオンライン操作QPSをサポートできます。リアルタイムデータ分析を支えるLibraDBエンジンは、これほど高いデータ変更シナリオにおけるデータ一貫性を満たす必要があります。従来のカラムナーストレージは大量データ書き込みでは一定の優位性がありますが、大規模データのdeleteやupdateに直面すると性能不足が顕著になります。従来のリアルタイムデータウェアハウスシナリオでは、updateをdeleteとinsertに変更し、データ同期層でバッチ実行機能を実装するのがベストプラクティスです。しかしカラムナーストレージはdeleteシナリオにおいて依然として性能上の課題を抱えています。これらの状況を総合すると、従来型カラムナーストレージでは高いデータ遅延が避けられず、リアルタイムデータ分析の効果を達成できません。
LibraDBエンジンはストレージ層の最適化とサポートにより、高コンカレンシーシナリオにおけるデータ変更時のデータ一貫性を確保し、読み書きインスタンスでの頻繁なデータ変更によるデータ遅延が原因で分析タイミングを逸失することを回避できます。
4. 指定データロード機能
TDSQL-C for MySQLのデータにおいて、すべてのデータに分析価値があるわけではないため、すべてのオブジェクトを列ストレージとしてロードする必要はありません。したがって、LibraDBエンジンはオブジェクトを指定してロードする機能をサポートしています。データロードのコンソール設定で、またはコマンドラインSQLを使用して、LibraDBにロードするオブジェクトを指定できます。