Ringkasan paket dalam memori

Paket 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 penataan data yang lancar dan hemat biaya 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, mengurangi hotspot, dan memastikan throughput tinggi untuk data yang sensitif terhadap latensi. Untuk mengetahui informasi selengkapnya, lihat Memahami performa.

Kapan harus menggunakan paket dalam memori

Sebaiknya aktifkan paket dalam memori untuk kasus penggunaan berikut:

  • Persyaratan latensi sub-milidetik: workload yang memerlukan latensi baca kurang dari 1 md, biasanya diatasi dengan menempatkan solusi cache yang dikelola sendiri di depan database.
  • Pembacaan titik dengan throughput tinggi: aplikasi dengan persyaratan throughput traffic baca yang tinggi pada subset data tertentu.
  • Mitigasi hotspot: workload throughput tinggi yang mungkin mencakup lonjakan traffic atau hotspot pada row key tertentu.
  • Pengoptimalan biaya: skenario saat Anda ingin mengurangi jumlah node Bigtable dengan mengalihkan 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 disaggregasi 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 terus menayangkan traffic dari penyimpanan persisten.

Anda dapat mengaktifkan tingkat dalam memori di level cluster.

Tingkat dalam memori beroperasi sebagai berikut:

  • Mendapatkan data di tingkat memori: tingkat dalam memori menawarkan perilaku caching read-through. Baris masuk ke tingkat memori dengan operasi baca melalui profil aplikasi yang Anda konfigurasi untuk tingkat dalam memori. Operasi tulis dari profil aplikasi mana pun akan memperbarui tingkat memori jika data baris sudah ada di tingkat dalam memori.
  • Kebijakan penghapusan dan pembatalan validasi: tingkat dalam memori menggunakan penghapusan Least Recently Used (LRU) di tingkat baris dan menerapkan kebijakan pembatalan validasi time to live (TTL) untuk memaksimalkan rasio hit tingkat dalam memori.
  • Caching negatif: tingkat dalam memori mengingat jika resource tidak ada selama jangka waktu tertentu untuk mencegah overload backend.
  • Keamanan: paket dalam memori mendukung enkripsi dalam penyimpanan dan dalam pengiriman (TLS).
  • Replikasi: dalam instance multi-cluster, tingkat memori dari berbagai cluster 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 row key 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 konsistensi tertunda.
  • Penskalaan otomatis vertikal: tingkat dalam memori mendukung penskalaan otomatis vertikal di tingkat node yang berfungsi bersama penskalaan otomatis Bigtable.

Paket dalam memori dioptimalkan untuk akses berperforma tinggi ke data saat ini. Untuk mempertahankan performa ini, hanya versi baris terbaru yang diberi stempel waktu yang berada di tingkat memori. Permintaan untuk versi data yang lebih lama, yang juga dikenal sebagai sel historis, secara otomatis mengabaikan tingkat memori dan disajikan dari penyimpanan persisten.

Koherensi data

Bigtable memastikan bahwa data tingkat dalam memori konsisten dengan data persisten di SSD atau tingkat penyimpanan akses jarang. Arsitektur hibrid 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 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 memorinya. Dengan mengaktifkan paket dalam memori, setiap node dimulai dengan kapasitas dasar 40.000 pembacaan per detik. Untuk mengelola lonjakan traffic baca titik, node dapat melakukan penskalaan otomatis dalam kelipatan 40.000 pembacaan per detik, hingga maksimum 120.000 pembacaan 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 meningkatkan throughput tingkat dalam memori lebih lanjut.

Penskalaan vertikal pada node hanya berlaku untuk pembacaan per detik tingkat dalam memori, dan berfungsi baik saat penskalaan otomatis tingkat cluster diaktifkan maupun tidak. Penskalaan vertikal di luar basis 40.000 operasi baca per detik ditagih dengan menerapkan pengali pada biaya per jam node. Untuk mengetahui informasi selengkapnya, lihat harga dan batas.

Batasan

Batasan berikut berlaku untuk paket dalam memori:

  • Paket dalam memori memerlukan penyimpanan SSD.
  • Paket dalam memori hanya mendukung operasi pembacaan titik tingkat baris tunggal.
  • Tingkat dalam memori tidak menyajikan pemindaian data atau mendukung kueri SQL.
  • Profil aplikasi tingkat dalam memori hanya mendukung pemilihan rute cluster tunggal.
  • Tingkat dalam memori membatasi ukuran baris hingga 1 MiB per row key. Bigtable membaca baris yang melebihi batas ini dari penyimpanan persisten.
  • Tingkat dalam memori memerlukan versi library klien Bigtable berikut:

    • Java versi 2.77.0 atau yang lebih baru
    • BOM versi 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 paket dalam memori.

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

Langkah berikutnya