全部产品
Search
文档中心

AnalyticDB:Kontrol aliran split

更新时间:Jul 02, 2025

AnalyticDB for MySQL menyediakan fitur kontrol aliran split untuk mengelola pemindaian split bersamaan yang berjalan dalam sebuah tugas atau pada sebuah node. Fitur ini mencegah ketidakstabilan node akibat konkurensi pemindaian tinggi dan penggunaan sumber daya berlebihan. Topik ini menjelaskan cara mengaktifkan fitur kontrol aliran split serta mengonfigurasi kuota untuk pemindaian split bersamaan.

Prasyarat

Sebuah kluster AnalyticDB for MySQL versi V3.1.10.0 atau lebih baru telah dibuat.

Catatan

Informasi latar belakang

Saat menjalankan kueri di AnalyticDB for MySQL, sistem akan memindai data dari sumber data, dan pemindaian split diproses pada node penyimpanan atau node komputasi. Jika terdapat sejumlah besar pemindaian split yang berjalan bersamaan pada sebuah node, masalah berikut dapat terjadi:

  • Untuk tabel internal, pemindaian split bersamaan bersaing untuk mendapatkan sumber daya I/O dari node penyimpanan, meningkatkan utilisasi CPU dan penggunaan memori. Hal ini dapat menyebabkan ketidakstabilan node penyimpanan.

  • Untuk tabel eksternal, efisiensi pemindaian bervariasi berdasarkan sumber data. Jika jumlah pemindaian split bersamaan melebihi kuota, pemindaian split baru akan mengonsumsi sumber daya node komputasi dan memengaruhi kueri lainnya, bukan mempercepat pemindaian keseluruhan.

Untuk menyelesaikan masalah tersebut, AnalyticDB for MySQL menyediakan fitur kontrol aliran split. Secara default, fitur ini diaktifkan.

Istilah

Tugas

Saat menjalankan kueri di AnalyticDB for MySQL, kueri tersebut dibagi menjadi beberapa tahap. Setiap tahap terdiri dari beberapa tugas yang berjalan di seluruh node.

Split

Saat memindai sebuah tabel di AnalyticDB for MySQL, tabel tersebut dibagi menjadi beberapa split. Setiap split ditugaskan ke sebuah tugas yang menjalankan pemindaian split. Sebuah tugas dapat berisi beberapa pemindaian split.

Ikhtisar

Setiap tugas memiliki kuota untuk pemindaian split bersamaan. Jika jumlah pemindaian split bersamaan yang berjalan dalam sebuah tugas kurang dari kuota, tugas tersebut dapat memulai pemindaian split baru. Saat kuota tercapai, pemindaian split baru hanya dapat dimulai setelah pemindaian split yang sedang berjalan selesai. AnalyticDB for MySQL menyediakan fitur kontrol aliran split untuk node dan tugas. Kuota untuk pemindaian split bersamaan dalam sebuah tugas dapat disesuaikan secara dinamis berdasarkan kuota keseluruhan untuk pemindaian split bersamaan dari node tempat tugas tersebut berjalan.

Nonaktifkan atau aktifkan kembali fitur kontrol aliran split

Secara default, fitur kontrol aliran split diaktifkan. Anda dapat mengeksekusi salah satu pernyataan berikut untuk menonaktifkan atau mengaktifkan kembali fitur kontrol aliran split.

  • Nonaktifkan atau aktifkan kembali fitur kontrol aliran split untuk sebuah kluster.

    SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true|false;
  • Nonaktifkan atau aktifkan kembali fitur kontrol aliran split untuk sebuah kueri.

    /*+ SPLIT_FLOW_CONTROL_ENABLED=true|false*/ SELECT * FROM table;

Mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis

Aktifkan dan nonaktifkan fitur yang mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis

Jika Anda menonaktifkan fitur yang mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis, kuota default untuk pemindaian split bersamaan dalam sebuah tugas adalah 32. Anda dapat mengeksekusi pernyataan SET ADB_CONFIG TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=<value>; untuk mengubah nilai default.

Anda dapat mengaktifkan fitur untuk mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis berdasarkan kuota keseluruhan untuk pemindaian split bersamaan dari node tempat tugas tersebut berjalan.

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true|false;
Penting

Sebelum mengaktifkan fitur yang mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis, pastikan bahwa fitur kontrol aliran split diaktifkan. Anda dapat mengeksekusi pernyataan SHOW ADB_CONFIG KEY=SPLIT_FLOW_CONTROL_ENABLED; untuk memeriksa apakah fitur kontrol aliran split diaktifkan.

Menyesuaikan kuota untuk pemindaian split bersamaan dalam sebuah tugas

Metode

Anda dapat mengeksekusi pernyataan SET atau menggunakan hint untuk menyesuaikan kuota untuk pemindaian split bersamaan dalam sebuah tugas untuk sebuah kluster atau kueri.

  • Menyesuaikan kuota untuk pemindaian split bersamaan dalam sebuah tugas untuk sebuah kluster.

    SET ADB_CONFIG <Parameter terkait kuota>=<nilai>;
  • Menyesuaikan kuota untuk pemindaian split bersamaan dalam sebuah tugas untuk sebuah kueri.

    /*+ <Parameter terkait kuota>=<nilai>*/SELECT * FROM orders;

Parameter terkait kuota

Tabel berikut menjelaskan parameter yang dapat digunakan untuk menyesuaikan kuota secara dinamis untuk pemindaian split bersamaan dalam sebuah tugas.

Parameter

Deskripsi

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota minimum untuk pemindaian split bersamaan dalam sebuah tugas. Nilai default adalah 1. Nilai valid berkisar dari 1 hingga nilai parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

Jika sejumlah besar pemindaian split bersamaan berjalan pada sebuah node setelah Anda mengaktifkan fitur yang mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis, kuota untuk pemindaian split bersamaan dalam tugas tersebut dikurangi secara dinamis, dan kuota setelah pengurangan tidak kurang dari nilai parameter ini.

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota tengah untuk pemindaian split bersamaan dalam sebuah tugas. Kuota aktual ditingkatkan atau dikurangi secara dinamis berdasarkan nilai parameter ini. Nilai default adalah 32. Nilai valid berkisar dari nilai parameter MIN_RUNNING_SPLITS_LIMIT_PER_TASK hingga nilai parameter MAX_RUNNING_SPLITS_LIMIT_PER_TASK.

Jika jumlah nilai tengah kuota semua tugas pada sebuah node tidak melebihi kuota node, kuota setiap tugas ditingkatkan secara dinamis. Sebaliknya, kuota setiap tugas dikurangi secara dinamis.

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Kuota maksimum untuk pemindaian split bersamaan dalam sebuah tugas. Nilai default adalah 64. Nilai parameter ini harus lebih besar dari nilai parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK.

Jika sejumlah kecil pemindaian split bersamaan berjalan pada sebuah node setelah Anda mengaktifkan fitur yang mengizinkan kuota untuk pemindaian split bersamaan dalam sebuah tugas disesuaikan secara dinamis, kuota untuk pemindaian split bersamaan dalam tugas tersebut ditingkatkan secara dinamis, dan kuota setelah peningkatan tidak lebih besar dari nilai parameter ini.

Saran tentang cara menyesuaikan kuota untuk pemindaian split bersamaan dalam sebuah tugas

AnalyticDB for MySQL memungkinkan Anda mengonfigurasi kuota berbeda untuk pemindaian split bersamaan dalam tugas untuk kueri berbeda. Dengan cara ini, sumber daya dapat dialokasikan ke tugas-tugas berdasarkan kebutuhan bisnis Anda. Contoh:

  • Jika sebuah kueri memerlukan waktu respons (RT) yang singkat dan jumlah pemindaian split yang kecil, seperti kueri titik, Anda dapat mengatur parameter MIN_RUNNING_SPLITS_LIMIT_PER_TASK, TARGET_RUNNING_SPLITS_LIMIT_PER_TASK, dan MAX_RUNNING_SPLITS_LIMIT_PER_TASK ke nilai yang lebih besar, atau mengeksekusi pernyataan SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=false; untuk menonaktifkan fitur kontrol aliran split. Dengan cara ini, semua pemindaian split dari kueri dapat segera dimulai.

  • Jika sebuah kueri memerlukan sejumlah besar pemindaian split tetapi tidak memerlukan prioritas yang lebih tinggi, Anda dapat mengatur parameter TARGET_RUNNING_SPLITS_LIMIT_PER_TASK ke nilai yang lebih kecil untuk mengurangi dampak pada kueri penting saat sumber daya tidak mencukupi. Saat sumber daya menganggur, kuota untuk pemindaian split bersamaan dalam sebuah tugas dapat ditingkatkan secara dinamis untuk meningkatkan efisiensi pemindaian.

  • Jika Anda meminta tabel eksternal, Anda dapat mengonfigurasi kuota berdasarkan faktor-faktor seperti batas transmisi sumber data.

Contoh

  • Atur kuota minimum untuk pemindaian split bersamaan dalam semua tugas untuk sebuah kluster menjadi 24.

    SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;
  • Atur kuota minimum untuk pemindaian split bersamaan dalam tugas tertentu untuk sebuah kueri menjadi 10.

    /*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/SELECT * FROM orders;
  • Atur kuota maksimum untuk pemindaian split bersamaan dalam semua tugas untuk sebuah kluster menjadi 128.

    SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;
  • Atur kuota maksimum untuk pemindaian split bersamaan dalam tugas tertentu untuk sebuah kueri menjadi 100.

    /*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/SELECT * FROM adb_test;

Konfigurasikan kuota untuk pemindaian split bersamaan pada sebuah node

  • Node Penyimpanan

    Secara default, kuota untuk pemindaian split bersamaan pada sebuah node penyimpanan adalah 256. Kami menyarankan agar Anda tidak mengubah nilai default karena kuota yang terlalu besar atau terlalu kecil dapat memengaruhi kinerja kluster. Anda dapat mengeksekusi pernyataan berikut untuk mengonfigurasi kuota untuk pemindaian split bersamaan pada sebuah node penyimpanan:

    SET ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;
  • Node Komputasi

    Secara default, kuota untuk pemindaian split bersamaan pada sebuah node komputasi adalah 256. Kami menyarankan agar Anda tidak mengubah nilai default karena kuota yang terlalu besar atau terlalu kecil dapat memengaruhi kinerja kluster. Anda dapat mengeksekusi pernyataan berikut untuk mengonfigurasi kuota untuk pemindaian split bersamaan pada sebuah node komputasi:

    SET ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;
Penting
  • Anda dapat mengeksekusi pernyataan SHOW ADB_CONFIG untuk meminta kuota untuk pemindaian split bersamaan yang dikonfigurasi untuk sebuah node. Untuk informasi lebih lanjut, lihat SHOW ADB_CONFIG.

  • Setelah mengonfigurasi kuota untuk pemindaian split bersamaan pada sebuah node, kuota tersebut mungkin tidak langsung berlaku karena alasan berikut:

    • Kuota yang Anda konfigurasi hanya berlaku untuk pemindaian split yang belum dimulai, bukan pemindaian split yang sedang berjalan pada node. Jika Anda mengurangi kuota untuk pemindaian split bersamaan, kuota tersebut hanya berlaku setelah pemindaian split yang sedang berjalan selesai.

    • Fitur kontrol aliran split memastikan bahwa jumlah pemindaian split bersamaan yang berjalan di setiap tugas lebih besar dari kuota minimum yang Anda konfigurasikan untuk sebuah tugas. Jika jumlah nilai minimum kuota semua tugas pada sebuah node lebih besar dari kuota node, jumlah pemindaian split bersamaan yang berjalan pada node tersebut mungkin melebihi kuota yang Anda konfigurasikan untuk node.