OceanBase V4.4.2は、ハイブリッドワークロード向けのTP/AP大融合LTSバージョンであり、4.2.5 LTSのトランザクション処理能力と4.3.5 LTSの分析処理能力を深く統合し、データ管理、互換性、システムセキュリティ、運用保守診断など多方面でシステマティックにカーネル機能を強化しています。これにより、重要なトランザクションワークロードと複雑な分析ワークロードに対して、より強力で安定した技術サポートを提供します。
V4.4.2はLTSバージョンとして、TP、AP、HTAP業務での利用を推奨します。
主な機能説明
カーネル強化
パーティション交換がパーティションテーブルとサブパーティションテーブルの交換をサポート
パーティション交換機能に、サブパーティションテーブルのパーティションとパーティションテーブルとの交換が追加されました。詳細については、パーティション交換(MySQLモード)およびパーティション交換(Oracleモード)を参照してください。
OBCDCがテーブルレベル復元後の増分データ同期をサポート
OBCDCはアローリストとブラックリスト機能をサポートしており、データ同期時には、アローリストに含まれ、かつブラックリストに含まれないテーブルのみを同期します。新バージョンでは、OBServerのテーブルレベル復元プロセスの最後に、テーブル名に基づいてアローリストとブラックリストのマッチングを行い、増分データ同期をサポートします。
マテリアライズドビュー機能の強化
V4.4.2バージョンでは、マテリアライズドビュー機能を継続的に改善しています。具体的には以下のとおりです:
- DDL機能が強化され、
RENAMEがサポートされ、マテリアライズドビューのログに列の追加が可能になりました。 - 増分更新機能が強化され、外部結合、
UNION ALL、単一テーブルの非集約モード、LEFT JOINを含む集約マテリアライズドビューなどのタイプが新たにサポートされ、重複するSELECT ITEMとGROUP BY列、MIN/MAX集約マテリアライズドビューの増分更新機能が強化されました。 - ネストマテリアライズドビュー機能が強化され、連鎖更新がサポートされました。
- マテリアライズドビューの更新時に次元テーブルを更新しないようになりました。マテリアライズドビュー作成時に、新規の
AS OF PROCTIME()構文を使用して更新不要のテーブルを指定することで、マテリアライズドビューの増分更新実行時にそのテーブルの増分データを更新しないようになりました。 - 単一テーブル集計の増分更新マテリアライズドビューが
MIN()/MAX()集計関数をサポートしました。 - MLOGの自動化管理が導入されました。増分更新マテリアライズドビュー作成時に、ベーステーブルに必要なMLOGテーブルを自動的に作成・置き換え、バックグラウンドで冗長なMLOGテーブルを定期的にクリーンアップします。
md5_concat_ws関数がサポートされました。- マテリアライズドビューのビュー内容とマテリアライズドビュー作成時のエラーメッセージが最適化されました。
- 主キーのないテーブルに基づく増分マテリアライズドビューがサポートされました。
AS OF PROCTIME()と宣言されたビューへの参照がサポートされました。- マテリアライズドビューがUDTとUDFをサポートし、
minimalモードをサポートしました。
- DDL機能が強化され、
セッションレベルのプライベート一時テーブルをサポート
V4.1.0 BP4バージョン以降、MySQLモードでは一時テーブル機能が無効になっていましたが、V4.4.2バージョンではMySQL互換モードでの一時テーブル機能の使用が許可され、一時テーブルの作成、変更、削除、および一時テーブルに基づくインデックスの作成などの機能がサポートされます。
異種ゾーンをサポート
新バージョンでは異種ゾーンのデプロイメントをサポートしており、テナントは2種類のUNIT NUMを設定できます。ノードに障害が発生した場合、障害があるノードを直接削除でき、他のゾーンの調整が不要で、運用保守が簡素化され、トラフィックへの影響も少なく、スムーズなスケーリングを実現します。使用方法についてはスムーズなスケーリングのアプリケーション事例を参照してください。
OBCDCがvirtual生成列の同期をサポート
OceanBase 4.0バージョン以降、virtual生成列はCLOGに記録されなくなったため、OBCDCはCLOGからvirtual生成列を同期できませんでした。これにより、virtual生成列に依存するダウンストリームシステムにとって、virtual生成列の値を取得できないことはデータの損失を意味し、受け入れられませんでした。新バージョンのOBCDCはvirtual生成列の同期をサポートし、ダウンストリームシステムのvirtual列データへの消費ニーズを満たします。
Oracle互換
INTERVALサブパーティション
新バージョンでは、OracleテナントモードでINTERVALサブパーティション機能が実装されました。新規挿入されるデータが既存のパーティションの範囲を超えると、自動的に新しいパーティションが作成され、パーティション管理の複雑さが低減します。詳細については、パーティションの概要を参照してください。
OBKV/マルチモーダル機能の強化
OBKVにおける弱い読み取りと最寄りデータセンターからの読み取りのサポート
- 弱い読み取り:ビジネスが非リーダーレプリカ(Follower)からデータを読み取ることを許可します。これらのレプリカは最新ではない可能性があるため、読み取ったデータはリーダーレプリカのバージョンよりも古くなる場合があります。
- 最寄りデータセンターからの読み取り:クライアントは現在の地理的位置やネットワークトポロジーに基づき、自身に最も近いデータセンターから優先的にデータを読み取ります。これにより、ネットワーク遅延が削減され、応答速度が向上します。
詳細については、OBKV-Tableの弱い読み取りと最寄りデータセンターからの読み取りおよびOBKV-HBaseの弱い読み取りと最寄りデータセンターからの読み取りを参照してください。
パフォーマンスの向上
シリアルテーブル作成パフォーマンスの最適化
DDLのパフォーマンスを向上させるため、4.2.xバージョンではCREATE/DROPなどのDDLの並列実行機能をサポートしています。しかし、並列をサポートしないDDLが存在する場合、並列DDL機能を利用できません。そのため、シリアルDDLのパフォーマンスを最適化する必要がありました。この機能は、シリアルテーブル作成をターゲットシナリオとし、スキーマの生成、書き込み、リフレッシュなどのプロセスを最適化し、シリアルテーブル作成の速度を大幅に向上させるとともに、他のタイプのDDLの実行速度もわずかに向上させます。テストによると、1000個のsysbenchシンプルテーブルを作成する場合、V4.4.2はV4.3.5と比較して、パフォーマンスが60%向上しました。
国産CPU大規模マシン環境におけるパフォーマンス最適化
主に国産CPU環境における典型的なシナリオのCPUホットスポットを最適化し、PDMLとレプリケーションテーブルクエリのパフォーマンスを最適化しています。大規模な256コア環境において、高同時実行PDMLのパフォーマンスが25%向上し、非PDMLシナリオのメモリ使用量が削減されました。業務連携Followerクエリによるレプリケーションテーブルのクエリパフォーマンスが14倍向上し、2万QPSから27万以上に増加し、直接リーダーに接続してクエリした場合の30万QPSとの差が10%未満となりました。32コアの小規模環境においても、上記の最適化によりパフォーマンスが向上します。
PXの適応型タスク分割
PXスキャンにおいて長尾タスクが発生する問題に対処するため、長尾タスクを適応的に再分割し、負荷の再分散機能を実現し、クエリ速度を向上させます。詳細については、分散実行と並列クエリを参照してください。
セキュリティの強化
業務非感知型の列暗号化をサポート
V4.4.2バージョンでは、業務非感知型のデータ保護機能をサポートしています。データベース管理者はテーブルに対して列レベルのデータ保護ルールを作成でき、機密ルールに関連するDDLステートメントの作成、削除、変更および関連する権限制御処理をサポートします。機密データに関わるSELECT操作で関連するPLAINACCESS権限がない場合、暗号化された結果が返され、DML操作では権限なしエラーが返されます。
使いやすさの向上
ASHデータの整合性強化
V4.2.5ではASHが再構築されました。ASHはテナントキュー要求の状態を追跡でき、各要求は毎秒1回ASHバッファにレコードとして書き込まれます。現在のASHバッファは30MBで、約5万件のデータを格納できます。2分ごとにメモリ内のデータをディスクに落とす必要があるかどうかをチェックしますが、キューに大量のバックログが発生するシナリオでは、ASHバッファがデータをディスクに落とす間にデータが上書きされ、問題イベントの重要な診断データが失われることがありました。V4.4.2では、__all_virtual_ashテーブルに重み列weightを追加し、デフォルトで1に設定しています。ASHバッファが急速に満杯になる可能性がある場合(通常はキューのバックログが原因)、各キューのバックログ待機イベントに対して1件のASHレコードを書き込むのではなく、weightによって1件のレコードの重みを示すことで、診断データの整合性を強化します。
SQLSTATの再構築
SqlstatはSQLの実行情報を統計し、RT異常SQLの特定を支援するために使用されます。以前は、lib cacheの使用量が多すぎてplan cacheが制限されたり、リーダーノードのスナップショットのみを更新してフォロワーデータが誤っていたり、データのディスクへの落ち込みが遅れたりする問題がありました。V4.4.2では、これらの問題に対処するために再構築されました:sqlstatをテナントレベルのhashmapで独立して管理し、定期的にスナップショットを撮り、淘汰します。SQL実行統計はまずphysical plan層で累積され、条件を満たした後にhashmapに集約されます。仮想テーブルをクエリする際にデータが自動的に同期されることで、統計の正確性と即時性が向上しました。
関連ドキュメント
本記事では、主に重要な新機能や主要な特徴について紹介しました。より詳細なバージョンの詳細やその他の各バージョンの情報については、当社のバージョンリリース履歴をご覧ください: