AliES adalah kernel yang sangat disesuaikan untuk Alibaba Cloud Elasticsearch. Kernel ini mendukung semua fitur kernel Elasticsearch open-source dan menambahkan kemampuan yang dikembangkan oleh tim Alibaba Cloud Elasticsearch—termasuk optimasi metrik, kolam thread, optimasi circuit breaking, serta optimasi kinerja kueri dan penulisan. Penambahan ini meningkatkan stabilitas dan kinerja kluster, mengurangi biaya, serta memperluas cakupan pemantauan dan O&M. Topik ini menjelaskan fitur baru dan yang telah dioptimalkan pada setiap versi AliES.
Elasticsearch V7.16.2
Versi kernel 1.7.0
Plugin
-
Plugin aliyun-timestream tersedia. Gunakan plugin ini untuk membuat, mengubah, mengkueri, dan menghapus indeks deret waktu, sehingga menyederhanakan manajemen data deret waktu. Untuk informasi selengkapnya, lihat Ikhtisar aliyun-timestream.
-
Pernyataan Prometheus Querying Language (PromQL) didukung untuk mengkueri data yang disimpan di Elasticsearch. Untuk informasi selengkapnya, lihat Integrasikan Elasticsearch dengan Prometheus dan Grafana berdasarkan aliyun-timestream untuk menerapkan pemantauan terpadu.
Elasticsearch V7.10.0
Versi kernel 1.12.0
Pencarian
-
Plugin analysis-dynamic-synonym tersedia.
-
Penyeimbangan shard primary didukung.
-
Panjang nilai parameter dalam kueri wildcard dan prefix kini dibatasi.
-
Kueri kompleks—termasuk kueri terms dan prefix pada bidang
keyword—dioptimalkan menggunakandoc_values. Kinerja kueri meningkat hingga 80% dalam skenario dengan rasio hit rendah. -
Kueri term dan terms numerik dioptimalkan menggunakan
doc_values. Kinerja kueri meningkat hingga 80% dalam skenario dengan rasio hit rendah. -
Kinerja kueri term dan terms berbasis BKD-tree dioptimalkan sebesar 30% menggunakan strategi pemuatan malas (lazy loading).
Perbaikan bug
-
Manajemen task di lapisan penyimpanan ditingkatkan untuk mengatasi masalah di mana komunikasi berbasis RPC kadang-kadang macet.
-
Proses replikasi data ditingkatkan untuk mencegah error "fail engine" pada node replika.
-
Proses promosi shard replika ditingkatkan untuk mencegah ketidakkonsistenan indeks antara shard primary dan replika.
Versi kernel 1.10.0
Store/Snapshot
-
LuceneVerifyIndexOutputdioptimalkan untuk meningkatkan kecepatan pemulihan indeks. Untuk detailnya, lihat ES pull #96975.
Koordinasi kluster
-
ClusterStatetidak lagi direferensikan oleh task persisten. Pada kluster berskala besar, node master khusus dapat mengalami penggunaan memori tinggi. Untuk mencegah timeout pemilihan leader di lingkungan tersebut, nilai defaultcluster.election.initial_timeoutdiubah dari 100 milidetik menjadi 1 detik. Untuk detailnya, lihat ES pull #90724.
Pencarian
-
Timeout kueri end-to-end ditambahkan untuk mengontrol durasi kueri secara keseluruhan. Saat terjadi timeout, hasil parsial dikembalikan alih-alih gagal total.
-
Bidang tambahan ditambahkan ke log akses.
Perbaikan bug
-
Memperbaiki masalah di mana file indeks pembaruan DV yang direferensikan oleh Lucene Merge dihapus oleh operasi flush konkuren. Untuk detailnya, lihat Lucene pull #13017.
Versi kernel 1.9.0
Pencarian
Kerangka kerja kueri konkuren direkonstruksi untuk kluster Edisi Enhanced Kernel, dengan peningkatan berikut:
-
Memori heap JVM digunakan ulang, mengurangi overhead garbage collection (GC) dan meningkatkan pemanfaatan resource.
-
Durasi fase fetch untuk pengambilan teks mentah dikurangi. Dengan
sizediatur ke 10.000, fase fetch menjadi hingga 6–10x lebih cepat dan durasi kueri keseluruhan berkurang sebesar 50%. -
Jenis agregasi berikut kini didukung dalam kueri konkuren: persentil, peringkat persentil, sampler, diversified sampler, significant text, geo_distance, geohash_grid, geotile_grid, geo_bounds, geo_centroid, dan agregasi scripted_metric.
-
Bidang termasuk
traceIddan bidang durasi kueri ditambahkan ke log akses end-to-end. GunakantraceIduntuk melacak eksekusi kueri lengkap di seluruh node. -
Struktur indeks kustom dan parsing pemetaan untuk teks mentah dioptimalkan, menggandakan kinerja penulisan untuk teks mentah.
Cache
Untuk skenario dengan sedikit kueri primary tetapi banyak subkueri, caching tidak diterapkan pada subkueri. Untuk mengaktifkan caching dalam skenario ini, jalankan panggilan API berikut:
PUT _cluster/settings
{
"persistent": {
"search.query_cache_get_wait_lock_enable": "true",
"search.query_cache_skip_factor": "200000000"
}
}
k-NN
-
Ketidakkonsistenan data antara shard primary dan replika dalam skenario kueri k-NN telah diselesaikan.
Perbaikan bug
-
Memperbaiki masalah di mana menjalankan
GET _cat/nodegagal setelah shard pada suatu node dimigrasikan selama pembaruan biru-hijau.
Versi kernel 1.8.0
Plugin
Plugin aliyun-timestream tersedia untuk Elasticsearch V7.10.0. Plugin ini meningkatkan kinerja penyimpanan dan kueri untuk data deret waktu serta mendukung:
-
Membuat, mengubah, mengkueri, dan menghapus indeks deret waktu
-
Menjalankan pernyataan PromQL untuk mengkueri data yang disimpan di Elasticsearch
-
Menulis data ke indeks deret waktu menggunakan protokol baris InfluxDB
Untuk informasi selengkapnya, lihat Ikhtisar aliyun-timestream, Integrasikan Elasticsearch dengan Prometheus dan Grafana berdasarkan aliyun-timestream untuk menerapkan pemantauan terpadu, dan Integrasikan aliyun-timestream dengan protokol baris InfluxDB.
Versi kernel 1.7.0
Pencarian
Plugin analytic-search tersedia. Plugin ini secara signifikan meningkatkan kinerja kueri dalam skenario log:
-
Kebijakan penggabungan indeks dan kebijakan agregasi histogram tanggal dioptimalkan. Kueri tanpa kondisi atau dengan satu kondisi—seperti yang ada di halaman Discover Kibana—lebih dari 6x lebih cepat dalam skenario kueri log. Di lingkungan yang mengingesti lebih dari 1 TB data per hari, waktu kueri turun dari hitungan menit menjadi 5 detik atau kurang.
-
Recall data konkuren didukung untuk kueri konkuren, meningkatkan pemanfaatan resource dan mengurangi waktu recall data rata-rata sebesar 50% dalam skenario log.
-
Segmen kecil read-only terus digabung sebelum force merge, meningkatkan kinerja kueri sebesar 20%.
Peningkatan kinerja
-
Permintaan penulisan antara node klien dan node data dikompresi menggunakan LZ4. Hal ini mengurangi overhead lebar pita jaringan sebesar 30%.
-
Force merge dapat dijalankan secara paralel di seluruh shard, mengurangi durasi total force merge.
-
Blok data besar dalam teks mentah dapat dikompresi, dan parameter kompresi zstd dioptimalkan, mengurangi ukuran teks mentah sebesar 8%. Metode Patched Frame of Reference (PFOR) juga didukung untuk posting Lucene, mengurangi ukuran indeks tambahan sebesar 3%.
Perbaikan bug
-
Memperbaiki masalah di mana fitur
source_reuse_doc_valuesdari plugin aliyun-codec tidak mendukung bidang yang namanya mengandung titik (.).
Versi kernel 1.6.0
Kompresi
-
Fitur
source_reuse_doc_valuesditambahkan ke plugin aliyun-codec untuk lebih mengurangi ukuran indeks dan biaya penyimpanan. Untuk informasi selengkapnya, lihat Gunakan plugin aliyun-codec.
Pembatasan kecepatan
-
Plugin aliyun-qos diperbarui ke V2.0, menambahkan jenis dan parameter pembatasan kecepatan yang lebih terperinci. Untuk informasi selengkapnya, lihat Gunakan plugin aliyun-qos.
Versi kernel 1.5.0
Kompresi
-
Plugin aliyun-codec tersedia untuk meningkatkan kompresi tingkat kernel untuk kluster. Untuk informasi selengkapnya, lihat Gunakan plugin aliyun-codec.
Perbaikan bug
-
Memperbaiki bug terkait tipe bidang
search_as_you_type. Untuk detailnya, lihat GitHub issue #65319.
Versi kernel 1.4.0
Pencarian
-
Plugin aliyun-knn diperbarui dengan peningkatan kinerja penulisan, dukungan kueri skrip, dan optimasi pencarian vektor menggunakan optimasi tingkat perangkat keras.
Pembatasan kecepatan
-
Plugin aliyun-qos dioptimalkan untuk pembatasan kecepatan tingkat kluster. Traffic didistribusikan secara otomatis ke seluruh node tanpa memerlukan pengetahuan tentang topologi kluster atau beban node, meningkatkan kegunaan dan stabilitas kluster.
Versi kernel 1.3.0
Pencarian
-
Isolasi kueri lambat tersedia untuk membatasi dampak kueri anomali terhadap stabilitas kluster.
-
Plugin gig tersedia. Plugin ini melakukan alih bencana dalam hitungan detik saat terjadi exception pada node kluster, mencegah jitter kueri yang disebabkan oleh node anomali.
Untuk kluster Edisi Standar Elasticsearch V7.10.0, plugin gig diintegrasikan ke dalam plugin aliyun-qos, yang diinstal secara default.
Replikasi
-
Replikasi fisik tersedia untuk meningkatkan kinerja penulisan untuk indeks dengan shard replika.
Deret waktu
-
Fitur pemangkasan tersedia untuk indeks deret waktu guna meningkatkan kinerja kueri.
Observabilitas
-
Log akses kluster dapat dilihat. Log mencakup bidang seperti Time, Node IP, dan Content. Gunakan log ini untuk troubleshooting dan menganalisis permintaan.
Manajemen kluster
-
Kinerja penjadwalan node master khusus ditingkatkan 10x, memungkinkan setiap node master khusus menjadwalkan lebih banyak shard.
Elasticsearch V6.7.0
Versi kernel 1.3.0
Pencarian
-
Isolasi kueri lambat tersedia untuk membatasi dampak kueri anomali terhadap stabilitas kluster.
-
Plugin gig tersedia. Plugin ini melakukan alih bencana dalam hitungan detik saat terjadi exception pada node kluster, mencegah jitter kueri yang disebabkan oleh node anomali.
Sebelum menggunakan fitur-fitur ini, pastikan kluster Anda menjalankan versi kernel V1.3.0. Jika perlu, lakukan peningkatan kernel. Peningkatan kernel hanya didukung untuk kluster Edisi Standar yang menjalankan kernel V0.3.0, V1.0.2, atau V1.3.0.
Versi kernel 1.2.0
Replikasi
-
Replikasi fisik tersedia untuk meningkatkan kinerja penulisan untuk indeks dengan shard replika.
Deret waktu
-
Fitur pemangkasan tersedia untuk indeks deret waktu guna meningkatkan kinerja kueri.
Kinerja penulisan
-
Deduplikasi data berbasis kunci utama selama kueri dioptimalkan, meningkatkan kinerja penulisan dokumen dengan kunci utama sebesar 10%.
Penyimpanan
-
Finite state transducers (FSTs) yang tidak menempati memori heap JVM didukung. Satu node tunggal dapat menyimpan hingga 20 TiB data indeks.
Versi kernel 1.0.2
Observabilitas
-
Log akses kluster dapat dilihat. Log mencakup bidang seperti Time, Node IP, dan Content. Gunakan log ini untuk troubleshooting dan menganalisis permintaan.
Versi kernel 1.0.1
Pemutusan sirkuit
Kebijakan pemutusan sirkuit untuk JVM dapat dikonfigurasi. Saat penggunaan memori heap JVM mencapai 95%, kluster akan menolak permintaan masuk untuk melindungi stabilitas. Konfigurasikan parameter berikut:
| Parameter | Default |
|---|---|
indices.breaker.total.use_real_memory |
false |
indices.breaker.total.limit |
95% |
Versi kernel 0.3.0
Manajemen kluster
-
Kinerja penjadwalan node master khusus ditingkatkan 10x, memungkinkan setiap node master khusus menjadwalkan lebih banyak shard.
Kinerja penulisan
-
Kinerja penulisan ditingkatkan sebesar 10% dan overhead flush translog dikurangi.