MarkLogic 6 est une base de données Enterprise NoSQL (« Not Only SQL ») qui a la flexibilité et l'évolutivité nécessaires pour gérer les défis actuels en matière de données que les bases de données SQL n'ont pas été conçues pour gérer. Il dispose également de fonctionnalités de niveau entreprise telles que la recherche, les transactions ACID, le basculement, la réplication et la sécurité pour exécuter des applications critiques. MarkLogic combine la fonctionnalité de base de données, la recherche et les services d'application dans un seul système. Il fournit les fonctionnalités dont les entreprises ont besoin pour générer de la valeur. MarkLogic exploite les outils, les connaissances et l'expérience existants tout en fournissant une plate-forme fiable, évolutive et sécurisée pour les données critiques.
Les entreprises et les organisations de tous les secteurs, y compris le secteur public, les médias et les services financiers, ont bénéficié de l'architecture unique de MarkLogic. Tout environnement confronté à une combinaison de volume de données, de vitesse, de variété et de complexité (un défi de données connu sous le nom de Big Data) peut être amélioré avec MarkLogic. Les exemples de solutions basées sur MarkLogic incluent l'analyse du renseignement, l'aide à la décision en temps réel, la gestion des risques, la gestion des actifs numériques, la chaîne d'approvisionnement numérique et la diffusion de contenu.
Benchmark MarkLogic
La référence que nous utilisons est développée en interne par MarkLogic et est utilisée pour évaluer à la fois les configurations matérielles et les prochaines versions du logiciel MarkLogic. La charge de travail est divisée en deux parties distinctes :
- Phase d'ingestion où un grand ensemble de données est inséré avec des index dans la base de données MarkLogic.
- Phase de requête où les recherches, les mises à jour des vues et les suppressions sont appliquées à l'ensemble de données inséré. Ces requêtes utilisent également des fonctionnalités MarkLogic telles que les facettes, la pagination et les signets.
Le corpus utilisé est la collection Wikipédia accessible au public xml. Les fichiers sont conservés sur disque au format compressé. Pour l'ingestion, nous utilisons MarkLogic Content Pump (mlcp).
La phase d'ingestion, en particulier, est intensive en E/S. Les E/S sont réparties en trois catégories :
- Initialement, les documents sont ingérés dans des supports en mémoire et les seules écritures sur disque sont des sauvegardes dans le Journal.
- Les supports en mémoire débordent rapidement et sont continuellement écrits en tant que supports sur disque. C'est une activité salvatrice.
- À mesure que le nombre de supports sur disque augmente, MarkLogic doit les fusionner pour réduire la surcharge des requêtes. La fusion implique la lecture de plusieurs supports sur disque, la réécriture d'une version unique fusionnée et la suppression des originaux.
Pour garantir le plus haut niveau de précision et forcer chaque appareil à se mettre en état d'équilibre, nous répétons les phases d'ingestion et de requête 24 fois pour les appareils basés sur Flash. Pour les accélérateurs d'application PCIe, chaque intervalle prend entre 60 et 120 minutes, ce qui place la durée totale du test dans une plage de 24 à 48 heures. Pour les périphériques avec un débit d'E/S inférieur, la durée totale du test peut s'étendre sur plusieurs jours. Notre objectif dans ce test est d'examiner la latence globale de chaque solution de stockage dans quatre domaines d'intérêt : les écritures de journal (J-lat), les écritures de sauvegarde (S-lat), ainsi que la lecture de fusion (MR-lat) et l'écriture de fusion. latence (MW-lat).
Dans le diagramme ci-dessus, nous voyons les chemins d'E/S et les latences dans MarkLogic :
- Les écritures de journal enregistrent les deltas dans la base de données. Lorsqu'une demande de mise à jour s'exécute, toutes les modifications qu'elle a apportées à l'état de la base de données sont enregistrées dans le journal. Ces modifications peuvent être appliquées à nouveau depuis le journal, sans relancer la requête. Les mises à jour peuvent être des ajouts, des remplacements ou des suppressions de documents. Le journal protège des pannes, il est garanti de survivre à un plantage du système par la suite. La latence des écritures dans le Journal est capturée dans la métrique J-lat
- Une fois que suffisamment de documents ont été chargés, le support en mémoire se remplit et est vidé sur le disque, écrit en tant que support sur disque. Ce vidage sur disque s'appelle une sauvegarde. La latence des écritures de sauvegarde est capturée en S-lat
- À mesure que le nombre total de supports sur disque augmente, un problème d'efficacité menace d'émerger. Pour lire une seule liste de termes, MarkLogic doit lire les données de la liste de termes de chaque stand individuel et unifier les résultats. Pour maintenir le nombre de stands à un niveau gérable, MarkLogic exécute des fusions en arrière-plan. Une fusion lit (Merge Read) certains des stands sur le disque et crée un nouveau stand singulier à partir d'eux Merge Write), fusionnant et optimisant les index et les données, ainsi que la suppression de tous les fragments précédemment supprimés. La latence des lectures de fusion est capturée dans MR-lat et la latence des écritures de fusion dans MW-lat.
Lors de l'ingestion, MarkLogic indexe également tous les documents, crée des listes de termes, etc. Cette activité nécessite des cycles CPU qui font du benchmark un bon équilibre entre les E/S élevées et l'utilisation élevée du CPU.
Les données de Wikipédia ont également été choisies car elles contiennent du texte non anglais et non ASCII dont nous utilisons : arabe, néerlandais, français, allemand, italien, japonais, coréen, persan, portugais, russe, espagnol, chinois simplifié et chinois traditionnel. Ces options mettent l'accent sur les fonctionnalités multilingues de MarkLogic. Enfin, les données statiques ingérées rendent le benchmark reproductible, ce qui est essentiel pour les comparaisons de performances entre les différentes configurations matérielles de plusieurs versions logicielles.
Environnement de test MarkLogic
Les solutions de stockage sont testées avec le benchmark MarkLogic NoSQL dans le StorageReview Enterprise Test Lab en utilisant plusieurs serveurs connectés sur un réseau à haut débit. Nous utilisons des serveurs d'EchoStreams et de Lenovo pour différents segments de l'environnement de test MarkLogic NoSQL, et pour la structure qui connecte l'équipement, nous utilisons la commutation et les cartes réseau Mellanox InfiniBand.
La solution de stockage est divisée en trois sections : l'hôte de stockage, le cluster de bases de données MarkLogic NoSQL et le client de base de données MarkLogic. Pour l'hôte de stockage, nous utilisons un Lenovo ThinkServer RD2 630U pour présenter les accélérateurs d'application PCIe, des groupes de quatre SSD SATA/SAS et un hôte pour les équipements NAS/SAN pour les présenter sur la structure InfiniBand. Pour le cluster de bases de données MarkLogic, nous utilisons un EchoStreams GridStreams serveur à quatre nœuds équipé de huit processeurs Intel Xeon E5-2640 pour fournir les ressources de calcul nécessaires pour solliciter efficacement les périphériques de stockage les plus rapides. Côté client, nous utilisons des serveurs 1U Lenovo ThinkServer RD530 qui fournissent les données de travail qui sont chargées dans la mémoire système et poussées vers le cluster de base de données NoSQL sur notre réseau à haut débit. Reliant tous ces serveurs ensemble, une structure InfiniBand Mellanox 56 Gb/s comprend à la fois un commutateur et des cartes réseau qui nous offrent les vitesses de transfert les plus élevées et la latence la plus faible pour ne pas limiter les performances des périphériques de stockage hautes performances.
Les interconnexions Mellanox InfiniBand ont été utilisées pour fournir les meilleures performances et la plus grande efficacité du réseau afin de garantir que les appareils connectés ne sont pas limités au réseau. En regardant uniquement les solutions de stockage PCIe, un seul accélérateur d'application PCIe peut facilement conduire plus de 1 à 3 Go/s sur le réseau. Passez à une appliance de stockage 10 % flash avec des vitesses de transfert maximales supérieures à 20-XNUMX Go/s et vous pouvez rapidement voir comment la capacité de liaison réseau peut être facilement saturée, limitant les performances globales de l'ensemble de la plate-forme. Les liaisons à large bande passante d'InfiniBand permettent de déplacer la plus grande quantité de données sur le moins de liaisons, ce qui permet d'exploiter toutes les capacités du système.
En plus d'un débit réseau plus élevé, InfiniBand permet également une plus grande efficacité globale du cluster. InfiniBand utilise iSER (iSCSI-RDMA) et SRP (protocole SCSI RDMA) pour remplacer la pile TCP iSCSI inefficace par la fonctionnalité d'accès direct à la mémoire à distance (RDMA), permettant des temps d'accès quasi natifs pour le stockage externe. iSER et SRP permettent une plus grande efficacité dans l'environnement en cluster en permettant au trafic réseau de contourner les processeurs des systèmes et en permettant aux données d'être copiées de la mémoire des systèmes émetteurs directement vers la mémoire des systèmes récepteurs. En comparaison, le fonctionnement iSCSI traditionnel achemine le trafic réseau via un processus complexe de copie et de transfert multiples, consommant de précieux cycles CPU et de l'espace mémoire, et augmentant considérablement les latences de transfert de données. Dans notre environnement MarkLogic NoSQL, nous utilisons le protocole SCSI RDMA pour connecter chaque nœud à un sous-système cible SCSI pour Linux (SCST) exécuté sur notre hôte de stockage.
Équipement de référence MarkLogic
- Cluster de base de données à quatre nœuds EchoStreams GridStreams
- Huit processeurs Intel E5-2640 (deux par nœud, 2.5 GHz, 6 cœurs, 15 Mo de cache)
- 256 Go de RAM (64 Go par nœud, 8 Go x 8 microns DDR3, 32 Go par processeur)
- 4 x 100GB Micron RealSSD P400e (Un par nœud, SATA intégré)
- 4 adaptateurs Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Lenovo Think Server RD530 Client de base de données
- Deux processeurs Intel E5-2640 (2.5 GHz, 6 cœurs, 15 Mo de cache)
- 64 Go de RAM (8 Go x 8 microns DDR3, 32 Go par processeur)
- 200 Go x 3 Toshiba 10k SAS RAID5 (via LSI 9260-8i)
- 1 adaptateurs Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Lenovo Think Server RD630 Hôte de stockage
- Deux processeurs Intel E5-2680 (2.7 GHz, 8 cœurs, 20 Mo de cache)
- 32 Go de RAM (8 Go x 4 DDR3, 16 Go par processeur)
- 100 Go de microns SSD RealSSD P400e (via LSI 9207-8i)
- 1 adaptateurs Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- JBOD externe : iXsystems Titan iX-316J
- Commutateur InfiniBand Mellanox SX6036
- 36 ports FDR (56 Go/s)
- Capacité de commutation agrégée de 4 To/s
L'objectif principal de cette plate-forme est de mettre en évidence les performances du stockage d'entreprise dans un environnement et une charge de travail d'entreprise réels, au lieu de s'appuyer sur des charges de travail synthétiques ou pseudo-synthétiques. Les générateurs de charge de travail synthétiques sont excellents pour montrer les performances des périphériques de stockage avec un modèle d'E/S synthétique continu, mais ils ne prennent en compte aucune des autres variables externes qui montrent comment les périphériques fonctionnent réellement dans les environnements de production. Les générateurs de charge de travail synthétiques ont l'avantage d'afficher un modèle d'E/S propre à maintes reprises, mais ne reproduiront jamais un véritable environnement de production. L'introduction des performances des applications en plus des produits de stockage commence à montrer à quel point le stockage interagit avec ses pilotes, le système d'exploitation local, l'application testée, la pile réseau, la commutation réseau et les serveurs externes. Ce sont des variables qu'un générateur de charge de travail synthétique ne peut tout simplement pas prendre en compte, et sont également un ordre de grandeur plus gourmand en ressources et en infrastructure en termes d'équipement requis pour exécuter ce benchmark particulier.
Résultats de performances MarkLogic
Nous testons une large gamme de solutions de stockage avec le benchmark MarkLogic NoSQL qui répondent aux exigences minimales de l'environnement de test. Pour être éligible aux tests, le périphérique de stockage doit avoir une capacité utilisable supérieure à 650 Go et être conçu pour fonctionner dans des conditions d'entreprise stressantes. Cela inclut de nouveaux accélérateurs d'application PCIe, des groupes de quatre SSD d'entreprise SAS ou SATA, ainsi que de grandes baies de disques durs connectées localement ou au réseau. Vous trouverez ci-dessous les chiffres de latence globaux capturés à partir de tous les appareils testés à ce jour dans ce test. Dans les revues de produits, nous plongeons plus en détail et mettons les produits concurrents en tête-à-tête tandis que notre liste principale montre la stratification des différentes solutions de stockage.
Appareil | Latence moyenne globale | S-lat | J-lat | MR-lat | MW-lat |
---|---|---|---|---|---|
Dell R720 ExpressFlash 350 Go JBODx4 (SLC) |
1.24 | 1.56 | 1.56 | 0.46 | 1.37 |
Huawei Tecal ES3000 2.4 To 4 partitions (MLC) |
1.31 | 1.41 | 1.53 | 0.98 | 1.32 |
Huawei Tecal ES3000 1.2 To 4 partitions (MLC) |
1.43 | 1.42 | 1.76 | 1.20 | 1.33 |
EchoStreams FlacheSAN2 w/ Intel SSD 520 S/W RAID0, 4 groupes de 8 SSD de 180 Go (MLC) |
1.48 | 1.65 | 2.01 | 0.81 | 1.46 |
Micron P320h 700 Go 4 partitions (SLC) |
1.49 | 1.62 | 2.13 | 0.79 | 1.41 |
Fusion ioDrive2 Duo MLC 2.4 To S/W RAID0, mode hautes performances, 4 partitions (MLC) |
1.70 | 1.73 | 2.57 | 0.97 | 1.51 |
Fusion ioDrive2 Duo SLC 1.2 To S/W RAID0, mode hautes performances, 4 partitions (SLC) |
1.72 | 1.78 | 2.69 | 0.90 | 1.52 |
OCZ Z-Drive R4 1.6 To 4 partitions (MLC) |
1.73 | 1.67 | 2.38 | 1.43 | 1.42 |
Hitachi Ultrastar SSD400S.B 400 Go JBODx4 (SLC) |
1.77 | 1.75 | 2.72 | 1.11 | 1.51 |
Optimus intelligent 400 Go JBODx4 (MLC) |
1.82 | 1.69 | 2.74 | 1.36 | 1.49 |
EchoStreams FlacheSAN2 w/ Intel SSD 520 S/W RAID10, 4 groupes de 8 SSD de 180 Go (MLC) |
2.02 | 2.12 | 3.02 | 1.17 | 1.79 |
Virident FlashMAX II 2.2 To Mode haute performance, 4 partitions (MLC) |
2.26 | 2.30 | 3.39 | 1.57 | 1.81 |
Hitachi Ultrastar SSD400M 400 Go JBODx4 (MLC) |
2.58 | 2.09 | 4.49 | 2.07 | 1.68 |
OCZ Talos 2 400 Go JBODx4 (MLC) |
2.62 | 2.10 | 4.33 | 2.28 | 1.78 |
Intel DC S3700 200 Go JBODx4 (MLC) |
3.27 | 2.71 | 5.80 | 2.59 | 1.95 |
OCZ Talos 2 200 Go JBODx4 (MLC) |
3.53 | 2.62 | 6.16 | 3.40 | 1.96 |
SSD Intel 910 800 Go Non RAID, JBOD x 4 (MLC) |
4.29 | 3.21 | 8.27 | 3.43 | 2.23 |
Fusion ioDrive2 MLC 1.2 To S/W RAID0, mode hautes performances, 4 partitions (MLC) |
4.69 | 3.58 | 9.15 | 3.74 | 2.28 |
OCZ Deneva 2 200 Go JBODx4 (MLC) |
6.65 | 5.38 | 13.48 | 4.54 | 3.18 |
Kingston E100 200 Go JBODx4 (MLC) |
8.00 | 6.82 | 16.22 | 5.46 | 3.49 |
Smart CloudSpeed 500 240 Go JBODx4 (MLC) |
11.06 | 9.07 | 22.74 | 7.19 | 5.23 |
Micron P400m 400 Go JBODx4 (MLC) |
12.60 | 9.70 | 27.51 | 8.70 | 4.51 |
Fusion ioDrive Duo MLC 1.28 To S/W RAID0, mode hautes performances, 4 partitions (MLC) |
12.89 | 10.52 | 26.77 | 9.70 | 4.58 |
Micron P400m 200 Go JBODx4 (MLC) |
14.98 | 11.99 | 31.93 | 10.54 | 5.46 |
Toshiba 15K MK01GRRB 147 Go Matériel LSI 9286-8e x 16, RAID10 x 4 |
16.58 | 7.85 | 40.61 | 12.25 | 5.61 |
LSI Nytro WarpDrive 800 Go 4 partitions (MLC) |
17.39 | 17.08 | 31.42 | 13.63 | 7.43 |
Toshiba 10K MBF2600RC 600 Go Matériel LSI 9286-8e x 16, RAID10 x 4 |
24.20 | 10.89 | 57.94 | 20.61 | 7.35 |
Toshiba 15K MK01GRRB 147 Go Logiciel RAID x 16, RAID10 x 4 |
61.40 | 54.33 | 126.77 | 45.21 | 19.28 |