Topik ini menjelaskan teknologi Distributed Memory Pool (DMP) dalam PolarDB. Dengan DMP, PolarDB menerapkan arsitektur tiga lapis yang melakukan penguraian keterkaitan antara komputasi, memori, dan penyimpanan. Teknologi ini secara signifikan meningkatkan performa baca dan tulis untuk muatan yang intensif I/O dengan memanfaatkan cache berkinerja tinggi terdistribusi di multi-node serta jaringan Remote Direct Memory Access (RDMA) berkecepatan tinggi yang bersifat one-sided. Anda dapat mengaktifkan atau menonaktifkan DMP secara dinamis dalam hitungan detik tanpa dampak apa pun pada layanan Anda dan tanpa mengganggu atau memblokir operasi kluster.
Fitur ini sedang dalam rilis canary. Untuk menggunakan fitur ini atau jika Anda memiliki pertanyaan, submit a ticket.
Cakupan
Edisi: Enterprise Edition.
Cara Kerja
Buffer pool database adalah area di memori yang digunakan untuk menyimpan cache data disk. Saat data diminta, sistem terlebih dahulu mencoba membacanya dari buffer pool. Jika data tidak tersedia di buffer pool, data tersebut harus diambil dari penyimpanan dasar. Operasi I/O ini meningkatkan latensi baca, yang mencakup latensi disk dan latensi jaringan untuk penyimpanan remote, sehingga secara langsung memengaruhi performa database.
Karena keterbatasan sumber daya pada satu host tunggal, kluster PolarDB ditawarkan dengan rasio tetap antara CPU dan memori. Model ini menimbulkan tiga tantangan:
Kurang fleksibel untuk berbagai skenario bisnis: Misalnya, layanan yang intensif memori membutuhkan kapasitas memori besar, sedangkan layanan yang komputasi-intensif memerlukan lebih banyak core CPU. Jika komputasi dan memori dipisahkan, layanan dapat dikonfigurasi lebih fleksibel untuk mengurangi biaya dan meningkatkan efisiensi.
Kapasitas memori terbatas: Memori maksimum suatu kluster dibatasi oleh memori maksimum satu host. Sebagai contoh, sebagian besar spesifikasi kluster saat ini memiliki memori maksimum 512 GB.
Dampak pada layanan selama proses penskalaan: Penskalaan sumber daya memerlukan migrasi, yang dapat menyebabkan pemutusan koneksi sementara pada layanan Anda. Akibatnya, penskalaan untuk acara bisnis berskala besar sering kali harus direncanakan berhari-hari sebelumnya, sehingga sulit menangani lonjakan traffic mendadak.
DMP PolarDB menggunakan jaringan RDMA berkecepatan tinggi yang bersifat one-sided untuk menggabungkan memori dari beberapa host menjadi kolam memori bersama terdistribusi berkapasitas besar, latensi rendah, dan dapat diskalakan. Setelah DMP disambungkan, node komputasi PolarDB secara otomatis menangani permintaan I/O dengan mencari data dalam urutan berikut: cache lokal, memori lokal, memori terdistribusi, lalu penyimpanan terdistribusi. Proses ini transparan bagi layanan Anda dan tidak memerlukan perubahan pada aplikasi Anda. Sumber daya dapat diskalakan secara dinamis setelah penyambungan.
Proses penyambungan dan penskalaan tidak berdampak pada layanan Anda.
Dengan DMP, memori maksimum satu kluster PolarDB dapat mencapai 10 TB. Latensi I/O baca acak ukuran 16 KB serendah 10 µs, yaitu sekitar sepersepuluh dari latensi I/O penyimpanan. Hal ini secara signifikan meningkatkan performa dalam skenario yang dibatasi I/O, dengan peningkatan performa TPC-H hingga 6,5×.
Keunggulan Utama
Peningkatan performa pada skenario yang dibatasi I/O: Dengan RDMA one-sided, DMP menurunkan latensi I/O baca acak ukuran 16 KB hingga serendah 10 µs—sekitar sepuluh kali lebih rendah dibandingkan latensi baca I/O dari penyimpanan.
Terobosan kapasitas memori: Memori maksimum untuk satu kluster dapat mencapai 10 TB.
Elastisitas mulus dalam hitungan detik: Penyambungan DMP membutuhkan waktu kurang dari 1 detik dan tidak berdampak pada layanan Anda.
Konfigurasi fleksibel: Anda dapat mengonfigurasi DMP di tingkat kluster atau secara individual untuk node primary dan node read-only tertentu guna meningkatkan performa baca dan tulis.