science >> Wetenschap >  >> Elektronica

Box of Pain:een nieuwe tracer en foutinjector voor gedistribueerde systemen

De happening-before-relatie van accepteren en verbinden van systeemaanroepen die Box of Pain afleidt. De kleuren geven verschillende draden aan. Box of Pain kan afleiden dat connect↑ plaatsvindt na acceptatie↓, omdat het laatste het eerste veroorzaakt. Krediet:Bittman, Miller &Alvaro.

In de informatica, gedistribueerde systemen zijn systemen met componenten die zich op verschillende apparaten bevinden, die met elkaar communiceren. Hoewel deze systemen steeds gangbaarder zijn geworden, ze zijn meestal gevuld met bugs.

Een paar onderzoekers hebben geprobeerd tools te ontwikkelen om bugs in gedistribueerde systemen te vinden en te verwijderen, maar een tastbare oplossing is er nog niet. Algemeen, tools die uitvoeringen 'verstoren' kunnen testen hoe robuust een systeem is tegen fouten, terwijl tools die uitvoeringen 'observeren' onderzoekers in staat stellen de systeembrede effecten van dergelijke fouten beter te begrijpen.

De meeste bestaande benaderingen en technieken voor foutdetectie en foutopsporing zijn onvolledig of gebaseerd op testen, wat betekent dat ze misschien nuttig zijn om bugs te vinden, maar niet om ze te elimineren. Zich bewust van deze leemte in de literatuur, een team van onderzoekers van UC Santa Cruz heeft onlangs een nieuwe techniek ontwikkeld, genaamd Doos van Pijn, voor tracering en foutinjectie in ongewijzigde gedistribueerde systemen.

"Ons lab is geobsedeerd door fouttolerantie, "Peter lvaro, een van de onderzoekers die het onderzoek heeft uitgevoerd, vertelde TechXplore. "Gedistribueerde systemen, dat is, systemen die de medewerking van een verzameling onafhankelijke computers vereisen om hun doel te bereiken, zijn alomtegenwoordig, maar ze zijn extreem moeilijk om over te redeneren, programmeren en debuggen. Foutinjectietechnieken kunnen het vertrouwen vergroten dat gedistribueerde systemen de fouten daadwerkelijk kunnen tolereren (bijv. machinecrashes, netwerk partities, enz.) die ze zijn ontworpen om te tolereren, terwijl waarneembaarheidsinfrastructuur (bijv. tracering) ons kan helpen beter te begrijpen hoe deze systemen functioneren tijdens storingen."

Alvaro's laboratorium richt zich voornamelijk op een onderzoeksgebied dat experimentselectie wordt genoemd, wat inhoudt dat automatisch fouten worden gekozen die het meest waarschijnlijk een systeem in een slechte staat brengen. Hij en zijn collega's gebruiken traceringsinfrastructuur om executies te observeren, modellen bouwen van systemen die sporen produceren en deze modellen vervolgens gebruiken om 'interessante' fouten te identificeren om in een systeem te injecteren.

"Helaas, onze aanpak gaat ervan uit dat systemen al zijn uitgerust met zowel tracerings- als foutinjectie-infrastructuur; eerst observeren, en uiteindelijk de systeemuitvoering verstoren, "Zei Alvaro. "In de praktijk, veel systemen niet, en het toevoegen van deze mogelijkheden kan duur en tijdrovend zijn. We vroegen ons af wat er nodig zou zijn om tracering en foutinjectie transparant uit te voeren, op ongewijzigde systemen, zodat we onze benaderingen voor het opsporen van fouten kunnen toepassen op 'elke' gedistribueerde software. Box of Pain is waar we uiteindelijk zijn beland."

Doos van pijn, de aanpak bedacht door de onderzoekers van UC Santa Cruz, is in wezen een raamwerk voor het traceren van een complex computersysteem om het gedrag ervan beter te begrijpen, simuleer fouten erin en observeer wat er gebeurt als er iets misgaat. Bijvoorbeeld, Box of Pain kan een kapot netwerk simuleren en het gedrag van de programma's vergelijken met hun gedrag onder normale omstandigheden.

"Onze techniek doet dit door belangrijke gebeurtenissen in het gedrag van de programma's te observeren, zoals communicatie-evenementen, loopt vast, en vertrekvoorwaarden, "Daniël Bitman, een andere onderzoeker die bij het onderzoek betrokken was, uitgelegd. "Met behulp van deze informatie, het bouwt live een begrip op van hoe computers op elkaar inwerken, waardoor geautomatiseerde software voor het opsporen van fouten automatisch kan experimenteren met verstorende systemen."

In tegenstelling tot andere foutinjectiesystemen, Box of Pain maakt gebruik van een lichtgewicht benadering van tracering, gericht op het simuleren van de effecten van gedeeltelijke mislukkingen op communicatie in plaats van de mislukkingen zelf te onderzoeken. In hun studie hebben de onderzoekers evalueerden hun techniek en ontdekten dat deze veelbelovende resultaten opleverde, zowel bij het waarnemen van fouten als het verstoren van gedistribueerde systemen.

"Een belangrijke bevinding was wat we konden doen met onze enigszins beperkte kijk op een complex computersysteem, Bittman zei. "Omdat ons doel was om het gedrag van een systeem transparant te begrijpen (dat wil zeggen, zonder wijzigingen aan te brengen in het bestudeerde systeem), de informatie die we erover verzamelen is vrij algemeen."

Volgens Bitman, een belangrijke eerste stap in hun onderzoek was om aan te tonen dat ze het communicatiepatroon van een complex systeem met succes konden reconstrueren door alleen maar naar de afzonderlijke gebeurtenissen van elk proces te kijken en dat dit in realtime kon worden gedaan. Dit is cruciaal omdat de onderzoekers wilden dat hun model van foutinjectie hen in staat zou stellen om een ​​systeem te vertellen:'laat alle communicatie tussen programma A en B vallen nadat B een bericht naar A heeft gestuurd'. Als ze het communicatiepatroon van een systeem pas konden reconstrueren nadat het klaar was met draaien, echter, deze zin zou onmogelijk over te brengen zijn.

"Een tweede belangrijke bevinding was het aantal manieren waarop de uitvoering van een bepaald systeem kan verschillen terwijl hetzelfde resultaat wordt bereikt, Bittman voegde toe. "Verschillende computers kunnen op verschillende snelheden draaien, en daarom kan de manier waarop ze op elkaar inwerken verschillen tussen runs van hetzelfde systeem met dezelfde inputs, zelfs als het resultaat van de uitvoering hetzelfde is. Dit heeft een ongelukkig gevolg:beslissen wanneer een storing in een systeem moet worden geïnjecteerd, wordt veel moeilijker. Echter, konden we enig eerste bewijs leveren dat het probleem, in praktijk, is niet zo erg als het lijkt."

De resultaten verzameld door Alvaro, Bittman en hun collega Ethan Miller hebben substantiële implicaties voor foutinjectie, omdat hun aanpak het beslissen over en het uitvoeren van foutinjectie-experimenten veel gemakkelijker zou kunnen maken. In aanvulling, hun studie zou kunnen bijdragen aan de ontwikkeling van debugging-frameworks, die aan ontwikkelaars zou rapporteren met welk betrouwbaarheidsniveau hun systeem onder bepaalde omstandigheden bugvrij is.

"Dit onderzoek is nog maar net begonnen, ' zei Alvaro. 'In feite, zoals we gemakkelijk toegeven in de krant, we zijn amper begonnen Box of Pain te gebruiken voor het aangegeven doel om bugs in gedistribueerde systemen te vinden en te isoleren. We hebben dit vroege rapport gepubliceerd omdat we enthousiast waren om de gemeenschap over de ontwikkeling te vertellen."

Volgens Allvaro, er zijn twee belangrijke richtingen waarin hun onderzoek in de nabije toekomst verder zou kunnen worden ontwikkeld. Ten eerste, hoewel hun studie verleidelijk eerste bewijs levert dat hun hypothesen ondersteunt, toekomstige studies moeten mogelijk meer experimentele tests uitvoeren om hun aannames verder te evalueren.

"We stellen dat een gedistribueerde foutinjector zich alleen hoeft te concentreren op storende randen in de communicatiegrafiek van een systeem om de meest interessante bugs te vinden, het 'oppervlak' waarop we ons moeten concentreren enorm verkleinen, " legde Alvaro uit. "We moeten nu laten zien dat dit waar is door een aantal nieuwe bugs te vinden! Wat is meer, we stellen dat hoewel de ruimte van 'mogelijke' executies exponentieel groot en moeilijk te bestrijken is, de kans op verschillende uitvoeringen (op het abstractieniveau dat we vastleggen in de communicatiegrafiek) daalt zeer steil, waardoor het mogelijk is om deze ruimte grotendeels efficiënt in te dekken."

Om aan te tonen dat het waargenomen effect waar is en kan worden gegeneraliseerd over verschillende scenario's, de onderzoekers zullen hun experimenten moeten opschalen naar grotere en rijkere systemen. Op de lange termijn, ze voorzien ook een nauwe integratie van Box of Pain met een gerichte experimentselector, zoals afstammingsgestuurde foutinjectie, omdat dit kan helpen om deze selector te generaliseren naar willekeurig gedistribueerde infrastructuren.

"In de komende zes maanden is ons laboratorium van plan om te experimenteren met datastores zoals Cassandra, Redis en MongoDB, op berichtenwachtrijen zoals Kafka en RabbitMQ, en op coördinatiediensten zoals EtcD en Zookeeper, " voegde Alvaro toe. "We zijn ook van plan om pedagogische toepassingen van Box of Pain te onderzoeken, het kiezen van aangepaste foutinjectieschema's voor projecten die zijn ingediend door studenten in de cursus gedistribueerde systemen van UC Santa Cruz. Op deze manier, het kan docenten helpen bij het beoordelen van studentenprojecten en studenten helpen door uitgebreide uitleg te geven van eventuele bugs die het in hun programma's identificeert."

De studie van Alvaro, Bittman en Miller was voorgepubliceerd op arXiv en is geaccepteerd voor publicatie door HotCloud 2019, een workshop over cloud computing die in juli in Renton zal plaatsvinden, Washington. Deze workshop is een geweldige kans om feedback te vragen over Box of Pain van de gemeenschap van gedistribueerde systemen, wat de onderzoekers zou kunnen helpen om te bepalen welke wegen voor toekomstig werk ze als eerste moeten nastreven.

© 2019 Wetenschap X Netwerk