Checklist peluncuran ini menyediakan daftar pertimbangan yang perlu dilakukan sebelum meluncurkan aplikasi produksi di Spanner. Kursus ini tidak dimaksudkan untuk lengkap, tetapi berfungsi untuk menyoroti area yang dapat berdampak besar pada performa produksi.
Memilih konfigurasi instance yang sesuai
Pilih konfigurasi instance (Regional vs Multi-regional) agar sesuai dengan persyaratan Anda.
Jika memilih jenis instance multi-regional, aplikasi Anda yang mengakses Spanner harus berada dekat dengan region pemimpin. Anda dapat menemukan detail selengkapnya di halaman instance.
Merancang skema untuk performa dalam skala besar
Skema data relasional Spanner mirip dengan database relasional tradisional, dengan beberapa variasi yang harus dipertimbangkan:
- Gunakan Tabel sisipan, bukan hubungan kunci asing jika ada.
- Memilih kunci utama yang mencegah hotspot.
- Pastikan indeks sekunder tidak membuat hotspot (mirip dengan hotspot kunci utama).
- Membuat indeks sekunder dan menyimpan kolom terkait jika diperlukan.
- Batasi ukuran baris.
Memahami faktor performa
Dengan sharding otomatis dan data yang kemudian disimpan dalam pemisahan, semakin tepat kueri yang ditargetkan, performa akan semakin baik. Mempersempit ke satu induk yang disisipkan dan semua turunannya akan berperforma lebih baik daripada kueri atau operasi yang memengaruhi beberapa baris.
Kami sangat merekomendasikan tolok ukur dan pengujian dalam skala besar untuk memastikan masalah dan hambatan yang ditemukan sebelum peluncuran. Spanner menyediakan rencana eksekusi kueri yang dapat digunakan dengan tabel selama mendesain skema untuk memahami kemungkinan performa kueri.
Faktor performa lainnya yang perlu dipertimbangkan:
- Pilih transaksi hanya baca daripada transaksi baca-tulis yang lebih mahal saat Anda tidak menulis data.
- Desain aplikasi Anda untuk meminimalkan jumlah pemisahan peserta dalam transaksi. Spanner dapat melakukan transaksi di seluruh baris di server yang berbeda. Namun, prinsipnya, transaksi yang memengaruhi banyak baris yang ditempatkan bersama lebih cepat dan lebih murah daripada transaksi yang memengaruhi banyak baris yang tersebar di seluruh database, atau di seluruh tabel besar.
- Gunakan parameter kueri, bukan literal string, untuk meningkatkan performa kueri dan pemantauan statistik.
Memahami batas dan kuota
Karena alasan arsitektur, serta untuk mempertahankan performa dan redundansi yang tinggi, Spanner memiliki kuota dan batas tertentu yang harus dipertimbangkan dalam desain aplikasi. Kuota dapat ditingkatkan dengan lama pengerjaan.
Misalnya, ada batas 80.000 mutasi per commit, dan maksimum 15 join per kueri.
Batasan ini beserta desain skema dan pencegahan hotspot memiliki dampak pada pemuatan massal, jadi pastikan praktik terbaik pemuatan massal diikuti.
Memastikan pemantauan diterapkan
Siapkan Cloud Monitoring untuk memberi tahu Anda saat batas Anda hampir tercapai.
Tingkatkan jumlah kapasitas komputasi jika mencapai metrik performa untuk penskalaan linear instance Spanner Anda. Sebaiknya pertahankan pemakaian CPU di bawah 65% untuk instance khusus region, dan di bawah 45% untuk instance multi-regional.
Gunakan Template Kueri di halaman Kueri database untuk memantau statistik kueri di tabel statistik kueri.
Memiliki strategi migrasi data (jika diperlukan)
Pemuatan massal data ke Spanner harus mempertimbangkan arsitektur terdistribusi untuk mempertahankan performa:
- Data partisi berdasarkan kunci utama
- Hindari penolakan dan pantau penggunaan CPU
- Pembuatan indeks sekunder setelah memuat data umumnya lebih cepat
Postingan blog ini adalah contoh yang baik dalam menerapkan penulisan dengan throughput tinggi.
Memastikan konfigurasi keamanan diterapkan
Siapkan peran IAM yang relevan untuk mengelola keamanan di tingkat database dan instance. Keamanan tingkat tabel harus dikelola dalam aplikasi.
Memahami opsi dukungan
Pastikan Anda memiliki strategi untuk mendapatkan dukungan.