StorageReview.com

Benchmark úložiště databáze MarkLogic NoSQL

MarkLogic 6 je podniková NoSQL databáze („nejen SQL“), která disponuje flexibilitou a škálovatelností pro řešení dnešních datových výzev, pro které databáze založené na SQL nebyly navrženy. Nabízí také podnikové funkce, jako je vyhledávání, ACID transakce, failover, replikace a zabezpečení pro spouštění kriticky důležitých aplikací. MarkLogic kombinuje funkce databáze, vyhledávání a aplikační služby v jednom systému. Poskytuje funkce, které podniky potřebují k poskytování hodnoty. MarkLogic využívá stávající nástroje, znalosti a zkušenosti a zároveň poskytuje spolehlivou, škálovatelnou a bezpečnou platformu pro kriticky důležitá data.

Společnosti a organizace napříč odvětvími, včetně veřejného sektoru, médií a finančních služeb, těží z unikátní architektury MarkLogic. Jakékoli prostředí, které čelí kombinaci objemu dat, rychlosti, rozmanitosti a složitosti – datové výzvě známé jako Big Data – lze pomocí MarkLogic vylepšit. Mezi příklady řešení postavených na MarkLogic patří analýza informací, podpora rozhodování v reálném čase, řízení rizik, správa digitálních aktiv, digitální dodavatelský řetězec a poskytování obsahu.

MarkLogic Benchmark

Benchmark, který používáme, je interně vyvinutý společností MarkLogic a používá se k vyhodnocení jak hardwarových konfigurací, tak i připravovaných verzí softwaru MarkLogic. Pracovní zátěž je rozdělena do dvou odlišných částí:

  1. Fáze příjmu, kdy je do databáze MarkLogic vložena velká datová sada s indexy.
  2. Fáze dotazu, kde se na vloženou datovou sadu aplikují vyhledávání, zobrazení, aktualizace a mazání. Tyto dotazy také používají funkce MarkLogic, jako jsou fazety, stránkování a záložky.

Použitý korpus je veřejně dostupná kolekce XML Wikipedie. Soubory jsou uloženy na disku v zazipovaném formátu. Pro příjem používáme MarkLogic Content Pump (mlcp).  

Zejména fáze příjmu je náročná na I/O. I/O se dělí do tří kategorií:

  1. Dokumenty jsou zpočátku ingestovány do paměťových úložišť a jediné zápisy na disk jsou ukládání do žurnálu.
  2. Paměťové zóny se rychle přeplní a neustále se zapisují jako paměti na disk. Tím se šetří aktivita.
  3. S rostoucím počtem diskových stojanů je MarkLogic musí sloučit, aby se snížila režijní zátěž dotazů. Sloučení zahrnuje čtení více diskových stojanů, zpětný zápis sloučené verze a smazání originálů.

Abychom zajistili nejvyšší úroveň přesnosti a vynutili uvedení každého zařízení do ustáleného stavu, opakujeme fáze příjmu a dotazování u zařízení založených na flash paměti 24krát. U akcelerátorů aplikací PCIe trvá každý interval 60–120 minut, takže celková doba testu se pohybuje v rozmezí 24–48 hodin. U zařízení s nižší propustností I/O může celková doba testu trvat i několik dní. V tomto testu se zaměřujeme na celkovou latenci každého úložného řešení ve čtyřech oblastech zájmu: zápisy do deníku (J-lat), ukládání zápisů (S-lat) a také latence čtení sloučením (MR-lat) a zápisu sloučením (MW-lat).

Na výše uvedeném diagramu vidíme I/O cesty a latence v MarkLogic:

  • Zápisy do deníku zaznamenávají delta hodnoty do databáze. Když je spuštěn požadavek na aktualizaci, všechny provedené změny stavu databáze se zaznamenají do deníku. Tyto změny lze znovu použít z deníku, aniž by bylo nutné požadavek znovu spustit. Aktualizace mohou být přidání, nahrazení nebo odstranění dokumentů. Deník chrání před výpadky a je zaručeno, že přežije i následný pád systému. Latence zápisů do deníku je zachycena v metrice J-lat.
  • Po načtení dostatečného množství dokumentů se paměť v paměti zaplní a bude vyprázdněna na disk, zapsána jako paměť na disku. Toto vyprázdnění na disk se nazývá uložení. Latence zápisů při uložení je zachycena v S-lat.
  • S rostoucím celkovým počtem databází na disku hrozí problém s efektivitou. Aby MarkLogic mohl číst jeden seznam termínů, musí číst data z každé jednotlivé databáze a sjednotit výsledky. Aby se počet databází udržel na zvládnutelné úrovni, MarkLogic spouští slučování na pozadí. Sloučení čte (Merge Read) některé databáze na disku a vytvoří z nich novou databázi (Merge Write), čímž sloučí a optimalizuje indexy a data a odstraní všechny dříve smazané fragmenty. Latence slučovacích čtení je zachycena v MR-lat a latence slučovacích zápisů v MW-lat.

Během ingestování MarkLogic také indexuje všechny dokumenty, vytváří seznamy termínů atd. Tato aktivita vyžaduje cykly CPU, což z benchmarku dělá dobrou rovnováhu mezi vysokým I/O a vysokým využitím CPU.

Data z Wikipedie byla vybrána také proto, že obsahují texty v jiných jazycích než v angličtině a mimo ASCII, které používáme: arabština, holandština, francouzština, němčina, italština, japonština, korejština, perština, portugalština, ruština, španělština, zjednodušená čínština a tradiční čínština. Tyto možnosti zdůrazňují vícejazyčné vlastnosti MarkLogic. A konečně, statická data, která jsou přijímána, umožňují opakování benchmarku, což je nezbytné pro porovnání výkonu napříč různými hardwarovými konfiguracemi různých verzí softwaru.

Testovací prostředí MarkLogic

Úložná řešení jsou testována pomocí benchmarku MarkLogic NoSQL v testovací laboratoři StorageReview Enterprise s využitím několika serverů připojených přes vysokorychlostní síť. Pro různé segmenty testovacího prostředí MarkLogic NoSQL využíváme servery od společností EchoStreams a Lenovo a pro fabricu, která propojuje zařízení, používáme přepínání a síťové karty Mellanox InfiniBand.

Řešení úložiště je rozděleno do tří částí: hostitel úložiště, MarkLogic NoSQL Database Cluster a MarkLogic Database Client. Jako hostitel úložiště používáme 2U Lenovo ThinkServer RD630 pro prezentaci PCIe aplikačních akcelerátorů, skupiny čtyř SATA/SAS SSD disků a hostitel pro zařízení NAS/SAN pro jejich prezentaci na InfiniBand fabric. Pro MarkLogic Database Cluster používáme čtyřuzlový server EchoStreams GridStreams vybavený osmi procesory Intel Xeon E5-2640, které poskytují výpočetní zdroje potřebné k efektivnímu zatěžování nejrychlejších úložných zařízení. Na straně klienta používáme 1U servery Lenovo ThinkServer RD530, které poskytují pracovní data, jež se načítají do systémové paměti a odesílají do NoSQL Database clusteru přes naši vysokorychlostní síť. Všechny tyto servery propojuje Mellanox 56Gb/s InfiniBand fabric zahrnující přepínače i síťové karty, které nám poskytují nejvyšší přenosové rychlosti a nejnižší latenci, aby neomezovaly výkon vysoce výkonných úložných zařízení.

Propojení Mellanox InfiniBand byla použita k zajištění nejvyššího výkonu a největší síťové efektivity, aby se zajistilo, že připojená zařízení nejsou omezena sítí. Pokud se podíváme pouze na úložná řešení PCIe, jeden akcelerátor aplikací PCIe dokáže snadno zvýšit rychlost přenosu dat o 1–3 GB/s do sítě. Přejděte na úložné zařízení typu all-flash s maximálními přenosovými rychlostmi přesahujícími 10–20 GB/s a rychle uvidíte, jak snadno může být kapacita síťového připojení nasycena, což omezuje celkový výkon celé platformy. Vysokorychlostní připojení InfiniBand umožňují přenos největšího množství dat přes co nejmenší počet připojení, což umožňuje realizovat plné systémové funkce.

Kromě vyšší propustnosti sítě umožňuje InfiniBand také vyšší celkovou efektivitu clusteru. InfiniBand využívá protokoly iSER (iSCSI-RDMA) a SRP (SCSI RDMA Protocol) k nahrazení neefektivního iSCSI TCP stacku funkcí Remote Direct Memory Access (RDMA), což umožňuje téměř nativní přístupové časy pro externí úložiště. iSER a SRP umožňují vyšší efektivitu v celém clusterovaném prostředí tím, že umožňují síťovému provozu obejít CPU systémů a kopírovat data z paměti odesílajících systémů přímo do paměti přijímajících systémů. Naproti tomu tradiční provoz iSCSI směruje síťový provoz složitým procesem vícenásobného kopírování a přenosu, čímž spotřebovává cenné cykly CPU a paměťový prostor a drasticky zvyšuje latenci přenosu dat. V našem prostředí MarkLogic NoSQL využíváme protokol SCSI RDMA k připojení každého uzlu k cílovému subsystému SCSI pro Linux (SCST) běžícímu na našem úložném hostiteli. 

MarkLogic Benchmark Equipment

Hlavním cílem této platformy je zdůraznit, jak si podnikové úložiště vede v reálném podnikovém prostředí a s danou pracovní zátěží, namísto spoléhání se na syntetické nebo pseudosyntetické pracovní zátěže. Syntetické generátory pracovní zátěže skvěle ukazují, jak dobře si úložná zařízení vedou s kontinuálním syntetickým vzorem I/O, ale nezohledňují žádné další vnější proměnné, které ukazují, jak zařízení skutečně fungují v produkčním prostředí. Syntetické generátory pracovní zátěže mají tu výhodu, že opakovaně ukazují čistý vzorec I/O, ale nikdy nereplikují skutečné produkční prostředí. Zavedení výkonu aplikací nad úložné produkty začíná ukazovat, jak dobře úložiště interaguje s ovladači, lokálním operačním systémem, testovanou aplikací, síťovým zásobníkem, síťovým přepínáním a externími servery. To jsou proměnné, které syntetický generátor pracovní zátěže jednoduše nemůže zohlednit, a jsou také řádově náročnější na zdroje a infrastrukturu, pokud jde o vybavení potřebné k provedení tohoto konkrétního benchmarku.

Výsledky výkonu MarkLogic

Pomocí benchmarku MarkLogic NoSQL testujeme širokou škálu úložných řešení, která splňují minimální požadavky testovacího prostředí. Aby bylo úložné zařízení způsobilé pro testování, musí mít použitelnou kapacitu přesahující 650 GB a musí být určeno pro provoz v náročných podnikových podmínkách. Patří sem nové akcelerátory aplikací PCIe, skupiny čtyř podnikových SSD disků SAS nebo SATA a také velká pole pevných disků, která jsou připojena lokálně nebo k síti. Níže jsou uvedeny celkové hodnoty latence zaznamenané ze všech zařízení testovaných dosud v tomto testu. V recenzích produktů se ponořujeme do detailů a porovnáváme konkurenční produkty, zatímco náš hlavní seznam ukazuje stratifikaci různých úložných řešení. 

 

Přístroj Celková průměrná latence S-lat J-lat MR-lat MW-lat
Dell R720 ExpressFlash 350GB
JBOD x 4 (SLC)
1.24 1.56 1.56 0.46 1.37
Huawei Tecal ES3000 2.4 TB
4 oddíly (MLC)
1.31 1.41 1.53 0.98 1.32
Huawei Tecal ES3000 1.2 TB
4 oddíly (MLC)
1.43 1.42 1.76 1.20 1.33
EchoStreams FlacheSAN2 w/ Intel SSD 520
SW RAID0, 4 skupiny po 8 180GB SSD (MLC)
1.48 1.65 2.01 0.81 1.46
Micron P320h 700GB
4 oddíly (SLC)
1.49 1.62 2.13 0.79 1.41
Fusion ioDrive2 Duo MLC 2.4 TB
SW RAID0, vysoce výkonný režim, 4 oddíly (MLC)
1.70 1.73 2.57 0.97 1.51
Fusion ioDrive2 Duo SLC 1.2 TB
SW RAID0, vysoce výkonný režim, 4 oddíly (SLC)
1.72 1.78 2.69 0.90 1.52
OCZ Z-Drive R4 1.6 TB
4 oddíly (MLC)
1.73 1.67 2.38 1.43 1.42
Hitachi Ultrastar SSD400S.B 400GB
JBOD x 4 (SLC)
1.77 1.75 2.72 1.11 1.51
Smart Optimus 400GB
JBOD x 4 (MLC)
1.82 1.69 2.74 1.36 1.49
EchoStreams FlacheSAN2 w/ Intel SSD 520
SW RAID10, 4 skupiny po 8 180GB SSD (MLC)
2.02 2.12 3.02 1.17 1.79
Virident FlashMAX II 2.2 TB
Vysoce výkonný režim, 4 oddíly (MLC)
2.26 2.30 3.39 1.57 1.81
SSD disk Hitachi Ultrastar 400M 400GB
JBOD x 4 (MLC)
2.58 2.09 4.49 2.07 1.68
OCZ Talos 2 400GB
JBOD x 4 (MLC)
2.62 2.10 4.33 2.28 1.78
Intel DC S3700 200GB
JBOD x 4 (MLC)
3.27 2.71 5.80 2.59 1.95
OCZ Talos 2 200GB
JBOD x 4 (MLC)
3.53 2.62 6.16 3.40 1.96
SSD disk Intel 910 800 GB
Bez RAID, JBOD x 4 (MLC)
4.29 3.21 8.27 3.43 2.23
Fusion ioDrive2 MLC 1.2 TB
SW RAID0, vysoce výkonný režim, 4 oddíly (MLC)
4.69 3.58 9.15 3.74 2.28
OCZ Deneva 2 200GB
JBOD x 4 (MLC)
6.65 5.38 13.48 4.54 3.18
Kingston E100 200GB
JBOD x 4 (MLC)
8.00 6.82 16.22 5.46 3.49
Smart CloudSpeed ​​500 240GB
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
SW RAID0, vysoce výkonný režim, 4 oddíly (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 147GB
Hardwarová jednotka LSI 9286-8e x16, RAID10 x4
16.58 7.85 40.61 12.25 5.61
LSI Nytro WarpDrive 800GB
4 oddíly (MLC)
17.39 17.08 31.42 13.63 7.43
Toshiba 10K MBF2600RC 600GB
Hardwarová jednotka LSI 9286-8e x16, RAID10 x4
24.20 10.89 57.94 20.61 7.35
Toshiba 15K MK01GRRB 147GB
Softwarový RAID x 16, RAID10 x 4
61.40 54.33 126.77 45.21 19.28

Stránka produktu MarkLogic