存儲評論網

MarkLogic NoSQL 數據庫存儲基準

MarkLogic 6 是一個企業級 NoSQL(“Not Only SQL”)數據庫,它具有靈活性和可擴展性,可以應對當今基於 SQL 的數據庫無法應對的數據挑戰。 它還具有企業級功能,如搜索、ACID 事務、故障轉移、複製和運行關鍵任務應用程序的安全性。 MarkLogic 在一個系統中結合了數據庫功能、搜索和應用程序服務。 它提供了企業交付價值所需的功能。 MarkLogic 利用現有工具、知識和經驗,同時為關鍵任務數據提供可靠、可擴展且安全的平台。

包括公共部門、媒體和金融服務在內的各行各業的公司和組織都受益於 MarkLogic 獨特的架構。 任何面臨數據量、速度、多樣性和復雜性組合的環境(稱為大數據的數據挑戰)都可以通過 MarkLogic 得到增強。 基於 MarkLogic 構建的示例解決方案包括情報分析、實時決策支持、風險管理、數字資產管理、數字供應鍊和內容交付。

馬克邏輯基準

我們使用的基準測試由 MarkLogic 內部開發,用於評估硬件配置和即將發布的 MarkLogic 軟件版本。 工作負載分為兩個不同的部分:

  1. 攝取階段,其中將帶有索引的大型數據集插入 MarkLogic 數據庫中。
  2. 查詢階段,其中搜索、視圖更新和刪除應用於插入的數據集。 這些查詢還使用 MarkLogic 功能,例如分面、分頁和書籤。

使用的語料庫是公開可用的維基百科 xml 集合。 文件以壓縮格式保存在磁盤上。 對於攝取,我們使用 MarkLogic Content Pump (mlcp)。  

攝取階段尤其是 I/O 密集型。 I/O 分為三類:

  1. 最初,文檔被攝取到內存中,唯一的磁盤寫入是日誌保存。
  2. In-memory stands 迅速溢出,並不斷寫入磁盤上的 stands。 這是儲蓄活動。
  3. 隨著磁盤上站台數量的增加,MarkLogic 必須合併它們以減少查詢開銷。 合併涉及讀取多個磁盤上的支架,寫回合併的單個版本並刪除原件。

為了確保最高水平的準確性並強制每個設備進入穩定狀態,我們對基於閃存的設備重複攝取和查詢階段 24 次。 對於 PCIe 應用加速器,每個間隔需要 60-120 分鐘才能完成,因此總測試時間為 24-48 小時。 對於 I/O 吞吐量較低的設備,總測試時間可能長達數天。 我們在此測試中的重點是查看每個存儲解決方案在四個感興趣領域的總體延遲:日誌寫入 (J-lat)、保存寫入 (S-lat) 以及合併讀取 (MR-lat) 和合併寫入潛伏期(MW-lat)。

在上圖中,我們看到了 MarkLogic 中的 I/O 路徑和延遲:

  • 日誌將增量寫入數據庫。 當更新請求運行時,它對數據庫狀態所做的所有更改都記錄在日誌中。 可以從日誌中再次應用這些更改,而無需再次運行請求。 更新可以是文檔的添加、替換或刪除。 該日誌可防止中斷,保證在系統崩潰後仍然存在。 Journal 寫入的延遲是在 J-lat 指標中捕獲的
  • 加載足夠的文檔後,內存中的支架將填滿並刷新到磁盤,寫出為磁盤支架。 這種刷新到磁盤稱為保存。 Save 寫入的延遲在 S-lat 中捕獲
  • 隨著磁盤支架總數的增長,效率問題可能會出現。 要讀取單個術語列表,MarkLogic 必須從每個單獨的支架讀取術語列表數據並統一結果。 為了將展位數量保持在可管理的水平,MarkLogic 在後台運行合併。 合併讀取 (Merge Read) 磁盤上的一些站並從中創建一個新的單個站 Merge Write),合併和優化索引和數據,以及刪除任何以前刪除的片段。 Merge 讀取的延遲在 MR-lat 中捕獲,Merge 寫入的延遲在 MW-lat 中捕獲。

在攝取期間,MarkLogic 還會為所有文檔編制索引、創建術語列表等。此活動需要 CPU 週期,這使得基準測試在高 I/O 和高 CPU 使用率之間取得了良好的平衡。

選擇維基百科數據還因為它包含我們使用的非英語和非 ASCII 文本:阿拉伯語、荷蘭語、法語、德語、意大利語、日語、韓語、波斯語、葡萄牙語、俄語、西班牙語、簡體中文和繁體中文。 這些選項強調 MarkLogic 的多語言特性。 最後,攝取的靜態數據使基準測試具有可重複性,這對於跨多個軟件版本的不同硬件配置進行性能比較至關重要。

MarkLogic 測試環境

存儲解決方案在 StorageReview Enterprise 測試實驗室使用通過高速網絡連接的多台服務器進行 MarkLogic NoSQL 基準測試。 我們將 EchoStreams 和 Lenovo 的服務器用於 MarkLogic NoSQL 測試環境的不同部分,對於連接設備的結構,我們使用 Mellanox InfiniBand 交換和 NIC。

此儲存解決方案分為三個部分:儲存主機、MarkLogic NoSQL 資料庫叢集和 MarkLogic 資料庫用戶端。儲存主機採用一台 2U Lenovo ThinkServer RD630 伺服器,用於部署 PCIe 應用加速器、四塊一組的 SATA/SAS SSD 以及一台 NAS/SAN 裝置主機,並透過 InfiniBand 光纖網路將它們連接起來。 MarkLogic 資料庫叢集採用配備八顆 Intel Xeon E5-2640 CPU 的EchoStreams GridStreams四節點伺服器,以提供足夠的運算資源,從而有效地測試高速儲存設備的效能。用戶端採用 1U Lenovo ThinkServer RD530 伺服器,用於提供載入到系統記憶體並透過高速網路推送至 NoSQL 資料庫叢集的工作資料。所有這些伺服器透過 Mellanox 56Gb/s InfiniBand 光纖網路連接,該網路包含交換器和網路卡,可提供最高的傳輸速度和最低的延遲,從而確保高效能儲存裝置的效能不受限制。

Mellanox InfiniBand 互連用於提供最高性能和最高網絡效率,以確保連接的設備不受網絡限制。 只看 PCIe 存儲解決方案,單個 PCIe 應用程序加速器可以輕鬆地在網絡上驅動更多 1-3GB/s。 升級到峰值傳輸速度超過 10-20GB/s 的全閃存存儲設備,您可以快速看到網絡鏈路容量如何容易飽和,從而限制整個平台的整體性能。 InfiniBand 的高帶寬鏈路允許通過最少數量的鏈路傳輸最大量的數據,從而實現完整的系統功能。

除了更高的網絡吞吐量,InfiniBand 還支持更高的整體集群效率。 InfiniBand 使用 iSER (iSCSI-RDMA) 和 SRP(SCSI RDMA 協議)用遠程直接內存訪問 (RDMA) 功能取代低效的 iSCSI TCP 堆棧,允許對外部存儲進行接近本機的訪問時間。 iSER 和 SRP 通過允許網絡流量繞過系統的 CPU 並允許將數據從發送系統的內存直接複製到接收系統的內存,從而提高整個集群環境的效率。 相比之下,傳統的 iSCSI 操作通過複雜的多副本和傳輸過程路由網絡流量,佔用寶貴的 CPU 週期和內存空間,並大大增加數據傳輸延遲。 在我們的 MarkLogic NoSQL 環境中,我們利用 SCSI RDMA 協議將每個節點連接到在我們的存儲主機上運行的適用於 Linux (SCST) 的 SCSI 目標子系統。 

MarkLogic 基準測試設備

該平台的主要目標是突出企業存儲在實際企業環境和工作負載中的表現,而不是依賴合成或偽合成工作負載。 合成工作負載生成器非常擅長顯示存儲設備在連續合成 I/O 模式下的性能如何,但它們沒有考慮顯示設備在生產環境中實際工作方式的任何其他外部變量。 合成工作負載生成器的好處是一次又一次地顯示乾淨的 I/O 模式,但永遠不會復制真實的生產環境。 在存儲產品之上引入應用程序性能開始顯示存儲與其驅動程序、本地操作系統、被測試的應用程序、網絡堆棧、網絡交換和外部服務器的交互情況。 這些是合成工作負載生成器根本無法考慮的變量,而且就執行此特定基準所需的設備而言,資源和基礎設施密集度也高出一個數量級。

MarkLogic 性能結果

我們使用滿足測試環境最低要求的 MarkLogic NoSQL 基準測試各種存儲解決方案。 要獲得測試資格,存儲設備的可用容量必須超過 650GB,並且適合在壓力大的企業條件下運行。 這包括新的 PCIe 應用程序加速器、四個一組的 SAS 或 SATA 企業 SSD,以及本地或網絡連接的大型 HDD 陣列。 下面列出的是本次測試迄今為止從所有測試設備中捕獲的總體延遲數據。 在產品評論中,我們深入研究了更多細節並將競爭產品放在一起,而我們的主要列表顯示了不同存儲解決方案的分層。 

 

設備 總體平均延遲 緯度 J-緯度 MR-lat 兆瓦緯度
戴爾 R720 ExpressFlash 350GB
JBOD x 4 (單片機)
1.24 1.56 1.56 0.46 1.37
華為 Tecal ES3000 2.4TB
4 個分區 (MLC)
1.31 1.41 1.53 0.98 1.32
華為 Tecal ES3000 1.2TB
4 個分區 (MLC)
1.43 1.42 1.76 1.20 1.33
EchoStreams FlacheSAN2 w/ 英特爾SSD 520
S/W RAID0, 4組8塊180GB SSD (MLC)
1.48 1.65 2.01 0.81 1.46
美光 P320h 700GB
4 個分區 (SLC)
1.49 1.62 2.13 0.79 1.41
融合 ioDrive2 雙 MLC 2.4TB
S/W RAID0,高性能模式,4 個分區 (MLC)
1.70 1.73 2.57 0.97 1.51
融合 ioDrive2 雙核 SLC 1.2TB
S/W RAID0, 高性能模式, 4 分區 (SLC)
1.72 1.78 2.69 0.90 1.52
OCZ Z 驅動器 R4 1.6TB
4 個分區 (MLC)
1.73 1.67 2.38 1.43 1.42
日立 Ultrastar SSD400S.B 400GB
JBOD x 4 (單片機)
1.77 1.75 2.72 1.11 1.51
智能擎天柱 400GB
JBOD x 4(MLC)
1.82 1.69 2.74 1.36 1.49
EchoStreams FlacheSAN2 w/ 英特爾SSD 520
S/W RAID10, 4組8塊180GB SSD (MLC)
2.02 2.12 3.02 1.17 1.79
Virident FlashMAX II 2.2TB
高性能模式,4 個分區 (MLC)
2.26 2.30 3.39 1.57 1.81
日立 Ultrastar SSD400M 400GB
JBOD x 4(MLC)
2.58 2.09 4.49 2.07 1.68
OCZ 塔洛斯 2 400GB
JBOD x 4(MLC)
2.62 2.10 4.33 2.28 1.78
英特爾 DC S3700 200GB
JBOD x 4(MLC)
3.27 2.71 5.80 2.59 1.95
OCZ 塔洛斯 2 200GB
JBOD x 4(MLC)
3.53 2.62 6.16 3.40 1.96
英特爾固態硬盤 910 800GB
非 RAID,JBOD x 4 (MLC)
4.29 3.21 8.27 3.43 2.23
融合 ioDrive2 MLC 1.2TB
S/W RAID0,高性能模式,4 個分區 (MLC)
4.69 3.58 9.15 3.74 2.28
OCZ 德尼瓦 2 200GB
JBOD x 4(MLC)
6.65 5.38 13.48 4.54 3.18
金士頓 E100 200GB
JBOD x 4(MLC)
8.00 6.82 16.22 5.46 3.49
智能雲速 500 240GB
JBOD x 4(MLC)
11.06 9.07 22.74 7.19 5.23
美光 P400m 400GB
JBOD x 4(MLC)
12.60 9.70 27.51 8.70 4.51
Fusion ioDrive 雙核 MLC 1.28TB
S/W RAID0,高性能模式,4 個分區 (MLC)
12.89 10.52 26.77 9.70 4.58
美光 P400m 200GB
JBOD x 4(MLC)
14.98 11.99 31.93 10.54 5.46
東芝 15K MK01GRRB 147GB
硬件 LSI 9286-8e x 16,RAID10 x 4
16.58 7.85 40.61 12.25 5.61
大規模集成電路 Nytro WarpDrive 800GB
4 個分區 (MLC)
17.39 17.08 31.42 13.63 7.43
東芝 10K MBF2600RC 600GB
硬件 LSI 9286-8e x 16,RAID10 x 4
24.20 10.89 57.94 20.61 7.35
東芝 15K MK01GRRB 147GB
軟件 RAID x 16, RAID10 x 4
61.40 54.33 126.77 45.21 19.28

MarkLogic 產品頁面