Vor ein paar Wochen besuchten wir die MongoDB World 2017 in Chicago. Die Ingenieure, mit denen ich die Konferenz besuchte, und auch ich selbst nahmen an den Demos und Präsentationen teil, um deren volles Potenzial auszuschöpfen. Einer meiner Lieblingsvorträge war "Using Compass to Diagnose Performance Problems in Your Cluster" - die Verwendung von Compass zur Diagnose von Performance-Problemen in Clustern. MongoDB Compass ist ein Grafik-Client für MongoDB. Sollten Sie Ihr Nuxeo-Repository auf MongoDB hosten, kennen Sie Compass höchstwahrscheinlich bereits.

Compass verbindet sich mit Ihrem MongoDB-Cluster und verfügt über zwei Registerkarten - Databases (Datenbanken) und Performance. In der Datenbankenregisterkarte können wir Host-Inhalte erstellen und durchsuchen. Für bereits bestehende Datenbanken finden sich hier Statistiken. Sie haben die Möglichkeit, tiefer in eine Datenbank einzutauchen und deren Sammlungen zu durchsuchen. In der Datenbank nuxeo erkennen wir die Sammlung default (Standard), in der die allgemeine Dokumentenhierarchie hinterlegt ist. Ist "nuxeo-mongodb-ext" installiert, können wir Nuxeo-Verzeichnisse und Audit-Datensätze einsehen. Beschäftigen wir uns näher mit einer bestimmten Sammlung, können wir mit dem Sammlungsschema arbeiten, Dokumente anzeigen, bearbeiten oder einfügen, Indizierungen anzeigen und erstellen, Abfragen klären und Validierungsregeln anzeigen und bearbeiten.

In der Registerkarte "Performance" können wir uns Echtzeit-Performance-Metriken, beliebteste (am häufigsten verwendete) Sammlungen und Abfragen mit langer Laufzeit anzeigen lassen. All diese Optionen ermöglichen es Nuxeo-Administratoren, Datensätze in Datenbanken anzuzeigen und damit zu interagieren, Indizierungen für eine einfachere Suche hinzuzufügen und Performance-Steigerungsmöglichkeiten aufzuspüren.

Anzeige der Nuxeo-Repository-Daten in MongoDB Compass
Bild: Anzeige der Nuxeo-Repository-Daten in MongoDB Compass

Damit Sie eine Vorstellung davon erhalten, was mit der Registerkarte "Performance" alles möglich ist, habe ich mehrere Tausend zufällig ausgewählte Textdokumente mithilfe des Nuxeo Platform Importers importiert. Während des Importvorgangs konnte ich beobachten, wie während Generierung der Volltextdaten neue Dokumente eingefügt, Datenbankabfragen für diese Dokumente erstellt und Aktualisierungen der Dokumente erzeugt wurden.

Performance-Darstellung während des Imports zufälliger Daten in Nuxeo
Bild: Performance-Darstellung während des Imports zufälliger Daten in Nuxeo

Die für Nuxeo-Benutzer praktischste Funktion von Compass ist die Möglichkeit zum Hinzufügen von Indizierungen. Die Nuxeo Platform erstellt während der Initialisierung eines Repositorys automatisch Indizierungen für häufig verwendete Felder wie "ecm:id", "ecm:primaryType" und "ecm:parentId", nicht jedoch für die Felder benutzerdefinierter Schemata. Aktuell gibt es keine Nuxeo-native Option für die Indizierung in MongoDB, diese kann jedoch stattdessen problemlos in Compass erstellt werden. So ist ein Kunde beispielsweise in der Lage, über die Registerkarte "Performance" Abfragen mit langer Laufzeit zu identifizieren und zu prüfen, mit der Funktion "Explain Plan" (Planerläuterung) zu identifizieren, welche Felder von der Abfrage verwendet werden, und mit dem Indizierungsassistenten Indizierungen für diese Felder zu erstellen.

Hier finden Sie die vollständige Präsentation von der MongoDB World 2017.

Vielen Dank an den Redner, Brian Blevins, und MongoDB für die Einladung zur Konferenz.