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.

Paket dalam memori Bigtable adalah paket 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 secara signifikan mengurangi waktu respons, memitigasi hotspot, dan memastikan throughput tinggi untuk data yang sensitif terhadap latensi. Untuk mengetahui informasi selengkapnya, lihat Memahami performa.

Kapan harus menggunakan tingkat 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 dengan 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 tingkat 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. Bigtable dapat memerlukan waktu hingga 30 menit untuk menyediakan node tingkat dalam memori khusus. Selama periode ini, Bigtable akan 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: tingkat dalam memori menawarkan perilaku penembolan baca-tuntas. Baris masuk ke tingkat memori dengan operasi baca melalui profil aplikasi yang Anda konfigurasi untuk tingkat dalam memori. Operasi penulisan dari profil aplikasi mana pun akan memperbarui tingkat memori jika data baris sudah berada di tingkat dalam memori.
  • Kebijakan penghapusan dan pembatalan: tingkat dalam memori menggunakan penghapusan Least Recently Used (LRU) di tingkat baris dan menerapkan kebijakan pembatalan time to live (TTL) untuk memaksimalkan rasio hit tingkat dalam memori.
  • Caching negatif: tingkat dalam memori mengingat apakah resource tidak ada selama jangka waktu tertentu untuk mencegah kelebihan beban backend.
  • Keamanan: tingkat dalam memori mendukung enkripsi dalam penyimpanan dan dalam pengiriman (TLS).
  • Replikasi: di 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 sebelumnya, yang juga dikenal sebagai sel historis, otomatis melewati tingkat memori dan disajikan dari penyimpanan persisten.

Koherensi data

Bigtable memastikan bahwa data tingkat 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 berada secara fisik di RAM atau penyimpanan persisten. Dengan mengaktifkan tingkat dalam memori Bigtable, Anda mempertahankan konsistensi read-your-write di tingkat cluster.

Penskalaan vertikal

Dengan mengaktifkan tingkat dalam memori, setiap node dapat menggunakan penskalaan vertikal untuk mengubah kapasitas throughput tingkat dalam memori. Setiap node mencakup RAM 8 GB untuk tingkat dalam memori dan dimulai dengan kapasitas dasar 40.000 bacaan per detik. Untuk mengelola lonjakan traffic baca titik, node dapat melakukan penskalaan otomatis dalam kelipatan 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 tingkat dalam memori maksimum tercapai di semua node dalam cluster dan penskalaan otomatis aktif, Bigtable akan otomatis menyediakan node tambahan untuk lebih meningkatkan throughput tingkat dalam memori.

Penskalaan vertikal pada node hanya berlaku untuk pembacaan tingkat dalam memori per detik, dan berfungsi terlepas dari apakah penskalaan otomatis tingkat cluster diaktifkan atau tidak. Penskalaan vertikal di luar 40.000 bacaan 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:

  • Tingkat dalam memori memerlukan penyimpanan SSD.
  • Tingkat dalam memori hanya mendukung operasi baca titik tingkat baris tunggal.
  • Tingkat dalam memori tidak melayani pemindaian data atau mendukung kueri SQL.
  • Profil aplikasi tingkat dalam memori hanya mendukung perutean cluster tunggal.
  • Tingkat dalam memori membatasi ukuran baris hingga 1 MiB per kunci baris. Bigtable membaca baris yang melebihi batas ini dari penyimpanan persisten.
  • Tingkat dalam memori memerlukan library klien Bigtable versi berikut:

    • Java versi 2.77.0 atau yang lebih baru
    • Versi BOM 26.80.0 atau yang lebih baru
    • Go versi 1.52.0 atau yang lebih baru

    Library klien lainnya tidak didukung.

  • Cluster yang mengaktifkan kunci enkripsi yang dikelola pelanggan (CMEK) tidak mendukung tingkat dalam memori.

  • Tingkat dalam memori dibatasi hingga maksimum 10 node per cluster.

Langkah berikutnya