Nei giorni scorsi, con un articolo sul blog dedicato alla piattaforma Firebase, Google ha annunciato il rilascio in beta di un nuovo database non relazionale per la propria soluzione cloud.
Con il nuovo database – Cloud Firestore – Google si prefigge lo scopo di risolvere i problemi di scalabilità del tradizionale Realtime Database , entrato a far parte del portfolio di applicazioni Google Cloud con l’acquisizione della startup Firebase, avvenuta nel 2014.
In Realtime Database il dato viene salvato in formato JSON: ciò lo rende di facile adozione e utilizzo, in quanto rende possibile la creazione di semplici query di tipo CRUD (Create, Retrieve, Update, Delete). Tuttavia, i problemi di scalabilità si presentano nel momento in cui vi è la necessità di salvare grandi quantità di dati, o dati di tipo BLOB, per i quali il JSON non è, ovviamente, funzionale. La stessa Google consiglia di non scrivere dati annidati , in quanto le successive operazioni sul nodo padre richiederebbero l’accesso a tutti i nodi sotto di esso, con conseguenti cali di prestazioni.
Firestore Database, invece, continua ad avere una struttura di tipo NoSQL, salvando i dati sotto forma di documenti, organizzati in collezioni . Ciò consente la scrittura di dati utilizzando anche query complesse, che prevedono, ad esempio, operazioni di ordinamento e di filtro.
La scalabilità è garantita in modo automatico, a differenza di Realtime Database, per cui oltre determinati limiti (100.000 connessioni simultanee, 1.000 scritture al secondo su un singolo database) era pressoché obbligatorio organizzare i dati su più database. Tuttavia, la versione attuale di Firestore non fornisce questa funzionalità , che sarà implementata fuori dalla fase beta.
Analogamente a Realtime Database, Firestore è disponibile per lo sviluppo di applicazioni Android e iOS, nonché, a differenza del suo predecessore, anche per la realizzazione di applicativi Web . I costi variano in base all’utilizzo di storage , della rete e alla quantità di query effettuate.
Elia Tufarolo