Videnskab
 science >> Videnskab >  >> Elektronik

Box of Pain:En ny sporstof og fejlinjektor til distribuerede systemer

Sker-før-forholdet mellem acceptere og forbinde systemkald, som Box of Pain udleder. Farverne angiver forskellige tråde. Box of Pain er i stand til at udlede, at forbindelse↑ opstår efter accept↓, fordi sidstnævnte forårsager førstnævnte. Kredit:Bittman, Miller og Alvaro.

I datalogi, distribuerede systemer er systemer med komponenter placeret på forskellige enheder, som kommunikerer med hinanden. Selvom disse systemer er blevet mere og mere almindelige, de er typisk fyldt med fejl.

Nogle få forskere har forsøgt at udvikle værktøjer til at finde fejl i distribuerede systemer og fjerne dem, men der er endnu ikke fundet en håndgribelig løsning. Samlet set, værktøjer, der 'forstyrrer' udførelser kan teste, hvor robust et system er over for fejl, mens værktøjer, der 'observerer' henrettelser, giver forskere mulighed for bedre at forstå de systemomfattende virkninger af sådanne fejl.

De fleste eksisterende tilgange og teknikker til fejldetektion og fejlretning er ufuldstændige eller baseret på test, hvilket betyder, at de kan være nyttige til at finde fejl, men ikke til at fjerne dem. Er opmærksom på dette hul i litteraturen, et team af forskere ved UC Santa Cruz har for nylig udviklet en ny teknik, kaldet Box of Pain, til sporing og fejlinjektion i umodificerede distribuerede systemer.

"Vores laboratorium er besat af fejltolerance, "Peter Alvaro, en af ​​de forskere, der har udført undersøgelsen, fortalte TechXplore. "Distribuerede systemer, det er, systemer, der kræver samarbejde fra en samling uafhængige computere for at opfylde deres formål, er allestedsnærværende, men de er ekstremt svære at ræsonnere om, program og fejlretning. Fejlinjektionsteknikker kan øge tilliden til, at distribuerede systemer faktisk kan tolerere fejlene (f.eks. maskinnedbrud, netværkspartitioner, osv.), som de er designet til at tolerere, mens observerbarhedsinfrastruktur (f.eks. sporing) kan hjælpe os med bedre at forstå, hvordan disse systemer fungerer under fejl."

Alvaros laboratorium fokuserer primært på et forskningsområde kaldet eksperimentudvælgelse, hvilket indebærer automatisk valg af fejl, der med størst sandsynlighed vil drive et system i en dårlig tilstand. Han og hans kolleger bruger sporingsinfrastruktur til at observere henrettelser, bygge modeller af systemer, der producerer spor og derefter bruge disse modeller til at identificere 'interessante' fejl, der skal indsprøjtes i et system.

"Desværre, vores tilgang antager, at systemerne allerede er udstyret med både sporings- og fejlinjektionsinfrastruktur; først at observere, og i sidste ende forstyrre systemets udførelse, " sagde Alvaro. "I praksis, mange systemer er ikke, og tilføjelse af disse funktioner kan være dyrt og tidskrævende. Vi fandt os selv i at spørge, hvad der skulle til for at kunne udføre sporing og fejlinjektion gennemsigtigt, på umodificerede systemer, så vi kunne anvende vores fejlfindingsmetoder på 'enhver' distribueret software. Box of Pain er, hvor vi til sidst landede."

Smertekasse, tilgangen udtænkt af forskerne ved UC Santa Cruz, er i bund og grund en ramme til at spore et komplekst computersystem for bedre at forstå dets adfærd, simulere fejl i den og observere, hvad der sker, når noget går galt. For eksempel, Box of Pain kan simulere et ødelagt netværk og sammenligne programmernes adfærd med deres adfærd under normale forhold.

"Vores teknik gør dette ved at observere vigtige begivenheder i programmernes adfærd, såsom kommunikationsarrangementer, går ned, og udgangsforhold, "Daniel Bittman, en anden forsker involveret i undersøgelsen, forklaret. "Ved at bruge disse oplysninger, det live-bygger en forståelse af, hvordan computere interagerer, tillader automatiseret fejlfindingssoftware at eksperimentere med at forstyrre systemer automatisk."

I modsætning til andre fejlindsprøjtningssystemer, Box of Pain bruger en let tilgang til sporing, fokusere på at simulere virkningerne af delvise fejl på kommunikationen frem for at udforske selve fejlene. I deres undersøgelse, forskerne evaluerede deres teknik og fandt ud af, at den opnåede meget lovende resultater, både ved at observere fejl og forstyrre distribuerede systemer.

"Et vigtigt fund var, hvad vi var i stand til at gøre med vores noget begrænsede syn på et komplekst computersystem, " sagde Bittman. "Da vores mål var at forstå et systems opførsel gennemsigtigt (dvs. uden at skulle foretage ændringer i det undersøgte system), de oplysninger, vi indsamler om det, er ret generiske."

Ifølge Bittman, et vigtigt første skridt i deres forskning var at vise, at de med succes kunne rekonstruere kommunikationsmønstret i et komplekst system blot ved at se på de enkelte begivenheder i hver proces, og at dette kunne gøres i realtid. Dette er afgørende, fordi forskerne ønskede, at deres model for fejlinjektion skulle give dem mulighed for at fortælle et system:'slip al kommunikation mellem program A og B, efter at B sender en besked til A'. Hvis de ikke var i stand til at rekonstruere et systems kommunikationsmønster, før det var færdig med at køre, imidlertid, denne sætning ville være umulig at formidle.

"En anden vigtig opdagelse var antallet af måder, hvorpå en bestemt systemudførelse kunne variere, mens den opnåede det samme resultat, " tilføjede Bittman. "Flere interagerende computere kan køre med forskellige hastigheder, og derfor kan den måde, de interagerer på, være forskellig mellem kørsler af det samme system med de samme input, også selvom resultatet af udførelsen er det samme. Dette har en uheldig konsekvens:Det bliver meget sværere at beslutte, hvornår der skal indsprøjtes en fejl i et system. Imidlertid, vi var i stand til at give nogle indledende beviser for, at problemet, i praksis, er ikke så slemt, som det kan se ud."

Resultaterne indsamlet af Alvaro, Bittman og deres kollega Ethan Miller har væsentlige konsekvenser for fejlinjektion, da deres tilgang kunne gøre beslutningen om og udføre fejlinjektionseksperimenter meget nemmere. Ud over, deres undersøgelse kunne informere udviklingen af ​​debugging frameworks, som ville rapportere til udviklere med hvilket konfidensniveau deres system er fejlfrit under særlige omstændigheder.

"Denne forskning er kun lige begyndt, " sagde Alvaro. "faktisk, som vi gerne indrømmer i avisen, vi er knap engang begyndt at bruge Box of Pain til dets erklærede formål at finde og isolere fejl i distribuerede systemer. Vi offentliggjorde denne tidlige rapport, fordi vi var spændte på at fortælle samfundet om udviklingen."

Ifølge Alvaro, der er to nøgleretninger, hvori deres forskning kan udvikles yderligere i den nærmeste fremtid. For det første, selvom deres undersøgelse giver fristende indledende beviser, der understøtter deres hypoteser, fremtidige undersøgelser skal muligvis køre flere eksperimentelle test for yderligere at evaluere deres antagelser.

"Vi hævder, at en distribueret fejlinjektor kun behøver at fokusere på forstyrrende kanter i et systems kommunikationsgraf for at finde de mest interessante fejl, massivt formindske 'overfladearealet', som vi skal fokusere på, " Alvaro forklarede. "Vi skal nu vise, at dette er sandt ved at finde nogle nye fejl! Hvad er mere, vi hævder, at selvom rummet af 'mulige' henrettelser er eksponentielt stort og vanskeligt at dække, sandsynligheden for forskellige henrettelser (på det abstraktionsniveau, vi fanger i kommunikationsgrafen) falder meget stejlt, gør det muligt for det meste at dække dette rum effektivt."

For at vise, at den effekt, de observerede, er sand og kan generaliseres på tværs af forskellige scenarier, forskerne bliver nødt til at skalere deres eksperimenter op til større og rigere systemer. På lang sigt, de forestiller sig også en tæt integration af Box of Pain med en målrettet eksperimentvælger, såsom afstamningsdrevet fejlinjektion, da dette kan hjælpe med at generalisere denne vælger til vilkårlige distribuerede infrastrukturer.

"I løbet af de næste seks måneder planlægger vores laboratorium at eksperimentere med datalagre som Cassandra, Redis og MongoDB, på beskedkøer som Kafka og RabbitMQ, og om koordineringstjenester såsom EtcD og Zookeeper, " Alvaro tilføjede. "Vi planlægger også at udforske pædagogiske anvendelser af Box of Pain, valg af brugerdefinerede fejlinjektionsplaner for projekt indsendt af studerende i UC Santa Cruz's distribuerede systemkursus. Denne måde, det kan hjælpe instruktører med at bedømme studerendes projekter samt hjælpe eleverne ved at give omfattende forklaringer på eventuelle fejl, som det identificerer i deres programmer."

Undersøgelsen udført af Alvaro, Bittman og Miller blev forudgivet den arXiv og er blevet accepteret til offentliggørelse af HotCloud 2019, en workshop om cloud computing, der finder sted i juli i Renton, Washington. Denne workshop vil være en god chance for at anmode om feedback om Box of Pain fra det distribuerede systemfællesskab, som kunne hjælpe forskerne med at finde ud af, hvilke veje til fremtidigt arbejde, de først bør forfølge.

© 2019 Science X Network