MarkLogic 6 ist eine Enterprise-NoSQL-Datenbank („Not Only SQL“), die über die Flexibilität und Skalierbarkeit verfügt, um die heutigen Datenherausforderungen zu bewältigen, für die SQL-basierte Datenbanken nicht ausgelegt sind. Es verfügt außerdem über Funktionen der Enterprise-Klasse wie Suche, ACID-Transaktionen, Failover, Replikation und Sicherheit zum Ausführen geschäftskritischer Anwendungen. MarkLogic vereint Datenbankfunktionen, Such- und Anwendungsdienste in einem einzigen System. Es bietet die Funktionalität, die Unternehmen benötigen, um Mehrwert zu liefern. MarkLogic nutzt vorhandene Tools, Kenntnisse und Erfahrungen und bietet gleichzeitig eine zuverlässige, skalierbare und sichere Plattform für geschäftskritische Daten.
Unternehmen und Organisationen aus allen Branchen, darunter der öffentliche Sektor, Medien und Finanzdienstleistungen, haben von der einzigartigen Architektur von MarkLogic profitiert. Jede Umgebung, die einer Kombination aus Datenvolumen, -geschwindigkeit, -vielfalt und -komplexität gegenübersteht – einer Datenherausforderung, die als Big Data bekannt ist – kann mit MarkLogic verbessert werden. Zu den Beispiellösungen, die auf MarkLogic basieren, gehören Informationsanalyse, Echtzeit-Entscheidungsunterstützung, Risikomanagement, Digital Asset Management, digitale Lieferkette und Inhaltsbereitstellung.
MarkLogic-Benchmark
Der von uns verwendete Benchmark wurde intern von MarkLogic entwickelt und wird zur Bewertung sowohl von Hardwarekonfigurationen als auch kommenden MarkLogic-Softwareversionen verwendet. Der Arbeitsaufwand gliedert sich in zwei unterschiedliche Teile:
- Aufnahmephase, in der ein großer Datensatz mit Indizes in die MarkLogic-Datenbank eingefügt wird.
- Abfragephase, in der Suchen, Ansichtsaktualisierungen und Löschungen auf den eingefügten Datensatz angewendet werden. Diese Abfragen nutzen auch MarkLogic-Funktionen wie Facetten, Paginierung und Lesezeichen.
Als Korpus dient die öffentlich verfügbare Wikipedia-XML-Sammlung. Die Dateien werden im ZIP-Format auf der Festplatte gespeichert. Für die Aufnahme verwenden wir MarkLogic Content Pump (mlcp).
Insbesondere die Aufnahmephase ist I/O-intensiv. I/O ist in drei Kategorien unterteilt:
- Zunächst werden Dokumente in In-Memory-Ständer aufgenommen und die einzigen Schreibvorgänge auf die Festplatte sind Journalspeicherungen.
- In-Memory-Bestände laufen schnell über und werden kontinuierlich als On-Disk-Bestände geschrieben. Das ist Sparaktivität.
- Wenn die Anzahl der Speicherplätze auf der Festplatte zunimmt, muss MarkLogic diese zusammenführen, um den Abfrageaufwand zu reduzieren. Das Zusammenführen umfasst das Lesen mehrerer Stände auf der Festplatte, das Zurückschreiben einer zusammengeführten Einzelversion und das Löschen der Originale.
Um ein Höchstmaß an Genauigkeit zu gewährleisten und jedes Gerät in den stabilen Zustand zu versetzen, wiederholen wir die Aufnahme- und Abfragephasen für Flash-basierte Geräte 24 Mal. Bei PCIe-Anwendungsbeschleunigern dauert jedes Intervall zwischen 60 und 120 Minuten, sodass die Gesamttestzeit zwischen 24 und 48 Stunden liegt. Bei Geräten mit geringerem E/A-Durchsatz kann die gesamte Testzeit Tage umfassen. Unser Fokus in diesem Test liegt auf der Betrachtung der Gesamtlatenz jeder Speicherlösung in vier Interessenbereichen: Journal-Schreibvorgänge (J-Lat), Speicher-Schreibvorgänge (S-Lat) sowie Zusammenführungs-Lesevorgänge (MR-Lat) und Zusammenführungs-Schreibvorgänge Latenz (MW-lat).
Im Diagramm oben sehen wir die E/A-Pfade und Latenzen in MarkLogic:
- Journalschreibvorgänge zeichnen die Deltas in der Datenbank auf. Wenn eine Aktualisierungsanforderung ausgeführt wird, werden alle Änderungen, die sie am Status der Datenbank vorgenommen hat, im Journal aufgezeichnet. Diese Änderungen können aus dem Journal erneut angewendet werden, ohne dass die Anforderung erneut ausgeführt werden muss. Aktualisierungen können Ergänzungen, Ersetzungen oder Löschungen von Dokumenten sein. Das Journal schützt vor Ausfällen und übersteht einen späteren Systemabsturz garantiert. Die Latenz von Journal-Schreibvorgängen wird in der J-Lat-Metrik erfasst
- Nachdem genügend Dokumente geladen wurden, füllt sich der In-Memory-Stand und wird auf die Festplatte geleert und als On-Disk-Stand ausgeschrieben. Dieses Flushen auf die Festplatte wird als Speichern bezeichnet. Die Latenz von Save-Schreibvorgängen wird in S-lat erfasst
- Wenn die Gesamtzahl der On-Disk-Ständer zunimmt, droht ein Effizienzproblem aufzutreten. Um eine einzelne Begriffsliste zu lesen, muss MarkLogic die Begriffslistendaten von jedem einzelnen Stand lesen und die Ergebnisse vereinheitlichen. Um die Anzahl der Stände auf einem überschaubaren Niveau zu halten, führt MarkLogic Zusammenführungen im Hintergrund durch. Eine Zusammenführung liest (Merge Read) einige der Bestände auf der Festplatte und erstellt daraus einen neuen singulären Stand (Merge Write), Zusammenführen und Optimieren der Indizes und Daten sowie Entfernen aller zuvor gelöschten Fragmente. Die Latenz von Merge-Lesevorgängen wird in MR-lat und die Latenz von Merge-Schreibvorgängen in MW-lat erfasst.
Während der Aufnahme indiziert MarkLogic auch alle Dokumente, erstellt Begriffslisten usw. Diese Aktivität erfordert CPU-Zyklen, wodurch der Benchmark ein gutes Gleichgewicht zwischen hoher I/O und hoher CPU-Auslastung bietet.
Die Wikipedia-Daten wurden auch deshalb ausgewählt, weil sie nicht-englischen und nicht-ASCII-Text enthalten, den wir verwenden: Arabisch, Niederländisch, Französisch, Deutsch, Italienisch, Japanisch, Koreanisch, Persisch, Portugiesisch, Russisch, Spanisch, vereinfachtes Chinesisch und traditionelles Chinesisch. Diese Optionen betonen die mehrsprachigen Funktionen von MarkLogic. Schließlich machen die erfassten statischen Daten den Benchmark wiederholbar, was für Leistungsvergleiche zwischen mehreren Softwareversionen und unterschiedlichen Hardwarekonfigurationen unerlässlich ist.
MarkLogic-Testumgebung
Speicherlösungen werden mit dem MarkLogic NoSQL-Benchmark im StorageReview Enterprise Test Lab getestet, wobei mehrere Server verwendet werden, die über ein Hochgeschwindigkeitsnetzwerk verbunden sind. Wir nutzen Server von EchoStreams und Lenovo für verschiedene Segmente der MarkLogic NoSQL-Testumgebung und für die Struktur, die die Geräte verbindet, verwenden wir Mellanox InfiniBand Switching und NICs.
Die Speicherlösung ist in drei Abschnitte unterteilt: den Speicherhost, den MarkLogic NoSQL-Datenbankcluster und den MarkLogic-Datenbankclient. Als Speicherhost verwenden wir einen 2U Lenovo ThinkServer RD630, um PCIe-Anwendungsbeschleuniger, Gruppen von vier SATA/SAS-SSDs und einen Host für NAS/SAN-Geräte zu präsentieren, um sie auf der InfiniBand-Fabric zu präsentieren. Für den MarkLogic-Datenbankcluster verwenden wir eine EchoStreams GridStreams Quad-Node-Server mit acht Intel Xeon E5-2640-CPUs, um die Rechenressourcen bereitzustellen, die zur effektiven Belastung der schnellsten Speichergeräte erforderlich sind. Auf der Clientseite verwenden wir 1U Lenovo ThinkServer RD530-Server, die die Arbeitsdaten bereitstellen, die in den Systemspeicher geladen und über unser Hochgeschwindigkeitsnetzwerk an den NoSQL-Datenbankcluster übertragen werden. Alle diese Server sind über eine Mellanox 56Gb/s InfiniBand-Struktur miteinander verbunden, die sowohl Switches als auch NICs umfasst und uns die höchsten Übertragungsgeschwindigkeiten und niedrigsten Latenzzeiten bietet, ohne die Leistung von Hochleistungsspeichergeräten einzuschränken.
Mellanox InfiniBand-Verbindungen wurden verwendet, um höchste Leistung und größte Netzwerkeffizienz zu bieten und sicherzustellen, dass die angeschlossenen Geräte nicht durch das Netzwerk eingeschränkt sind. Betrachtet man nur PCIe-Speicherlösungen, kann ein einzelner PCIe Application Accelerator problemlos mehr als 1–3 GB/s in das Netzwerk bringen. Steigen Sie auf eine All-Flash-Speicher-Appliance mit Spitzenübertragungsgeschwindigkeiten von mehr als 10–20 GB/s um, und Sie werden schnell erkennen, wie leicht die Netzwerkverbindungskapazität ausgelastet werden kann, was die Gesamtleistung der gesamten Plattform einschränkt. Die Verbindungen mit hoher Bandbreite von InfiniBand ermöglichen die Übertragung der größten Datenmenge über die geringste Anzahl von Verbindungen, sodass die vollen Systemfunktionen genutzt werden können.
Neben einem höheren Netzwerkdurchsatz ermöglicht InfiniBand auch eine höhere Gesamteffizienz des Clusters. InfiniBand verwendet iSER (iSCSI-RDMA) und SRP (SCSI RDMA Protocol), um den ineffizienten iSCSI TCP-Stack durch RDMA-Funktionalität (Remote Direct Memory Access) zu ersetzen und so nahezu native Zugriffszeiten für externen Speicher zu ermöglichen. iSER und SRP ermöglichen eine höhere Effizienz in der gesamten Cluster-Umgebung, indem sie es dem Netzwerkverkehr ermöglichen, die CPUs der Systeme zu umgehen und Daten aus dem Speicher der sendenden Systeme direkt in den Speicher der empfangenden Systeme zu kopieren. Im Vergleich dazu leitet der herkömmliche iSCSI-Betrieb den Netzwerkverkehr durch einen komplexen Mehrfachkopier- und Übertragungsprozess weiter, verbraucht wertvolle CPU-Zyklen und Speicherplatz und erhöht die Latenzen bei der Datenübertragung drastisch. In unserer MarkLogic NoSQL-Umgebung nutzen wir das SCSI-RDMA-Protokoll, um jeden Knoten mit einem SCSI-Zielsubsystem für Linux (SCST) zu verbinden, das auf unserem Speicherhost läuft.
MarkLogic Benchmark-Ausrüstung
- EchoStreams GridStreams Quad-Node-Datenbankcluster
- Acht Intel E5-2640-CPUs (zwei pro Knoten, 2.5 GHz, 6 Kerne, 15 MB Cache)
- 256 GB RAM (64 GB pro Knoten, 8 GB x 8 Micron DDR3, 32 GB pro CPU)
- 4 x 100GB Micron RealSSD P400e (Einer pro Knoten, integriertes SATA)
- 4 x Mellanox ConnectX-3 InfiniBand-Adapter
- 6.3 CentOS
- Lenovo ThinkServer RD530 Datenbank-Client
- Duale Intel E5-2640-CPUs (2.5 GHz, 6 Kerne, 15 MB Cache)
- 64 GB RAM (8 GB x 8 Micron DDR3, 32 GB pro CPU)
- 200 GB x 3 Toshiba 10k SAS RAID5 (über LSI 9260-8i)
- 1 x Mellanox ConnectX-3 InfiniBand-Adapter
- 6.3 CentOS
- Lenovo ThinkServer RD630 Speicherhost
- Duale Intel E5-2680-CPUs (2.7 GHz, 8 Kerne, 20 MB Cache)
- 32 GB RAM (8 GB x 4 DDR3, 16 GB pro CPU)
- 100 GB Mikron RealSSD P400e SSD (über LSI 9207-8i)
- 1 x Mellanox ConnectX-3 InfiniBand-Adapter
- 6.3 CentOS
- Externes JBOD: iXsystems Titan iX-316J
- Mellanox SX6036 InfiniBand-Switch
- 36 FDR-Ports (56 Gbit/s).
- 4 Tbit/s Gesamt-Switching-Kapazität
Das Hauptziel dieser Plattform besteht darin, die Leistung von Unternehmensspeicher in einer tatsächlichen Unternehmensumgebung und Arbeitslast hervorzuheben, anstatt sich auf synthetische oder pseudosynthetische Arbeitslasten zu verlassen. Synthetische Workload-Generatoren können hervorragend zeigen, wie gut Speichergeräte mit einem kontinuierlichen synthetischen I/O-Muster funktionieren, sie berücksichtigen jedoch keine der anderen externen Variablen, die zeigen, wie Geräte tatsächlich in Produktionsumgebungen funktionieren. Synthetische Workload-Generatoren haben den Vorteil, dass sie immer wieder ein sauberes I/O-Muster zeigen, aber niemals eine echte Produktionsumgebung reproduzieren. Die Einführung der Anwendungsleistung zusätzlich zu Speicherprodukten zeigt, wie gut der Speicher mit seinen Treibern, dem lokalen Betriebssystem, der getesteten Anwendung, dem Netzwerkstapel, dem Netzwerk-Switching und externen Servern interagiert. Dabei handelt es sich um Variablen, die ein synthetischer Workload-Generator einfach nicht berücksichtigen kann, und außerdem sind sie im Hinblick auf die für die Ausführung dieses speziellen Benchmarks erforderliche Ausrüstung um eine Größenordnung ressourcen- und infrastrukturintensiver.
MarkLogic-Leistungsergebnisse
Mit dem MarkLogic NoSQL-Benchmark testen wir verschiedenste Speicherlösungen, die die Mindestanforderungen der Testumgebung erfüllen. Um sich für den Test zu qualifizieren, muss das Speichergerät über eine nutzbare Kapazität von mehr als 650 GB verfügen und für den Betrieb unter stressigen Unternehmensbedingungen ausgelegt sein. Dazu gehören neue PCIe-Anwendungsbeschleuniger, Gruppen von vier SAS- oder SATA-Enterprise-SSDs sowie große HDD-Arrays, die lokal oder über das Netzwerk angeschlossen sind. Nachfolgend sind die Gesamtlatenzwerte aufgeführt, die von allen bisher in diesem Test getesteten Geräten erfasst wurden. In Produktrezensionen gehen wir tiefer ins Detail und vergleichen Konkurrenzprodukte, während unsere Hauptliste die Schichtung verschiedener Speicherlösungen zeigt.
Gerät | Gesamtdurchschnittliche Latenz | Lamelle | J-lat | MR-lat | MW-lat |
---|---|---|---|---|---|
Dell R720 ExpressFlash 350 GB JBOD x 4 (SLC) |
1.24 | 1.56 | 1.56 | 0.46 | 1.37 |
Huawei Tecal ES3000 2.4 TB 4 Partitionen (MLC) |
1.31 | 1.41 | 1.53 | 0.98 | 1.32 |
Huawei Tecal ES3000 1.2 TB 4 Partitionen (MLC) |
1.43 | 1.42 | 1.76 | 1.20 | 1.33 |
EchoStreams FlacheSAN2 w/ Intel SSD 520 S/W RAID0, 4 Gruppen von 8 180-GB-SSDs (MLC) |
1.48 | 1.65 | 2.01 | 0.81 | 1.46 |
Micron P320h 700 GB 4 Partitionen (SLC) |
1.49 | 1.62 | 2.13 | 0.79 | 1.41 |
Fusion ioDrive2 Duo MLC 2.4 TB S/W RAID0, Hochleistungsmodus, 4 Partitionen (MLC) |
1.70 | 1.73 | 2.57 | 0.97 | 1.51 |
Fusion ioDrive2 Duo SLC 1.2 TB S/W RAID0, Hochleistungsmodus, 4 Partitionen (SLC) |
1.72 | 1.78 | 2.69 | 0.90 | 1.52 |
OCZ Z-Drive R4 1.6 TB 4 Partitionen (MLC) |
1.73 | 1.67 | 2.38 | 1.43 | 1.42 |
Hitachi Ultrastar SSD400S.B 400 GB JBOD x 4 (SLC) |
1.77 | 1.75 | 2.72 | 1.11 | 1.51 |
Smart Optimus 400 GB JBOD x 4 (MLC) |
1.82 | 1.69 | 2.74 | 1.36 | 1.49 |
EchoStreams FlacheSAN2 w/ Intel SSD 520 S/W RAID10, 4 Gruppen von 8 180-GB-SSDs (MLC) |
2.02 | 2.12 | 3.02 | 1.17 | 1.79 |
Virident FlashMAX II 2.2 TB Hochleistungsmodus, 4 Partitionen (MLC) |
2.26 | 2.30 | 3.39 | 1.57 | 1.81 |
Hitachi Ultrastar SSD400M 400 GB JBOD x 4 (MLC) |
2.58 | 2.09 | 4.49 | 2.07 | 1.68 |
OCZ Talos 2 400 GB JBOD x 4 (MLC) |
2.62 | 2.10 | 4.33 | 2.28 | 1.78 |
Intel DC S3700 200 GB JBOD x 4 (MLC) |
3.27 | 2.71 | 5.80 | 2.59 | 1.95 |
OCZ Talos 2 200 GB JBOD x 4 (MLC) |
3.53 | 2.62 | 6.16 | 3.40 | 1.96 |
Intel SSD 910 800 GB Nicht-RAID, JBOD x 4 (MLC) |
4.29 | 3.21 | 8.27 | 3.43 | 2.23 |
Fusion ioDrive2 MLC 1.2 TB S/W RAID0, Hochleistungsmodus, 4 Partitionen (MLC) |
4.69 | 3.58 | 9.15 | 3.74 | 2.28 |
OCZ Deneva 2 200 GB JBOD x 4 (MLC) |
6.65 | 5.38 | 13.48 | 4.54 | 3.18 |
Kingston E100 200 GB JBOD x 4 (MLC) |
8.00 | 6.82 | 16.22 | 5.46 | 3.49 |
Smart CloudSpeed 500 240 GB JBOD x 4 (MLC) |
11.06 | 9.07 | 22.74 | 7.19 | 5.23 |
Micron P400m 400GB JBOD x 4 (MLC) |
12.60 | 9.70 | 27.51 | 8.70 | 4.51 |
Fusion ioDrive Duo MLC 1.28 TB S/W RAID0, Hochleistungsmodus, 4 Partitionen (MLC) |
12.89 | 10.52 | 26.77 | 9.70 | 4.58 |
Micron P400m 200GB JBOD x 4 (MLC) |
14.98 | 11.99 | 31.93 | 10.54 | 5.46 |
Toshiba 15K MK01GRRB 147 GB H/W LSI 9286-8e x 16, RAID10 x 4 |
16.58 | 7.85 | 40.61 | 12.25 | 5.61 |
LSI Nytro WarpDrive 800 GB 4 Partitionen (MLC) |
17.39 | 17.08 | 31.42 | 13.63 | 7.43 |
Toshiba 10K MBF2600RC 600GB H/W LSI 9286-8e x 16, RAID10 x 4 |
24.20 | 10.89 | 57.94 | 20.61 | 7.35 |
Toshiba 15K MK01GRRB 147 GB Software-RAID x 16, RAID10 x 4 |
61.40 | 54.33 | 126.77 | 45.21 | 19.28 |