Ketika beberapa analis menjalankan kueri terhadap set data OSS yang sama secara bersamaan, setiap kueri mengambil data langsung dari OSS—menyebabkan latensi tinggi dan penggunaan bandwidth yang padat. Lake Cache menghindari pengambilan berulang dari OSS dengan menyimpan objek yang sering diakses pada NVMe SSD khusus, memberikan latensi baca dalam milidetik dan bandwidth yang meningkat secara linear seiring penambahan ukuran cache.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster AnalyticDB for MySQL Edisi Perusahaan, Edisi Dasar, atau Edisi Data Lakehouse
Cara kerja
Saat pekerjaan Spark membaca dari OSS dengan Lake Cache diaktifkan:
Klien Lake Cache meneruskan permintaan baca ke node master untuk mengambil metadata objek.
Node master mengembalikan metadata tersebut ke klien.
Klien menggunakan metadata tersebut untuk meminta objek aktual dari node pekerja.
Jika objek tersebut sudah tersimpan dalam cache pada node pekerja, objek tersebut langsung dikembalikan.
Jika tidak, objek tersebut diambil dari OSS, dikembalikan ke klien, dan disimpan dalam cache untuk pembacaan selanjutnya.
Konsistensi data dipertahankan secara otomatis: ketika objek OSS diperbarui, Lake Cache mendeteksi perubahan tersebut dan menyegarkan cache. Kueri selalu membaca data terbaru.
Performa
Bandwidth dan latensi
| Metric | Detail |
|---|---|
| Latensi baca | Tingkat milidetik (NVMe SSD) |
| Cache bandwidth | 5 Gbit/s per TB ukuran cache |
| Throughput burst maksimum | Ratusan Gbit/s |
| Rentang ukuran cache | 10 GB–200.000 GB |
Contoh bandwidth: Dengan cache 10 TB, bandwidth baca adalah 5 × 10 = 50 Gbit/s (sekitar 6,25 GB/s). Dengan cache 20 TB, bandwidth baca menjadi dua kali lipat, yaitu 100 Gbit/s. Bandwidth meningkat secara linear seiring penambahan ukuran cache, tanpa dibatasi oleh batas bandwidth OSS standar.
Kerapatan throughput tinggi: Lake Cache dapat memberikan throughput tinggi untuk jumlah data kecil guna memenuhi kebutuhan baca burst untuk data panas dalam jumlah kecil.
Jika Anda memerlukan ukuran cache lebih besar dari 200.000 GB, submit a ticket.
Kebijakan penggantian cache
Saat cache mencapai batas ukurannya, Lake Cache menggunakan kebijakan penggantian Least Recently Used (LRU): objek yang jarang diakses akan dihapus terlebih dahulu, sedangkan objek yang sering diakses tetap dipertahankan. Untuk mencegah penghapusan objek yang ingin Anda simpan, tingkatkan ukuran cache.
Hasil benchmark TPC-H
Pengujian berikut menggunakan kueri TPC-H untuk mengukur dampak Lake Cache terhadap performa baca OSS. Lake Cache meningkatkan kecepatan eksekusi kueri sebesar 2,7x dibandingkan akses langsung ke OSS.
| Konfigurasi | Ukuran cache | Ukuran dataset | Spesifikasi resource Spark | Waktu eksekusi |
|---|---|---|---|---|
| Lake cache diaktifkan | 12 TB | 10 TB | 2 core, 8 GB (medium) | 7,219 s |
| Akses langsung ke OSS | Tidak ada | 10 TB | 2 core, 8 GB (medium) | 19.578s |
Penagihan
Setelah Anda mengaktifkan Lake Cache, Anda akan dikenai biaya atas ruang cache yang digunakan berdasarkan model bayar sesuai penggunaan. Untuk detail harga, lihat Harga untuk Edisi Perusahaan dan Edisi Dasar serta Harga untuk Edisi Data Lakehouse.
Batasan
Lake Cache tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Shenzhen), Singapura, AS (Virginia), dan Indonesia (Jakarta). Untuk menggunakan Lake Cache di wilayah lain, submit a ticket.
Jika terjadi gangguan perangkat keras pada node cache, kueri tetap berjalan tetapi mungkin melambat saat data diambil ulang dari OSS. Performa pulih secara otomatis setelah cache diisi ulang.
Saat cache mencapai batas ukurannya, objek yang jarang diakses akan diganti oleh objek yang lebih sering diakses. Tingkatkan ukuran cache untuk mencegah penggantian tersebut.
Aktifkan lake cache
Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters.
Di tab Enterprise Edition, Basic Edition, atau Data Lakehouse Edition, temukan kluster dan klik ID kluster tersebut.
Di halaman Cluster Information, buka bagian Configuration Information dan klik Configure di samping Lake Cache.
Di kotak dialog Lake Cache, aktifkan Lake Cache dan tentukan ukuran cache. Jika terjadi error saat menentukan ukuran cache, submit a ticket.
Klik OK.
Setelah mengaktifkan Lake Cache, buka kembali kotak dialog Lake Cache untuk mengonfirmasi ukuran cache yang telah dikonfigurasi.
Gunakan lake cache dalam pekerjaan Spark
Setelah mengaktifkan Lake Cache, atur parameter spark.adb.lakecache.enabled ke true dalam pekerjaan Spark Anda untuk mengaktifkan akselerasi baca OSS.
Spark SQL
-- Aktifkan lake cache untuk sesi ini
SET spark.adb.lakecache.enabled=true;
-- Jalankan kueri Anda
SHOW databases;Spark JAR
Teruskan parameter dalam konfigurasi pekerjaan:
{
"comments": [
"Aktifkan lake cache untuk akselerasi baca OSS."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true"
}
}Untuk menggunakan Lake Cache dengan mesin XIHE, submit a ticket.
Kapan lake cache tidak mempercepat kueri
Lake Cache tidak mempercepat kueri jika salah satu kondisi berikut berlaku:
Pekerjaan Spark tidak memiliki parameter
spark.adb.lakecache.enabled=trueyang diatur.Kluster berada di wilayah yang tidak mendukung Lake Cache.
Data sedang dibaca untuk pertama kalinya—belum tersimpan dalam cache. Performa meningkat pada pembacaan berikutnya.
Telah terjadi gangguan perangkat keras pada node cache dan data sedang diambil ulang dari OSS (bersifat sementara; pulih secara otomatis).
Ruang cache penuh dan objek yang dibutuhkan oleh kueri telah diganti. Tingkatkan ukuran cache untuk menyimpan lebih banyak data panas.
Monitor lake cache
Setelah mengaktifkan Lake Cache, periksa apakah pekerjaan Spark Anda menggunakan cache dan tinjau metrik penggunaannya di CloudMonitor.
Masuk ke Konsol CloudMonitor.
Di panel navigasi sebelah kiri, pilih Cloud Resource Monitoring > Cloud Service Monitoring.
Arahkan kursor ke kartu AnalyticDB for MySQL dan klik AnalyticDB for mysql 3.0 - Data Lakehouse Edition.
Temukan kluster dan klik Monitoring Charts di kolom Actions.
Klik tab LakeCache Metrics untuk melihat detail cache.
Metrik berikut tersedia:
| Metric | Deskripsi |
|---|---|
| LakeCache Cache Hit Ratio(%) | Persentase permintaan baca yang dilayani dari cache. Rumus: baca dari cache / total baca. Rasio yang lebih tinggi berarti lebih banyak trafik OSS yang dihindari. |
| LakeCache Cache Usage(B) | Jumlah ruang cache yang sedang digunakan, dalam byte. |
| Total Amount of Historical Cumulative Read Data of LakeCache(B) | Total data yang dibaca dari cache sejak diaktifkan, dalam byte. |
Jika rasio hit cache rendah meskipun kueri berulang dilakukan terhadap data yang sama, pertimbangkan untuk menambah ukuran cache agar lebih banyak objek dapat disimpan antar pembacaan.