You are here

Workflows in de rij voor de kassa

Tijdens het surfen op Facebook, Instagram en nieuwssites staan de meeste mensen er niet bij stil welke systemen op de achtergrond draaien om dit mogelijk te maken … tot het systeem crasht. Hier komt promovendus Alexey Ilyushkin om de hoek kijken. Hij zorgt ervoor dat computers de grote hoeveelheden taken zo goed mogelijk kunnen inplannen. door Reineke Maschhaupt

De Russische Ilyushkin houdt van abstracte problemen, maar wil zich wel bezig houden met real-world challenges. De studie Computer Science was dus een goede keuze. Hij is een typisch voorbeeld van een wetenschapper die voor de buitenwereld ‘onzichtbaar’ onderzoek doet, dat wel erg belangrijk is voor het functioneren van systemen.

Voorbeeld van een simpele workflow

Muffins bakken
Ilyushkin houdt zich bezig met workflows. De simpele uitleg van een workflow is een bloktabel waarin je meerdere stappen (taken) doorloopt in een gedeeltelijk vaststaande volgorde (zie voorbeeld hierboven). Ilyushkin: ‘Je kan het vergelijken met muffins bakken. Je koopt de ingrediënten. Daarna maak je het deeg en ondertussen verwarm je de oven. Sommige handelingen kun je dus tegelijkertijd – parallel - uitvoeren, en sommige dingen moeten gebeuren in een vaste volgorde.’ Computertaken – van het aanklikken van een website tot ingewikkelde wiskundige berekeningen - kunnen verpakt zijn als workflows.

Lichtere workflows worden in het dagelijks leven het meest toegepast bij planning, het inplannen van treinen bijvoorbeeld, of berekeningen voor de boekhouding van een kantoor. Wetenschappers gebruiken workflows voor grotere en gecompliceerde berekeningen. Bij het opsporen van zwaartekrachtgolven bijvoorbeeld. Of bij berekeningen op een DNA-sequentie.

Voorbeeld van een  gecompliceerde workflow

Ontploffen
Ilyushkin kijkt hoe die workflows, in welke vorm dan ook – klein, groot, parallel - zo goed mogelijk ingepland kunnen worden in gedistribueerde systemen. Een gedistribueerd systeem bestaat uit vele aan elkaar verbonden computers die grote hoeveelheden data kunnen verwerken, zoals een datacentrum of de cloud. Ilyushkin: ‘Elk type workflow wordt weer op een andere manier en in een ander tempo verwerkt, en dat maakt het inplannen van de taken ingewikkeld. Als je in één keer te veel taken toevoegt ontploft het systeem heel makkelijk.’

Supermarkt
Vergelijk het met een supermarkt. De klant is de workflow, de boodschappen zijn de taken en de kassa is de processor. Er ontstaat een rij van klanten voor de kassa’s. Op het moment dat er een nieuwe kassa opengaat, gaat de eerstvolgende klant daarnaartoe. ‘Het verschil is dat een workflow alleen in een specifieke volgorde door de processor kan. De eieren mogen niet voor de melk worden gescand als dat niet zo in de workflow staat. En bij een workflow kun je berekeningen parallel uitvoeren. De boodschappen van één klant kunnen dus tegelijkertijd over meerdere kassa’s verdeeld worden.’

Drie verschillende workflows wachten in de rij voor de processors (de blauwe vierkanten)

Als er meer taken aankomen dan er processors zijn dan concurreren ze om dit systeem en dan krijg je dus een opstopping. ‘Ik probeer de workflows zo in het gedistribueerde systeem te plannen dat de vertraging zoveel mogelijk geminimaliseerd wordt. Ik heb voor mijn eerste paper veel uitgeprobeerd maar de meeste simpele poging won in dit onderzoek op het gebied van prestatie. Dat was het simpelweg door de rij heengaan en kijken welke taak klaar was om verwerkt te worden. Dus in de analogie van de supermarkt: als je iets in je mandje hebt wat je al kan scannen dan geef je het alvast aan de kassa.’

Geld besparen
Grote onderzoeksorganisaties kunnen hun eigen datacentrum bouwen om grote hoeveelheden data te verwerken. Kleinere organisaties hebben het geld niet om dat te doen. Waar iedereen echter gebruik van kan maken is de cloud, omdat je daar precies huurt wat je nodig hebt en daarmee dus geld kan besparen. Om die reden richtte Ilyushkin zich in het tweede deel van zijn onderzoek op de cloud.

‘Voor het inplannen in de cloud is een andere techniek nodig omdat het aantal processors daar voortdurend verandert. We moesten dus op een dynamische manier naar het probleem gaan kijken. Autoscaling heet dat, het automatisch inschalen of inplannen. Dus afhankelijk van je hoeveelheid klanten verander je automatisch het aantal kassa’s. In de Albert Heijn gebeurt eigenlijk hetzelfde, als de rijen te lang worden, openen ze een nieuwe kassa.’

Wisselstoring
In een computersysteem gebeurt alles heel erg snel. Als je fouten maakt in de autoscaling dan kan dat grote problemen veroorzaken. ‘NS wisselstoring problemen’, lacht hij. Ilyushkin spreekt nog geen vloeiend Nederlands, maar het woord ‘wisselstoring’ kent hij wel. ‘Dan valt dus bij veel mensen het systeem uit. Als je een betrouwbaar systeem wil zijn moet je dit soort problemen vermijden. Als je een startup bent bijvoorbeeld en je hebt net een nieuw product gelanceerd, dan kan een crash fataal zijn voor je bedrijf. Dan is het heel goed om te weten welke autoscaler je moet kiezen gebaseerd op je situatie.’

Om deze keuze simpeler te maken ontwikkelde hij met een aantal Zweedse en Duitse onderzoekers een soort ranking voor autoscalers. ‘Voor verschillende autoscalers hebben we berekend hoe lang elk systeem onder- en over-bevoorraad was qua processors. Als er te veel machines bevoorraad zijn dan verspillen we bronnen waar we voor betalen en als er te weinig machines bevoorraad zijn dan groeit de rij.’

Overzicht onder- en over-bevoorrading  van een systeem.

‘Daarna hebben we de autoscalers een status gegeven, zo van “deze autoscaler is beter in deze situatie”. Wij zijn de eersten die deze soort ranking hebben gemaakt voor autoscalers en het hebben toegepast op workflows.’ Ilyushkin en zijn medeonderzoekers werden met dit onderzoek in het voorjaar van 2017 genomineerd voor de best paper award bij de ICPE conference.

Vrijheid
Momenteel is Ilyushkin bezig met zijn derde en vierde paper waarin hij verder experimenteert met het verwerken van workflows. 2018 hoopt hij te promoveren. Wat ik het fijnst vind aan de PhD is de vrijheid. Alsof ik terug ben op de kleuterschool waar je nog kan doen wat je wil’, grijnst hij. ‘Natuurlijk moet je wel leveren, maar het hangt echt van jezelf af. Je wordt je alleen gelaten met je emmer van kennis om je probleem op te lossen.’

‘Toen ik kennis maakte met mijn promotor nam hij me gelijk mee uit lunchen! In Rusland is er meer afstand in het onderzoekswereldje. En tijdens het lesgeven hier zag ik dat Nederlandse studenten zich goed kunnen presenteren. Dat is heel belangrijk denk ik. In Rusland wordt daar niet veel aandacht aan besteed. In Rusland zijn studies weer veel breder en diverser opgezet, in tegenstelling tot Nederland waar de universiteiten erg probleemgericht en specialistisch zijn. Op zich handig, omdat de maatschappij specialisten nodig heeft. Maar ik houd zelf wel van de Russische methode, die je een meer filosofische kijk op problemen geeft.’

Ilyushkin deed zijn studie Computer Science and Automated Systems aan de Penza State University in Rusland. Daarna werkte hij een paar jaar als software developer bij verschillende bedrijven in Penza. In 2013 begon hij met een PhD aan de Technische Universiteit Delft. Begin 2018 hoopt hij daar te promoveren. Momenteel is hij postdoc aan de Universiteit van Amsterdam. Zijn onderzoek werd gefinancierd door Commit, binnen het project IV-e.