この記事はNatarajan Shankar,Alex BlythによるExadata Smart Flash Cache Series: Part I – A Recapを日本語に翻訳したものです。

2024年11月25日


Oracle Exadata Database Machine(Exadata)は、Oracle Databaseを実行するためのエンジニアリング・プラットフォームとして優れています。 卓越したスケーラビリティと劇的な価格性能比、 およびExadata X10Mプラットフォームに関する公開記事は、Exadataの卓越したスケーラビリティとパフォーマンスを理解するための優れた記事です。 最近リリースされたExadata System Software 24aiによるExadataプラットフォームのソフトウェア機能の大幅な向上は、すべてのワークロードにメリットをもたらす最適化と新機能へのオラクルの投資を明確に示しています。Exadata Exascaleのインテリジェント・データ・アーキテクチャは、Exadata Smart Softwareの極めて高い性能と、最新のクラウドのコストと弾力性のメリットを兼ね備えています。 Exadata Exascaleテクノロジのクラウド・データ・アーキテクチャは、オンプレミスのExadataでも利用可能であり、すべての導入形態においてプラットフォームの競争上の優位性を拡大します。Exadataプラットフォーム上で稼働するコンバージドOracle Database 23aiのパワーは、ネイティブのAI Vector Search機能を含む、すべての最新データベース機能を提供します。

Exadataは、Oracle Databaseを実行するための最も費用対効果が高く、最も可用性の高いプラットフォームとなるよう設計されています。多様なデータベース・ワークロードを統合する機能を備え、エンタープライズ・データセンター、Oracle Cloud Infrastructure(OCI)、マルチクラウド環境で利用できるExadataは、限られたデータセンターの設置面積で、組織全体がデータベースとアプリケーションのパフォーマンスを最大限に活用できるよう支援します。 運用効率の向上、管理の軽減、コストの削減といったプラスの効果も相まって、このプラットフォームは同クラスの主力製品となっています。

Exadataは高性能データベース・サーバーとスケールアウト型インテリジェント・ストレージ・サーバーで構成されています。データフローに使用される内部インターコネクトファブリックは、RDMA over Converged Ethernetで転送するハードウェア対応のRDMA(Remote Direct Memory Access)方式です。RDMA over Converged EthernetはRoCEと略され、”ロッキー”と発音します。Exadata ストレージ・サーバーは、レイテンシのないデータ・アクセスを実現する最先端のストレージ・キャッシング・テクノロジーを実装しています。ExadataのデータベースI/Oパスは、イーサネットのスケーラビリティと帯域幅、RDMAの速度、キャッシュ・データの可用性を組み合わせることで、競合プラットフォームよりも数倍優れた低レイテンシとIOPSのパフォーマンス指標を実現します。統合されたOracle DatabaseとExadataプラットフォームの優れた総合性能は、エンジニアリングされたアーキテクチャを反映しています。

この記事はExadata Technologyシリーズの第一弾であり、Exadataプラットフォームにおける重要なテクノロジー・コンポーネントを1つ取り上げ、そのコンポーネントを取り巻く特定のプラットフォーム機能の内部動作を説明することを目的としています。本シリーズは、読みやすい構成でシリーズとして発行することを意図しており、ハイレベルなエンジニアリングの視点を維持しつつ、機能図やモジュール間フロー図を用いて分かりやすく解説します。シリーズの各記事は、以前の記事を補足する内容となっています。

この記事では、選ばれた機能コンポーネントであるExadata Smart Flash Cacheについて概説します。今後の連載では、パフォーマンス向上のためのハードウェア、管理、制御、機能強化、改良について取り上げます。

Exadata Database Machine

Exadataプラットフォームの誕生以来、その革新スピードは目覚ましいものがあります。 図1は、2008年にプラットフォーム導入以来、Exadataプラットフォームのソフトウェアおよびハードウェアの機能が、製品世代が更新されるごとに飛躍的に向上してきたことを示しています。 各世代のプラットフォームは、最高のハードウェアを採用し、ソフトウェアと運用における最高のイノベーションを重ねることで、パフォーマンスを大幅に向上させてきました。 Exadataファミリーの各製品は、データベース・ワークロードの実行において、業界トップクラスのパフォーマンスを維持しています。

Exadataストレージ・サーバーのSmart Flash Cacheは、 “データベースを認識する“ことから”スマート“と呼ばれ、Exadata V2世代で導入されました。 この機能は、Oracle Databaseのパフォーマンス向上に重要な役割を果たしてきました。図1では、V2世代は明示的に記載されていませんが、X2よりも前に提供されました。”データベースを認識する“という名称は、ストレージ・サーバーにおけるキャッシュ関連の決定が、データベースのディレクティブおよびデータ・タグを使用して行われていることを示しています。

Exadata Smart Flash Cache - 1

 

Exadata Database Machine Operation

Exadataプラットフォームにおける主要な入出力(I/O)操作の簡潔な概要は、Exadata Smart Flash Cacheの動作のニュアンスを理解するのに役立ちます。 Exadata System Softwareは、データベース・サーバーとストレージ・サーバーの両方でインテリジェントに実行されており、これはシステムとソフトウェアの緊密な統合を実現しています。 Exadataデータベース・サーバーは、データベース内の構造化データと非構造化データの取得と管理を担います。 Exadataストレージ・サーバーの役割は、Oracle Databaseのデータを保存および処理し、データベースのパフォーマンスと可用性を向上させることです。

Exadata Smart Flash Cache - 2 Exadataの独自な処理アーキテクチャにおいて、保存または検索のI/O操作において、ストレージ・サーバーはSmart Scanと呼ばれるインテリジェントな操作メカニズムを通じて、データベース・サーバーと処理責任を共有します。 Smart Scanは、I/O集約型のタスクをデータベース・サーバーからストレージ・サーバーに移行します。 データベース・サーバーがストレージ・サーバーのコンピューティング能力を活用してタスクを完了することを”オフロード“と呼びます。 Smart Scanのインテリジェントな機能は、利用可能な多数のストレージ、サーバーのコンピューティング・コアを活用して、オフロードされたタスクを並列化して実行します。 ストレージ・サーバー上のSmart Scan処理機能には、テーブル・スキャン、行フィルタリング、列プロジェクション、スマート集計、ストレージ・インデックスなどの操作の処理が含まれます。データベース・サーバーとストレージ・サーバー間のオフロードの相互作用を図2に示します。

ストレージ・サーバーへのオフロードは、様々な形で効率化をもたらします。ストレージ・サーバーでのオフロード処理により、データベース・サーバーは各ストレージ・サーバーから、クエリー条件に一致する行のみを受け取ることになり、最小限かつ関連性の高いデータセットが提供されます。 その後、データベース・サーバーは最小限の後処理済みデータ・セットをすべて受け取り、集約します。この独自のSmart Scan機能は、利用可能なすべてのExadataインフラストラクチャリソースを効果的かつ効率的に活用します。

 

 

Smart Scanの概要

  1. スケールアウト型のストレージ・サーバーのCPUは、データベース・サーバーからオフロードされた命令をインテリジェントかつ効率的に処理します。
  2. ストレージ・サーバーは、オフロード処理の結果として、データベース・サーバーに最小限の処理済みデータを送信します。行フィルタリングや列プロジェクションなどの効率化により、処理済みデータ・セットは簡潔で関連性の高いものとなります。Smart Scanにより、データベース・サーバーでデータを削除する必要のない、関連性の高いデータセットが得られます。
  3. 処理後のデータの簡潔さと関連性により、インターコネクト・ファブリックはスイッチング・ファブリック上で転送するデータ量を大幅に削減します。

クエリーと検索条件をストレージサーバーでオフロードする機能は、Exadataプラットフォームの画期的な差別化要因です。

Exadataの差別化要因としてSQLオフロードを強調

図3では、インテリジェント・スマート・スキャンとDIYシステムの機能フローの横並びで比較を示しています。 Smart Scanを活用したExadataストレージ・サーバーのインテリジェントな管理は、ExadataプラットフォームのアーキテクチャおよびI/O性能の優位性をより浮き彫りにしています。

Exadata Smart Flash Cache - 3

Exadataの効率性は、上記のセクションで説明されており、図3の左側にハイライトしています。

DIYシステム(非Exadata Databaseプラットフォーム)は、図3の右側のセクションで示されています。

  • すべてのデータベース処理はデータベースサーバー上で実行されます
  • ストレージ・サーバーからデータベース・サーバーへは、フィルタリングされていない大量のデータが送信されます。 Exadata以外のストレージアレイにはアクセス可能なCPUがないため、データが格納されている場所でインテリジェントなキャッシュやSQL処理は実行できません。
  • クエリーごとに大量のフィルタリングされていないデータがファブリックを通過するため、ネットワークのボトルネックが露呈します

分散処理を備えたExadataプラットフォームのアーキテクチャはより優れています。

Smart Scan による効率性の向上と、データ取得中の接続ファブリックのトラフィックの大幅な削減は、Exadataプラットフォームのユニークで顕著な差別化要因です。

Exadata Intelligent Storage Servers

データベースのI/O Smart Scan処理において、Exadata System Softwareが活用するExadata Intelligent Storage Serversの機能は他に何がありますか?

Exadataは、スケールアウト型のインテリジェント・ストレージ・サーバーを採用しており、High Capacity(HC)、Extreme Flash(EF)、Extended Storage(XT)の3つの構成で利用可能です。製品ファミリーの最新プラットフォームであるExadata X10Mは、以下の特長を備えています。

  1. 各HCストレージ・サーバーには、Exadata Smart Flash Cache用の6.8TBのパフォーマンス最適化型Flash Accelerator F680 NVMe PCIeフラッシュカードが4枚と、7,200RPMのSASディスクが12台搭載されており、合計264TBのrawディスク・ストレージを提供します。各ストレージ・サーバーでキャッシュ用に利用可能な総フラッシュメモリ容量は、4×6.8TB = 27.2 TBです。
  2. 各EFストレージ・サーバーはオールフラッシュ構成です。各EFストレージ・サーバーには、Exadata Smart Flash Cache用に6.8TBのパフォーマンス最適化型Flash Accelerator F680 NVMe PCIeフラッシュドライブが4台、容量最適化型NVMe PCIeフラッシュドライブが4台搭載されており、合計で122.88TBのrawフラッシュストレージを提供します。HCストレージ・サーバーと同様に、各ストレージ・サーバーでキャッシュ用に利用可能な総フラッシュメモリ容量は、4×6.8TB = 27.2 TBです。
  3. XTストレージ・サーバーは、Exadataハイブリッド列圧縮を使用したデータベース内データアーカイブに最適です。各XTストレージサーバーには、22TBのストレージ容量を持つ7,200 RPM SASディスクが12台搭載されており、1サーバーあたり264TBのrawストレージと128GBのDDR5メモリをあわせて提供します。このストレージ・サーバーのバリエーションにはフラッシュ・キャッシュが搭載されておらず、ストレージ・サーバーのラインナップの完全性を示すためにのみここに示されています。

典型的なオンプレミスExadataでは、複数のストレージ・サーバーがパートナーとして機能します。最小構成のオンプレミスExadataでは、2台のデータベース・サーバーと3台のストレージ・サーバーで構成されます。 冗長性構成の場合、データのコピーが2台の追加ストレージサーバーにミラーリングされます。標準冗長性構成では、データは1台の追加ストレージ・サーバーにミラーリングされます。 標準冗長性は、単一のディスク障害または1台のストレージ・サーバーの障害から保護します。 冗長性は、2つの異なるパートナー・ストレージ・サーバーで同時に発生した2台のパートナー・ディスク障害から保護します。

より大規模なExadataでは、ラック内に多くのデータベース・サーバーとストレージ・サーバーを配置し、複数のラックにまたがる構成が可能です。

Exadata Database Server Cache

Exadataデータベース・サーバーは、I/Oクエリー中にバッファ・キャッシュと呼ばれるデータベース・コンポーネントと連携します。データベース・サーバーのバッファ・キャッシュは、データベース・インスタンスのシステム・グローバル領域(SGA)内のメモリ領域です。データ・ファイルから読み取られたデータ・ブロックのコピーが格納されます。データベース・ユーザーがクエリーを発行すると、データベース・サーバーは必要なデータ・ブロックをデータベース・サーバー上のバッファ・キャッシュで検索します。バッファ・キャッシュ内でデータ・ブロックが見つかった場合、データベースはバッファ・キャッシュから直接データを読み取り、I/Oを完了します。バッファ・キャッシュ内にデータが見つからない場合、データはストレージ・サーバーのキャッシュまたは永続化レイヤーから読み取られます。

Exadata Storage Server Cache

Exadata Smart Flash Cache - 4 Exadata HCストレージ・サーバー・プラットフォームは、Exadata RDMAメモリ(XRMEM)キャッシュ層、Smart Flash Cache層、およびディスクで構成される永続化層を実装しています。Exadata EFストレージ・プラットフォームは少し異なり、オールフラッシュ構成で、XRMEMとSmart Flash Cacheをサポートし、ディスクは搭載されていません。

XRMEM is a DDR5 DRAM-based memory cache that uses Remote Direct Memory Access (RDMA) access to data stored remotely on Exadata storage servers. XRMEM distinguishes itself by being RDMA enabled, another Exadata differentiator. The database uses RDMA to access data cached in the remote XRMEM, bypassing the network and I/O stack on the database and storage servers and providing the superior performance of DRAM. The hottest data, as identified by the Oracle database and usage history, is automatically cached in XRMEM.  XRMEMは、Exadataストレージ・サーバーにリモートで保存されたデータにリモート・ダイレクト・メモリ・アクセス(RDMA)を使用するDDR5 DRAMベースのメモリ・キャッシュです。XRMEMはRDMA対応である点が特徴であり、これもExadataの差別化要因の一つです。データベースはRDMAを使用してリモートXRMEMにキャッシュされたデータにアクセスし、データベースとストレージ・サーバーのネットワークとI/Oスタックをバイパスすることで、DRAMの優れたパフォーマンスを提供します。Oracle Databaseと使用履歴によって特定された最も頻繁にアクセスされるデータは、自動的にXRMEMにキャッシュされます。

Smart Flash CacheはXRMEMと組み合わせて使用され、頻繁にアクセスされるデータのデータベースI/Oリクエストを自動的にキャッシュし処理します。XRMEMには最も頻繁にアクセスされるデータが格納されており、ほぼすべてがOLTPクエリーに適したデータと一部のアナリティクス・キャッシュです。XRMEMとSmart Flash Cacheは、パフォーマンス、容量、コストのバランスを最適化するように設計されています。

Exadataストレージ・サーバー内のXRMEM、Smart Flash Cache、および永続ストレージ(ディスク)層は、図4に示されています。ホットデータはXRMEMにキャッシュされ、ウォームデータSmart Flash Cacheにキャッシュされ、非アクティブなデータは永続ストレージに格納されます。EFストレージ・サーバーでは、永続ストレージ層もフラッシュ・ドライブで構成されています。

 

 

Exadataのキャッシュパフォーマンス

Exadata Smart Flash Cache - 5

 

Exadata OLTPの読み取りI/O操作は、XRMEMからのRDMA経由で読み取りが行われる場合に最も高いパフォーマンスが向上します。 Exadata System SoftwareがデータベースI/Oにおいて特定のデータ・ブロックが頻繁に使用される可能性があると判断した場合、当該データをXRMEMに適切にプロモーションし、その結果、このデータ・ブロックに対する後続のクエリーがXRMEMから正常に処理されるようになります。図5は、OLTPクエリーにおけるSmart ScanフローとXRMEMキャッシュ・データのRDMAベースの取得プロセスを示しています。

さらに、ストレージ・サーバー内のXRMEMは、利用可能なすべてのデータベース・ノードとストレージ・ノードに共有されるストレージ層です。ストレージ・サーバーが複数のデータベースをホストする場合、利用可能なキャッシュは構成されたすべてのデータベース・インスタンスによって使用されます。

複数のデータベース・サーバー上に存在する複数のデータベースを、複数のストレージ・サーバーでサポートし、各ストレージ・サーバーがキャッシュ階層をホストするこのアーキテクチャと実装は、Exadataの重要な差別化要因です!

 

 

 

 

 

 

Exadataキャッシュとデータ効率

インテリジェントで経済的かつ最適なアプローチは、最も頻繁にアクセスされ、最もホットなデータのみをXRMEMにキャッシュし、ウォーム層のデータを永続的なSmart Flash Cacheに格納することです。このような実装では、ウォーム層に分類されるブロックはSmart Flash Cacheによってホストされます。

フラッシュ・メモリは永続的であるため、Smart Flash Cacheを使用することでデータ永続化の運用上のメリットも得られます。 データセンターでの障害や一時的な障害が発生した場合、キャッシュ内のデータを再読み込みする必要がないため、復旧がより迅速に行えます。 Exadataはこの点で優れており、Smart Flash Cacheのデータは再起動後も永続するため、停電、システム・クラッシュ、再起動後もキャッシュされたデータが失われることはありません。 これにより、復旧時に低速なディスク・ストレージからデータを再読み込みする必要がなくなるため、停電からのシステムとアプリケーションの復旧が大幅に遅延するのを防げます。

XRMEMとSmart Flash Cacheは、頻繁にアクセスされる高価値データを自動的にインテリジェントにキャッシュします。 各データベースI/Oには、そのI/Oが発行される理由と、そのI/Oに関連するデータがキャッシュされるべきかどうかを示すタグが含まれています。 このキャッシュ可能性情報は、データアクセス頻度などの多様なデータおよびメトリックスと内部的に組み合わされ、データをキャッシュするかどうかを判断します。答えが”はい”の場合、データはキャッシュされます。

ExadataとOracle Databaseのこの連携動作は、Exadataプラットフォームの大きな差別化要因です。

注目すべきは、外部要因がプラットフォームの一時性に影響を与える可能性がある一方で、ExadataはOracle Maximum Availability Architectureの適切な層に準拠した設計により、システム停止に対して非常に耐性があるように構築されていることです。

XRMEMまたはSmart Flash Cacheに必要とされるデータが存在しない場合、データはディスクから読み込まれます。ディスク読み込みは、アクセス頻度の低いデータ向けに設計されています。データベースI/Oによってディスクに格納されたデータ・ブロックが要求され、その要求がユーザーI/Oであり、リカバリやバックアップ操作の一部ではない場合、ディスク上のデータ・ブロックは、この一度読み込まれたデータがすぐに頻繁にアクセスされると判断された場合、キャッシュへの昇格候補となります。

ユーザーI/OをバックアップおよびリカバリI/Oと明確に区別して処理する機能は、Exadataの差別化要因です。

Smart Flash Cacheからの読み取り

X10M Exadata ストレージ・サーバーには1.5TBのDRAMが搭載されており、そのうち1.25TBはXRMEMデータ・アクセラレータに割り当てられ、残りの256MBはストレージ・サーバー・ソフトウェアとオペレーティング・システム用に割り当てられています。データベースのサイズはさまざまであり、複数のデータベース・インスタンスが存在する場合、XRMEMキャッシュのサイズを超える使用量でもSmart Flash Cacheを効率的に活用し、システム・パフォーマンスを維持します。

Exadata Smart Flash Cache - 6

Smart Flash CacheからのXRMEM更新

フラッシュキャッシュ内で最も頻繁にアクセスされるデータ領域は、自動的にXRMEMキャッシュに複製されます。XRMEMのキャッシュ・ミスはSmart Flash Cacheによって処理されます。このような場合、Smart Flash Cache内のデータもXRMEMに昇格されます。Smart Flash Cacheのミスが発生した場合、または何らかの処理によってSmart Flash Cacheでデータ更新が発生した場合、Smart Flash Cacheの更新されたデータは自動的にXRMEMに昇格されます。図6は、XRMEMのキャッシュ・ミスに続いてSmart Flash Cacheからデータが取得されるデータフローを示しています。

XRMEMキャッシュとSmart Flash Cacheの連携動作は、データベース・ユーザーにとって透過的です。この連携動作により、アクティブなデータは最もパフォーマンスの高いキャッシュ・レイヤーで利用可能になります。最もアクティブなデータがキャッシュ内で利用可能になることで、ワークロードにおいてExadataシステムの極めて高いI/Oパフォーマンスが持続的に実現されます。

永続ストレージからの読み取り

XRMEMキャッシュまたはSmart Flash Cacheにデータがキャッシュされていない場合、I/OリクエストはXRMEMキャッシュとSmart Flash Cacheの両方でキャッシュ・ミスが発生します。このデータはその後、容量最適化フラッシュまたはディスクから取得されます。このデータがディスク上で将来の使用パターンに応じて、キャッシュに昇格される候補となり、将来のリクエストに対応できるようになります。

 

 

 

Smart Flash Cache Operational Mode

Smart Flash CacheはWrite-backモードで動作します。これにより、書き込み操作はディスクに書き込まれる前にフラッシュに一時的に保存され、アプリケーションの書き込みパフォーマンスが向上します。フラッシュへの書き込みが完了すると、これはI/Oの操作完了とみなされ、即座に確認応答が送信されます。ディスクへの書き込みは非同期でその後行われます。書き込み負荷の高いアプリケーションは、フラッシュメモリが提供する低レイテンシを活用できるWrite-backキャッシュの恩恵を受けることができます。キャッシュが同じブロックへの複数の書き込みを吸収し、その後複合的にディスク書き込みを実行するためディスクI/Oの量も減少します。

データは利用可能なストレージ・サーバー間でミラーリングされます。前述の通り、標準冗長性を使用する場合、書き込み操作は少なくとも2台のストレージ・サーバーに送信され、高冗長性を使用する場合、3台のストレージ・サーバーに送信されます。ミラーリングされた書き込みにおいても、Write-backモードの動作が維持されます。

結論

Exadata Smart Flash Cacheは、Oracle Databaseユーザーに大幅なパフォーマンス向上を提供します。高速フラッシュストレージを活用し、Exadata System Softwareによって管理されるSmart Flash Cacheは、頻繁にクエリーされるデータへのアクセスを劇的に高速化します。 このキャッシュはデータベースとディスク・ストレージの間にあるため、最もアクティブなデータをホストし、最も必要なデータブロックの高速な取得を可能にします。 その結果、アプリケーションはより迅速なクエリー応答、トランザクション・スループットの向上、およびシステム全体のパフォーマンスの向上を実現します。Smart Flash Cacheは、最も関連性の高いデータを自動的にキャッシュし、手動介入を必要とせずにワークロードのパフォーマンスを最適化します。Smart Flash CacheはXRMEMキャッシュと連携し、調和のとれた高性能なデータアクセスを提供します。

Exadata Smart Flash Cacheにより、Exadataは、高負荷でデータ集約型のアプリケーションを実行する環境にとって強力なソリューションになります。