Oath, la neonata società creata da Verizon per gestire la collezione di portali e brand in suo possesso – tra i quali spiccano AOL, Yahoo!, HuffPost, TechCrunch e Tumblr – ha rilasciato nei giorni scorsi un progetto open source sulla piattaforma GitHub: Bullet .
Bullet è un motore in grado di eseguire query temporali su dati che vengono ricevuti in tempo reale; ciò che lo distingue dagli altri query engine è il fatto di non utilizzare un layer per gestire la persistenza dei dati : mentre soluzioni analoghe ricevono i dati, li salvano all’interno di una base di dati temporale sulla quale poi eseguono le query, effettuando quindi un’operazione di tipo look-back , Bullet esegue le query prima ancora di ricevere il flusso di dati in ingresso, senza analizzare nulla di ciò che è già stato ricevuto. Il dato, se non rilevante per le query, viene scartato immediatamente. L’approccio utilizzato da Bullet viene definito di tipo look-forward .
Bullet, che per il momento è implementato esclusivamente per il framework di calcolo Apache Storm (ma gli ingegneri di Oath dichiarano che ulteriori implementazioni saranno realizzate nel prossimo futuro), supporta le operazioni principali tipiche dei linguaggi SQL: count with distinct, distinct, group by, distribution, top k . Funziona inoltre con dati tipati, è scalabile e supporta la multi-tenancy .
Yahoo dichiara di utilizzare Bullet anche in produzione – principalmente al fine di ottenere dati relativi alla profilazione degli utenti e dei loro comportamenti – con carichi di oltre 500 query contemporanee che restituiscono 200mila risultati al secondo, con punte massime supportate pari a 2 milioni di risultati al secondo .
Tra i possibili sviluppi futuri relativi a Bullet, vi è la possibilità di integrazione con la libreria Javascript LocalForage , al fine di migliorare il salvataggio delle query e (soprattutto) dei risultati, all’interno del LocalStorage HTML5 .
La documentazione , oltre a descrivere il software, presenta numerosi esempi di query SQL e di ipotetici risultati restituiti, riportati in formato JSON, in modo da dettagliare bene le potenzialità del motore.
Elia Tufarolo