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 penjenjangan data yang lancar dan dioptimalkan biayanya berdasarkan pola akses dan kebutuhan performa, semuanya melalui satu API. Dengan menggunakan remote direct memory access (RDMA), tingkat dalam memori Bigtable mengurangi waktu respons secara signifikan, memitigasi hotspot, dan memastikan throughput tinggi untuk data yang sensitif terhadap latensi. Untuk mengetahui informasi selengkapnya, lihat Memahami performa.

Kapan harus 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, 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.
  • Mitigasi hotspot: workload throughput tinggi yang dapat mencakup lonjakan traffic atau hotspot pada kunci baris tertentu.
  • Pengoptimalan biaya: skenario saat Anda ingin mengurangi jumlah node Bigtable dengan mengurangi beban volume baca yang 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 melayani 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 cache baca-tulis. Baris masuk ke tingkat memori dengan operasi baca melalui profil aplikasi yang Anda konfigurasi untuk dalam memori. Operasi penulisan dari profil aplikasi mana pun akan memperbarui tingkat memori jika data baris sudah ada di tingkat dalam memori.
  • Kebijakan pengusiran dan pembatalan: dalam memori menggunakan pengusiran Least Recently Used (LRU) di tingkat baris dan kebijakan pembatalan time to live (TTL) 15 menit.
  • Caching negatif: dalam memori, ingat apakah resource tidak ada selama jangka waktu tertentu untuk mencegah kelebihan beban backend.
  • Keamanan: dalam memori mendukung enkripsi dalam penyimpanan dan dalam 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 dengan konsistensi pada akhirnya.
  • 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 yang diberi stempel waktu terbaru yang berada di tingkat memori. Permintaan untuk versi data yang lebih lama, yang juga dikenal sebagai sel historis, otomatis melewati tingkat memori dan disalurkan dari penyimpanan persisten.

Koherensi data

Bigtable memastikan bahwa data dalam memori konsisten dengan data persisten di tingkat penyimpanan SSD atau akses jarang. Arsitektur hibrida 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 mengaktifkan Bigtable in-memory, Anda mempertahankan konsistensi baca-tulis di tingkat cluster.

Penskalaan vertikal

Dengan mengaktifkan tingkat dalam memori, setiap node dapat menggunakan penskalaan vertikal untuk mengubah kapasitas throughput dalam memori. Setiap node mencakup RAM 8 GB untuk tingkat dalam memori dan dimulai dengan kapasitas dasar 40.000 pembacaan per detik. Untuk mengelola lonjakan traffic bacaan titik, node dapat melakukan penskalaan otomatis dalam peningkatan 40.000 bacaan per detik, hingga maksimum 120.000 bacaan 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 pembacaan per detik dasar ditagih dengan menerapkan pengganda pada 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 menyajikan pemindaian data atau mendukung kueri SQL.
  • Profil aplikasi dalam memori hanya mendukung perutean cluster tunggal.
  • Batas 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.
  • Cluster Kunci Enkripsi yang Dikelola Pelanggan (CMEK) tidak mendukung dalam memori.

Langkah berikutnya