MarkLogic 6 to korporacyjna baza danych NoSQL („Not Only SQL”), która oferuje elastyczność i skalowalność, aby sprostać dzisiejszym wyzwaniom związanym z danymi, do których bazy danych oparte na SQL nie zostały zaprojektowane. Oferuje również funkcje klasy korporacyjnej, takie jak wyszukiwanie, transakcje ACID, przełączanie awaryjne, replikacja i zabezpieczenia, umożliwiające uruchamianie aplikacji o znaczeniu krytycznym. MarkLogic łączy funkcjonalność bazy danych, wyszukiwania i usługi aplikacyjne w jednym systemie. Zapewnia funkcjonalność niezbędną przedsiębiorstwom do generowania wartości. MarkLogic wykorzystuje istniejące narzędzia, wiedzę i doświadczenie, zapewniając jednocześnie niezawodną, skalowalną i bezpieczną platformę dla danych o znaczeniu krytycznym.
Firmy i organizacje z różnych branż, w tym z sektora publicznego, mediów i usług finansowych, odniosły korzyści z unikalnej architektury MarkLogic. Każde środowisko, które zmaga się z połączeniem wolumenu, prędkości, różnorodności i złożoności danych – wyzwaniem znanym jako Big Data – może zostać ulepszone dzięki MarkLogic. Przykładowe rozwiązania zbudowane na MarkLogic obejmują analizę danych, wspomaganie decyzji w czasie rzeczywistym, zarządzanie ryzykiem, zarządzanie zasobami cyfrowymi, cyfrowy łańcuch dostaw i dostarczanie treści.
Test porównawczy MarkLogic
Benchmark, z którego korzystamy, został opracowany wewnętrznie przez MarkLogic i służy do oceny zarówno konfiguracji sprzętowych, jak i nadchodzących wydań oprogramowania MarkLogic. Obciążenie jest podzielone na dwie odrębne części:
- Faza wchłaniania, w której duży zestaw danych wraz z indeksami zostaje wprowadzony do bazy danych MarkLogic.
- Faza zapytania, w której wyszukiwania, aktualizacje widoków i usuwania są stosowane do wstawionego zestawu danych. Zapytania te korzystają również z funkcji MarkLogic, takich jak fasety, paginacja i zakładki.
Wykorzystany korpus to publicznie dostępna kolekcja XML Wikipedii. Pliki są przechowywane na dysku w formacie zip. Do pobierania danych używamy MarkLogic Content Pump (mlcp).
Faza wchłaniania jest szczególnie intensywna pod względem operacji wejścia/wyjścia. Operacje wejścia/wyjścia dzielą się na trzy kategorie:
- Początkowo dokumenty są zapisywane w pamięci operacyjnej, a jedynym zapisem na dysku są zapisy w dzienniku.
- Stan pamięci szybko się przepełnia i jest stale zapisywany jako stan dysku. To jest działanie oszczędzające.
- Wraz ze wzrostem liczby stanowisk na dysku, MarkLogic musi je scalić, aby zmniejszyć obciążenie zapytań. Scalanie obejmuje odczyt wielu stanowisk na dysku, zapisanie scalonej, pojedynczej wersji i usunięcie oryginałów.
Aby zapewnić najwyższy poziom dokładności i wymusić na każdym urządzeniu przejście w stan ustalony, fazy pobierania i zapytania powtarzamy 24 razy w przypadku urządzeń opartych na pamięci flash. W przypadku akceleratorów aplikacji PCIe każdy interwał trwa od 60 do 120 minut, co oznacza, że całkowity czas testu mieści się w przedziale 24–48 godzin. W przypadku urządzeń o niższej przepustowości wejścia/wyjścia, całkowity czas testu może wynosić kilka dni. W tym teście skupiamy się na analizie ogólnego opóźnienia dla każdego rozwiązania pamięci masowej w czterech obszarach zainteresowania: zapisów do dziennika (J-lat), zapisów do zapisu (S-lat), a także opóźnień odczytu i zapisu w trybie scalania (MR-lat) i opóźnienia zapisu w trybie scalania (MW-lat).
Na powyższym diagramie widzimy ścieżki wejścia/wyjścia i opóźnienia w MarkLogic:
- Zapisy w dzienniku rejestrują zmiany w bazie danych. Po uruchomieniu żądania aktualizacji wszystkie zmiany wprowadzone w stanie bazy danych są rejestrowane w dzienniku. Zmiany te można ponownie zastosować z dziennika, bez konieczności ponownego uruchamiania żądania. Aktualizacje mogą obejmować dodawanie, zastępowanie lub usuwanie dokumentów. Dziennik chroni przed awariami i gwarantuje przetrwanie awarii systemu. Opóźnienie zapisów w dzienniku jest rejestrowane w metryce J-lat.
- Po załadowaniu wystarczającej liczby dokumentów, pamięć podręczna zostanie zapełniona i przeniesiona na dysk, gdzie zostanie zapisana jako pamięć podręczna. To przenoszenie na dysk nazywa się zapisem. Opóźnienie zapisu jest rejestrowane w S-lat.
- Wraz ze wzrostem całkowitej liczby stanowisk na dysku, pojawia się zagrożenie wystąpienia problemu wydajności. Aby odczytać pojedynczą listę terminów, MarkLogic musi odczytać dane listy terminów z każdej indywidualnej pozycji i ujednolicić wyniki. Aby utrzymać liczbę stanowisk na rozsądnym poziomie, MarkLogic uruchamia scalanie w tle. Scalanie odczytuje (Merge Read – Odczyt Scalania) niektóre stanowiska na dysku i tworzy z nich nowe, pojedyncze stanowisko (Merge Write – Zapis Scalania), łącząc i optymalizując indeksy i dane, a także usuwając wszelkie wcześniej usunięte fragmenty. Opóźnienie odczytu scalania jest rejestrowane w MR-lat, a opóźnienie zapisu scalania w MW-lat.
Podczas przetwarzania MarkLogic indeksuje również wszystkie dokumenty, tworzy listy terminów itd. Ta czynność wymaga cykli procesora, dzięki czemu test porównawczy stanowi dobrą równowagę między wysokim obciążeniem procesora i wysokim wykorzystaniem wejścia/wyjścia.
Dane z Wikipedii zostały również wybrane, ponieważ zawierają one tekst w językach innych niż angielski i ASCII, z których korzystamy: arabskim, holenderskim, francuskim, niemieckim, włoskim, japońskim, koreańskim, perskim, portugalskim, rosyjskim, hiszpańskim, chińskim uproszczonym i chińskim tradycyjnym. Opcje te podkreślają wielojęzyczność oprogramowania MarkLogic. Wreszcie, pobrane dane statyczne zapewniają powtarzalność testu porównawczego, co jest niezbędne do porównywania wydajności w różnych konfiguracjach sprzętowych różnych wersji oprogramowania.
Środowisko testowe MarkLogic
Rozwiązania pamięci masowej są testowane za pomocą testu MarkLogic NoSQL w laboratorium testowym StorageReview Enterprise, wykorzystując wiele serwerów połączonych szybką siecią. Wykorzystujemy serwery EchoStreams i Lenovo dla różnych segmentów środowiska testowego MarkLogic NoSQL, a do struktury łączącej urządzenia używamy przełączników Mellanox InfiniBand i kart sieciowych.
Rozwiązanie pamięci masowej jest podzielone na trzy sekcje: host pamięci masowej, klaster bazy danych MarkLogic NoSQL oraz klient bazy danych MarkLogic. Jako host pamięci masowej używamy serwera Lenovo ThinkServer RD630 o wysokości 2U do prezentacji akceleratorów aplikacji PCIe, grup czterech dysków SSD SATA/SAS oraz hosta dla urządzeń NAS/SAN do prezentacji ich w sieci InfiniBand. W przypadku klastra bazy danych MarkLogic używamy czterowęzłowego serwera EchoStreams GridStreams wyposażonego w osiem procesorów Intel Xeon E5-2640, aby zapewnić zasoby obliczeniowe niezbędne do efektywnego obciążenia najszybszych urządzeń pamięci masowej. Po stronie klienta używamy serwerów Lenovo ThinkServer RD530 o wysokości 1U, które dostarczają dane robocze ładowane do pamięci systemowej i przesyłane do klastra bazy danych NoSQL za pośrednictwem naszej szybkiej sieci. Wszystkie te serwery łączy infrastruktura Mellanox InfiniBand 56 Gb/s, obejmująca zarówno przełączniki, jak i karty sieciowe, które zapewniają najwyższą prędkość transferu i najniższe opóźnienia, nie ograniczając wydajności urządzeń pamięci masowej o wysokiej wydajności.
Zastosowano połączenia Mellanox InfiniBand, aby zapewnić najwyższą wydajność i efektywność sieci, dzięki czemu podłączone urządzenia nie są ograniczone przez sieć. Patrząc tylko na rozwiązania pamięci masowej PCIe, pojedynczy akcelerator aplikacji PCIe może z łatwością przesłać do sieci więcej niż 1-3 GB/s. Przechodząc do urządzenia pamięci masowej all-flash o szczytowej prędkości transferu przekraczającej 10-20 GB/s, można szybko zauważyć, jak łatwo przepustowość łączy sieciowych ulega nasyceniu, ograniczając ogólną wydajność całej platformy. Łącza o wysokiej przepustowości InfiniBand umożliwiają przesyłanie największej ilości danych za pomocą najmniejszej liczby łączy, co pozwala na pełne wykorzystanie możliwości systemu.
Oprócz wyższej przepustowości sieci, InfiniBand zapewnia również wyższą ogólną wydajność klastra. InfiniBand wykorzystuje iSER (iSCSI-RDMA) i SRP (protokół SCSI RDMA), aby zastąpić nieefektywny stos TCP iSCSI funkcjonalnością zdalnego bezpośredniego dostępu do pamięci (RDMA), co pozwala na uzyskanie niemal natywnego czasu dostępu do pamięci zewnętrznej. iSER i SRP zapewniają większą wydajność w całym środowisku klastrowym, umożliwiając ruch sieciowy omijający procesory systemów i kopiowanie danych z pamięci systemów wysyłających bezpośrednio do pamięci systemów odbierających. Dla porównania, tradycyjne operacje iSCSI kierują ruch sieciowy przez złożony proces wielokrotnego kopiowania i przesyłania, pochłaniając cenne cykle procesora i przestrzeń pamięci oraz drastycznie zwiększając opóźnienia w przesyłaniu danych. W naszym środowisku MarkLogic NoSQL wykorzystujemy protokół SCSI RDMA do połączenia każdego węzła z docelowym podsystemem SCSI dla systemu Linux (SCST) działającym na naszym hoście pamięci masowej.
Sprzęt porównawczy MarkLogic
- Czterowęzłowy klaster baz danych EchoStreams GridStreams
- Osiem procesorów Intel E5-2640 (dwa na węzeł, 2.5 GHz, 6 rdzeni, 15 MB pamięci podręcznej)
- 256 GB pamięci RAM (64 GB na węzeł, 8 GB x 8 Micron DDR3, 32 GB na procesor)
- 4 x 100GB Micron RealSSD P400e (Jeden na węzeł, wbudowany interfejs SATA)
- 4 x adapter Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Serwer Lenovo ThinkServer RD530 Klient bazy danych
- Dwa procesory Intel E5-2640 (2.5 GHz, 6 rdzeni, pamięć podręczna 15 MB)
- 64 GB pamięci RAM (8 GB x 8 Micron DDR3, 32 GB na procesor)
- 200 GB x 3 Toshiba 10k SAS RAID5 (przez LSI 9260-8i)
- 1 x adapter Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Serwer Lenovo ThinkServer RD630 Host pamięci masowej
- Dwa procesory Intel E5-2680 (2.7 GHz, 8 rdzeni, pamięć podręczna 20 MB)
- 32 GB pamięci RAM (8 GB x 4 DDR3, 16 GB na procesor)
- 100 GB mikronów Dysk SSD RealSSD P400e (poprzez LSI 9207-8i)
- 1 x adapter Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Zewnętrzny JBOD: iXsystems Titan iX-316J
- Przełącznik Mellanox SX6036 InfiniBand
- 36 portów FDR (56 Gb/s)
- Łączna przepustowość przełączania 4 Tb/s
Głównym celem tej platformy jest pokazanie, jak pamięć masowa klasy enterprise działa w rzeczywistym środowisku korporacyjnym i przy danym obciążeniu, zamiast polegać na obciążeniach syntetycznych lub pseudosyntetycznych. Generatory obciążeń syntetycznych doskonale pokazują, jak dobrze urządzenia pamięci masowej działają z ciągłym syntetycznym wzorcem wejścia/wyjścia, ale nie biorą pod uwagę żadnych innych zmiennych zewnętrznych, które pokazują, jak urządzenia faktycznie działają w środowiskach produkcyjnych. Generatory obciążeń syntetycznych mają tę zaletę, że raz po raz pokazują czysty wzorzec wejścia/wyjścia, ale nigdy nie odtworzą prawdziwego środowiska produkcyjnego. Wprowadzenie wydajności aplikacji na bazie produktów pamięci masowej pokazuje, jak dobrze pamięć masowa współdziała ze swoimi sterownikami, lokalnym systemem operacyjnym, testowaną aplikacją, stosem sieciowym, przełącznikami sieciowymi i serwerami zewnętrznymi. Są to zmienne, których generator obciążeń syntetycznych po prostu nie jest w stanie uwzględnić, a ponadto są one o rząd wielkości bardziej zasobochłonne i wymagają o wiele więcej zasobów i infrastruktury pod względem sprzętu wymaganego do wykonania tego konkretnego testu porównawczego.
Wyniki wydajności MarkLogic
Testujemy szeroką gamę rozwiązań pamięci masowej za pomocą benchmarku MarkLogic NoSQL, które spełniają minimalne wymagania środowiska testowego. Aby zakwalifikować się do testów, urządzenie pamięci masowej musi mieć użyteczną pojemność przekraczającą 650 GB i być przystosowane do pracy w stresujących warunkach korporacyjnych. Obejmuje to nowe akceleratory aplikacji PCIe, grupy czterech dysków SSD SAS lub SATA klasy enterprise, a także duże macierze dysków twardych podłączonych lokalnie lub do sieci. Poniżej przedstawiono ogólne wartości opóźnień zebrane dla wszystkich urządzeń przetestowanych do tej pory w tym teście. W recenzjach produktów zagłębiamy się w szczegóły i porównujemy konkurencyjne produkty, a nasza główna lista przedstawia stratyfikację różnych rozwiązań pamięci masowej.
| Urządzenie | Całkowite średnie opóźnienie | Listwa | J-szer. geogr. | MR-szer. geogr. | MW-szer. geogr. |
|---|---|---|---|---|---|
| Dell R720 ExpressFlash 350 GB JBOD x 4 (SLC) |
1.24 | 1.56 | 1.56 | 0.46 | 1.37 |
| Huawei Tecal ES3000 2.4TB 4 partycje (MLC) |
1.31 | 1.41 | 1.53 | 0.98 | 1.32 |
| Huawei Tecal ES3000 1.2TB 4 partycje (MLC) |
1.43 | 1.42 | 1.76 | 1.20 | 1.33 |
| EchoStreams FlacheSAN2 w/ Intel SSD 520 Oprogramowanie RAID0, 4 grupy po 8 dysków SSD 180 GB (MLC) |
1.48 | 1.65 | 2.01 | 0.81 | 1.46 |
| Micron P320h 700GB 4 partycje (SLC) |
1.49 | 1.62 | 2.13 | 0.79 | 1.41 |
| Fusion ioDrive2 Duo MLC 2.4 TB Oprogramowanie RAID0, tryb wysokiej wydajności, 4 partycje (MLC) |
1.70 | 1.73 | 2.57 | 0.97 | 1.51 |
| Fusion ioDrive2 Duo SLC 1.2 TB Oprogramowanie RAID0, tryb wysokiej wydajności, 4 partycje (SLC) |
1.72 | 1.78 | 2.69 | 0.90 | 1.52 |
| Dysk OCZ Z-Drive R4 1.6 TB 4 partycje (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 |
| Inteligentny Optimus 400 GB JBOD x 4 (MLC) |
1.82 | 1.69 | 2.74 | 1.36 | 1.49 |
| EchoStreams FlacheSAN2 w/ Intel SSD 520 Oprogramowanie RAID10, 4 grupy po 8 dysków SSD 180 GB (MLC) |
2.02 | 2.12 | 3.02 | 1.17 | 1.79 |
| Virident FlashMAX II 2.2 TB Tryb wysokiej wydajności, 4 partycje (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 400GB 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 200GB JBOD x 4 (MLC) |
3.53 | 2.62 | 6.16 | 3.40 | 1.96 |
| Dysk SSD Intel 910 800 GB Bez RAID, JBOD x 4 (MLC) |
4.29 | 3.21 | 8.27 | 3.43 | 2.23 |
| Dysk twardy Fusion ioDrive2 MLC 1.2 TB Oprogramowanie RAID0, tryb wysokiej wydajności, 4 partycje (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 240 GB JBOD x 4 (MLC) |
11.06 | 9.07 | 22.74 | 7.19 | 5.23 |
| Micron P400m 400 GB JBOD x 4 (MLC) |
12.60 | 9.70 | 27.51 | 8.70 | 4.51 |
| Fusion ioDrive Duo MLC 1.28 TB Oprogramowanie RAID0, tryb wysokiej wydajności, 4 partycje (MLC) |
12.89 | 10.52 | 26.77 | 9.70 | 4.58 |
| Micron P400m 200 GB JBOD x 4 (MLC) |
14.98 | 11.99 | 31.93 | 10.54 | 5.46 |
| Toshiba 15K MK01GRRB 147GB Sprzęt LSI 9286-8e x 16, RAID10 x 4 |
16.58 | 7.85 | 40.61 | 12.25 | 5.61 |
| Dysk LSI Nytro WarpDrive 800 GB 4 partycje (MLC) |
17.39 | 17.08 | 31.42 | 13.63 | 7.43 |
| Toshiba 10K MBF2600RC 600GB Sprzęt LSI 9286-8e x 16, RAID10 x 4 |
24.20 | 10.89 | 57.94 | 20.61 | 7.35 |
| Toshiba 15K MK01GRRB 147GB Oprogramowanie RAID x 16, RAID10 x 4 |
61.40 | 54.33 | 126.77 | 45.21 | 19.28 |




Amazon