Teknologi konvergen memungkinkan Elasticsearch skala miliar
Konvergensi digital terjadi di sekitar kita saat teknologi yang awalnya tidak terkait bersatu dengan cara baru yang menarik. iPhone adalah contoh sempurna, menggabungkan ponsel dengan komputer, kamera, dan sensor untuk menghadirkan pengalaman yang luar biasa.
Konvergensi bukanlah hal baru di ruang tertanam. Perangkat tertanam secara tradisional tunduk pada pembatasan memori dan pemrosesan yang lebih ketat dan telah menganut konvergensi sebagai cara untuk mendapatkan yang terbaik dari banyak bidang teknologi. Jadi, karena kita baru saja memulai konvergensi teknologi dari skala yang berbeda, dengan teknologi yang tampaknya berbeda menjanjikan untuk bergabung bersama untuk mengganggu industri yang ada dan mengantarkan peluang baru yang menarik, ruang yang tertanam juga akan diuntungkan. Satu konvergensi baru adalah penggunaan k-NN Nearest Neighbor (k-NN) dengan pemrosesan akselerasi dalam memori untuk memberikan respons hampir real-time untuk operasi Elasticsearch skala miliar.
Elasticsearch adalah mesin pencari yang menerima permintaan JSON untuk pencarian dokumen dan mengirimkan data JSON sebagai hasilnya. Format data Elasticsearch adalah dokumen dengan data terstruktur yang dikodekan dalam JSON. Elasticsearch dimulai sebagai mesin pencari untuk teks, tetapi database dapat mencakup semua jenis data, dengan setiap dokumen memiliki ID dan tipe data yang unik.
Karena strukturnya “bebas skema”, ini memungkinkan dokumen untuk didefinisikan sesuai kebutuhan pengguna. Contoh dokumen dalam database Elasticsearch meliputi:
- Gambar yang digunakan untuk mengidentifikasi permintaan penelusuran konsumen.
- Log data jaringan yang digunakan untuk mengidentifikasi intrusi jaringan, anomali, atau ketidakseimbangan beban.
- Kuitansi produk digunakan untuk mengidentifikasi pola pembelian pelanggan dan meningkatkan manajemen inventaris.
- Arsitektur jaringan yang digunakan untuk berbagi dan replikasi otomatis.
- Dokumen teks yang digunakan untuk menemukan contoh sastra tertentu.
- Dokumen teks dengan pemetaan satu-ke-banyak yang digunakan untuk terjemahan dengan bantuan komputer.
Elasticsearch dirancang untuk didistribusikan. Ini scalable dalam infrastruktur dan fleksibel untuk server lokal, server jarak jauh, atau operasi berbasis cloud. Berkat struktur API yang terbuka dan tenang, mesin pencari yang dapat diperluas dapat digunakan dengan mudah dengan plugin. Salah satu plugin tersebut adalah dari Teknologi GSI yang menawarkan sejumlah manfaat termasuk k-NN yang dipercepat perangkat keras, penggunaan vektor untuk pencarian multi-modal, dan menggabungkan hasil skor.
Elasticsearch bergantung pada dukungan komputasi terdistribusi untuk skalabilitas, dan kecepatannya yang luar biasa dalam hitungan detik untuk pencarian database skala jutaan. Karena sifatnya yang terdistribusi dan dukungan sharding, Elasticsearch memungkinkan duplikasi data, memparalelkan pencarian dan mempercepatnya untuk database yang lebih besar. Fungsionalitas terdistribusi yang berasal dari posting perintah HTTP juga memungkinkan beberapa pencarian dengan resolusi berbeda dilakukan oleh perangkat yang disematkan – satu di sumber daya lokal, dan satu lagi dikirim ke sumber daya upstream.
Core Elasticsearch menggunakan pencocokan lengkap yang berat secara komputasi (cocok semua), yang memperlambatnya atau membuatnya cukup mahal dalam perangkat keras duplikat untuk mendukung pencarian basis data skala besar. Salah satu teknik yang dapat digunakan untuk memperbesar ukuran database adalah k-NN search. Ini bekerja dengan terlebih dahulu mencari kesamaan dalam pengelompokan umum kemudian melakukan pencarian akhir dalam satu atau lebih pengelompokan tersebut. Teknik ini juga memungkinkan pencarian database besar dilakukan di server skala edge, bukan di tempat komputasi berbasis cloud untuk aplikasi yang sangat sensitif terhadap latensi.
Pendekatan yang menantang secara komputasi
Sementara k-NN menyediakan metodologi untuk Elasticsearch untuk mendukung database yang sangat besar, seperti pada entri skala miliaran ke atas, itu adalah komputasi yang lengkap. Akibatnya, k-NN menjadi tantangan untuk dipercepat karena kendala memindahkan database antara inti GPU atau CPU.
Salah satu batasan terbesar untuk akselerasi beban kerja adalah batasan pertukaran data yang diperlukan antara prosesor dan memori. Kelemahan utama dari arsitektur Von Neumann yang digunakan dalam prosesor modern adalah overhead transfer data antara prosesor dan penyimpanan. CPU harus keluar dan mengambil data untuk setiap operasi yang dilakukannya.
Arsitektur ini bahkan lebih tidak efisien dalam lingkungan akselerasi offload. Kinerja sistem tersebut dibatasi oleh kecepatan pertukaran data melalui memori oleh host yang meminta operasi dan juga oleh mesin komputasi yang melakukan operasi.
Arsitektur yang mengurangi aliran data dari memori sedang dipelajari untuk membantu meringankan kemacetan Von Neumann. Namun, hambatannya sangat parah ketika berhadapan dengan aplikasi kecerdasan buatan yang intensif memori. Pengoperasian aplikasi terkait AI bergantung pada pergerakan cepat dan efisien sejumlah besar data dalam memori. Database terlatih perlu dimuat ke memori kerja dan kueri input yang di-vektorkan. Selanjutnya, mereka perlu diproses dan dimuat agar fungsi perbandingan dapat beroperasi.
Salah satu teknologi yang telah terbukti memiliki dampak di pasar adalah Associative Processing Unit (APU). Keindahan akselerasi dalam memori adalah penyimpanan itu sendiri menjadi prosesor. Ini bukan array besar inti pemrosesan dengan memori cache di dekatnya, melainkan array memori dengan unit komputasi yang dibangun ke dalam arsitektur read-line.
Dengan demikian, APU dibedakan dengan memiliki array memori yang mampu mempercepat komputasi. Jenis prosesor "dipercepat" ini telah terbukti mempercepat kinerja dengan urutan besarnya sekaligus mengurangi konsumsi daya beban kerja server standar.
Konvergensi Elasticsearch, k-NN, dan akselerasi APU memberikan lebih sedikit latensi dan lebih banyak kueri per detik. Hal ini juga memungkinkan untuk menyediakan dukungan untuk pencarian basis data skala miliaran dengan daya yang lebih rendah daripada hanya sistem CPU tradisional atau sistem yang dipercepat GPU. Di ruang tertanam, Elasticsearch dapat menyediakan sarana untuk melakukan pencarian lokal pada perangkat edge sekaligus mengirimkan permintaan HTTP untuk pencarian jaringan yang lebih dalam. Hasil yang bervariasi dapat digabungkan untuk mendapatkan jawaban yang semakin tajam, atau hanya pengecualian baru yang dapat digabungkan.
Perangkat edge ekstrim dapat menerapkan sumber daya CPU-nya untuk melakukan pencarian di database lokal terkait untuk kecepatan. Kemudian penggunaan pengganda kepadatan APU memungkinkan permintaan jaringan Elasticsearch dijalankan secara efisien di server edge atau agregator alih-alih dikirim ke cloud. Pertimbangkan robot yang dapat membuat keputusan otonom tetapi tetap mendapatkan validasi cadangan atau koreksi kursus dari penelusuran hulu yang lebih dalam. Pertimbangkan kendaraan otomatis yang membuat keputusan langsung berdasarkan aturan dan kondisi lokal saat mengirimkan informasi melalui gerbang rambu jalan raya dan mendapatkan kembali informasi jalan hulu dan petunjuk mengemudi.
Ke depannya, akan menarik untuk melihat peluang baru apa yang akan dimungkinkan oleh konvergensi ini.