← Back

Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory Spitfire:面向易失性与非易失性内存的三层缓冲区管理器 Spitfire:揮発性・不揮発性メモリ向け三層バッファマネージャ

August 25, 2021

Paper: Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory. SIGMOD 2021.
Arxiv: Multi-Tier Buffer Management and Storage System Design for Non-Volatile Memory.

I. Background

一、背景

I. 背景

Storage medium characteristics deeply influence database system design. Traditional DBMS design assumed a two-tier hierarchy: high-speed low-capacity volatile storage (DRAM) and low-speed high-capacity non-volatile storage (SSD/HDD). The emergence of NVM breaks this assumption and may cause profound changes to DBMS design.

存储介质的特性深刻影响数据库系统设计。传统DBMS基于二层存储假设:高速低容量的易失性存储(DRAM)/ 低速高容量的非易失性存储(SSD/HDD)。NVM的出现打破了这一假设,极有可能对数据库系统设计造成深远变革。

ストレージメディアの特性はデータベースシステムの設計に深く影響します。従来のDBMSは二層階層を前提としていました:高速・低容量の揮発性ストレージ(DRAM)と低速・大容量の不揮発性ストレージ(SSD/HDD)。NVMの登場によりこの仮定が崩れ、DBMSの設計に根本的な変化をもたらす可能性があります。

NVM (Non-Volatile Memory), also called PMEM or SCM, has the following properties:

NVM(Non-Volatile Memory),又称PMEM(Persistent Memory)或SCM(Storage Class Memory),具备以下特点:

NVM(Non-Volatile Memory)、別名PMEM(Persistent Memory)またはSCM(Storage Class Memory)は以下の特性を持ちます:

3D XPoint Technology
Intel 3D XPoint Technology.
DRAMNVMSSD
Latency
Idle Sequential Read75 ns170 ns10 μs
Idle Random Read80 ns320 ns12 μs
Bandwidth
Sequential Read180 GB/s91.2 GB/s2.6 GB/s
Random Read180 GB/s28.8 GB/s2.4 GB/s
Sequential Write180 GB/s27.6 GB/s2.4 GB/s
Random Write180 GB/s6 GB/s2.3 GB/s
Other
Price ($/GB)104.52.8
AddressabilityByteByteBlock
Media Access Granularity64 B256 B16 KB
PersistentNoYesYes
Endurance (cycles)101610101012

This paper adopts DRAM/NVM/SSD with in-place writes. In a classic DRAM/SSD two-tier hierarchy the buffer manager makes two decisions: which pages to cache and when. The most famous formulation is Jim Gray's Five Minute Rule (SIGMOD 1987). With a three-tier hierarchy it must additionally decide where to move pages.

本文采用DRAM/NVM/SSD架构与in-place写入模式。经典DRAM/SSD二层架构中,缓冲区管理器只需做两个决策:缓存哪些页面以及何时缓存。最著名的量化方案是Jim Gray的五分钟规则(SIGMOD 1987)。三层架构还需额外决策:将页面移到哪里

本論文はDRAM/NVM/SSDとin-place書き込みを採用します。古典的なDRAM/SSD二層階層では、バッファマネージャは2つの決定をします:どのページをキャッシュするか、いつキャッシュするか。最も有名な定式化はJim GrayのFive Minute Rule(SIGMOD 1987)です。三層階層ではさらにどこに移動するかも決定する必要があります。

Buffer Management in a DBMS
Buffer Management in a DBMS: the replacement policy governs which frames are evicted. DBMS中的缓冲区管理:置换策略决定驱逐哪些帧。 DBMSにおけるバッファ管理:置換ポリシーがどのフレームを退避するかを決定する。
The Five Minute Rule

II. Prior Work: HYMEM

二、先前工作:HYMEM

II. 先行研究:HYMEM

HYMEM [SIGMOD 2018] is the first buffer manager designed for DRAM/NVM/SSD. It distributes pages by access frequency: hot → DRAM, warm → NVM, cold → SSD. HYMEM implements two optimizations on top of a clock-based migration strategy:

HYMEM [SIGMOD 2018] 是首个专为DRAM/NVM/SSD设计的缓冲区管理器,根据访问频率分配页面:热页面→DRAM,温页面→NVM,冷页面→SSD。在基于时钟的迁移策略基础上实现了两项优化:

HYMEM [SIGMOD 2018] はDRAM/NVM/SSD向けの最初のバッファマネージャで、アクセス頻度によってページを分配します:ホット→DRAM、ウォーム→NVM、コールド→SSD。クロックベースの移行戦略の上に2つの最適化を実装しています:

NVM Direct vs Basic NVM BM vs Three-Tier BM
(a) NVM Direct — all data on NVM; (b) Basic NVM BM — page-grained loading; (c) Our NVM-Opt Three-Tier BM — cache-line-grained loading with mini-pages. (a)NVM Direct——数据全在NVM上;(b)Basic NVM BM——页粒度加载;(c)本文的NVM-Opt三层BM——缓存行粒度加载与小页面。 (a)NVM Direct — 全データをNVMに; (b) Basic NVM BM — ページ粒度ロード; (c) NVM-Opt三層BM — キャッシュライン粒度ロードとミニページ。
Estimated Throughput vs Data Size
Estimated throughput across architectures as data size grows past DRAM then NVM capacity. 数据大小分别超过DRAM和NVM容量时各架构吞吐量的估算比较。 データサイズがDRAM・NVM容量を超えるにつれた各アーキテクチャの推定スループット。

HYMEM's migration policy has five data transfer paths and three critical decisions:

HYMEM的数据迁移策略包含五条数据传输路径和三个关键决策:

HYMEMの移行ポリシーは5つのデータ転送パスと3つの重要な決定で構成されます:

  1. Page absent from both DRAM and NVM → read from SSD into DRAM (path 1).
  2. DRAM eviction: clock (second-chance) when DRAM is full.
  3. NVM admission: use Admission Queue — not in queue → evict to SSD and enqueue (path 3→5); in queue → evict to NVM (path 3→4). Only pages evicted twice enter NVM.
  4. Page in NVM, not DRAM → load at cache-line granularity into DRAM (path 2).
  5. NVM eviction: clock when NVM is full (path 6).
  1. 页面既不在DRAM也不在NVM中 → 从SSD直接读入DRAM(路径1)。
  2. DRAM驱逐:DRAM满时采用clock(second chance)算法。
  3. NVM准入:使用Admission Queue——不在队列中→驱逐至SSD并入队(路径3→5);在队列中→驱逐至NVM(路径3→4)。只有被驱逐两次的页面才进入NVM。
  4. 页面在NVM不在DRAM → 以缓存行粒度载入DRAM(路径2)。
  5. NVM驱逐:NVM满时采用clock算法(路径6)。
  1. DRAMにもNVMにもページが存在しない → SSDからDRAMに読み込む(パス1)。
  2. DRAM退避:DRAMが満杯の場合にclock(second-chance)アルゴリズム。
  3. NVM受付:Admission Queueを使用 — キューにない場合はSSDに退避してエンキュー(パス3→5);キューにある場合はNVMに退避(パス3→4)。2回退避されたページのみNVMに入る。
  4. ページがNVMにありDRAMにない → キャッシュライン単位でDRAMに読み込む(パス2)。
  5. NVM退避:NVMが満杯の場合にclockアルゴリズム(パス6)。
HYMEM page state transitions
HYMEM page state transition diagram showing all six migration paths. HYMEM页面状态转移图,展示全部六条迁移路径。 HYMEMのページ状態遷移図(6つの移行パスすべてを示す)。
Cache-line-grained Page
(a) Cache-line-grained Page: DRAM tracks which cache lines from an NVM page are resident and dirty. (a)缓存行粒度页面:DRAM记录NVM页面中哪些缓存行已载入(resident)以及是否被修改(dirty)。 (a)キャッシュライン粒度ページ:DRAMがNVMページのどのキャッシュラインがresidentかdirtyかを追跡する。
Mini Page
(b) Mini Page: a compact form with capacity 16, recording resident cache lines via a slots array. (b)小页面(mini-page):容量为16的压缩形式,通过slots数组记录已载入的缓存行。 (b)ミニページ:容量16のコンパクト形式。slotsアレイで存在するキャッシュラインを記録する。
YCSB-RO throughput by HYMEM optimization
YCSB-RO throughput relative to traditional BM, showing cumulative effect of each HYMEM optimization. With all optimizations HYMEM surpasses NVM Direct. 相对传统BM的YCSB-RO吞吐量,展示HYMEM各项优化的累积效果。叠加全部优化后HYMEM超越NVM Direct。 従来BM比のYCSB-ROスループット、HYMEMの各最適化の累積効果。全最適化を加えるとNVM Directを超える。

HYMEM also uses pointer swizzling — replacing page identifiers in DRAM with direct pointers to reduce page-table lookup overhead. However, HYMEM has several known limitations: (1) SSD→NVM and NVM↔CPU direct paths are absent, causing data duplication; (2) SSD→DRAM loading easily evicts hot pages; (3) single-threaded, no concurrency support.

HYMEM还使用了指针换用(pointer swizzling)——将DRAM中的页面标识符替换为直接指针,以减少页表查找开销。但HYMEM存在已知问题:(1)不支持SSD→NVM和NVM↔CPU直接数据流,导致数据重复;(2)SSD→DRAM直接加载容易驱逐热页面;(3)单线程设计,无并发支持。

HYMEMはポインタスウィズリングも使用します——DRAMのページ識別子を直接ポインタに置き換えてページテーブルルックアップのオーバーヘッドを削減します。ただしHYMEMには既知の限界があります:(1) SSD→NVMおよびNVM↔CPU直接パスが存在せずデータ重複が発生;(2) SSD→DRAMの直接ロードがホットページを退避させやすい;(3) シングルスレッド設計で並行性のサポートなし。

Pointer Swizzling
Figure 5: Pointer Swizzling — a B-tree with a swizzled leaf (pId: 7), a normal DRAM leaf (pId: 5), and a swapped-out leaf (pId: 8). 图5:指针换用——B树中一个已换用叶节点(pId:7)、一个普通DRAM叶节点(pId:5)和一个已换出叶节点(pId:8)。 図5:ポインタスウィズリング — スウィズルされたリーフ(pId: 7)、通常のDRAMリーフ(pId: 5)、スワップアウトされたリーフ(pId: 8)を持つBツリー。

III. NVM-Aware Data Migration Policy: A Taxonomy

三、NVM感知数据迁移策略分类

III. NVM対応データ移行ポリシーの分類

Spitfire enables all possible data flows and defines a 4-tuple to probabilistically characterize migration policies:

Spitfire开放所有可能的数据流,并定义如下四元组以概率方式刻画迁移策略:

Spitfireはすべての可能なデータフローを有効にし、移行ポリシーを確率的に特徴付ける4タプルを定義します:

DRAM/NVM/SSD data flow diagram
All ten possible data migration paths in the DRAM/NVM/SSD hierarchy. DRAM/NVM/SSD层次结构中所有十条可能的数据迁移路径。 DRAM/NVM/SSD階層における10の可能なデータ移行パスすべて。

P = ⟨Dr, Dw, Nr, Nw

NotationDefinitionComplementInterpretation
DrP(NVM → DRAM)1 − DrP(NVM → CPU)
DwP(CPU → DRAM)1 − DwP(CPU → NVM)
NrP(SSD → NVM)1 − NrP(SSD → DRAM)
NwP(DRAM → NVM)1 − NwP(DRAM → SSD)

Each parameter is implemented via random sampling of access history. A hot NVM page accessed N times is promoted to DRAM with probability 1 − (1 − Dr)N → 1 as N → ∞. Semantic interpretation:

每个参数通过对访问历史的随机采样实现。访问N次的热NVM页面被提升至DRAM的概率为 1 − (1 − Dr)N,当N→∞时趋于1。各参数的语义:

各パラメータはアクセス履歴のランダムサンプリングによって実装されます。N回アクセスされたホットNVMページがDRAMに昇格する確率は 1 − (1 − Dr)N で、N→∞のとき1に収束します。各パラメータの意味:

IV. Adaptive Data Migration: Simulated Annealing

四、自适应数据迁移:模拟退火

IV. 適応的データ移行:模擬焼きなまし法

Spitfire tunes P adaptively using simulated annealing with cost function cost(P) = 1/T (inverse throughput). Starting at high temperature for broad exploration and cooling gradually, it converges to the global optimum with high probability.

Spitfire使用模拟退火自适应调整策略P,代价函数定义为事务吞吐量的倒数:cost(P) = 1/T。从高温开始广泛探索,逐步降温,能以较高概率收敛至全局最优。

Spitfireはコスト関数cost(P) = 1/T(スループットの逆数)で模擬焼きなまし法を使用してPを適応的に調整します。高温から広く探索し、徐々に冷却することで高確率で大域最適に収束します。

Algorithm 1: Simulated Annealing
Algorithm 1: Data Migration Policy Tuning via Simulated Annealing. 算法1:基于模拟退火的数据迁移策略调整。 アルゴリズム1:模擬焼きなまし法によるデータ移行ポリシー調整。

Two reference policies:

两个参考策略:

2つの参照ポリシー:

PolicyDrDwNrNw
HYMEM110AdmQueue
Spitfire-Eager1111
Spitfire-Lazy0.010.010.21

Eager always follows SSD→NVM→DRAM→CPU reads and CPU→DRAM→NVM→SSD writes. Lazy routes most NVM accesses directly to CPU (Dr=Dw=0.01), reads most SSD misses into DRAM (Nr=0.2), and writes all DRAM evictions directly to SSD (Nw=1), protecting NVM.

Eager始终遵循SSD→NVM→DRAM→CPU读流程和CPU→DRAM→NVM→SSD写流程。Lazy让大多数NVM访问直接与CPU交互(Dr=Dw=0.01),大多数SSD缺页直接读入DRAM(Nr=0.2),所有DRAM驱逐直接写SSD(Nw=1),尽可能保护NVM。

Eagerは常にSSD→NVM→DRAM→CPU読み取りとCPU→DRAM→NVM→SSD書き込みに従います。LazyはほとんどのNVMアクセスをCPUに直接ルーティングし(Dr=Dw=0.01)、ほとんどのSSDミスをDRAMに読み込み(Nr=0.2)、すべてのDRAM退避をSSDに直接書き込みます(Nw=1)、NVMを保護します。

V. Spitfire: System Architecture

五、Spitfire系统架构

V. Spitfireシステムアーキテクチャ

Spitfire Architecture
Spitfire Architecture: policy optimizer (simulated annealing) continuously tunes the migration policy. Spitfire架构:策略优化器(模拟退火)持续调整迁移策略。 Spitfireアーキテクチャ:ポリシーオプティマイザ(模擬焼きなまし法)が移行ポリシーを継続的に調整する。

Spitfire maintains a concurrent hash table (mapping table) in DRAM storing per-tier latches and page descriptors. On a page request: page in DRAM → return DRAM frame; page in NVM and bypass permitted → return NVM frame directly; page absent → load per migration policy. Eviction uses clock. Inter-tier migration requires holding both tiers' latches simultaneously.

Spitfire在DRAM中维护一个并发哈希表(映射表),存储每层粒度的锁和页面描述符。页面请求处理:页面在DRAM中→返回DRAM帧;页面在NVM中且策略允许旁路→直接返回NVM帧;页面不存在→按迁移策略加载。驱逐使用时钟算法。跨层迁移需同时持有两层的锁。

SpitfireはDRAMに並行ハッシュテーブル(マッピングテーブル)を維持し、各層のラッチとページ記述子を格納します。ページリクエスト処理:DRAMにページがある場合→DRAMフレームを返す;NVMにページがありバイパスが許可されている場合→NVMフレームを直接返す;ページが存在しない場合→移行ポリシーに従ってロード。退避にはclockを使用。層間移行では両層のラッチを同時に保持する必要があります。

Mapping Table
Mapping Table: each entry holds latch_dram, latch_nvm, latch_ssd and pointers to DRAM/NVM page descriptors. 映射表:每条记录包含latch_dram、latch_nvm、latch_ssd以及DRAM/NVM页面描述符的指针。 マッピングテーブル:各エントリにlatch_dram、latch_nvm、latch_ssdとDRAM/NVMページ記述子へのポインタを保持する。

Spitfire additionally uses a concurrent bitmap for migration tracking, MVTO for concurrency control, and a concurrent B+Tree with optimistic lock coupling for indexing. The WAL is implemented in NVM. On restart, Spitfire scans NVM to find latest page versions, rebuilds the mapping table, then executes standard DBMS recovery (analysis, redo, undo).

Spitfire还使用并发位图跟踪迁移策略、MVTO并发控制协议和基于乐观锁耦合的并发B+树。WAL实现在NVM层。重启时,Spitfire扫描NVM识别页面最新版本,重建映射表,之后执行标准DBMS恢复流程(分析、重做、撤销)。

Spitfireはさらに移行追跡用の並行ビットマップ、並行制御用MVTO、楽観的ロックカップリングを使用した並行B+Treeを使用します。WALはNVM層に実装されます。再起動時、SpitfireはNVMをスキャンして最新ページバージョンを特定し、マッピングテーブルを再構築した後、標準的なDBMS回復(分析、redo、undo)を実行します。

VI. Experimental Evaluation

六、实验评估

VI. 実験評価

Workloads: YCSB-RO (100% reads), YCSB-BA (50% reads, 50% updates), YCSB-WH (10% reads, 90% updates), TPC-C.

测试负载:YCSB-RO(100%读)、YCSB-BA(50%读50%更新)、YCSB-WH(10%读90%更新)、TPC-C。

ワークロード:YCSB-RO(100%読み取り)、YCSB-BA(50%読み取り、50%更新)、YCSB-WH(10%読み取り、90%更新)、TPC-C。

NVM/SSD vs. DRAM/SSD at Equal Cost

相同成本下NVM/SSD与DRAM/SSD的性能比较

同コストでのNVM/SSD対DRAM/SSD

NVM-SSD vs DRAM-SSD
Throughput of NVM/SSD vs. DRAM/SSD at equal cost. As write ratio increases the gap narrows — NVM avoids dirty-page-flush overhead. 相同成本下NVM/SSD与DRAM/SSD的吞吐量比较。随写入比例增加差距收窄——NVM避免了脏页刷盘开销。 同コストでのNVM/SSDとDRAM/SSDのスループット比較。書き込み比率が増加するにつれてギャップが縮小 — NVMはダーティページのフラッシュオーバーヘッドを回避する。

Optimal Migration Policy per Workload

不同工作集下的最优数据迁移策略

ワークロードごとの最適移行ポリシー

Figure 6: Bypassing DRAM
Figure 6: D = 0.01 (lazy) is optimal. D = 0.01 outperforms D = 1 by 58% on YCSB-RO: it reduces DRAM/NVM duplication 16×, ensures only frequently-accessed data reaches DRAM, and maximizes effective cache size. 图6:D=0.01(lazy)在所有负载下均最优。YCSB-RO下D=0.01比D=1性能高58%:减少DRAM/NVM数据重复16倍,确保只有常访问数据进入DRAM,最大化有效缓存空间。 図6:D=0.01(lazy)がすべてのワークロードで最適。YCSB-ROではD=0.01がD=1より58%高い:DRAM/NVM重複を16倍削減し、頻繁にアクセスされるデータのみDRAMに到達させ、有効キャッシュサイズを最大化する。
Figure 7: Bypassing NVM
Figure 7: N = 0.01 is optimal. Setting N = 0 hurts more than D = 0 because NVM capacity ≫ DRAM capacity. 图7:N=0.01最优。设置N=0的影响远大于D=0,因为NVM容量远大于DRAM容量。 図7:N=0.01が最適。NVM容量≫DRAM容量のため、N=0の設定はD=0より大きなダメージを与える。
Figure 8: NVM Write Volume
Figure 8: Lazy strategy significantly reduces NVM write volume, extending NVM device lifetime. 图8:Lazy策略显著减少NVM写入量,延长NVM设备使用寿命。 図8:Lazyストラテジーはすることでデバイス寿命を延ばす。NVMの書き込み量を大幅に削減する。

Simulated Annealing Convergence

模拟退火的收敛性

模擬焼きなまし法の収束

Figure 10: Adaptive Data Migration
Figure 10: Simulated annealing converges to near-lazy policy within ~40 epochs on both YCSB-RO and YCSB-BA. 图10:模拟退火在约40个epoch后收敛至接近lazy的策略(YCSB-RO和YCSB-BA均如此)。 図10:模擬焼きなまし法はYCSB-ROとYCSB-BAの両方で約40エポック以内にlazyポリシーに近い状態に収束する。

HYMEM vs. Spitfire

HYMEM与Spitfire对比

HYMEM対Spitfire

Figure 11: NVM Loading Granularity
Figure 11: Optimal NVM loading granularity is 256 B on Optane DC PMMs, not HYMEM's assumed 64 B. 图11:Optane DC PMMs上的最优NVM数据加载粒度为256B,而非HYMEM假设的64B。 図11:Optane DC PMMs上の最適NVMロード粒度は、HYMEMが想定する64Bではなく256Bである。
Figure 12: Ablation Study
Figure 12: Spitfire-Lazy significantly outperforms HYMEM — migration policy choice dominates over fine-grained loading optimizations. 图12:Spitfire-Lazy显著超越HYMEM——迁移策略的选择比细粒度加载优化对性能的影响更大。 図12:Spitfire-LazyがHYMEMを大幅に上回る — 移行ポリシーの選択が細粒度ロード最適化より支配的。
We demonstrate that the choice of the migration policy is more important than the fine-grained loading and mini-page optimizations. — Spitfire
我们证明,迁移策略的选择比细粒度加载和小页面优化更为重要。——Spitfire
移行ポリシーの選択は、細粒度ロードおよびミニページ最適化よりも重要であることを示す。— Spitfire

Impact of Database Size

数据库大小对性能的影响

データベースサイズの影響

Figure 15: Impact of Database Size
Figure 15: Spitfire-Lazy leads on DRAM/NVM/SSD for read-heavy and small workloads; NVM/SSD leads for write-heavy and large workloads. 图15:读密集型或小工作集下Spitfire-Lazy在DRAM/NVM/SSD上表现最佳;写密集型或大工作集下NVM/SSD更优。 図15:読み取り集中型・小規模ワークロードではSpitfire-LazyがDRAM/NVM/SSDでリード;書き込み集中型・大規模ワークロードではNVM/SSDがリード。

Three storage architecture design principles: (1) For maximum absolute performance, architecture must include DRAM. (2) For read-intensive workloads, DRAM/NVM/SSD achieves the best performance/price ratio. (3) For write-intensive workloads, NVM/SSD is best — NVM persistence reduces recovery overhead.

三条存储架构设计原则:(1)要达到最高绝对性能,架构必须包含DRAM;(2)读密集型负载下DRAM/NVM/SSD的性价比最优;(3)写密集型负载下NVM/SSD的性价比最优——NVM持久化降低了恢复协议开销。

3つのストレージアーキテクチャ設計原則:(1) 最高の絶対性能のためには、アーキテクチャにDRAMが必要;(2) 読み取り集中型ワークロードではDRAM/NVM/SSDが最良の性能/価格比を達成;(3) 書き込み集中型ワークロードではNVM/SSDが最良 — NVMの永続性により回復オーバーヘッドが削減される。

VII. Conclusion

七、结论

VII. 結論

HYMEM, the first DBMS buffer manager for DRAM/NVM/SSD, achieves performance beyond NVM Direct via clock-based hot/warm/cold page distribution and NVM byte-addressability optimizations. Spitfire introduces a probabilistic vector representation of migration policies enabling simulated annealing-based workload adaptation. Its key finding: migration policy selection dominates performance, outweighing fine-grained cache-line and mini-page optimizations. The Spitfire-Lazy policy consistently outperforms HYMEM across diverse workloads.

HYMEM是首个面向DRAM/NVM/SSD三层架构的DBMS缓冲区管理器,通过时钟算法将热/温/冷页面分发至合适存储层,并利用NVM字节寻址能力实现了超越NVM Direct的性能。Spitfire通过概率向量刻画迁移策略,使模拟退火能够在运行时自适应调整。核心结论:迁移策略的选择对性能的决定性影响超过缓存行和小页面等细粒度优化。Spitfire-Lazy策略在各类负载下均持续优于HYMEM。

HYMEMはDRAM/NVM/SSD向けの最初のDBMSバッファマネージャで、クロックベースのホット/ウォーム/コールドページ分配とNVMバイトアドレッサビリティ最適化によりNVM Directを超える性能を達成しました。Spitfireは移行ポリシーの確率的ベクトル表現を導入し、模擬焼きなまし法によるワークロード適応を実現します。主な知見:移行ポリシーの選択が性能を支配し、キャッシュラインとミニページの細粒度最適化を上回ります。Spitfire-Lazyポリシーは多様なワークロードを通じてHYMEMを一貫して上回ります。