• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  • Box of Pain:un nuovo tracciante e iniettore di guasto per sistemi distribuiti

    La relazione accade-prima di accettare e connettere le chiamate di sistema che deriva da Box of Pain. I colori indicano fili diversi. Box of Pain è in grado di derivare che la connessione↑ si verifica dopo l'accettazione↓, perché quest'ultimo provoca il primo. Attestazione:Bittman, Miller &Alvaro.

    Nell'informatica, i sistemi distribuiti sono sistemi con componenti collocati su dispositivi diversi, che comunicano tra loro. Mentre questi sistemi sono diventati sempre più comuni, sono tipicamente pieni di bug.

    Alcuni ricercatori hanno provato a sviluppare strumenti per trovare bug nei sistemi distribuiti e rimuoverli, ma una soluzione tangibile non è ancora emersa. Globale, strumenti che "perturbano" le esecuzioni possono testare quanto un sistema sia robusto rispetto ai guasti, mentre gli strumenti che "osservano" le esecuzioni consentono ai ricercatori di comprendere meglio gli effetti a livello di sistema di tali errori.

    La maggior parte degli approcci e delle tecniche esistenti per il rilevamento dei guasti e il debug sono incompleti o basati su test, il che significa che potrebbero essere utili per trovare i bug ma non per eliminarli. Consapevole di questa lacuna in letteratura, un team di ricercatori dell'UC Santa Cruz ha recentemente sviluppato una nuova tecnica, chiamata Scatola del Dolore, per il tracciamento e l'iniezione di guasti in sistemi distribuiti non modificati.

    "Il nostro laboratorio è ossessionato dalla tolleranza agli errori, "Pietro Alvaro, uno dei ricercatori che ha condotto lo studio, ha detto a TechXplore. "Sistemi distribuiti, questo è, sistemi che richiedono la cooperazione di un insieme di computer indipendenti per raggiungere il loro scopo, sono onnipresenti, ma sono estremamente difficili da ragionare, programmare ed eseguire il debug. Le tecniche di iniezione dei guasti possono aumentare la fiducia che i sistemi distribuiti possano effettivamente tollerare i guasti (ad es. partizioni di rete, ecc.) che sono stati progettati per tollerare, mentre l'infrastruttura di osservabilità (ad esempio il tracciamento) può aiutarci a capire meglio come funzionano questi sistemi durante i guasti".

    Il laboratorio di Alvaro si concentra principalmente su un'area di ricerca chiamata selezione degli esperimenti, il che comporta la scelta automatica dei guasti che hanno maggiori probabilità di portare un sistema in uno stato difettoso. Lui e i suoi colleghi utilizzano l'infrastruttura di tracciamento per osservare le esecuzioni, costruire modelli di sistemi che producono tracce e quindi utilizzare questi modelli per identificare guasti "interessanti" da iniettare in un sistema.

    "Sfortunatamente, il nostro approccio presuppone che i sistemi siano già dotati di infrastrutture di tracciamento e di iniezione dei guasti; osservare prima, e infine perturbare l'esecuzione del sistema, — disse Alvaro. — In pratica, molti sistemi non lo sono, e l'aggiunta di queste funzionalità può essere costosa e richiedere molto tempo. Ci siamo ritrovati a chiederci cosa sarebbe necessario per essere in grado di eseguire il tracciamento e l'iniezione di guasti in modo trasparente, su sistemi non modificati, in modo da poter applicare i nostri approcci alla ricerca di bug a "qualsiasi" software distribuito. Box of Pain è dove alla fine siamo atterrati".

    scatola del dolore, l'approccio ideato dai ricercatori della UC Santa Cruz, è essenzialmente un framework per tracciare un sistema informatico complesso per comprenderne meglio il comportamento, simulare i difetti al suo interno e osservare cosa succede quando qualcosa va storto. Ad esempio, Box of Pain può simulare una rete interrotta e confrontare il comportamento dei programmi con il loro comportamento in condizioni normali.

    "La nostra tecnica fa questo osservando gli eventi chiave nei comportamenti dei programmi, come eventi di comunicazione, crash, e condizioni di uscita, "Daniele Bittman, un altro ricercatore coinvolto nello studio, spiegato. "Utilizzando queste informazioni, costruisce dal vivo una comprensione di come i computer interagiscono, consentendo al software di ricerca automatica dei bug di sperimentare automaticamente sistemi di disturbo".

    A differenza di altri sistemi di iniezione di guasti, Box of Pain utilizza un approccio leggero al tracciamento, concentrandosi sulla simulazione degli effetti dei fallimenti parziali sulla comunicazione piuttosto che sull'esplorazione dei fallimenti stessi. Nel loro studio, i ricercatori hanno valutato la loro tecnica e hanno scoperto che ha ottenuto risultati molto promettenti, sia nell'osservazione delle faglie che nel perturbare i sistemi distribuiti.

    "Una scoperta importante è stata ciò che siamo stati in grado di fare con la nostra visione un po' limitata di un sistema informatico complesso, " ha detto Bittman. "Poiché il nostro obiettivo era comprendere il comportamento di un sistema in modo trasparente (cioè, senza necessità di apportare modifiche al sistema oggetto di studio), le informazioni che raccogliamo su di esso sono piuttosto generiche."

    Secondo Bittman, un primo passo fondamentale nella loro ricerca è stato dimostrare che potevano ricostruire con successo il modello di comunicazione di un sistema complesso semplicemente osservando i singoli eventi di ciascun processo e che ciò poteva essere fatto in tempo reale. Questo è fondamentale perché i ricercatori volevano che il loro modello di iniezione di errori permettesse loro di dire a un sistema:"rilascia tutte le comunicazioni tra il programma A e B dopo che B ha inviato un messaggio ad A". Se non sono stati in grado di ricostruire il modello di comunicazione di un sistema fino al termine dell'esecuzione, però, questa frase sarebbe impossibile da trasmettere.

    "Una seconda scoperta importante è stata il numero di modi in cui l'esecuzione di un particolare sistema può differire pur ottenendo lo stesso risultato, " ha aggiunto Bittman. "Diversi computer interagenti potrebbero funzionare a velocità diverse, e quindi il modo in cui interagiscono potrebbe essere diverso tra esecuzioni dello stesso sistema con gli stessi input, anche se il risultato dell'esecuzione è lo stesso. Questo ha una sfortunata conseguenza:decidere quando iniettare un guasto in un sistema diventa molto più difficile. Però, siamo stati in grado di fornire alcune prove iniziali che il problema, in pratica, non è così male come potrebbe sembrare."

    I risultati raccolti da Alvaro, Bittman e il loro collega Ethan Miller hanno implicazioni sostanziali per l'iniezione di guasti, poiché il loro approccio potrebbe rendere molto più semplice la decisione e l'esecuzione di esperimenti di iniezione di guasti. Inoltre, il loro studio potrebbe informare lo sviluppo di framework di debug, che segnalerebbe agli sviluppatori con quale livello di sicurezza il loro sistema è privo di bug in circostanze particolari.

    "Questa ricerca è appena iniziata, " disse Alvaro. "infatti, come ammettiamo prontamente nel giornale, abbiamo appena iniziato a utilizzare Box of Pain per il suo scopo dichiarato di trovare e isolare i bug nei sistemi distribuiti. Abbiamo pubblicato questo primo rapporto perché eravamo entusiasti di informare la community dello sviluppo".

    Secondo Alvaro, ci sono due direzioni chiave in cui la loro ricerca potrebbe essere ulteriormente sviluppata nel prossimo futuro. in primo luogo, sebbene il loro studio fornisca prove iniziali allettanti a sostegno delle loro ipotesi, studi futuri potrebbero aver bisogno di eseguire più test sperimentali per valutare ulteriormente le loro ipotesi.

    "Noi sosteniamo che un iniettore di guasto distribuito deve concentrarsi solo sui bordi perturbanti nel grafico di comunicazione di un sistema per trovare i bug più interessanti, restringendo in modo massiccio la "superficie" su cui dobbiamo concentrarci, " ha spiegato Alvaro. "Ora dobbiamo dimostrare che questo è vero trovando alcuni nuovi bug! Inoltre, sosteniamo che sebbene lo spazio delle esecuzioni "possibili" sia esponenzialmente ampio e intrattabile da coprire, la probabilità di diverse esecuzioni (al livello di astrazione che catturiamo nel grafico della comunicazione) diminuisce molto rapidamente, rendendo possibile coprire per lo più questo spazio in modo efficiente."

    Per dimostrare che l'effetto che hanno osservato è vero e può essere generalizzato in diversi scenari, i ricercatori dovranno estendere i loro esperimenti a sistemi più grandi e più ricchi. A lungo termine, prevedono anche una stretta integrazione di Box of Pain con un selezionatore di esperimenti mirato, come l'iniezione di guasti guidata dal lignaggio, poiché ciò potrebbe aiutare a generalizzare questo selettore a infrastrutture distribuite arbitrarie.

    "Nei prossimi sei mesi il nostro laboratorio prevede di sperimentare su datastore come Cassandra, Redis e MongoDB, su code di messaggi come Kafka e RabbitMQ, e sui servizi di coordinamento come EtcD e Zookeeper, " Ha aggiunto Alvaro. "Abbiamo anche in programma di esplorare le applicazioni pedagogiche di Box of Pain, scelta di programmi di iniezione guasti personalizzati per il progetto presentato dagli studenti nel corso sui sistemi distribuiti della UC Santa Cruz. Per di qua, può assistere gli istruttori nella valutazione dei progetti degli studenti e assistere gli studenti fornendo spiegazioni dettagliate di eventuali bug che identifica nei loro programmi."

    Lo studio condotto da Alvaro, Bittman e Miller è stato pre-pubblicato su arXiv ed è stato accettato per la pubblicazione da HotCloud 2019, un workshop sul cloud computing che si terrà a luglio a Renton, Washington. Questo workshop sarà una grande opportunità per sollecitare feedback su Box of Pain dalla comunità dei sistemi distribuiti, che potrebbe aiutare i ricercatori a determinare quali strade per il lavoro futuro dovrebbero perseguire per prime.

    © 2019 Scienza X Rete




    © Scienza https://it.scienceaq.com