StorageReview.com

MarkLogic NoSQL 데이터베이스 스토리지 벤치마크

MarkLogic 6은 SQL 기반 데이터베이스가 처리하도록 설계되지 않은 오늘날의 데이터 문제를 처리할 수 있는 유연성과 확장성을 갖춘 Enterprise NoSQL("Not Only SQL") 데이터베이스입니다. 또한 미션 크리티컬 애플리케이션을 실행하기 위한 검색, ACID 트랜잭션, 장애 조치, 복제 및 보안과 같은 엔터프라이즈급 기능을 갖추고 있습니다. MarkLogic은 데이터베이스 기능, 검색 및 애플리케이션 서비스를 단일 시스템에 결합합니다. 기업이 가치를 제공하는 데 필요한 기능을 제공합니다. MarkLogic은 미션 크리티컬 데이터를 위한 안정적이고 확장 가능하며 안전한 플랫폼을 제공하면서 기존 도구, 지식 및 경험을 활용합니다.

공공 부문, 미디어 및 금융 서비스를 포함한 업계 전반의 기업 및 조직은 MarkLogic의 고유한 아키텍처로부터 혜택을 받았습니다. 데이터 볼륨, 속도, 다양성 및 복잡성의 조합(빅 데이터로 알려진 데이터 문제)에 직면한 모든 환경은 MarkLogic으로 개선될 수 있습니다. MarkLogic에 구축된 예제 솔루션에는 인텔리전스 분석, 실시간 의사 결정 지원, 위험 관리, 디지털 자산 관리, 디지털 공급망 및 콘텐츠 제공이 포함됩니다.

MarkLogic 벤치마크

우리가 활용하고 있는 벤치마크는 MarkLogic에서 내부적으로 개발했으며 하드웨어 구성과 향후 MarkLogic 소프트웨어 릴리스를 모두 평가하는 데 사용됩니다. 워크로드는 두 부분으로 나뉩니다.

  1. 대규모 데이터 세트가 인덱스와 함께 MarkLogic 데이터베이스에 삽입되는 수집 단계입니다.
  2. 삽입된 데이터 세트에 검색, 보기 업데이트 및 삭제가 적용되는 쿼리 단계입니다. 이러한 쿼리는 패싯, 페이지 매김 및 책갈피와 같은 MarkLogic 기능도 사용합니다.

사용된 코퍼스는 공개적으로 사용 가능한 Wikipedia xml 컬렉션입니다. 파일은 압축 형식으로 디스크에 보관됩니다. 수집을 위해 MarkLogic 콘텐츠 펌프(mlcp)를 사용합니다.  

특히 수집 단계는 I/O 집약적입니다. I/O는 세 가지 범주로 나뉩니다.

  1. 처음에 문서는 메모리 내 스탠드에 수집되며 유일한 디스크 쓰기는 저널 저장입니다.
  2. 인메모리 스탠드는 빠르게 오버플로되어 지속적으로 온디스크 스탠드로 기록됩니다. 저장하는 활동입니다.
  3. 온디스크 스탠드의 수가 증가함에 따라 MarkLogic은 이를 병합하여 쿼리 오버헤드를 줄여야 합니다. 병합에는 여러 온디스크 스탠드 읽기, 병합된 단일 버전 쓰기 및 원본 삭제가 포함됩니다.

최고 수준의 정확도를 보장하고 각 장치를 정상 상태로 만들기 위해 플래시 기반 장치에 대해 수집 및 쿼리 단계를 24번 반복합니다. PCIe 응용 프로그램 가속기의 경우 각 간격을 완료하는 데 60-120분이 걸리므로 총 테스트 시간은 24-48시간 범위가 됩니다. I/O 처리량이 낮은 장치의 경우 총 테스트 시간은 며칠이 걸릴 수 있습니다. 이 테스트의 초점은 저널 쓰기(J-lat), 쓰기 저장(S-lat), 병합 읽기(MR-lat) 및 병합 쓰기의 네 가지 관심 영역에 걸쳐 각 스토리지 솔루션의 전체 대기 시간을 살펴보는 것입니다. 대기 시간(MW-위도).

위의 다이어그램에서 MarkLogic의 I/O 경로 및 대기 시간을 볼 수 있습니다.

  • 저널 쓰기는 델타를 데이터베이스에 기록합니다. 업데이트 요청이 실행되면 데이터베이스 상태에 대한 모든 변경 사항이 저널에 기록됩니다. 이러한 변경 사항은 요청을 다시 실행하지 않고 저널에서 다시 적용할 수 있습니다. 업데이트는 문서의 추가, 교체 또는 삭제일 수 있습니다. 저널은 정전으로부터 보호하며 이후에 시스템 충돌이 발생해도 살아남을 수 있습니다. 저널 쓰기 대기 시간은 J-lat 메트릭에서 캡처됩니다.
  • 충분한 문서가 로드되면 인메모리 스탠드가 가득 차서 디스크에 플러시되고 온디스크 스탠드로 기록됩니다. 이 디스크 플러시를 저장이라고 합니다. 저장 쓰기의 대기 시간은 S-lat에서 캡처됩니다.
  • 온디스크 스탠드의 총 수가 증가함에 따라 효율성 문제가 대두될 위험이 있습니다. 단일 용어 목록을 읽으려면 MarkLogic은 각 개별 스탠드에서 용어 목록 데이터를 읽고 결과를 통합해야 합니다. 스탠드 수를 관리 가능한 수준으로 유지하기 위해 MarkLogic은 백그라운드에서 병합을 실행합니다. 병합은 디스크의 스탠드 중 일부를 읽고(병합 읽기) 이들 중에서 새로운 단일 스탠드를 생성합니다. 병합 쓰기) 인덱스와 데이터를 통합 및 최적화하고 이전에 삭제된 조각을 제거합니다. Merge 읽기 대기 시간은 MR-lat에서 캡처되고 Merge 쓰기 대기 시간은 MW-lat에서 캡처됩니다.

또한 수집 중에 MarkLogic은 모든 문서를 인덱싱하고 용어 목록을 생성하는 등의 작업을 수행합니다. 이 활동에는 벤치마크에서 높은 I/O와 높은 CPU 사용률 간의 적절한 균형을 이루는 CPU 주기가 필요합니다.

Wikipedia 데이터는 아랍어, 네덜란드어, 프랑스어, 독일어, 이탈리아어, 일본어, 한국어, 페르시아어, 포르투갈어, 러시아어, 스페인어, 중국어 간체 및 중국어 번체와 같은 비영어 및 비ASCII 텍스트를 포함하고 있기 때문에 선택되었습니다. 이러한 옵션은 MarkLogic의 다국어 기능을 강조합니다. 마지막으로 수집된 정적 데이터는 여러 소프트웨어 버전의 다양한 하드웨어 구성에서 성능 비교에 필수적인 벤치마크를 반복 가능하게 만듭니다.

MarkLogic 테스트 환경

스토리지 솔루션은 고속 네트워크를 통해 연결된 여러 서버를 활용하는 StorageReview Enterprise Test Lab의 MarkLogic NoSQL 벤치마크로 테스트되었습니다. 우리는 MarkLogic NoSQL 테스트 환경의 다양한 세그먼트에 EchoStreams 및 Lenovo의 서버를 활용하고 장비를 연결하는 패브릭에는 Mellanox InfiniBand Switching 및 NIC를 사용합니다.

스토리지 솔루션은 스토리지 호스트, MarkLogic NoSQL 데이터베이스 클러스터, MarkLogic 데이터베이스 클라이언트의 세 부분으로 구성됩니다. 스토리지 호스트는 2U Lenovo ThinkServer RD630을 사용하여 PCIe 애플리케이션 가속기, 4개의 SATA/SAS SSD 그룹, 그리고 NAS/SAN 장비를 InfiniBand 패브릭에 연결합니다. MarkLogic 데이터베이스 클러스터는 8개의 Intel Xeon E5-2640 CPU가 탑재된 EchoStreams GridStreams 쿼드 노드 서버를 사용하여 최고 속도의 스토리지 장치를 효율적으로 활용하는 데 필요한 컴퓨팅 리소스를 제공합니다. 클라이언트 측에서는 1U Lenovo ThinkServer RD530 서버를 사용하여 시스템 메모리에 로드된 작업 데이터를 고속 네트워크를 통해 NoSQL 데이터베이스 클러스터로 전송합니다. 이 모든 서버는 스위치와 NIC를 포함하는 Mellanox 56Gb/s InfiniBand 패브릭으로 연결되어 최고 수준의 전송 속도와 최저 지연 시간을 제공함으로써 고성능 스토리지 장치의 성능을 최대한 활용할 수 있도록 합니다.

Mellanox InfiniBand 상호 연결을 사용하여 최고의 성능과 최고의 네트워크 효율성을 제공하여 연결된 장치가 네트워크에 제한되지 않도록 했습니다. PCIe 스토리지 솔루션만 보면 단일 PCIe 애플리케이션 가속기가 네트워크에서 1-3GB/s 이상을 쉽게 구동할 수 있습니다. 최대 전송 속도가 10-20GB/s를 초과하는 올플래시 스토리지 어플라이언스로 올라가면 네트워크 링크 용량이 쉽게 포화되어 전체 플랫폼의 전체 성능을 제한하는 방법을 빠르게 확인할 수 있습니다. InfiniBand의 고대역폭 링크는 가장 많은 양의 데이터를 최소한의 링크로 이동시켜 전체 시스템 기능을 실현할 수 있도록 합니다.

더 높은 네트워크 처리량 외에도 InfiniBand는 전체 클러스터 효율성을 더 높입니다. InfiniBand는 iSER(iSCSI-RDMA) 및 SRP(SCSI RDMA 프로토콜)를 사용하여 비효율적인 iSCSI TCP 스택을 RDMA(Remote Direct Memory Access) 기능으로 교체하여 외부 스토리지에 대한 거의 기본 액세스 시간을 허용합니다. iSER 및 SRP는 네트워크 트래픽이 시스템의 CPU를 우회하도록 허용하고 송신 시스템의 메모리에서 수신 시스템의 메모리로 직접 데이터를 복사할 수 있도록 하여 클러스터 환경 전체에서 효율성을 향상시킵니다. 이에 비해 기존의 iSCSI 작업은 복잡한 다중 복사 및 전송 프로세스를 통해 네트워크 트래픽을 라우팅하여 귀중한 CPU 주기와 메모리 공간을 소모하고 데이터 전송 대기 시간을 크게 늘립니다. MarkLogic NoSQL 환경에서는 SCSI RDMA 프로토콜을 활용하여 스토리지 호스트에서 실행되는 Linux용 SCSI 대상 하위 시스템(SCST)에 각 노드를 연결합니다. 

MarkLogic 벤치마크 장비

이 플랫폼의 주요 목표는 합성 또는 의사 합성 워크로드에 의존하는 대신 엔터프라이즈 스토리지가 실제 엔터프라이즈 환경 및 워크로드에서 어떻게 작동하는지 강조하는 것입니다. 합성 워크로드 생성기는 스토리지 장치가 연속적인 합성 I/O 패턴으로 얼마나 잘 작동하는지 보여주는 데 탁월하지만 프로덕션 환경에서 장치가 실제로 작동하는 방식을 보여주는 다른 외부 변수는 고려하지 않습니다. 합성 워크로드 생성기는 계속해서 깨끗한 I/O 패턴을 보여주는 이점이 있지만 실제 프로덕션 환경을 복제하지는 않습니다. 스토리지 제품 위에 애플리케이션 성능을 도입하면 스토리지가 드라이버, 로컬 운영 체제, 테스트 중인 애플리케이션, 네트워크 스택, 네트워킹 스위칭 및 외부 서버와 얼마나 잘 상호 작용하는지 보여주기 시작합니다. 이들은 합성 워크로드 생성기가 단순히 고려할 수 없는 변수이며, 이 특정 벤치마크를 실행하는 데 필요한 장비 측면에서 훨씬 더 많은 리소스와 인프라 집약적이기도 합니다.

MarkLogic 성능 결과

테스트 환경의 최소 요구 사항을 충족하는 MarkLogic NoSQL 벤치마크로 광범위한 스토리지 솔루션을 테스트합니다. 테스트 자격을 얻으려면 저장 장치의 사용 가능한 용량이 650GB를 초과하고 스트레스가 많은 기업 환경에서 작동하도록 조정되어야 합니다. 여기에는 새로운 PCIe 응용 프로그램 가속기, XNUMX개의 SAS 또는 SATA 엔터프라이즈 SSD 그룹, 로컬 또는 네트워크에 연결된 대형 HDD 어레이가 포함됩니다. 아래 목록은 이 테스트에서 현재까지 테스트된 모든 장치에서 캡처된 전체 대기 시간 수치입니다. 제품 리뷰에서 우리는 더 자세히 살펴보고 경쟁 제품을 정면으로 맞대고 주요 목록은 다양한 스토리지 솔루션의 계층화를 보여줍니다. 

 

장치 전체 평균 대기 시간 스키 J-lat MR-위도 MW-위도
델 R720 익스프레스플래시 350GB
JBOD x 4(SLC)
1.24 1.56 1.56 0.46 1.37
화웨이 테칼 ES3000 2.4TB
4분할(MLC)
1.31 1.41 1.53 0.98 1.32
화웨이 테칼 ES3000 1.2TB
4분할(MLC)
1.43 1.42 1.76 1.20 1.33
EchoStreams FlacheSAN2 w/ 인텔 SSD 520
S/W RAID0, 4개의 8GB SSD(MLC) 180개 그룹
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
히타치 울트라스타 SSD400S.B 400GB
JBOD x 4(SLC)
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개의 8GB SSD(MLC) 180개 그룹
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
히타치 울트라스타 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
인텔 SSD 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
퓨전 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
H/W LSI 9286-8e x 16, RAID10 x 4
16.58 7.85 40.61 12.25 5.61
LSI Nytro WarpDrive 800GB
4분할(MLC)
17.39 17.08 31.42 13.63 7.43
도시바 10K MBF2600RC 600GB
H/W 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 제품 페이지