Ringkasan tingkat dalam memori
Tingkat dalam memori adalah setelan tingkat cluster yang menggunakan node khusus. Sebelum membaca halaman ini, pahami instance, cluster, dan node. Sebaiknya Anda juga mempelajari batasan.
Bigtable dalam memori adalah tingkat memori terintegrasi sebagai bagian dari node Bigtable yang memungkinkan penentuan tingkat data yang lancar dan dioptimalkan biayanya berdasarkan pola akses dan kebutuhan performa, semuanya melalui satu API. Dengan menggunakan akses memori langsung jarak jauh (RDMA), tingkat dalam memori Bigtable secara signifikan mengurangi waktu respons, mengurangi hotspot, dan memastikan throughput tinggi untuk data yang sensitif terhadap latensi. Untuk mengetahui informasi selengkapnya, lihat Memahami performa.
Kapan menggunakan dalam memori
Sebaiknya aktifkan tingkat dalam memori untuk kasus penggunaan berikut:
- Persyaratan latensi sub-milidetik: workload yang memerlukan latensi baca kurang dari 1 md, yang biasanya ditangani dengan menempatkan solusi cache yang dikelola sendiri di depan database.
- Pembacaan titik throughput tinggi: aplikasi dengan persyaratan throughput traffic baca tinggi pada subset data tertentu.
- Pengurangan hotspot: workload throughput tinggi yang mungkin mencakup lonjakan traffic atau hotspot pada kunci baris tertentu.
- Pengoptimalan biaya: skenario saat Anda ingin mengurangi jumlah node Bigtable dengan mengalihkan volume baca tinggi ke tingkat dalam memori yang lebih hemat biaya.
Cara kerja tingkat dalam memori
Dukungan dalam memori disediakan oleh node penyimpanan hybrid. Node khusus ini memperluas disagregasi komputasi dan penyimpanan Bigtable untuk menyertakan tingkat memori dengan throughput yang dapat diskalakan secara vertikal. Dalam memori dapat memerlukan waktu hingga 30 menit untuk menyediakan node khusus. Selama periode ini, Bigtable terus menayangkan traffic dari penyimpanan persisten.
Anda dapat mengaktifkan tingkat dalam memori di tingkat cluster.
Tingkat dalam memori beroperasi sebagai berikut:
- Mendapatkan data di tingkat memori: dalam memori menawarkan perilaku penyimpanan dalam cache baca. Baris masuk ke tingkat memori dengan operasi baca melalui profil aplikasi yang Anda konfigurasi untuk dalam memori. Operasi tulis dari profil aplikasi apa pun akan memperbarui tingkat memori jika data baris sudah berada di tingkat dalam memori.
- Kebijakan penghapusan dan pembatalan: dalam memori menggunakan penghapusan Least Recently Used (LRU) di tingkat baris dan kebijakan pembatalan waktu aktif (TTL) 15 menit.
- Penyimpanan dalam cache negatif: dalam memori mengingat apakah resource tidak ada untuk jangka waktu tertentu guna mencegah kelebihan beban backend.
- Keamanan: dalam memori mendukung enkripsi saat tidak aktif dan saat transit (TLS).
- Replikasi: dalam instance multi-cluster, tingkat memori cluster yang berbeda tidak disinkronkan. Karena setiap tingkat memori secara independen menentukan data mana yang akan dimuat ke dalam memori berdasarkan traffic baca yang diterimanya, cluster yang berbeda mungkin menyimpan kunci baris yang berbeda di tingkat memorinya. Bigtable memuat data ke dalam memori dari tingkat SSD cluster lokal. Penulisan ke baris pada akhirnya akan memperbaruinya di semua tingkat memori tempat baris tersebut berada, mengikuti model replikasi Bigtable standar dari konsistensi eventual.
- Penskalaan otomatis vertikal: tingkat dalam memori mendukung penskalaan otomatis vertikal di tingkat node yang berfungsi bersama penskalaan otomatis Bigtable.
Tingkat dalam memori dioptimalkan untuk akses berperforma tinggi ke data saat ini. Untuk mempertahankan performa ini, hanya versi baris dengan stempel waktu terbaru yang berada di tingkat memori. Permintaan untuk versi data sebelumnya, yang juga dikenal sebagai sel historis, secara otomatis melewati tingkat memori dan ditayangkan dari penyimpanan persisten.
Koherensi data
Bigtable memastikan bahwa data dalam memori konsisten dengan data persisten di tingkat penyimpanan SSD atau akses jarang. Arsitektur hybrid ini memungkinkan Bigtable menyediakan model penyimpanan yang konsisten di semua tingkat penyimpanan, sehingga Anda dapat mengakses data melalui antarmuka semantik yang sama, terlepas dari apakah data tersebut secara fisik berada di RAM atau penyimpanan persisten. Dengan Bigtable dalam memori diaktifkan, Anda mempertahankan konsistensi baca-tulis di tingkat cluster.
Penskalaan vertikal
Mengaktifkan tingkat dalam memori memungkinkan setiap node menggunakan penskalaan vertikal untuk mengubah kapasitas throughput dalam memorinya. Setiap node menyertakan RAM 8 GB untuk tingkat dalam memori dan dimulai dengan kapasitas dasar 40.000 baca per detik. Untuk mengelola lonjakan traffic baca titik, node dapat otomatis diskalakan dalam penambahan 40.000 baca per detik, hingga maksimum 120.000 baca per detik per node.
Fitur penskalaan vertikal ini terintegrasi dengan penskalaan otomatis Bigtable. Jika kapasitas dalam memori maksimum tercapai di semua node dalam cluster dan penskalaan otomatis aktif, Bigtable akan otomatis menyediakan node tambahan untuk lebih meningkatkan throughput dalam memori.
Penskalaan vertikal pada node hanya berlaku untuk pembacaan dalam memori per detik, dan berfungsi terlepas dari apakah penskalaan otomatis tingkat cluster diaktifkan atau tidak. Penskalaan vertikal di luar 40.000 baca per detik dasar ditagih dengan menerapkan pengganda ke biaya per jam node. Untuk mengetahui informasi selengkapnya, lihat harga dan batas.
Batasan
Batasan berikut berlaku untuk tingkat dalam memori:
- Dalam memori memerlukan penyimpanan SSD.
- Dalam memori hanya mendukung operasi baca titik tingkat baris tunggal.
- Dalam memori tidak menayangkan pemindaian data atau mendukung kueri SQL.
- Profil aplikasi dalam memori hanya mendukung perutean cluster tunggal.
- Dalam memori membatasi ukuran baris hingga 1 MiB per kunci baris. Bigtable membaca baris yang melebihi batas ini dari penyimpanan persisten.
- Dalam memori memerlukan library klien Bigtable untuk Java versi 2.77.0 atau yang lebih baru atau BOM versi 26.80.0 atau yang lebih baru. Library klien lainnya tidak didukung.
- Cluster Customer-Managed Encryption Keys (CMEK) tidak mendukung dalam memori.
Langkah berikutnya
- Pelajari cara mengaktifkan tingkat dalam memori