All posts by Kuni

Melone, spritzig

Es gibt ein paar Dinge, die eine Wassermelone einfach nicht machen sollte – zum Beispiel nach dem Anstechen wie eine Mineralwasserflasche vor sich hin sprudeln…

Vielen Dank nochmal an E. und K., die uns mit diesem hochinteressanten Untersuchungsobjekt sowie der daraus resultierenden Aufgabe einer gründlichen Küchenreinigung beehrten.

Mensa, kopflos

Keine Ahnung, was uns der Künstler damit sagen wollte (vielleicht war es auch einfach nur ein Game-of-Thrones-Fan?), aber auf die Idee, Toilettenfiguren umzubasteln, muss man auch erstmal kommen…

image

wpid-20150608_121134_best.jpg

ESC 2015 – Finale

Frankreich (4-3-4-3)
Etwas sehr dramatische Hintergrundbilder, aber ansonsten ein schönes Lied schön vorgetragen

United Kingdom (3-1-4-2)
Ein schöner Beitrag für den ESC 1920. Bringt aber definitiv Stimmung.

Australien (4-4-4-3)
Wenn die Aussies immer so gute Interpreten mitbringen, dürfen Sie gerne öfters mitmachen…

Österreich (3-2-3-3)
Akustisch John Lennon. Optisch die Bee Gees mit Jesus am brennenden Klavier.

Deutschland (4-3-3-3)
Nach wie vor nicht der beste Song aus Deutschland, aber zumindest haben sie nochmal kräftig an der Optik geschraubt.

Spanien (3-4-5-5)
Wow! Einfach nur wow!

Italien (4-2-4-2)
Die drei Tenöre in jung und mit literweise Haargel.

Erklärung des Quadrupels (a-b-c-d):
a, b: Wertung von Nessi
c, d: Wertung von Kuni
a, c: akustische Wertung
b, d: optische Wertung
1 (schlecht) <= a, b, c, d <= 5 (gut)

ESC 2015 – Zweites Halbfinale

Litauen (3-3-3-3)
Optisch Barbie und Ken mit knallbuntem Hintergrund. Akustisch eine dahinplätschernder Duo-Popsong.

Irland (3-3-2-3)
Schon ne lustige Idee, mit einem Wiener Walzer in Wien anzutreten. Viel Natur im Hintergrund.

San Marino (1-2-2-2)
Das Dauergrinsen der beiden Interpreten ist schon fast besorgniserregend. Hommage an High-School-Musical? Sogar mit multipler Ralph-Siegel-Gedächtnis-Rückung.

Montenegro (3-3-4-4)
Endlich mal wieder ein klassicher Grand-Prix-Titel: Theatralisch bis bombastisch mit regionalem Einschlag.

Malta (4-4-4-5)
Optisch eine schöne Demonstration, was die Bühnenmonitore alles hinbekommen. Akustisch tolle Kombination aus schönem Song und schöner Stimme.

Norwegen (2-1-2-1)
Ballade, die sich mit der Geschwindigkeit von Kontinentalplatten entwickelt.

Portugal (2-2-3-2)
Akustisch 80er-Jahre-Song (klingt ein bisschen nach Gianna Nannini) – optisch besser…

Tschechien (4-3-3-2)
Noch ein Wiener Walzer – lag wohl doch nahe… Netter Song, gut zueinander passende Stimmen und eine Rückung fehlte auch nicht.

Israel (1-1-1-1)
Optisch bleiben der Dreiteiler in falscher Größe und die goldenen Hermes-Flügel-Basketballschule in Erinnerung. Akustisch einfach nur eine krude Mischung.

Lettland (3-2-3-2)
Selten war der Unterschied zwischen Refrain und Strophen größer: erstes bombastisch, zweites einfach nur langweilig. Statistisch gesehen also ein durchschnittlicher Song…

Aserbaidschan (3-2-3-1)
Für den Bühnenauftritt muss man entweder Modern-Dance- oder Gollum-Fan sein.

Island (2-2-2-2)
Niedliches Feenkostüm. Leider ist der restliche Auftritt nicht so niedlich.

Schweden (5-5-4-5)
Bisher ungeschlagene Interaktion des Sängers mit der Bühnentechnik. Und der Song dazu ist ebenfalls klasse.

Schweiz (3-3-4-4)
Nach dem Auftritt war die Windmaschine alle… Enthält auch sonst alle Elemente eines ESC-Klassikers.

Zypern (2-2-2-1)
Man wartet die ganze Zeit, dass das Lied richtig anfängt – und dann ist es schon zu Ende.

Slowenien (3-2-4-3)
Sollte der Riesenkopfhörer der Sängerin darauf hinweisen, dass sie sich selbst nicht hören kann? Die Luftgeige war ebenfalls primär irritierend.

Polen (3-3-4-3)
Stimmiges Lied mit passendem rosa-lila Blüten-Hintergrund.

Erklärung des Quadrupels (a-b-c-d):
a, b: Wertung von Nessi
c, d: Wertung von Kuni
a, c: akustische Wertung
b, d: optische Wertung
1 (schlecht) <= a, b, c, d <= 5 (gut)

ESC 2015 – Erstes Halbfinale

Moldawien (2-2-2-3)
Mit den Hot-Pants-Politessen optisch auf jeden Fall etwas, was noch nie beim ESC war. Akustisch geht fast alles unter den dauerstreichenden Monsterstreichern unter…

Armenien (3-2-3-2)
Interessante Mischung aus Musical und feierlicher Sektenzeremonie mit druidischem Touch. Aber mit Queen-Finale!

Belgien (2-1-3-2)
Optischer Eindruck: hell! Akustisch brüllen sich ein Junge in schwarz auf der einen und fünf Jungen und Mädchen auf der anderen Seite einander an.

Niederlande (2-1-2-1)
2015 mit einem Song zu anzutreten, der im Refrain wiederholt “Wei Wei-wei-ei-ei Wei-hei-ei-ei” enthält, zeugt auch irgendwie von Mut. Optisch äquivalent mutig langweilig.

Finnland (1-1-1-1)
Wenn man Punk etwas abgewinnen kann, vermutlich ein toller Song. Kurz.

Griechenland (3-2-3-2)
Nette Bondballade inklusive Revolverlaufoptik auf der Bühne. Und auch die Windmaschine gibt es noch. Alles in allem eine ziemlich dreiste Kopie des letztjährigen Siegertitels.

Estland (4-3-4-3)
Optisch Pulp-Fiction. Akustisch getriebenes Gitarrengeschrammel. Nett.

Mazedonien (2-2-2-3)
Schunkelnde schwarze Background-Gangsta-Türsteher-Sänger hinter einem singenden weißen Trenchcoat.

Serbien (2-2-3-2)
Zuerst eine etwas kraftlose Hommage an den ehemaligen Siegertitel Molitva, dann nach einem Verwandlungstrick einfach nur noch schräg.

Ungarn (4-3-4-4)
Leute die singen – also wirklich einfach nur singen ohne dass ihre Stimmen von Instrumenten erschlagen werden. Dazu ein stimmiges, sehr lebensbejahendes Bühnenbild.

Weißrussland (3-4-4-4)
Discofox mit Violine und Herzchen-EKG. Leider geht die wirklich gute Stimme bei dem Song unter.

Russland (4-4-5-4)
Optisch Marilyn Monroe in schlank. Optisch viele Funkeln.

Dänemark (3-2-3-2)
Schülerband aus den 60ern. Wach auf McFly!

Albanien (2-2-2-2)
Sehr mitteilungsbedürftige Sängerin, die bisweilen leider zu hoch für ihre Stimme singt.

Rumänien (4-3-4-3)
Eindrucksvoller, wenn auch optisch etwas (wenn auch bewusst) deprimierender Auftritt.

Georgien (4-4-3-4)
Ruslana in Latex. Vampirella im Minirock. Und viele Blitze in der Dunkelheit…

Erklärung des Quadrupels (a-b-c-d):
a, b: Wertung von Nessi
c, d: Wertung von Kuni
a, c: akustische Wertung
b, d: optische Wertung
1 (schlecht) <= a, b, c, d <= 5 (gut)

Stringtheorie (cont.)

Heute wurden bei einer größeren Aufräumaktion mal wieder zahlreiche, (hoffentlich) überflüssige Kabel aus den Serverschränken gerissen. Zumindest hat sich bis jetzt kein Server oder Serverbetreiber beschwert…

Die einzelne rote Strippe in den folgenden Kabelpornobildern kann man eigentlich schon als Kunst durchgehen lassen, oder?

image

image

image

Wollt ihr die totale Endgültigmachung?

Angenommen, man hat einen organisatorischen Vorgang, bei dem Kosten erst vorläufig und dann später endgültig festgesetzt werden. Wie könnte man den Vorgang der endgültigen Festsetzung benennen?

Der Titel dieses Eintrags hat es ja schon vorweggenommen: “Endgültigmachung”.

Tolles Wort – selbst Google ist begeistert:

Und wo kommt der Quatsch jetzt her? Richtig: aus dem Jugendamt, das uns schon zahlreiche Späße mit Formularen bereitet hat:

Wenn man bei Google nach einem weiteren Klick wirklich nach “Endgültigmachung” sucht, findet er übrigens nur Fundstellen aus der Umgebung – es scheint sich um eine Berliner Erfindung zu handeln…

Spaß an der analog-digitalen Grenze

Irgendwann hatte ich mal gelernt, dass die Deutsche Post die Adressen auf Briefen zwar elektronisch erfasst, bei Problemen aber im Zweifelsfall doch noch mal einen Menschen draufgucken lässt.

Nunja, entweder sie haben inzwischen die Menschen eingespart oder aber sie haben niemanden mehr, der ein altdeutsches “Z” lesen kann. Der nachfolgend abgebildete Osterbrief kam jedenfalls trotz korrekter Adresse als nicht zustellbar zurück:

Wenn das schon als nicht lesbar eingestuft wird, was macht die Post mit handgeschriebenen Adressen?

Systemtabellen werden eh überbewertet

Unser täglich MySQL-Rant gib uns heute…

Momentan bin ich beruflich leider gezwungen, mich näher mit dem Galera-Cluster (eine Multi-Master-Synchronisationslösung auf MySQL/MariaDB-Basis) zu beschäftigen. Prinzipiell hätte ich natürlich eine ernsthafte Datenbankreplikationslösung auf PostgreSQL-Basis bevorzugt, aber leider benötigen nun gleich mehrere zukünftig in unserem Rechenzentrum eingesetzte Softwareprodukte eine hochverfügbare MySQL-Lösung.

Kleiner Einschub: wenn man die konkreten Hersteller eben dieser Softwareprodukte fragt, warum sie unbedingt MySQL genommen haben, kommt man gerne Antworten, die mit

“Wir sind zwar keine Datenbankexperten, aber…”

beginnen und irgend einem Gestammel der Bauart

“…hat halt funktioniert und wir bleiben dabei.”

endet. Warum wir überhaupt derartige Softwareprodukte auswählen, soll jetzt hier nicht das Thema sein…

Anyway, ich habe mich nun einige Zeit mit der offiziellen Galera-Doku und zahlreichen weiteren Dokumenten beschäftigt und sehe mein Bauchgefühl bestätigt: Der Cluster ist eine wirklich beeindruckende Implementationsleistung – basierend auf einem dafür völlig ungeeigneten Datenbanksystem.

Der Grund für diese böse Feststellung liegt vor allem in einer Altlast, die MySQL (und auch dessen Abkömmling MariaDB) immer noch mit sich herumschleppen: die MyISAM-Storage-Engine. Diese ehemalige Standardengine stammt aus einer Zeit, als MySQL noch keine Ambitionen hatte, ein echtes Datenbanksystem zu sein und lässt daher so ziemlich alle datenbankrelevanten Eigenschaften vermissen (Transaktionen, Fremdschlüssel, …). Schon vor Jahren wurde daher eine andere Engine namens InnoDB zur neuen Standardengine ernannt. Diese weist so ziemlich alle bei MyISAM fehlenden Eigenschaften auf und machte MySQL erst zu einer (nunja zumindest etwas) ernstzunehmenden Datenbank.

Und folgerichtig (genaugenommen, weil alles andere technisch deutlich aufwendiger wäre) unterstützt Galera-Cluster ausschließlich das Replizieren von InnoDB-Datenbanken.

So weit, so gut – gäbe es da nicht ein klitzekleines Detail am Rande: in jedem MySQL-Datenbanksystem gibt es immer noch mindestens eine MyISAM-Datenbank und zwar die MySQL-Systemdatenbank! Also die Datenbank, in der ein MySQL selbst speichert, welche Datenbanken mit welchen Tabellen und welchen Spalten es gibt, welche Nutzer mit welchen Passwörtern von wo zugreifen können, usw.

Hmm, das würde ja heißen, dass die Systemdatenbank bei Galera-Cluster nicht mitrepliziert werden würde, oder? Das kann doch nicht wirklich sein?

Nunja, doch!:

Currently replication works only with the InnoDB storage engine. Any writes to tables of other types, including system (mysql.*) tables are not replicated (this limitation excludes DDL statements such as CREATE USER, which implicitly modify the mysql.* tables — those are replicated).

Beispielszenario gefällig? Gegeben sei ein Cluster aus zwei Knoten; die Datenbanknutzer werden bei jeder neuen Verbindung per Load-Balancer auf einen der beiden geleitet. Der Nutzer ändert mittels UPDATE in der Tabelle mysql.user sein Passwort. Folge: sein Passwort wurde auf dem aktuellen Knoten geändert, aber leider wird der zweite Knoten davon nicht unterrichtet. Ab sofort hat der Nutzer also eine 50%-Chance, dass seine nächste Anmeldung am Server funktionieren wird.

Nun klingt es vielleicht abenteuerlich, sein Passwort direkt in den Systemtabellen zu ändern statt die (im Cluster auch replizierten) Higher-Level-SQL-Befehle (in diesem Fall ALTER USER) zu verwenden, aber etliche Datenbankadministrationswerkzeuge (auch die von uns selbst geschriebenen) gehen direkt über die Systemdatenbank. In unserem Fall werden wir uns wohl einige Workarounds ausdenken müssen…

Die oben verlinkte “Mängelliste” weist übrigens noch weitere Highlights auf. Der folgende Hack klingt noch halbwegs sympathisch:

If you are using mysqldump for state transfer, and it failed for whatever reason […], you will see an SQL SYNTAX error in the server error log. Don’t let it fool you, this is just a fancy way to deliver a message (the pseudo-statement inside of the bogus SQL will actually contain the error message).

Spannender finde ich die unglaublich konkreten Angaben, wie groß Transaktionen werden dürfen (man beachte die literarisch wertvolle Verwendung von “might”, “can” und “less fortunate scenario”):

Do not use transactions of any essential size. Just to insert 100K rows, the server might require additional 200-300 Mb. In a less fortunate scenario it can be 1.5 Gb for 500K rows, or 3.5 Gb for 1M rows…

Aber dieser Punkt endet noch besser:

…See MDEV-466 for some numbers (you’ll see that it’s closed, but it’s not closed because it was fixed).

Mein persönliches Highlight ist aber das Folgende:

Locking is lax when DDL is involved. For example, if your DML transaction uses a table, and a parallel DDL statement is started, in the normal MySQL setup it would have waited for the metadata lock, but in Galera context it will be executed right away. It happens even if you are running a single node, as long as you configured it as a cluster node…

Im Prinzip steht da nicht weniger als: Wenn du echtes ACID willst (ja, DML und DDL gleichzeitig sollte deterministisch möglich sein), kümmer dich selbst drum! Aber wenigstens werden die Konsequenzen bzw. die Unkenntnis selbiger nicht beschönigt:

…See also MDEV-468. This behavior might cause various side-effects, the consequences have not been investigated yet. Try to avoid such parallelism.

Hmm, eigentlich wollte ich diesen Artikel noch mit einem schmissigen Satz ala “ich werde dennoch hochmotiviert an die neue Herausforderung herantreten” beenden, aber der Freitagnachmittag ist schon zu weit fortgeschritten…