Setelah node penyimpanan kolom melakukan restart, indeks kolom dalam memori (IMCI) memasuki status LOADING_NCI selama node tersebut membangun kembali pemetaan antara IMCI dan data berorientasi baris. Pemetaan ini memungkinkan pembaruan data secara real-time dengan konkurensi tinggi untuk beban kerja pemrosesan transaksional dan analitik hibrida (HTAP).
Selama periode ini, operasi tulis tetap berjalan tanpa gangguan, tetapi perilaku baca berubah tergantung pada konfigurasi parameter Anda. Status LOADING_NCI dapat berlangsung dari beberapa detik hingga beberapa jam, tergantung pada volume data berorientasi kolom dan spesifikasi kluster.
Periksa status IMCI
Kueri INFORMATION_SCHEMA.IMCI_INDEXES untuk melihat status saat ini dari semua IMCI pada node penyimpanan kolom.
INDEX_STATE nilai | Makna |
|---|---|
LOADING_NCI | Node penyimpanan kolom telah melakukan restart dan pemetaan indeks sedang dibangun kembali. Perilaku baca bergantung pada parameter imci_enable_read_during_load_nci. |
COMMITTED | Pembangunan kembali selesai. Bacaan mengembalikan data terbaru secara real time. |
| Lainnya | Data tidak dapat dibaca. |
Dampak terhadap operasi tulis
Operasi tulis ke IMCI dalam status LOADING_NCI tidak diblokir—data terus diperbarui secara real time. Namun, karena pemetaan antara IMCI dan data berorientasi baris belum sepenuhnya terbentuk, pembaruan tersebut hanya disimpan dalam cache IMCI dan tidak dapat langsung dikueri.
Dampak terhadap konsistensi baca
Parameter imci_enable_read_during_load_nci mengatur cara IMCI melayani permintaan baca selama status LOADING_NCI.
| Status indeks | imci_enable_read_during_load_nci | Perilaku baca |
|---|---|---|
LOADING_NCI | ON | Bacaan Snapshot dilayani. Jika ada IMCI dalam status LOADING_NCI, semua IMCI kembali menggunakan bacaan Snapshot. Snapshot tersebut mencerminkan snapshot data lengkap terakhir sebelum node penyimpanan kolom mengalami kegagalan. |
LOADING_NCI | OFF | IMCI yang datanya tidak berubah sejak snapshot terakhir dapat dibaca (setara dengan COMMITTED). IMCI yang datanya ditambahkan, dihapus, atau dimodifikasi sejak snapshot terakhir tidak dapat dibaca. |
COMMITTED | N/A | Data terbaru tersedia untuk bacaan secara real time. |
| Negara bagian lainnya | N/A | Data tidak dapat dibaca. |
Konfigurasi parameter
Saat diatur ke ON
Semua IMCI menyediakan layanan bacaan Snapshot hingga setiap IMCI mencapai status COMMITTED. Pengaturan ini memungkinkan kueri kompleks memanfaatkan akselerasi IMCI terlepas dari apakah IMCI individual berada dalam status LOADING_NCI atau COMMITTED.
Gunakan pengaturan ini ketika ketersediaan kueri selama pemulihan lebih penting daripada kesegaran data saat baca.
Jika terdapat satu IMCI saja dalam status LOADING_NCI, semua IMCI akan kembali menggunakan bacaan Snapshot—bukan hanya IMCI yang masih dalam proses pemuatan.Saat diatur ke OFF
IMCI menerapkan konsistensi baca yang lebih ketat:
IMCI dalam status
COMMITTEDmelayani bacaan menggunakan data berorientasi kolom terbaru.IMCI dalam status
LOADING_NCItidak dapat melayani bacaan real-time. Pengecualian: jika data IMCI tersebut tidak dimodifikasi sejak snapshot terakhir, IMCI tersebut dianggap setara denganCOMMITTEDdan dapat dibaca.
Gunakan pengaturan ini ketika beban kerja Anda mengharuskan bacaan selalu mencerminkan data terbaru yang telah dikomit, dan Anda bersedia menerima bahwa beberapa IMCI mungkin sementara tidak tersedia untuk akselerasi kueri.
Cakupan dan nilai default parameter
Cakupan dan nilai default dari imci_enable_read_during_load_nci bergantung pada versi kluster PolarDB untuk MySQL Edisi Perusahaan:
| Rentang versi | Cakupan | Default | Diperlukan restart untuk menerapkan perubahan |
|---|---|---|---|
| V8.0.1.1.29 hingga V8.0.1.1.36 | Global | OFF (mungkin ON untuk beberapa kluster yang sudah ada) | Ya |
| V8.0.1.1.37 atau lebih baru | Tingkat sesi | OFF | Tidak |