Topik ini menjelaskan arsitektur tiga lapis PolarDB for MySQL, yang menggunakan Compute Express Link (CXL) untuk melakukan decoupling antara komputasi, memori, dan penyimpanan. Inovasi inti teknologi ini dijelaskan secara rinci dalam makalah "Unlocking the Potential of CXL for Disaggregated Memory in Cloud-Native Databases," yang meraih Best Paper Award pada SIGMOD 2025. PolarDB for MySQL menggunakan PolarCXLMem untuk membuat sistem memori disaggregated yang menghubungkan langsung pool memori berkinerja-tinggi ke node komputasi. Arsitektur ini memungkinkan memori CXL dimuat dalam hitungan detik dan memperluas kapasitas memori maksimum satu node hingga 8 TB. Pada model I/O-bound sysbench, arsitektur ini meningkatkan performa lebih dari 100%. Selain itu, teknologi eksklusif PolarRecv, dikombinasikan dengan fitur persistensi memori CXL, meningkatkan performa pemulihan crash database lebih dari 40 kali lipat. Pooling memori berbasis CXL juga cocok untuk skenario pelatihan dan inferensi artificial intelligence (AI).
Fitur ekstensi memori Compute Express Link (CXL) saat ini sedang dalam canary release. Untuk menggunakan fitur ini atau jika Anda memiliki pertanyaan, submit a ticket untuk menghubungi kami.
Cakupan penerapan
Versi kluster: MySQL 8.0.2 dengan versi mesin minor 8.0.2.2.31.1 atau lebih baru.
Cara kerja
Arsitektur tradisional menyulitkan dan mahal dalam melakukan scale-out resource memori. Untuk mengatasi tantangan ini, PolarDB for MySQL menggunakan teknologi CXL 2.0 untuk menyediakan arsitektur memori disaggregated inovatif PolarCXLMem. Arsitektur ini menggunakan pool memori CXL untuk memperluas DRAM. Pool tersebut terhubung langsung ke node komputasi, dan engine database dapat membaca serta menulis data di memori CXL menggunakan instruksi Load/Store native, sebagaimana mengakses memori lokal.
Dibandingkan solusi Remote Direct Memory Access (RDMA) tradisional, arsitektur PolarCXLMem tidak memerlukan tumpukan protokol jaringan yang kompleks atau penyalinan data. Hal ini menghindari overhead performa dan amplifikasi tulis. Arsitektur ini mencapai decoupling sejati antara komputasi dan memori, serta menawarkan opsi memori dengan performa mendekati DRAM, biaya lebih rendah, dan kapasitas lebih tinggi.

Desain memori terpadu dan non-hierarkis
Berbeda dengan solusi PolarDB three-layer decoupling (RDMA) yang mengakses memori remote melalui jaringan RDMA, PolarCXLMem menggunakan protokol CXL.mem untuk memetakan langsung perangkat memori CXL ke ruang alamat fisik host. Bagi kernel database, DRAM dan memori CXL membentuk Buffer Pool tunggal yang non-hierarkis. CPU menggunakan instruksi
Load/Storenative untuk mengakses langsung memori CXL sebagaimana mengakses DRAM lokal. Pendekatan ini menghindari overhead performa dan amplifikasi tulis akibat swapping halaman antar level memori yang berbeda.Koherensi cache tingkat hardware
Protokol CXL.cache menjamin konsistensi data antara cache CPU dan memori CXL pada tingkat hardware. Hal ini menghilangkan kebutuhan perangkat lunak database untuk melakukan manajemen cache tambahan, sehingga menyederhanakan arsitektur dan meningkatkan efisiensi.
Pemulihan dalam hitungan detik menggunakan persistent memory (PolarRecv)
Teknologi PolarRecv memanfaatkan fitur persistensi memori CXL. Saat database crash, data Buffer Pool pada memori persisten CXL tidak perlu dipulihkan dengan mereplay redo log. Dengan PolarRecv, database dapat langsung memuat data dari memori CXL. Hal ini memungkinkan pemuatan dalam hitungan detik dan menurunkan recovery time objective (RTO) menjadi beberapa detik saja. Dalam skenario pengujian tertentu, kecepatan pemulihan dapat ditingkatkan lebih dari 40 kali lipat.
Manfaat
Pengurangan biaya signifikan: Biaya per gigabyte memori CXL jauh lebih rendah dibandingkan DRAM lokal, sehingga mengurangi total biaya memori database Anda sebesar 30% hingga 50%. Resource komputasi dan memori juga dapat diskalakan secara elastis dan independen dengan model pay-as-you-go, yang mencegah pemborosan resource.
Mengatasi keterbatasan kapasitas: Mengatasi batasan slot memori pada satu server fisik dan meningkatkan kapasitas memori satu node komputasi hingga 8 TB. Hal ini memungkinkan Anda menangani secara efektif skenario analisis dan kueri untuk dataset berukuran sangat besar.
Performa mendekati DRAM: Dalam berbagai skenario workload online transactional processing (OLTP), seperti point queries, mixed reads, dan read-writes, penambahan memori CXL meningkatkan performa kluster sebesar 20% hingga 112%. Selain itu, teknologi eksklusif
PolarRecvdan fitur persistensi memori CXL dapat mengurangi RTO pemulihan crash database lebih dari 40 kali lipat.
Skenario
Online transaction processing (OLTP) intensif memori: Dalam skenario seperti media sosial, gaming, dan e-commerce, data inti seperti relasi pengguna, informasi produk, dan pesanan real-time harus berada di memori untuk memastikan akses latensi rendah. Anda dapat menggunakan memori CXL untuk menyimpan working set yang lebih besar secara hemat biaya di memori dan mengurangi overhead I/O.
Analisis dan pelaporan data skala besar (analytical processing, atau AP): Untuk layanan yang memerlukan kueri kompleks dan analisis real-time terhadap dataset masif, kapasitas besar memori CXL dapat menampung lebih banyak data. Hal ini mempercepat pemrosesan kueri dan menghindari pembacaan disk berulang akibat kekurangan memori.
Lingkungan pengembangan dan pengujian: Saat Anda mengonfigurasi spesifikasi memori besar untuk lingkungan pengembangan dan pengujian, memori CXL merupakan pilihan hemat biaya. Hal ini memungkinkan Anda mensimulasikan lingkungan produksi berkapasitas memori besar dengan biaya lebih rendah.
Laporan uji performa
Data performa berikut berasal dari lingkungan pengujian tertentu dan hanya untuk referensi. Performa aktual dapat bervariasi tergantung pada faktor-faktor seperti spesifikasi kluster, workload, pola data, dan pengaturan parameter.
Lingkungan pengujian
Spesifikasi kluster: Edisi Perusahaan 8.0.2, spesifikasi khusus, 8 core, 32 GB.
Data pengujian: 40 tabel, dengan 10.000.000 baris per tabel.
Perbandingan solusi
Rencana A (Baseline): 8 core, 32 GB, dengan total memori tersedia 32 GB.
Rencana B (Ekstensi CXL): 8 core, 32 GB + 64 GB memori CXL, dengan total memori tersedia 96 GB.
Pengujian ini membandingkan peningkatan performa akibat penambahan memori CXL pada spesifikasi dasar. Perbandingan ini tidak mencerminkan perbedaan performa antara memori CXL dan jumlah DRAM murni yang setara. Tujuan utama pengujian ini adalah memverifikasi dampak ekspansi kapasitas memori dengan CXL terhadap throughput database.
Hasil pengujian
Setelah menambahkan 64 GB memori CXL, performa keseluruhan kluster, diukur dalam permintaan per detik (QPS), meningkat hingga 112%. Hal ini disebabkan oleh Buffer Pool yang lebih besar mampu menyimpan lebih banyak data dalam cache, sehingga mengurangi I/O disk.
Point queries (oltp_point_select)
Setelah pool memori CXL diaktifkan, performa meningkat 50% hingga 112%.
Mixed reads (oltp_read_only)
Setelah pool memori CXL diaktifkan, performa meningkat 30% hingga 80%.
Mixed reads and writes (oltp_read_write)
Setelah pool memori CXL diaktifkan, performa meningkat 20% hingga 50%.