In einem früheren Artikel haben wir die Geschichte des Apache-Webservers, seine Rolle beim Aufstieg des Internets und wie sein Marktanteil von Konkurrenten wie Nginx aufgefressen wird, beschrieben. Apache ist Teil des LAMP-Stacks -Linux + Apache + MySQL + PHP – und es ist keine Untertreibung zu sagen, dass mehr als die Hälfte des gesamten Internets seine Existenz LAMP verdankt.
Heute werfen wir einen Blick auf einige der Unterschiede zwischen MariaDB und MySQL, zwei ähnlichen, aber unterschiedlichen Datenbanktechnologien, die Millionen von Websites auf der ganzen Welt versorgen.
MariaDB vs. MySQL Unterschiede
Auch wenn MariaDB ein Teil von MySQL ist, sind diese beiden Datenbankmanagementsysteme immer noch sehr unterschiedlich:
- MariaDB ist vollständig GPL-lizenziert, während MySQL einen dualen Lizenzansatz verfolgt.
- Jeder bündelt thread pools auf unterschiedliche Weise.
- MariaDB unterstützt viele verschiedene Speicher-Engines.
- MariaDB bietet in vielen Szenarien eine verbesserte Performance.
Was ist MySQL
MySQL ist eine relationale Datenbank (RDBMS), die 1995 erstmals das Licht der Welt erblickte und von Michael Monty Widenius und David Axmark entwickelt wurde. Es entstand, als der Markt von Microsoft und Oracle’s proprietären (und teuren) Lösungen dominiert wurde.
MySQL ist heute eine archetypische Marke. Seine Rolle war entscheidend für den Aufbau des Internets, wie wir es heute kennen. Dieser Artikel im Linux Journal wirft ein wenig Licht auf seine Anfänge.
Mit der frühen Einführung der Dual-Lizenzierung – und der Verwendung der GNU GPL für die kostenlose Version – ebnete MySQL den Weg für viele andere Softwareanbieter, die später kamen.
In Michael Widenius‘ Worten über die doppelte Lizenzierung:
„…da MySQL ein Infrastrukturprodukt ist, das sich leicht in andere Produkte einbetten lässt, könnten wir Lizenzen an diejenigen verkaufen, die MySQL in ihr Produkt einbetten wollten, ihr Produkt aber nicht Open Source machen wollten.“
Server-implementierte Webanwendungen, als Teil des LAMP-Stapels, betten MySQL normalerweise nicht ein und verteilen ihren Code. Dies bedeutete, dass jeder die Software für seine eigenen Webprodukte frei nutzen konnte.
Weniger als ein Jahrzehnt nach seiner öffentlichen Veröffentlichung dominierte MySQL den Markt der Open-Source-Relations-Datenbanken.
Google Trends zeigt, dass das Interesse an MySQL für die globale Websuche zwischen 2004 und 2005 seinen Höhepunkt erreicht hat:
Einige der bemerkenswertesten Unternehmen, die MySQL einsetzen, sind:
- Facebook, ein Bericht aus dem Jahr 2011, erwähnt so viel wie „60 Millionen Abfragen pro Sekunde und fast 4 Millionen Zeilenwechsel pro Sekunde“ und MySQL behandelt „so ziemlich jede Benutzerinteraktion: likes, shares, status updates, alerts, requests“.
- Netflix’s Abrechnungsteil seiner Plattform
- Youtube
- Booking.com
- Airbnb
- und viele andere.
Ein weiterer Faktor, der zum Anstieg und zur Akzeptanz von MySQL beigetragen hat, ist phpMyAdmin.
PhpMyAdmin ist ein webbasiertes Datenbankadministrationstool aus dem Jahr 1998, das sich schon früh in die Managementkonsolen von Shared Hosting-Providern, einschließlich cPanel, eingeschlichen hat. Es ist ein in PHP geschriebenes Tool, das die Verwaltung von MySQL auf LAMP-Servern einfach gemacht hat. Importieren, Exportieren, Zusammenstellen komplexer Abfragen, Löschen und Erstellen von Tabellen, Durchführen komplexer Suchen sind nur einige der Dinge, die phpMyAdmin ermöglicht, ohne dass Benutzer jemals Linux-Terminal verwenden müssen.
WordPress und MySQL
Einer der Faktoren, die hinter der Popularität von MySQL stehen, ist zweifellos WordPress, das heute etwa 60% der CMS-Systeme oder 34% des gesamten Webs betreibt.
WordPress wurde 2003 von Matt Mullenweg und Mike Little als Teil eines anderen Projekts entwickelt. Es wurde in PHP geschrieben, es benutzte MySQL als Datenbank, und als es auftauchte, holte seine Annahme wie ein Lauffeuer ein.
WordPress wurde schnell zum Synonym für das Konzept der Open-Source-Software und damit auch für den zugrunde liegenden Server-Stapel. DisplayWP hat eine schöne Übersicht über die minimal erforderliche MySQL-Version für jede WordPress-Version.
Einer der Faktoren, die die Einführung von MySQL begünstigten, war die GPL-Seite der Lizenzierung. Da es mit Linux kompatibel ist, wurde es standardmäßig in Linux-Distributionen aufgenommen. Heute ist es standardmäßig bei Ubuntu enthalten.
Kurzer Überblick über MySQL und das relationale Datenbankmodell
MySQL wurde als RDBMS (Relational Database Management System) konzipiert. Das Modell der relationalen Datenbank geht auf die 1970er Jahre zurück, wie in „Codd’s Twelve Commandments“ beschrieben. Kurz gesagt, dieses Modell strukturiert Daten in Tabellen, die aus Spalten und Zeilen bestehen. Jede Zeile wird durch einen Schlüssel eindeutig identifiziert (Primary Key zur Verwendung von SQL-Jargon).
Diese Primärschlüssel können als Pegs einer Art verwendet werden, die von anderen Tabellen verwendet werden, um eine Beziehung zur spezifischen Zeile zu definieren. Die Spalte FOREIGN KEY in einer relationalen Datenbanktabelle bezieht sich also auf eine Spalte PRIMARY KEY in einer anderen Tabelle und definiert eine Beziehung zwischen Zeilen in verschiedenen Tabellen.
Wie Essential SQL erklärt: „Der Primärschlüssel besteht aus einer oder mehreren Spalten, deren darin enthaltene Daten zur eindeutigen Identifizierung jeder Zeile der Tabelle verwendet werden“. Daten in Primärschlüsselspalten müssen eindeutig sein und dürfen nicht leer oder NULL sein. In einer relationalen Datenbank „hat die Tabelle nur einen Primärschlüssel, und ihre Definition ist obligatorisch“.
Gleichzeitig ist „Fremdschlüssel eine Menge von einer oder mehreren Spalten in einer Tabelle, die auf den Primärschlüssel in einer anderen Tabelle verweist. Es gibt keinen speziellen Code, keine speziellen Konfigurationen oder Tabellendefinitionen, die Sie vornehmen müssen, um einen Fremdschlüssel offiziell zu „benennen“.“
Auf diese Weise ist es mit relationalen Datenbanken möglich, die Daten auf ausgefeilte Weise zu modellieren und Verbindungen zwischen verschiedenen Datentypen zu definieren. In unserem einfachen Beispiel oben haben wir zwei Tabellen mit Zeilen, die miteinander verknüpft werden können, z.B. jede Person besitzt ein Auto.
Wir können diese Daten nach der Logik abfragen, die wir benötigen, wir können die Ergebnismenge nach verschiedenen Kriterien filtern und wir können unsere Abfrage wesentlich komplexer gestalten, als wir es oben beschrieben haben.
Aus diesem Grund verwenden relationale Datenbanken – und Datenbanken im Allgemeinen – domänenspezifische Sprachen, unter denen das SQL, das für Structured Query Language steht, die vorherrschende, wenn nicht die einzige ist, die von RDBMS verwendet wird.
Übernahme durch Sun
Im Jahr 2008 wurde MySQL AB, das Unternehmen hinter MySQL, von Sun Microsystems übernommen. Dieses Unternehmen entwickelte JAVA, Solaris Unix OS und trug maßgeblich zu verschiedenen Computertechnologien bei. Wie Business Wire bereits damals berichtete:
„Sun Microsystems, Inc. (NASDAQ:JAVA) gab heute bekannt, dass es eine endgültige Vereinbarung zum Erwerb von MySQL AB abgeschlossen hat, einem Open-Source-Icon und Entwickler einer der am schnellsten wachsenden Open-Source-Datenbanken der Welt für rund 1 Milliarde US-Dollar in der Gesamtverantwortung“.
Es wird bald beweisen, dass diese Akquisition nicht ausreicht, um den Untergang von Sun zu verhindern, aber sie zeichnet ein Bild davon, wie groß MySQL damals war.
Oracle
Die Oracle Corporation ist ein Anbieter der bis heute größten Closed-Source-Datenbank, der Oracle-Datenbank.
Es war ein direkter Konkurrent von MySQL und praktisch der Gegensatz zum freien Open-Source-Softwaremodell der GPL, das MySQL damals wurde.
Als Oracle 2010 Sun und damit MySQL kaufte (und dafür gegen IBM gewann), sah die FOSS-Welt das als etwas so „Unheimliches“ wie einen Borg-Angriff in Star Trek. Ein Benutzer erinnert sich an das Ereignis auf Quora:
„MySQL war eine ernsthafte Bedrohung für Oracle – damals machte die Oracle-Datenbank etwas mehr als 80% des gesamten Umsatzes aus (und angesichts der Tatsache, dass die Skelettmannschaft sie pflegen musste, sogar noch mehr der Gewinne).
MySQL machte ernsthafte Fortschritte – große Fortune-50-Unternehmen mit Standortlizenzen, die Millionen kosten, verlagerten Datenbanken (insbesondere schreibgeschützte) von Oracle auf MySQL, weil der administrative Aufwand so viel geringer war. Ich weiß, ich habe geholfen, einige davon zu machen.
Viele in der MySQL-Community wollten Funktionen hinzufügen, die die Verwendung auch einer kostenlosen Version von Oracle überflüssig machen würden. MySQL ging definitiv diesen Weg. Die Werkzeuge wurden reifer und Larry hatte Angst.
Also kaufte Oracle MySQL, um sicherzustellen, dass es die Kontrolle über die Marke haben würde, zerstreute die Community und rettete sein Flaggschiff vor den ungewaschenen Massen.
Dies war eine logische Schlussfolgerung, denn MySQL wurde damals so populär, dass es als eine echte Bedrohung für das Kerngeschäft von Oracle angesehen werden konnte. Wie Ankush Thakur von Geekflare es ausdrückte, wurde MySQL so populär, dass die Entwickler schon bald vergaßen, dass SQL und MySQL zwei verschiedene Dinge sind.“
Bevor die Übernahme überhaupt geschah, Ende 2009, veröffentlichte Monty Widenius, der in diesem Jahr das MySQL-Team verließ, um sein eigenes Gabel- und Datenbankunternehmen zu gründen, einen dramatischen Appell in seinem Blog (wir werden nur den Anfang zitieren):
Hilfe bei der Rettung von MySQL
Ich, Michael „Monty“ Widenius, der Schöpfer von MySQL, bitte Sie dringend, MySQL aus den Fängen von Oracle zu retten. Ohne Ihre sofortige Hilfe könnte Oracle jederzeit MySQL besitzen. Mit einem Schreiben an die Europäische Kommission (EC) können Sie diese Sache unterstützen und die zukünftige Entwicklung des Produkts MySQL als Open-Source-Projekt sichern.
Die Übernahme erfolgte jedoch einen Monat später, zum Entsetzen vieler in der Open-Source-Community. Widenius hatte Sun bereits verlassen, Monty Program AB gegründet und MySQL gespalten und damit den Grundstein für MariaDB gelegt. Und das alles, obwohl er viele MySQL-Entwickler mitnimmt.
Bis heute stellen die Menschen immer noch die Rechtmäßigkeit von Martys Ängsten in Frage. Vor allem, da das schlimmste Szenario überhaupt nicht passiert ist: Oracle hat MySQL nicht erworben, nur um es zu töten.
Einige argumentieren, dass MySQL von Oracle als nichts anderes als ein „Kollateralopfer“ der Übernahme von Sun gekauft wurde. Bereits 2009 hatten diejenigen, die den Datenbankmarkt im Auge hatten, Grund zur Sorge.
Warnungen waren vorhanden. Der Entwickler der Hauptspeichermaschine von MySQL, InnoDB, ein Unternehmen aus Finnland, wurde 2005 von Oracle übernommen. Später wurden sie vollständig in Oracle verschmolzen, wodurch das ursprüngliche Unternehmen aufgelöst wurde. Im Jahr 2006 kaufte Oracle die Entwickler von Berkeley DB, dem Anbieter einer weiteren, weniger wichtigen BDB-Speichermaschine. Sie kreisten umher.
Was ist MariaDB
MariaDB hatte sein erstes Release im Oktober 2009, mit der Version 5.1.38 Beta, basierend auf MySQL 5.1.38. Es war ein Fork, der dazu gedacht war, „sicherzustellen, dass die MySQL-Codebasis für immer frei ist„.
Zum Zeitpunkt der Gabelung war die häufigste Befürchtung, dass die Übernahme eine feindliche Übernahme mit dem Ziel war, MySQL zu töten. Diese Sorge erwies sich zumindest teilweise als unbegründet.
Auch 2009 gründeten Monty Program AB und Percona, ein Unternehmen, das Premium-MySQL-Dienste anbietet, die Open Database Alliance. Ihr Ziel war es, „alle MySQL-bezogenen Entwicklungen und Dienstleistungen zu vereinheitlichen und eine Lösung für die Fragmentierung und Unsicherheit der mit MySQL befassten Communities, Unternehmen und technischen Experten zu bieten“.
Die Idee war, „die Industriedrehscheibe für die MySQL Open-Source-Datenbank zu werden, einschließlich MySQL und abgeleitetem Code, Binärdateien, Training, Support und anderen Verbesserungen für die MySQL-Community und das Partner-Ökosystem“.
Im Rückblick: Es ist möglich, dass diese Schritte ein schlechteres Szenario für die berühmte Datenbank verhindert haben.
MariaDB vs. MySQL: Kompatibilität
Der Sinn von MariaDBs MySQL-Gabel (benannt nach Widenius‘ Tochter) bestand darin, den zukünftigen Zugang zu MySQL und dessen Weiterentwicklung zu sichern. Aus diesem Grund wurde MariaDB als vollständiger Binärersatz – sozusagen ein „Drop-in“-Ersatz – konzipiert, der es allen MySQL-Anwendern ermöglicht, auf ihren Systemen untereinander zu tauschen.
MySQL ist eine Client-Server-Anwendung, und sowohl das Serverprogramm mysqld, der Client mysql als auch Hilfsprogramme wie mysqldump behalten bei MariaDB den gleichen Namen.
Das Ersetzen von MySQL durch MariaDB wird zu einem nahtlosen Prozess für die meisten Anwendungen und Zwecke, insbesondere WordPress. Bestehende Software, von gängigen CMS-Tools bis hin zu Anwendungen wie phpMyAdmin, funktioniert einfach von Anfang an, und aktuelle Daten können ohne Änderungen exportiert/importiert werden.
Das erklärte Ziel von MariaDB ist es, die Kompatibilität mit MySQL aufrechtzuerhalten. Laut MariaDB-Website,
- Daten- und Tabellendefinitionsdateien sind kompatibel.
- alle Client-APIs und -Protokolle sind kompatibel.
- Dateinamen, Binärdateien und Pfade sind bei MySQL und MariaDB gleich.
- Ports und Sockets sind identisch.
- Alle MySQL-Konnektoren – PHP, Perl, Python, Java und andere – funktionieren mit MariaDB.
- Das MySQL-Client-Paket funktioniert austauschbar mit MariaDB genauso wie mit MySQL.
Monatliche Zusammenführungen werden durchgeführt, um die Kompatibilität sicherzustellen und um neue Funktionen und Bugfixes von Oracle zu erhalten.
MariaDB vs. MySQL: Die Gründe für die Verzweigung
Es gab mehrere Gründe für die Veröffentlichung von MariaDB. Die Befürchtung, dass Oracle seinen wachsenden Konkurrenten einfach töten würde, um sein lukratives Hauptprodukt zu schützen, war sicherlich eine der größten. Die Nutzer hätten ein fantastisches und kostenloses Produkt verloren!
Andere Gründe bezogen sich auf die Sicherstellung, dass MySQL frei und Open Source geblieben wäre. Heute ist MariaDB mit seinen gesamten Funktionen vollständig unter der GPL lizenziert, während MySQL einen dualen Lizenzansatz verfolgt, bei dem Premium-Funktionen unter einer proprietären, kostenpflichtigen Lizenz lizenziert sind:
„Die MySQL Enterprise Edition enthält die umfassendste Reihe von erweiterten Funktionen, Management-Tools und technischem Support, um ein Höchstmaß an MySQL-Skalierbarkeit, Sicherheit, Zuverlässigkeit und Verfügbarkeit zu erreichen. Es reduziert das Risiko, die Kosten und die Komplexität bei der Entwicklung, Bereitstellung und Verwaltung geschäftskritischer MySQL-Anwendungen.“
Wenn wir die beiden hier vergleichen, hat MariaDB einen klaren Vorteil durch die GPL-Lizenz, für die es freigegeben ist. Aufgrund der proprietären Codebasis kann Oracle den MariaDB-Code nicht legal nutzen und in seine Datenbank einbinden.
Das hat Widenius versprochen: „Wenn Oracle eine Closed-Source-Erweiterung für MySQL veröffentlicht, werden wir auch eine Open-Source-Erweiterung veröffentlichen.“
Gemeinschaftsangelegenheiten
Ein weiterer Grund hinter der Abspaltung war, das Projekt „offen“ zu halten, im Sinne eines Community-Projekts (wie WordPress), dessen Richtung und Entwicklung genauso offen ist wie seine Lizenz. Wenn wir uns das Commit-Protokoll ansehen, ist es leicht zu schließen, dass der größte Teil des MySQL-Codes von eigenen Entwicklern stammt. Die Entwickler von Oracle danken zum Beispiel gelegentlichen und bemerkenswerten Beiträgen aus der Community, aber das ist weit entfernt von der Offenheit der MariaDB und weit entfernt von dem, was MySQL früher war.
Um die Dinge ins rechte Licht zu rücken, hat das MariaDB Server-Repository zum Zeitpunkt dieses Schreibens mehr als 186k Commits, 370+ Filialen und 200 Contributors. MySQL hingegen hat mehr als 148k Commits, 9 Niederlassungen und 72 Mitwirkende.
Die Diskussion über die Entwicklung von MariaDB, ihre Richtung, die Abstimmung über die Features, etc. findet auf einer öffentlich zugänglichen Mailingliste statt:
Neben diesem gibt es auch die Maria Discuss Mailingliste.
Maria Captains sind ein Team von vertrauenswürdigen Entwicklern, bei denen Entwickler Patches einreichen können. Wie auf der Seite des Teams auf dem Launchpad steht:
„Die Kapitäne sind vertrauenswürdige Entwickler mit Schreibzugriff auf die wichtigsten MariaDB-Bäume. Wenn du einen Patch in den Baum haben möchtest, schicke ihn an die Maria-Entwicklerliste und einer oder mehrere der Kapitäne werden mit dir zusammenarbeiten, um den Patch zu überprüfen, zu genehmigen und schließlich in den entsprechenden MariaDB-Baum zu verschieben.“
Es gab einige Gelegenheiten, bei denen der lebendige Entwicklungsprozess von MariaDB seinen Vorteil gegenüber dem geschlossenen von Oracle bewies.
Ende 2012 wurde die MariaDB-Stiftung gegründet, um die Entwicklung der Datenbank zu überwachen.
Bald nach dem Fork sprangen viele ursprüngliche MySQL-Entwickler von Bord und schlossen sich dem MariaDB-Projekt an. Linux-Anbieter wie Red Hat, CentOS, Arch Linux, Debian, OpenSuse, Slackware, Fedora wechselten zu MariaDB als Standard-RDBMS, sowie zu BSD-Distributionen, FreeBSD und OpenBSD, während Ubuntu MariaDB enthält. Die gesamte Liste finden Sie hier.
Unternehmen wie Alibaba Cloud, Tencent, IBM, Microsoft, Booking.com wurden zu Platin-Sponsoren.
Für Kinsta als besten Hoster für Anwendungen, Datenbanken und Managed WordPress ist es interessant zu erwähnen, dass im Vorstand der MariaDB Foundation Leute von Automattic sitzen – ein klares Zeichen dafür, dass die Macher von WordPress MariaDB zu schätzen wissen.
In den Jahren nach der Aufteilung entwickelte sich MariaDB lebhaft, so sehr, dass MariaDB aufgrund der vielen neuen Funktionen, die 2012 eingeführt wurden, von der 5.* Versionsnummer, die mit MySQL kompatibel ist, auf 10.0 sprang, um den Sprung in den Funktionen widerzuspiegeln, den es erreicht hatte.
Aus Performance-Gründen gab die Wikimedia Foundation 2013 bekannt, dass sie Wikipedia auf MariaDB umgestellt hat. Das Gleiche geschah mit Google, und die Liste der Nutzer umfasst nun die Deutsche Bank, die DBS Bank, die Nasdaq, Verizon, Craigslist und andere.
Unter MySQL-Anwendern haben wir GitHub, US Navy, NASA, Tesla, Netflix, WeChat, Facebook, Zendesk, Twitter, Zappos, YouTube, Spotify.
Seit der ersten Veröffentlichung war das Interesse an dem MySQL-Nachfolger stetig gestiegen, wie Google Search Trends zeigt:
MariaDB vs. MySQL: Wesentliche Unterschiede
Auch wenn MariaDB zunächst als vollständig MySQL-kompatibel begonnen hat, ist zu erwarten, dass sich ihre Wege in Zukunft stärker voneinander unterscheiden werden.
In seinem letzten Blogbeitrag gratuliert Widenius Oracle zu seiner Arbeit an der Version 8.0 von MySQL und beschreibt einige Unterschiede und Vorbehalte wie:
Thread-Pool: Ähnlich wie das Problem, das der Nginx-Server im Vergleich zu Apache löst, weist MySQL jeder Client-Verbindung Threads zu, und das, was man mit dem Hochfahren eines ganzen Programms auf einem PC vergleichen kann, war einfach ineffizient. MariaDB hat dazu in der Version 5.5 eine eigene Lösung eingeführt.
Unsichtbare Spalten sind das exklusive Feature von MariaDB ab 10.3.3. Sie liefern weder Ergebnisse in einer SELECT *-Anweisung noch müssen sie in einer INSERT-Anweisung mit einem Wert versehen werden.
MariaDB führt Mikrosekunden in seinen zeitlichen Datentypen ein.
Speicher-Engines: MariaDB verwendet unter anderem XtraDB, InnoDB, MariaDB ColumnStore, Aria, Archive, Blackhole, Cassandra Storage Engine, Connect, CSV, FederatedX, Memory Storage Engine, Merge, Mroonga, MyISAM, MyRocks, QQGraph, Sequence Storage Engine, SphinxSE, Spider, TokuDB. ColumnsStore ist performancetechnisch interessant, da es eine lineare Skalierung ermöglicht, um Petabyte von Daten zu verarbeiten. Mehr dazu in ihrem Blog.
MySQL-Speicher-Engines sind InnoDB, MyISAM, Speicher, CSV, Archiv, Blackhole, Merge, Federated, Example.
Datenbankansichten sind ein Feature, bei dem MariaDB signifikante Optimierungen einführt, indem es nur die notwendigen Tabellen abfragt.
Einige Funktionen, die MySQL einführt, sind der native Datentyp JSON, MySQL Shell in der MySQL 8.0-Version – die Javascript und Python-Skripting ermöglicht – und funktioniert nicht mit MariaDB, dem SHA-256-basierten Authentifizierungs-Plugin, das die Sicherheit gegenüber mysql_native_password verbessert.
Hier findest du die vollständige Liste der Unterschiede zwischen MariaDB und MySQL und die Vorteile von MariaDB im Vergleich zu MySQL.
Zusammenfassung
MySQL ist unter dem Dach des größten kommerziellen Datenbankanbieters der Welt. Da so viele hauptamtliche Ingenieure rund um die Uhr an der Entwicklung hochwertiger neuer Funktionen arbeiten, haben wir bereits einige Punkte, an denen sie sich unterscheiden. MariaDB hingegen holt in der Regel bei den Beitragszusätzen auf, aber das ist nicht immer sofort und es gibt keine Garantien.
Allerdings gibt es viele Szenarien, in denen MariaDB eine verbesserte Performance bietet. Hinzu kommen agilere Patches und Updates, eine stabilere Open-Source-Zukunft und etwas mehr Optimismus und Sie werden sehen, warum wir bei Kinsta nicht nur Fans sind, sondern MariaDB auch als Teil unseres leistungsorientierten Server-Stacks einsetzen.
Schreibe einen Kommentar