存储评论网

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 产品页面