The recent growing interest on highly-available data-intensive applications sparked the need for flexible and performant storage technologies, e.g., NoSQL databases. NoSQL databases have emerged as the solution to handle large quantities of user-generated content still guaranteeing fault-tolerance, availability and scalability. NoSQL databases offer differentiated properties and characteristics as well as different data models, architectures and data access interfaces. As a result of these heterogeneities, the development of applications exploiting such kind of technology is strictly dependent on the specific NoSQL solution being adopted. Thus, applications are not portable across different databases and, usually, the adaptation to a different technology requires applications re-engineering and code modifications, which, in turn, result in an increase of the application maintenance costs. This, together with the lack of effective data migration solutions for NoSQL databases, has required, until now, the development of ad hoc code managing the transfer of data between different NoSQLs. Applications portability is key when requirements can vary over time; in fact, the introduction of a new requirement might invalidate the original database choice. In this case, if a new database is selected, the data stored by the application in the old database has to be migrated to the new database. Hence, this thesis aims at providing guaranteed fault-tolerant techniques and supporting architectures to migrate data across heterogeneous NoSQL technologies. In particular, we focus our work on column-family-based NoSQLs, as they are among the most interesting class of NoSQL for their high level of scalability, and elaborate on our approach and supporting architecture, that we call Hegira4Cloud, to perform offline and online data migration across heterogeneous NoSQL databases. The proposed approach is based on the idea of extracting data from the source database, transforming them into an intermediate format, and, finally, translate and store them into the target database. The proposed approach is designed in such a way to cope with the different NoSQL data access interfaces. Moreover, by means of the intermediate transformation format, that we call Mediation Data Model (MDM), Hegira4Cloud is capable of coping with NoSQLs heterogeneities at the data model level, and it is able to preserve different databases data types, secondary indexes and different atomicity and isolation properties. The fact that the NoSQL database market currently provides hundreds of different technologies, and that their number is constantly growing, also requires an extensible approach towards the migration of data between different representatives of the above mentioned market. Hence, our approach aims at providing an extensible database migration system, which allows developers to easily add support for new databases, and that is also independent from the other databases already supported by the system. The adoption of a NoSQL database, in place of a traditional relational database management system, is often motivated by the high-availability and low latency that the former is able to provide with respect to the latter. However, many data migration tools, in order to avoid data inconsistencies, require applications to stop using the databases while a data migration is in progress; this service interruption may not be tolerable from the perspective of modern applications, which require high-availability. Hence, our approach provides both offline and online data migration. In particular, when the data migration is performed in an online fashion, our approach guarantees that applications operations are synchronized with the ongoing data migration process, so as to produce two mutual consistent databases. Long running data transferring processes, typically occurring when migrating huge quantities of data, are more subject to failures. Hence, our database migration system has been built to tolerate failures of any of its components, thus being able to recover and correctly complete failed data migrations even in the presence of a failure within the migration infrastructure. To prove the effectiveness of our approach we evaluate it through several experiments featuring a real-life case-study. We conclude that our method and supporting architecture offer an efficient, fault-tolerant and data-preserving mechanism for NoSQL portability and interoperation.
La necessità di gestire i dati prodotti da applicazioni data-intensive e highly-available ha reso necessario l’utilizzo di tecnologie flessibili e performanti. I database NoSQL nascono dalla necessità di gestire grandi quantità di dati garantendo, al contempo, resilienza rispetto ai malfunzionamenti, availability e scalabilità. I database NoSQL sono contraddistinti da proprietà e caratteristiche diverse, nonché da diversi tipi di modelli dei dati, diverse architetture e diverse interfacce di accesso ai dati. A causa di siffatte eterogeneità, lo sviluppo di applicazioni, che fanno uso di tale tecnologia, è strettamente correlato al database NoSQL prescelto. Ciò fa si che tali applicazioni non siano facilmente riutilizzabili nel caso in cui il database NoSQL prescelto venga sostituito da un altro database. Infatti, in questo contesto, è necessario reingegnerizzare l’applicazione e apportare delle modifiche al suo codice sorgente, causando quindi un aumento dei costi di manutenzione della stessa. In aggiunta a quanto sopra indicato, la mancanza di soluzioni per la migrazione di dati tra database NoSQL, ha reso necessario, fino ad adesso, lo sviluppo di codice ad hoc, allo scopo di trasferire i dati tra database NoSQL diversi. La portabilità delle applicazioni è un requisito fondamentale nell’ambito dell’ingegneria del software, e specialmente quando i requisiti dell’applicazione possono cambiare frequentemente. In questo caso, se un cambiamento dei requisiti impone la selezione di un nuovo database NoSQL, i dati salvati dall’applicazione nel vecchio database devono essere migrati verso il nuovo database. A tal proposito, questa tesi ha l’obiettivo di fornire delle tecniche resilienti ai guasti e delle architetture software a supporto di tali tecniche, che hanno lo scopo di migrare i dati tra database NoSQL eterogenei. Nello specifico, in questa tesi ci si focalizza sui database NoSQL di tipo column-family, in quanto essi rappresentano la categoria più interessante tra quelle relative ai database NoSQL, in virtù della loro scalabilità. Inoltre, vengono descritti l’approccio e le relative architetture software – chiamate Hegira4Cloud – che sono in grado di effettuare migrazioni di dati tra database NoSQL eterogenei, sia in modalità offline che online. L’approccio di cui sopra consiste nell’estrarre i dati da un database sorgente, trasformarli in un formato intermedio e, alla fine, salvarli nel database di destinazione. L’approccio proposto è in grado di far fronte alle diverse interfacce di accesso ai dati esposte dai diversi database NoSQL. Inoltre, tramite l’utilizzo del formato intermedio (chiamato Mediation Data Model, o MDM), Hegira4Cloud è anche in grado di gestire le eterogeneità presenti nei diversi modelli dei dati e di preservarne i tipi di dato, gli indici secondari ed altre proprietà, come l’isolamento e l’atomicità. Inoltre, la crescente disponibilità di database NoSQL differenti richiede che i sistemi per la migrazione di dati siano estensibili. A tal proposito, l’approccio descritto in questa tesi ha tra i suoi obiettivi quello di essere facilmente estensibile e di far in modo che gli sviluppatori possano supportare un nuovo database senza dover essere a conoscenza delle caratteristiche e delle proprietà degli altri database già supportati dal sistema. Di solito, la scelta di un database NoSQL, rispetto ad uno relazionale, è motivata dalla high-availability e dalla bassa latenza che i primi riescono a fornire rispetto ai secondi. Tuttavia, al fine di evitare che i due database soggetti a migrazione risultino inconsistenti alla fine del processo, molti sistemi per la migrazione di dati non permettono ad applicazioni terze di modificare il contenuto dei database mentre una migrazione è in corso. Ciononostante, l’interruzione delle scritture durante la migrazione potrebbe non essere tollerabile da parte delle più moderne applicazioni, le quali hanno come requisito una high-availability. Di conseguenza, l’approccio descritto mira a supportare sia migrazioni di tipo offline che online. In particolare, quando si effettua una migrazione di tipo online, Hegira4Cloud garantisce che le operazioni di scrittura eseguite dalle applicazioni siano sincronizzate con il processo di migrazione dei dati in corso, in modo tale da ottenere due database mutuamente consistenti alla fine del processo. I lunghi processi di trasferimento dati che, di solito, si hanno quando si migrano grandi quantità di dati, sono più soggetti ad interruzioni dovute a malfunzionamenti. Di conseguenza, Hegira4Cloud è stato costruito per tollerare i guasti di ciascuno dei sistemi che lo compongono, così da essere in grado di ripristinare e completare correttamente le migrazioni dei dati interrotte. Al fine di dimostrare l’efficacia dell’approccio, Hegira4Cloud è stato valutato attraverso diversi esperimenti che hanno preso in considerazione dei casi di studio reali. Dopo tali valutazioni è stato possibile concludere che, l’approccio, così come le architetture software a supporto di esso, offrono un meccanismo efficiente e resiliente ai guasti, in grado di supportare la portabilità e la riusabilità di applicazioni facenti uso di database NoSQL.
Data migration across heterogeneous NoSQL databases in a big data context
SCAVUZZO, MARCO
Abstract
The recent growing interest on highly-available data-intensive applications sparked the need for flexible and performant storage technologies, e.g., NoSQL databases. NoSQL databases have emerged as the solution to handle large quantities of user-generated content still guaranteeing fault-tolerance, availability and scalability. NoSQL databases offer differentiated properties and characteristics as well as different data models, architectures and data access interfaces. As a result of these heterogeneities, the development of applications exploiting such kind of technology is strictly dependent on the specific NoSQL solution being adopted. Thus, applications are not portable across different databases and, usually, the adaptation to a different technology requires applications re-engineering and code modifications, which, in turn, result in an increase of the application maintenance costs. This, together with the lack of effective data migration solutions for NoSQL databases, has required, until now, the development of ad hoc code managing the transfer of data between different NoSQLs. Applications portability is key when requirements can vary over time; in fact, the introduction of a new requirement might invalidate the original database choice. In this case, if a new database is selected, the data stored by the application in the old database has to be migrated to the new database. Hence, this thesis aims at providing guaranteed fault-tolerant techniques and supporting architectures to migrate data across heterogeneous NoSQL technologies. In particular, we focus our work on column-family-based NoSQLs, as they are among the most interesting class of NoSQL for their high level of scalability, and elaborate on our approach and supporting architecture, that we call Hegira4Cloud, to perform offline and online data migration across heterogeneous NoSQL databases. The proposed approach is based on the idea of extracting data from the source database, transforming them into an intermediate format, and, finally, translate and store them into the target database. The proposed approach is designed in such a way to cope with the different NoSQL data access interfaces. Moreover, by means of the intermediate transformation format, that we call Mediation Data Model (MDM), Hegira4Cloud is capable of coping with NoSQLs heterogeneities at the data model level, and it is able to preserve different databases data types, secondary indexes and different atomicity and isolation properties. The fact that the NoSQL database market currently provides hundreds of different technologies, and that their number is constantly growing, also requires an extensible approach towards the migration of data between different representatives of the above mentioned market. Hence, our approach aims at providing an extensible database migration system, which allows developers to easily add support for new databases, and that is also independent from the other databases already supported by the system. The adoption of a NoSQL database, in place of a traditional relational database management system, is often motivated by the high-availability and low latency that the former is able to provide with respect to the latter. However, many data migration tools, in order to avoid data inconsistencies, require applications to stop using the databases while a data migration is in progress; this service interruption may not be tolerable from the perspective of modern applications, which require high-availability. Hence, our approach provides both offline and online data migration. In particular, when the data migration is performed in an online fashion, our approach guarantees that applications operations are synchronized with the ongoing data migration process, so as to produce two mutual consistent databases. Long running data transferring processes, typically occurring when migrating huge quantities of data, are more subject to failures. Hence, our database migration system has been built to tolerate failures of any of its components, thus being able to recover and correctly complete failed data migrations even in the presence of a failure within the migration infrastructure. To prove the effectiveness of our approach we evaluate it through several experiments featuring a real-life case-study. We conclude that our method and supporting architecture offer an efficient, fault-tolerant and data-preserving mechanism for NoSQL portability and interoperation.File | Dimensione | Formato | |
---|---|---|---|
2017_09_PhD_Scavuzzo.pdf
solo utenti autorizzati dal 19/08/2020
Descrizione: Testo della tesi
Dimensione
5.66 MB
Formato
Adobe PDF
|
5.66 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/135784