Kelompok Sumber Daya Interaktif dalam AnalyticDB for MySQL menyediakan antrian prioritas untuk kontrol yang lebih halus atas konkurensi kueri. Setiap kelompok sumber daya memiliki satu set antrian prioritas bernama TERENDAH, RENDAH, NORMAL, dan TINGGI. Anda dapat mengonfigurasi prioritas kueri untuk mengarahkan kueri ke antrian prioritas yang berbeda. Anda juga dapat mengonfigurasi konkurensi untuk setiap antrian. Topik ini menjelaskan cara mengonfigurasi prioritas kueri dan konkurensi antrian.
Prasyarat
Versi kluster Anda adalah 3.1.6.3 atau yang lebih baru.
CatatanUntuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan pergi ke bagian Configuration Information pada halaman Cluster Information.
Kelompok sumber daya harus merupakan kelompok sumber daya Interaktif yang menggunakan mesin XIHE.
Ikhtisar fungsi
Prioritas kueri
Setiap kelompok sumber daya Interaktif memiliki satu set empat antrian prioritas: TERENDAH, RENDAH, NORMAL, dan TINGGI. Secara default, kueri SELECT reguler masuk ke antrian NORMAL. Kueri lainnya seperti ekstrak, transformasi, dan muat (ETL), seperti INSERT INTO SELECT, DELETE SELECT, dan INSERT OVERWRITE SELECT, masuk ke antrian TERENDAH. Anda dapat menetapkan prioritas untuk setiap kueri untuk mengarahkan kueri tersebut ke antrian yang berbeda. Dalam antrian prioritas yang sama, kueri dengan nilai prioritas yang lebih tinggi akan dieksekusi terlebih dahulu. Sebagai contoh, kueri dengan query_priority=8 akan dijalankan sebelum kueri dengan query_priority=6.
Rentang prioritas untuk setiap antrian adalah sebagai berikut.
Konkurensi antrian
Anda dapat menetapkan jumlah maksimum kueri konkuren dan jumlah maksimum kueri yang antre untuk setiap antrian prioritas.
Ketika jumlah kueri yang sedang berjalan dalam antrian prioritas mencapai jumlah maksimum kueri konkuren, kueri baru akan dimasukkan ke dalam antrian.
Ketika jumlah kueri yang antre mencapai batas maksimum, kueri baru akan ditolak.
Ketika kueri yang sedang berjalan selesai, kueri yang antre dengan prioritas tertinggi akan dieksekusi selanjutnya. Jika beberapa kueri yang antre memiliki prioritas yang sama, mereka akan dieksekusi dalam urutan pertama masuk, pertama keluar (FIFO).
Aktifkan prioritas kueri
Untuk versi kluster 3.1.8.2 dan yang lebih baru, prioritas kueri diaktifkan secara default.
Untuk kluster dengan versi mulai dari 3.1.6.3 hingga versi sebelum 3.1.8.2, Anda harus mengaktifkan prioritas kueri secara manual dengan mengeksekusi pernyataan berikut:
SET ADB_CONFIG XIHE_ENV_QUERY_PRIORITY_QUEUE_ENABLE=true;
Tetapkan prioritas kueri
Prioritas default untuk kueri ETL adalah TERENDAH (nilai: 5). Prioritas default untuk kueri SELECT reguler adalah NORMAL (nilai: 25). Untuk menaikkan atau menurunkan prioritas kueri, Anda dapat menggunakan salah satu metode berikut.
Catatan
INSERT INTO ... VALUES(...) pernyataan tidak mendukung pengaturan prioritas kueri.
Metode
Kami merekomendasikan menggunakan Workload Manager untuk secara otomatis menambahkan HINTs. Untuk informasi lebih lanjut, lihat Prioritas Kueri.
Tambahkan HINT berikut sebelum pernyataan kueri untuk menetapkan prioritas kueri.
/*+ query_priority=<Nilai prioritas>*/ select_statementNilai Prioritas: Anda dapat menentukan bilangan bulat dari 0 hingga 39, di mana angka yang lebih tinggi menunjukkan prioritas yang lebih tinggi. Anda juga dapat menggunakan salah satu nilai string berikut: TERENDAH, RENDAH, NORMAL, atau TINGGI. String-string ini sesuai dengan nilai integer 5, 15, 25, dan 35, masing-masing.
Contoh
Tetapkan prioritas ke TINGGI untuk mengirim kueri ke antrian TINGGI.
/*+ query_priority=TINGGI*/ SELECT * FROM test_table;Tetapkan prioritas ke 35 untuk mengirim kueri ke antrian TINGGI.
/*+ query_priority=35*/ SELECT * FROM test_table;
Tetapkan konkurensi antrian
Anda dapat menetapkan jumlah maksimum kueri konkuren dan ukuran maksimum antrian untuk antrian prioritas dalam kelompok sumber daya Interaktif. Anda dapat mengonfigurasi pengaturan ini secara global atau untuk satu kelompok sumber daya.
Metode
Untuk menetapkan konkurensi global untuk antrian prioritas, eksekusi pernyataan berikut:
SET ADB_CONFIG <parameter-konkurensi> = <nilai>.Untuk menetapkan konkurensi antrian prioritas untuk kelompok sumber daya tertentu, eksekusi pernyataan berikut:
SET ADB_CONFIG <nama_kelompok_sumber_daya>.<parameter_konkurensi> = <nilai>.
Menetapkan konkurensi antrian prioritas untuk satu kelompok sumber daya tidak didukung untuk kluster Data Warehouse dalam mode cadangan.
Daftar parameter konkurensi
Nilai parameter untuk antrian prioritas mewakili ukuran antrian untuk satu node frontend, bukan ukuran antrian total untuk kluster. Ukuran antrian total untuk kluster adalah ukuran antrian untuk satu node dikalikan dengan jumlah node frontend. Rumusnya adalah: Ukuran antrian total kluster = (Ukuran antrian untuk satu node) × (Jumlah node frontend).
Konfigurasi parameter untuk antrian prioritas berlaku pada semua node frontend secara bersamaan.
Node frontend adalah sumber daya FrontNode. Untuk informasi lebih lanjut, lihat Ketersediaan Tinggi Lapisan Akses.
Nama antrian | Parameter konfigurasi | Nilai default | Deskripsi (untuk satu kelompok sumber daya) |
Antrian TERENDAH (ETL) | XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE | 20 | Jumlah maksimum kueri konkuren untuk antrian TERENDAH pada satu node frontend adalah 20. |
XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE | 200 | Jumlah maksimum kueri yang antre untuk antrian TERENDAH pada satu node frontend adalah 200. | |
Antrian RENDAH | XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE | 20 | Jumlah maksimum kueri konkuren untuk antrian RENDAH pada satu node frontend adalah 20. |
XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE | 200 | Jumlah maksimum kueri yang antre untuk antrian RENDAH pada satu node frontend adalah 200. | |
Antrian NORMAL | XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE | 20 | Jumlah maksimum kueri konkuren untuk antrian NORMAL pada satu node frontend adalah 20. |
XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE | 200 | Jumlah maksimum kueri yang antre untuk antrian NORMAL pada satu node frontend adalah 200. | |
Antrian TINGGI | XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE | 40 | Jumlah maksimum kueri konkuren untuk antrian TINGGI pada satu node frontend adalah 40. |
XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE | 400 | Jumlah maksimum kueri yang antre untuk antrian TINGGI pada satu node frontend adalah 400. |
Contoh
Tetapkan jumlah maksimum kueri konkuren untuk antrian RENDAH menjadi 5 untuk semua kelompok sumber daya dalam kluster.
SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE = 5;Tetapkan jumlah maksimum kueri konkuren untuk antrian RENDAH menjadi 5 untuk kelompok sumber daya `rg1`.
SET ADB_CONFIG rg1.XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE = 5;
Lihat konkurensi antrian
Untuk melihat pengaturan global untuk jumlah maksimum kueri yang sedang berjalan dan jumlah maksimum kueri yang antre, eksekusi pernyataan berikut:
SHOW ADB_CONFIG KEY=<parameter_konkurensi>;.Untuk melihat jumlah maksimum kueri yang sedang berjalan dan jumlah maksimum kueri yang antre untuk kelompok sumber daya tertentu, eksekusi pernyataan berikut:
SHOW ADB_CONFIG KEY='<nama kelompok sumber daya>.<parameter konkurensi>';.