polito.it
Politecnico di Torino (logo)

Realizzazione di uno strumento per la ricerca delle opportunità di caching in Spark = Development of a Spark cache opportunity research tool

Dario Patti

Realizzazione di uno strumento per la ricerca delle opportunità di caching in Spark = Development of a Spark cache opportunity research tool.

Rel. Paolo Garza. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2021

Abstract:

Da diversi anni assistiamo ad un aumento esponenziale della quantità e della varietà dei dati che le nuove tecnologie sono in grado di generare. Elaborare e analizzare una tale mole di informazioni diventa sempre più difficile e, per questo motivo, risulta fondamentale l’implementazione di soluzioni e strumenti di supporto che ci consentano di valorizzare e sfruttare al meglio questo flusso continuo di dati. Tra questi, Apache Spark è senza dubbio uno dei principali framework di riferimento nell’ambito dei Big Data. Questa piattaforma utilizza un sistema di elaborazione distribuita dei dati che gli permette di sfruttare le risorse di un cluster per svolgere quei compiti che una singola macchina non sarebbe in grado di portare a termine. Il suo successo è dovuto ad un processo di computazione, concettualmente diverso da quello implementato dalle altre principali piattaforme del settore, basato sul concetto di elaborazione dei dati in-memory, allo scopo di sfruttare al massimo le prestazioni della memoria usata sulle macchine, diversamente dai modelli che prevedono numerosi e continui accessi ai dischi fisici. Sulla base di questo principio, Spark prevede un meccanismo, denominato “caching”, che utilizza la memoria come una sorta di storage temporaneo, riducendo ulteriormente la necessità di accedere al disco per la lettura/scrittura di quei dati che hanno la necessità di essere riutilizzati durante l’esecuzione di un processo. Il programmatore che si trova a realizzare un’applicazione basata sul framework ha il compito di scegliere quando utilizzare tale meccanismo, a seconda di quanto questo riesca a migliorarne le performance. Tuttavia, la scelta dell’utilizzo di questo strumento è soggettiva e ciò rende difficile riuscire a trovare la soluzione di caching ideale all’interno di un programma. Omissioni o scelte errate sui tempi e le modalità di utilizzo di questo meccanismo potrebbero portare persino ad un degrado delle prestazioni dell’applicazione. Questo lavoro di tesi si pone l’obbiettivo di affrontare questa problematica. Lo scopo è quello di realizzare uno strumento di supporto in grado di analizzare un’applicazione Spark al fine di cogliere quelle che sono potenzialmente le migliori opportunità di caching. La sfida consiste nel riuscire ad ottenere un’indicazione precisa dei punti del codice in cui il programmatore potrebbe richiedere l’uso del caching, senza tuttavia avere accesso al codice applicativo. Il progetto realizzato implementa diverse strategie di raccolta delle informazioni. Alcune di esse fanno uso degli strumenti messi a disposizione da Spark, altre sfruttano invece la Java Virtual Machine per la modifica di una parte del framework. Per mezzo dei dati raccolti si è in grado di ricostruire la struttura dell’applicazione, al fine di individuare, mediante un processo di analisi, quelle che sono le possibili opportunità di caching che il programmatore potrebbe sfruttare per migliorare le prestazioni del proprio software.

Relatori: Paolo Garza
Anno accademico: 2020/21
Tipo di pubblicazione: Elettronica
Numero di pagine: 101
Informazioni aggiuntive: Tesi secretata. Fulltext non presente
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA
Aziende collaboratrici: Agile Lab S.r.l.
URI: http://webthesis.biblio.polito.it/id/eprint/18079
Modifica (riservato agli operatori) Modifica (riservato agli operatori)