SNEK4: Server überwachen (Uwe Ricken)

Uwe Ricken legt bei seinem zweiten Vortrag erneut eine ordentliche Geschwindigkeit vor, die dem erfahrenen Schnellsprecher Bernd Jungbluth alle Ehre macht. Es ist sein eigener Stil, technisch trockene Themen mit originellen Einfällen aufzulockern. Wo Bernds Humor eher hintergründig rüberkommt, schlägt Uwe alle mit seiner Frohnatur in seinen Bann.

Um mich nicht zu wiederholen, will ich nur kurz ein Beispiel schildern, ein Bild, das Uwe während seines Vortrages verwendet hat. Wie im ersten Vortrag der Türsteher eines Warenhauses herhalten musste, wird nun das Warten auf das Essen heute Mittag thematisiert. Es gab an der Fleischausgabe nämlich einen Stau. Dieses Warten entspricht in gewisser Weise auch dem Warten der Jobs im SQL-Server auf Abarbeitung. Während die auf das Fleisch wartenden Gäste nutzlos in der Schlange stehen, werden andere Gäste, die kein Fleisch haben wolen, bevorzugt abgefertigt. In beiden Fällen kommt eine Warteschlange zum Einsatz. Und in beiden Fällen ist es wichtig, eine Strategie zu haben, wie man sich ggf. in der Warteschlange nach vorn mogeln kann.

Auch der SQL-Server bedient sich dieses Prinzips. Jeder Job hat genau 4 ms Zeit, seine Aufgaben abzuschließen. Kann er das nicht, sondern muss auf eine Ressource warten, gehg er in den Zustand „suspended“ über. Ist seine Ressource verfügbar, wechselt er in „runnable“, um dann, wenn er an der Reihe ist, weitere 4 ms an seiner Ausführung zu arbeiten. Ist die Zeit um, ohne dass er fertig geworden ist, geht er entweder wieder in den Zustand „runnable“ über, oder eben „suspended“, falls er eine andere Ressource angefordert hat.

So ist gewährleistet, dass keiner unnötig lange warten muss, nur weil ein Kunde vor ihm einen Joghurtbecher aus dem hintersten Regal holen muss. Wäre doch die Kassiererin auch so flexibel wie der SQL-Server :-)

[btcpayments]


SmallInvoice Logo

Ähnliche Artikel:

AuthorChristoph Jüngling

Selbständiger Softwareentwickler und Seminarleiter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

3 × 1 =