Hologres V2.0.21 dan versi yang lebih baru mendukung fungsi Rebalance, yang memicu operasi penyeimbangan ulang shard. Topik ini menjelaskan cara menggunakan fungsi Rebalance untuk menyeimbangkan ulang shard.
Informasi latar belakang
Secara normal, node pekerja Hologres memuat shard secara merata. Namun, dalam beberapa skenario—seperti setelah pemulihan cepat—shard dapat terdistribusi secara tidak merata di antara node pekerja. Dalam kasus tersebut, Anda perlu memicu operasi penyeimbangan ulang shard untuk mendistribusikan ulang shard tersebut, sehingga semua node pekerja dalam instans memuat shard secara merata.
Batasan
Fungsi Rebalance hanya didukung di Hologres V2.0.21 dan versi yang lebih baru. Jika instans Anda menjalankan versi sebelum V2.0.21, lakukan Upgrade an instance atau bergabung dengan grup chat Hologres untuk meminta peningkatan instans. Untuk informasi selengkapnya, lihat How do I get more online support?.
Sintaksis perintah
Instans tujuan umum dan secondary
Pada instans tujuan umum atau secondary, fungsi Rebalance mendistribusikan ulang shard di antara node pekerja. Sintaksisnya adalah sebagai berikut:
SELECT hg_rebalance_instance();
-
Nilai kembalian:
-
true: Operasi penyeimbangan ulang shard berhasil dipicu. -
false: Menunjukkan bahwa penyeimbangan ulang shard tidak diperlukan. -
Error: Operasi penyeimbangan ulang shard gagal dipicu, misalnya karena adanya Pod yang bermasalah.
-
-
Status seimbang adalah kondisi di mana jumlah shard pada setiap node pekerja paling banyak berbeda satu. Contohnya:
-
Jika sebuah instans memiliki dua node pekerja dan dua shard, masing-masing node pekerja diberi satu shard.
-
Jika sebuah instans memiliki dua node pekerja dan tiga shard, satu node pekerja diberi satu shard, sedangkan yang lain diberi dua shard.
-
-
Operasi penyeimbangan ulang shard biasanya memerlukan waktu 2 hingga 3 menit. Durasi aktual tergantung pada jumlah kelompok tabel dalam instans—semakin banyak kelompok tabel, semakin lama proses penyeimbangan ulangnya. Selama proses ini, operasi tulis akan terganggu selama kurang lebih 15 detik.
-
Karena penyeimbangan ulang shard merupakan operasi asinkron, Anda dapat menjalankan pernyataan SQL berikut untuk memeriksa progresnya.
SELECT hg_get_rebalance_instance_status();
Nilai kembalian:
-
DOING: Operasi penyeimbangan ulang shard sedang berlangsung. -
DONE: Operasi penyeimbangan ulang shard telah selesai.
Instans virtual warehouse
Berbeda dengan instans tujuan umum dan secondary, instans virtual warehouse dapat membagi sumber daya komputasi menjadi beberapa virtual warehouse. Oleh karena itu, untuk menyeimbangkan ulang shard pada instans virtual warehouse, Anda harus menyeimbangkan ulang setiap virtual warehouse secara terpisah. Untuk informasi selengkapnya, lihat Rebalance shards in a virtual warehouse.
FAQ
Mengidentifikasi distribusi shard yang tidak seimbang
Saat Anda menjalankan kueri, beban seharusnya terdistribusi secara merata di semua node pekerja. Jika suatu node pekerja tidak diberi shard apa pun, bebannya akan jauh lebih rendah dibandingkan node pekerja lainnya.
-
Contoh distribusi shard yang seimbang: Gambar berikut menunjukkan instans dengan 10 node pekerja. Saat operasi kueri dan tulis dilakukan, Dasbor Pemantauan menunjukkan bahwa utilisasi CPU serupa di semua 10 node pekerja.

-
Contoh distribusi shard yang tidak seimbang: Jika suatu node pekerja tidak memiliki shard, Dasbor Pemantauan akan menampilkan pola seperti pada gambar berikut, di mana satu node pekerja memiliki beban jauh lebih rendah daripada yang lain.

Jalankan pernyataan SQL berikut untuk memeriksa node pekerja mana saja yang telah memuat shard:
SELECT DISTINCT worker_id FROM hologres.hg_worker_info;-
Analisis hasil: Hasil menunjukkan bahwa hanya sembilan node pekerja yang telah memuat shard, sehingga satu node tidak memiliki shard sama sekali.
-
Tindakan: Picu penyeimbangan ulang shard. Setelah operasi selesai, Dasbor Pemantauan menunjukkan bahwa utilisasi CPU pada node pekerja yang sebelumnya kurang dimanfaatkan meningkat ke tingkat yang sebanding dengan node lainnya.

-
Jalankan kueri lagi untuk memeriksa node pekerja mana saja yang telah memuat shard. Hasilnya akan menunjukkan bahwa semua 10 node pekerja telah memuat shard. Kueri mengembalikan kolom worker_id dengan 10 nilai ID node pekerja (misalnya,
grgfs,fj4wt, dantwn5z).
-