CAP Dilemma

In der idealen Welt der Daten sind diese immer verfügbar, stets konsistent und können beliebig verteilt werden.
Leider stellte der Informatiker Eric Brewer im Jahr 2000 die These auf, das dies bei verteilten Systemen nicht möglich ist. 2002 wurde diese These durch einen axiomatischen Beweis bestätigt und damit zum Theorem.
Das CAP Theorem besagt:
Bei verteilten Datensystemen kannst Du nur zwei der drei Eigenschaften Konsistenz, Verfügbarkeit und Partitionstoleranz erfüllen.
Um das daraus für die Software Architektur entstehende Dilemma zu verdeutlichen, möchte ich 3 Beispiele aufführen.
Fehlende Partitionstoleranz
Gute Beispiele für den Verzicht auf Partitionstoleranz sind SQL-Datenbanken im klassischen Einsatz, geclusterte Datenbanken oder ein LDAP. Hier können Änderungen transaktionssicher vorgenommen werden. Auch kann die Verfügbarkeit z.B. durch ein Master-Slave System sicher gestellt werden. Aber diese Systeme können nicht beliebig und unabhängig voneinander verteilt werden.
Fehlende Verfügbarkeit
Dies ist bei allen Destributed DB’s und vielen verteilten Filesystemen der Fall. Merkregel: Immer wenn Lock-Mechanismen im Einsatz sind, ist Verfügbarkeit nicht vollständig gewährleistet.
Fehlende Konsistenz
Fehlende Konsistenz ist in hochskalierten Webanwendnungen die Regel. Ein gutes Beispiel sind das DNS, aber auch die Google Suche. Jeder, der schon mal bei einem Livegang den C-Name geändert hat kennt das Problem: Ein Teil der User sieht noch die alte Webseite, während andere schon auf der Neuen surfen.
Auswahl im realen Einsatz
Um das CAP-Dilemma zu lösen, nutzen reale Internetseiten häufig einen von den Anforderungen abhängigen Mix. Beispiel: Amazon wird für die Präsentation seiner Waren und das Ausspielen von Widgets großen Wert auf Verfügbarkeit und Partitionstoleranz legen und dabei gerne auf einen Teil der Konsistenz verzichten. Wenn der Amazonkunde dann in den Bestellvorgang wechselt, wird die Konsistenz dagegen unverzichtbar sein.
Die Auswahl ist nicht allein von der technischen Wahl abhängig, sondern oft von der erstellten Architektur. Beispiel: MySQL-Datenbanken können bei Verwendung von InnoDB transaktionssicher eingesetzt werden und absolute Konsistenz gewährleisten. Man kann sie aber auch partitioniert aufsetzen und unter Verzicht auf die Konsistenz hochverfügbar Inhalte bereitstellen.
Schliersee Stau
Wenn ich schon am Sonntag zu einer Schneewanderung aufbreche, dann nicht vor 12 Uhr. Ein eisernes Motto, das eine schnelle Anfahrt garantiert
Dafür ist die Rückfahrt ein Horrortripp. Wir haben nett im Cafe Kögl den Winterwindbeutel und weitere Hüftverstärker genossen, als schon ein Blick auf die Seestrasse die Lage verdeutlichte …. Stau von Fischhausen, über Schliersee, Miesbach bis zur A8-Auffahrt Weyarn. Der anschließende Highway war zwar voll, aber es rollte wenigsten bis nach München.
Also: Immer gute Musik mitnehmen und relaxt die Landschaft im Sonnenuntergang aus dem Autofenster betrachten.
Mobile 2008
Die iPhone-Angebote sind keine Angebote. Aber warum mit dem Teil telefonieren - dazu ist es viel zu schade! Deshalb reicht ein iPod Touch für den Tekki voll und ganz.
Erste Tätigkeit: gleich die Demo-MP3’s und -Videos entfernen. Dann Putty, SFTP, kleine Bildverarbeitung und Thin-Server installieren. Schon ist die Demowebseite immer dabei. Top Präse mit echtem Oho garantiert.
Mobile Internet war auch gestern. WAP ist tot. Heute surft man mobil aber auf ordentlichen Webseiten mit einem ordentlichen Browser!
Die kleine Grafik zeigt die Hotspot-Verbreitung in Deutschland. Es ist schwer zu erkennen, aber die Republik liegt mit guten 30% lediglich auf einem euopäischen Mittelplatz.
Webfunktion V3
Dieses Jahr ist mein 10jähriges Internet-Jubiläum!
Denn 1996 habe ich webfunktion.de reserviert.
Damals saß ich noch vor einem 14 Zoll Monitor mit 16k Farben, habe mich per T-Online über ein 28k Modem eingewählt und ertrug den unter meinem Tisch grummelnden 486er “Nix-Pentium”.
Mittlerweile ist das Internet ist nicht nur zu einem Teil meines Lebens, sondern auch zu meinem Beruf geworden.
Wollte ich eine Webseite in das Internet stellen, dann habe ich sie per HTML schnell selbst runtergetippt und per FTP auf meinen Webspace geschoben. Hat auch nicht länger gedauert als WordPress. Dann wollte ich unbedingt ein Content Management System und meine Kunden wollten es auch. Infolgedessen lernte ich SQL, legte Datenbanken, Tabellen und später auch Views, Constraints und Sequences an. Dazu kamen mehrere Scriptsprachen: Unter vielen Kurzläufern haben sich PHP, ASP und Hexbase gehalten.
Der Beitrag heißt “Webfunktion V3″, weil dies wirklich der Start der dritten Version von webfunktion.de ist! V1 war statisch, V2 CMS und jetzt WordPress. Ein WordPress kann kein CMS ersetzen, aber für eine Homepage reicht es alle mal. Und hier will ich schreiben und das WWW aus einer persönlichen Sicht dokumentieren. Nicht täglich und auch unregelmäßig. Wichtig ist, dass es etwas interessantes zu sagen gibt.
Viel Spass - Dirk
