L'organizzazione non profit OpenSearch Software Foundation, controllata dalla Linux Foundation, ha pubblicato il rilascio del progetto OpenSearch 3.0, che sviluppa un fork della piattaforma di ricerca, analisi e archiviazione dati Elasticsearch e dell'interfaccia web Kibana. Tra le aziende coinvolte nello sviluppo del fork ci sono Amazon, SAP, Uber, Aryn, Atlassian, Canonical, DigitalOcean e NetAp. Il codice è distribuito sotto licenza Apache 2.0.
Il fork è stato creato nel 2021 in risposta alla modifica del progetto Elasticsearch in una licenza non libera SSPL (Server Side Public License) e alla cessazione della pubblicazione delle modifiche sotto la vecchia licenza Apache 2.0. Nonostante il ritorno di Elasticsearch all'uso di una licenza libera, il progetto OpenSearch è rimasto rilevante, poiché continua a utilizzare la licenza permissiva Apache 2.0 invece della licenza AGPLv3, a cui è passato Elasticsearch, e si sviluppano diversi plugin specifici precedentemente forniti da Amazon in un diverso pacchetto Open Distro for Elasticsearch, che sostituiscono i componenti a pagamento di Elasticsearch.
OpenSearch include il motore di archiviazione e ricerca OpenSearch, l'interfaccia web e l'ambiente di visualizzazione dati OpenSearch Dashboards, nonché un insieme di plugin per il machine learning, supporto SQL, generazione di notifiche, diagnostica delle prestazioni del cluster, crittografia del traffico, controllo degli accessi basato sui ruoli (RBAC), autenticazione tramite Active Directory, Kerberos, SAML e OpenID, implementazione di un unico punto di accesso (SSO) e registrazione dettagliata per audit.
Tra le novità di OpenSearch 3.0:
- È stato aggiunto un motore vettoriale (OpenSearch Vector Engine), che può essere utilizzato per l'archiviazione e la gestione dei dati impiegati nei sistemi di machine learning. Per accelerare la ricerca vettoriale sono state impiegate le computazioni su GPU, che hanno consentito un aumento della velocità di indicizzazione di 9,3 volte e una riduzione dei costi operativi di 3,75 volte rispetto alle soluzioni che utilizzano solo CPU. Per organizzare l'interazione con le sorgenti di dati, le applicazioni LLM e le piattaforme AI, è stato implementato il supporto per il protocollo MCP (Model Context Protocol). È supportata l'integrazione con agenti AI delle aziende Anthropic, LangChain e OpenAI.
- È stata aggiunta un'ottimizzazione che consente di ridurre di un terzo la dimensione dello storage dei vettori k-NN (k-nearest neighbors) e di ridurre fino a 30 volte i ritardi nell'esecuzione delle richieste subito dopo l'avvio (cold start) grazie all'eliminazione di informazioni secondarie ridondanti e all'uso di dati primari per ricreare le informazioni necessarie.
- È stata aggiunta una funzionalità sperimentale per l'uso del protocollo gRPC (protobuf su gRPC) per il trasferimento di dati tra i client server e i nodi di storage. Rispetto a JSON, l'uso di gRPC consente di abbattere i costi di serializzazione e aumentare le prestazioni grazie all'invio simultaneo di diverse richieste in una singola connessione TCP.
- È stata aggiunta una modalità pull per l'acquisizione dei dati, in cui OpenSearch richiede direttamente i dati da sorgenti streaming, come Apache Kafka e Amazon Kinesis.
- Nel cluster è stata fornita la possibilità di separare il traffico associato all'indicizzazione e alla ricerca. È stata aggiunta un'API che consente di disabilitare le operazioni di scrittura e rendere l'indice accessibile solo per la ricerca, al fine di ottimizzare la gestione di dati che non saranno modificati (configurazioni in cui i dati vengono scritti una volta e letti molteplici volte).
- È stata ampliata l'integrazione con Apache Calcite e implementata la possibilità di utilizzare il linguaggio di query PPL (Piped Processing Language) per operazioni di ricerca, filtraggio e fusione.
- È stata garantita la determinazione automatica del tipo di indici. Per gli indici con dati relativi alla registrazione dei log sono state utilizzate ottimizzazioni specifiche per velocizzare le operazioni di analisi dei log.
- Il motore di ricerca full-text Lucene è stato aggiornato alla serie 10, in cui è stata migliorata la gestione degli indici e aumentata la performance dell'elaborazione parallela dei task.
- È stato aggiunto il supporto per i moduli Java (Java Platform Module System) per separare i componenti in librerie distinte. È stata dichiarata come versione minima il rilascio di Java 21.
- È stata accelerata l'operazione su intervalli di valori e campi contenenti date e numeri (la velocità di esecuzione del test set Big5 è aumentata del 25%). Sono state accelerate le operazioni di aggregazione dei dati (nel test p90 i ritardi sono stati ridotti del 75%). Per i vettori k-NN è stata attivata per impostazione predefinita la modalità di parallelizzazione della ricerca dei segmenti, consentendo di aumentare le prestazioni delle richieste di 2,5 volte.
Fonte: opennet.ru
