In today's applications, data are increasing exponentially and also need to be replicated on different devices in realtime; these different devices should be able to use them even if they are offline. So the devices need a local copy of the database available also offline called local database.The typical device that uses this kind of application is a smartphone. But not only, also other web applications use them, such as collaborative softwares (like Google Docs). Different solutions based on NoSQL databases were proposed (both opensource and proprietary in cloud located), but of course custom solutions based on RDBMS are also feasible. The NoSQL based solutions are not standardized, so there is no name even for them so we call them CS-NoSQL (client side NoSQL).NoSQL was chosen because in this setting data are unstructured and their amount could be enormous.One of the main advantages of CS-NoSQL is that they are a full-stack environment (with other solutions we need to create the entire infrastructure) and this allows creating a simpler application with zero code. Goal of this master thesis is to verify the performances of CS-NoSQL for the class of applications they are designed for, comparing them with a solution based on an RDBMS.To do that we implemented a comparing solution based on postgreSQL (an RDBMS server) that replicates data on clients using websocket, we also implemented a simple local database for it.We created a custom framework to test this kind of systems and we did some benchmark tests emulating the different classes of applications for which CS-NoSQL are designed.We discovered that they are very unstable with a reasonable amount of data and that our proposed solution based on postgreSQL is quicker (up to 10x). However we expect an improvement (in performance and stability) in the next years when probably more native solutions will be developed.

Oggi, nelle applicazioni i dati crescono esponenzialmente e vanno replicati su diversi dispositivo in realtime, dispositivo che si dovrebbe poter utilizzare anche se sono offline. Tali dispositivo necessitano di una copia locale del database disponibile anche offline chiamato database locale.Il dispositivo tipico che usa questo tipo di applicazione è lo smartphone, ma anche applicazioni web come i software collaborativi (come Google Docs) le usano. Sono state proposte diverse soluzioni basate sui database NoSQL (sia opensource che proprietarie in cloud), ma anche soluzioni personalizzate basate su RDBMS sono fattibili. Le soluzioni basate sui NoSQL non sono standardizzate e non hanno un nome definito quindi le chiamiamo CS-NoSQL (NoSQL lato client).Sono stati scelti i NoSQL per il fatto che si trattano dati non strutturati e di grandi dimensioni.Uno dei principali vantaggi dei CS-NoSQL è che sono un ambiente completo (con le altre soluzioni dobbiamo creare l'intera infrastruttura) e ciò consente di creare un'applicazione più semplice senza codice. L'obiettivo di questa tesi è verificare le performance dei CS-NoSQL per le classi di applicazioni per cui sono progettati, comparandoli con una soluzione basata su RDBMS.Per far ciò, abbiamo implementato una soluzione comparata basata su postgreSQL (un server RDBMS) che replica i dati sui client usando websocket, implementato un semplice database locale per esso, creato un framework personalizzato per testare questi sistemi e fatto test di benchmark emulando le differenti classi di applicazioni per cui i CS-NoSQL sono stati progettati.Abbiamo scoperto che sono molto instabili con gran quantità di dati e che la nostra soluzione basata su postgreSQL è più veloce (fino a 10 volte). Tuttavia, ci aspettiamo un miglioramento (in performance e stabilità) nei prossimi anni quando saranno probabilmente sviluppate soluzioni più native.

Evaluating client-side replicated NoSQL databases approaches

CARDINALE, CLAUDIO
2016/2017

Abstract

In today's applications, data are increasing exponentially and also need to be replicated on different devices in realtime; these different devices should be able to use them even if they are offline. So the devices need a local copy of the database available also offline called local database.The typical device that uses this kind of application is a smartphone. But not only, also other web applications use them, such as collaborative softwares (like Google Docs). Different solutions based on NoSQL databases were proposed (both opensource and proprietary in cloud located), but of course custom solutions based on RDBMS are also feasible. The NoSQL based solutions are not standardized, so there is no name even for them so we call them CS-NoSQL (client side NoSQL).NoSQL was chosen because in this setting data are unstructured and their amount could be enormous.One of the main advantages of CS-NoSQL is that they are a full-stack environment (with other solutions we need to create the entire infrastructure) and this allows creating a simpler application with zero code. Goal of this master thesis is to verify the performances of CS-NoSQL for the class of applications they are designed for, comparing them with a solution based on an RDBMS.To do that we implemented a comparing solution based on postgreSQL (an RDBMS server) that replicates data on clients using websocket, we also implemented a simple local database for it.We created a custom framework to test this kind of systems and we did some benchmark tests emulating the different classes of applications for which CS-NoSQL are designed.We discovered that they are very unstable with a reasonable amount of data and that our proposed solution based on postgreSQL is quicker (up to 10x). However we expect an improvement (in performance and stability) in the next years when probably more native solutions will be developed.
SCAVUZZO, MARCO
ING - Scuola di Ingegneria Industriale e dell'Informazione
27-lug-2017
2016/2017
Oggi, nelle applicazioni i dati crescono esponenzialmente e vanno replicati su diversi dispositivo in realtime, dispositivo che si dovrebbe poter utilizzare anche se sono offline. Tali dispositivo necessitano di una copia locale del database disponibile anche offline chiamato database locale.Il dispositivo tipico che usa questo tipo di applicazione è lo smartphone, ma anche applicazioni web come i software collaborativi (come Google Docs) le usano. Sono state proposte diverse soluzioni basate sui database NoSQL (sia opensource che proprietarie in cloud), ma anche soluzioni personalizzate basate su RDBMS sono fattibili. Le soluzioni basate sui NoSQL non sono standardizzate e non hanno un nome definito quindi le chiamiamo CS-NoSQL (NoSQL lato client).Sono stati scelti i NoSQL per il fatto che si trattano dati non strutturati e di grandi dimensioni.Uno dei principali vantaggi dei CS-NoSQL è che sono un ambiente completo (con le altre soluzioni dobbiamo creare l'intera infrastruttura) e ciò consente di creare un'applicazione più semplice senza codice. L'obiettivo di questa tesi è verificare le performance dei CS-NoSQL per le classi di applicazioni per cui sono progettati, comparandoli con una soluzione basata su RDBMS.Per far ciò, abbiamo implementato una soluzione comparata basata su postgreSQL (un server RDBMS) che replica i dati sui client usando websocket, implementato un semplice database locale per esso, creato un framework personalizzato per testare questi sistemi e fatto test di benchmark emulando le differenti classi di applicazioni per cui i CS-NoSQL sono stati progettati.Abbiamo scoperto che sono molto instabili con gran quantità di dati e che la nostra soluzione basata su postgreSQL è più veloce (fino a 10 volte). Tuttavia, ci aspettiamo un miglioramento (in performance e stabilità) nei prossimi anni quando saranno probabilmente sviluppate soluzioni più native.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2017_07_cardinale.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 1.5 MB
Formato Adobe PDF
1.5 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/135078