O MarkLogic 6 é um banco de dados Enterprise NoSQL (“Not Only SQL”) que tem flexibilidade e escalabilidade para lidar com os desafios de dados atuais que os bancos de dados baseados em SQL não foram projetados para lidar. Ele também possui recursos de nível empresarial, como pesquisa, transações ACID, failover, replicação e segurança para executar aplicativos de missão crítica. O MarkLogic combina funcionalidade de banco de dados, pesquisa e serviços de aplicativos em um único sistema. Ele fornece a funcionalidade que as empresas precisam para agregar valor. A MarkLogic aproveita as ferramentas, o conhecimento e a experiência existentes, ao mesmo tempo em que fornece uma plataforma confiável, escalável e segura para dados de missão crítica.
Empresas e organizações em todos os setores, incluindo o setor público, mídia e serviços financeiros, se beneficiaram da arquitetura exclusiva do MarkLogic. Qualquer ambiente que enfrente uma combinação de volume, velocidade, variedade e complexidade de dados — um desafio de dados conhecido como Big Data — pode ser aprimorado com o MarkLogic. As soluções de exemplo criadas no MarkLogic incluem análise de inteligência, suporte a decisões em tempo real, gerenciamento de riscos, gerenciamento de ativos digitais, cadeia de suprimentos digital e entrega de conteúdo.
Benchmark MarkLogic
O benchmark que estamos utilizando é desenvolvido internamente pela MarkLogic e é usado para avaliar as configurações de hardware e os próximos lançamentos de software MarkLogic. A carga de trabalho é dividida em duas partes distintas:
- Fase de ingestão em que um grande conjunto de dados é inserido com índices no banco de dados MarkLogic.
- Fase de consulta em que pesquisas, atualizações de visualizações e exclusões são aplicadas ao conjunto de dados inserido. Essas consultas também usam recursos do MarkLogic, como facetas, paginação e marcadores.
O corpus usado é a coleção xml da Wikipédia disponível publicamente. Os arquivos são mantidos em disco em formato compactado. Para ingestão, usamos MarkLogic Content Pump (mlcp).
A fase de ingestão, em particular, é intensiva em E/S. A E/S é dividida em três categorias:
- Inicialmente, os documentos são ingeridos em suportes de memória e as únicas gravações em disco são salvas no diário.
- Os suportes na memória transbordam rapidamente e são continuamente gravados como suportes no disco. Esta é a atividade de salvamento.
- À medida que o número de suportes em disco aumenta, o MarkLogic deve mesclá-los para reduzir a sobrecarga de consultas. A fusão envolve a leitura de vários suportes em disco, a reescrita de uma única versão mesclada e a exclusão dos originais.
Para garantir o mais alto nível de precisão e forçar cada dispositivo a entrar em estado estacionário, repetimos as fases de ingestão e consulta 24 vezes para dispositivos baseados em flash. Para PCIe Application Accelerators, cada intervalo leva de 60 a 120 minutos para ser concluído, colocando assim o tempo total de teste em um intervalo de 24 a 48 horas. Para dispositivos com taxa de transferência de E/S mais baixa, o tempo total de teste pode abranger dias. Nosso foco neste teste é observar a latência geral de cada solução de armazenamento em quatro áreas de interesse: gravações de diário (J-lat), gravações salvas (S-lat), bem como leitura de mesclagem (MR-lat) e gravação de mesclagem latência (MW-lat).
No diagrama acima vemos os caminhos de I/O e as latências no MarkLogic:
- O diário grava o registro dos deltas no banco de dados. Quando uma solicitação de atualização é executada, todas as alterações feitas no estado do banco de dados são registradas no diário. Essas alterações podem ser aplicadas novamente a partir do diário, sem executar a solicitação novamente. As atualizações podem ser adições, substituições ou exclusões de documentos. O jornal protege contra interrupções, é garantido que sobreviverá a uma falha do sistema depois disso. A latência das gravações do Journal é capturada na métrica J-lat
- Depois que documentos suficientes forem carregados, o suporte na memória será preenchido e liberado no disco, gravado como um suporte no disco. Essa liberação para o disco é chamada de Salvar. A latência das gravações salvas é capturada em S-lat
- À medida que o número total de suportes em disco cresce, um problema de eficiência pode surgir. Para ler uma única lista de termos, o MarkLogic deve ler os dados da lista de termos de cada estande individual e unificar os resultados. Para manter o número de suportes em um nível gerenciável, o MarkLogic executa mesclagens em segundo plano. Uma mesclagem lê (Merge Read) alguns dos stands no disco e cria um novo stand singular deles Merge Write), reunindo e otimizando os índices e dados, bem como removendo quaisquer fragmentos excluídos anteriormente. A latência das leituras de mesclagem é capturada em MR-lat e a latência de gravações de mesclagem em MW-lat.
Durante a ingestão, o MarkLogic também indexa todos os documentos, cria listas de termos etc. Essa atividade requer ciclos de CPU que tornam o benchmark um bom equilíbrio entre alta E/S e alta utilização da CPU.
Os dados da Wikipedia também foram escolhidos porque contêm texto não inglês e não ASCII, dos quais usamos: árabe, holandês, francês, alemão, italiano, japonês, coreano, persa, português, russo, espanhol, chinês simplificado e chinês tradicional. Essas opções enfatizam os recursos multilíngues do MarkLogic. Por fim, os dados estáticos ingeridos tornam o benchmark repetível, o que é essencial para comparações de desempenho em várias configurações de hardware de várias versões de software.
Ambiente de Teste MarkLogic
As soluções de armazenamento são testadas com o benchmark MarkLogic NoSQL no StorageReview Enterprise Test Lab, utilizando vários servidores conectados em uma rede de alta velocidade. Utilizamos servidores da EchoStreams e Lenovo para diferentes segmentos do MarkLogic NoSQL Testing Environment, e para a malha que conecta os equipamentos, utilizamos Mellanox InfiniBand Switching e NICs.
A solução de armazenamento é dividida em três seções: o host de armazenamento, o cluster de banco de dados NoSQL MarkLogic e o cliente de banco de dados MarkLogic. Para o host de armazenamento, utilizamos um Lenovo ThinkServer RD630 de 2U para apresentar aceleradores de aplicativos PCIe, grupos de quatro SSDs SATA/SAS e um host para equipamentos NAS/SAN, que são então apresentados na malha InfiniBand. Para o cluster de banco de dados MarkLogic, utilizamos um servidor EchoStreams GridStreams de quatro nós equipado com oito CPUs Intel Xeon E5-2640 para fornecer os recursos computacionais necessários para estressar efetivamente os dispositivos de armazenamento mais rápidos. No lado do cliente, utilizamos servidores Lenovo ThinkServer RD530 de 1U que fornecem os dados de trabalho, os quais são carregados na memória do sistema e enviados para o cluster de banco de dados NoSQL através de nossa rede de alta velocidade. Interligando todos esses servidores, temos uma malha InfiniBand Mellanox de 56 Gb/s, incluindo switches e placas de rede, que nos proporciona as maiores velocidades de transferência e a menor latência, não limitando o desempenho dos dispositivos de armazenamento de alto desempenho.
As interconexões Mellanox InfiniBand foram usadas para fornecer o mais alto desempenho e maior eficiência de rede para garantir que os dispositivos conectados não sejam limitados pela rede. Olhando apenas para as soluções de armazenamento PCIe, um único Acelerador de Aplicativo PCIe pode facilmente direcionar mais 1-3GB/s para a rede. Aumente para um dispositivo de armazenamento totalmente flash com velocidades máximas de transferência superiores a 10-20 GB/s e você poderá ver rapidamente como a capacidade do link de rede pode ser facilmente saturada, limitando o desempenho geral de toda a plataforma. Os links de alta largura de banda do InfiniBand permitem que a maior quantidade de dados seja movida pelo menor número de links, permitindo que todos os recursos do sistema sejam realizados.
Além de maior throughput de rede, o InfiniBand também permite maior eficiência geral do cluster. O InfiniBand usa iSER (iSCSI-RDMA) e SRP (protocolo SCSI RDMA) para substituir a pilha iSCSI TCP ineficiente pela funcionalidade Remote Direct Memory Access (RDMA), permitindo tempos de acesso quase nativos para armazenamento externo. O iSER e o SRP permitem maior eficiência em todo o ambiente em cluster, permitindo que o tráfego de rede ignore as CPUs dos sistemas e permitindo que os dados sejam copiados da memória dos sistemas de envio diretamente para a memória dos sistemas de recebimento. Em comparação, a operação iSCSI tradicional roteia o tráfego de rede por meio de um processo complexo de múltiplas cópias e transferências, consumindo valiosos ciclos de CPU e espaço de memória e aumentando drasticamente as latências de transferência de dados. Em nosso ambiente MarkLogic NoSQL, utilizamos o protocolo SCSI RDMA para conectar cada nó a um subsistema de destino SCSI para Linux (SCST) em execução em nosso host de armazenamento.
Equipamento de referência MarkLogic
- Cluster de banco de dados de quatro nós EchoStreams GridStreams
- Oito CPUs Intel E5-2640 (dois por nó, 2.5 GHz, 6 núcleos, cache de 15 MB)
- 256 GB de RAM (64 GB por nó, 8 GB x 8 Micron DDR3, 32 GB por CPU)
- 4 x 100GB Micron RealSSD P400e (Um por nó, SATA integrado)
- 4 x Adaptador Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Lenovo ThinkServer RD530 Cliente de banco de dados
- CPUs Intel E5-2640 duplas (2.5 GHz, 6 núcleos, cache de 15 MB)
- 64 GB de RAM (8 GB x 8 Micron DDR3, 32 GB por CPU)
- 200 GB x 3 Toshiba 10k SAS RAID5 (via LSI 9260-8i)
- 1 x Adaptador Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- Lenovo ThinkServer RD630 Host de armazenamento
- CPUs Intel E5-2680 duplas (2.7 GHz, 8 núcleos, cache de 20 MB)
- 32 GB de RAM (8 GB x 4 DDR3, 16 GB por CPU)
- 100 GB mícron SSD RealSSD P400e (via LSI 9207-8i)
- 1 x Adaptador Mellanox ConnectX-3 InfiniBand
- 6.3 CentOS
- JBOD externo: iXsystems Titan iX-316J
- Comutador InfiniBand Mellanox SX6036
- 36 portas FDR (56 Gb/s)
- Capacidade de comutação agregada de 4 TB/s
O principal objetivo dessa plataforma é destacar o desempenho do armazenamento corporativo em um ambiente e carga de trabalho corporativos reais, em vez de depender de cargas de trabalho sintéticas ou pseudosintéticas. Os geradores de carga de trabalho sintético são ótimos para mostrar o desempenho dos dispositivos de armazenamento com um padrão de E/S sintético contínuo, mas não levam em consideração nenhuma das outras variáveis externas que mostram como os dispositivos realmente funcionam em ambientes de produção. Os geradores de carga de trabalho sintético têm o benefício de mostrar um padrão de E/S limpo repetidamente, mas nunca replicarão um verdadeiro ambiente de produção. A introdução do desempenho de aplicativos sobre os produtos de armazenamento começa a mostrar como o armazenamento interage com seus drivers, o sistema operacional local, o aplicativo sendo testado, a pilha de rede, a comutação de rede e os servidores externos. Essas são variáveis que um gerador de carga de trabalho sintético simplesmente não pode levar em conta e também são uma ordem de magnitude mais intensiva em recursos e infraestrutura em termos de equipamentos necessários para executar esse benchmark específico.
Resultados de desempenho do MarkLogic
Testamos uma ampla variedade de soluções de armazenamento com o benchmark MarkLogic NoSQL que atende aos requisitos mínimos do ambiente de teste. Para se qualificar para o teste, o dispositivo de armazenamento deve ter uma capacidade utilizável superior a 650 GB e ser projetado para operar sob condições corporativas estressantes. Isso inclui novos aceleradores de aplicativos PCIe, grupos de quatro SSDs empresariais SAS ou SATA, bem como grandes matrizes de HDD conectadas localmente ou à rede. Listados abaixo estão os valores gerais de latência capturados de todos os dispositivos testados até o momento neste teste. Nas análises de produtos, mergulhamos em mais detalhes e comparamos os produtos concorrentes, enquanto nossa lista principal mostra a estratificação de diferentes soluções de armazenamento.
| dispositivo | Latência média geral | S-lat | J-lat | MR-lat | MW-lat |
|---|---|---|---|---|---|
| Dell R720 ExpressFlash 350 GB JBOD x 4 (SLC) |
1.24 | 1.56 | 1.56 | 0.46 | 1.37 |
| Huawei Tecal ES3000 2.4 TB 4 Partições (MLC) |
1.31 | 1.41 | 1.53 | 0.98 | 1.32 |
| Huawei Tecal ES3000 1.2 TB 4 Partições (MLC) |
1.43 | 1.42 | 1.76 | 1.20 | 1.33 |
| EchoStreams FlacheSAN2 w/ Intel SSD 520 S/W RAID0, 4 grupos de 8 SSDs de 180 GB (MLC) |
1.48 | 1.65 | 2.01 | 0.81 | 1.46 |
| Micron P320h 700GB 4 Partições (SLC) |
1.49 | 1.62 | 2.13 | 0.79 | 1.41 |
| Fusion ioDrive2 Duo MLC 2.4 TB S/W RAID0, modo de alto desempenho, 4 partições (MLC) |
1.70 | 1.73 | 2.57 | 0.97 | 1.51 |
| Fusion ioDrive2 Duo SLC 1.2 TB S/W RAID0, modo de alto desempenho, 4 partições (SLC) |
1.72 | 1.78 | 2.69 | 0.90 | 1.52 |
| OCZ Z-Drive R4 1.6 TB 4 Partições (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 400 GB JBOD x 4 (MLC) |
1.82 | 1.69 | 2.74 | 1.36 | 1.49 |
| EchoStreams FlacheSAN2 w/ Intel SSD 520 S/W RAID10, 4 grupos de 8 SSDs de 180 GB (MLC) |
2.02 | 2.12 | 3.02 | 1.17 | 1.79 |
| Virident FlashMAX II 2.2 TB Modo de alto desempenho, 4 partições (MLC) |
2.26 | 2.30 | 3.39 | 1.57 | 1.81 |
| Hitachi Ultrastar SSD400M 400GB JBOD x 4 (MLC) |
2.58 | 2.09 | 4.49 | 2.07 | 1.68 |
| OCZ Talos 2 400 GB JBOD x 4 (MLC) |
2.62 | 2.10 | 4.33 | 2.28 | 1.78 |
| DC Intel S3700 200 GB JBOD x 4 (MLC) |
3.27 | 2.71 | 5.80 | 2.59 | 1.95 |
| OCZ Talos 2 200 GB JBOD x 4 (MLC) |
3.53 | 2.62 | 6.16 | 3.40 | 1.96 |
| SSD Intel 910 800 GB Não RAID, JBOD x 4 (MLC) |
4.29 | 3.21 | 8.27 | 3.43 | 2.23 |
| Fusão ioDrive2 MLC 1.2TB S/W RAID0, modo de alto desempenho, 4 partições (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 200 GB JBOD x 4 (MLC) |
8.00 | 6.82 | 16.22 | 5.46 | 3.49 |
| Smart Cloud Speed 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 S/W RAID0, modo de alto desempenho, 4 partições (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 H/W LSI 9286-8e x 16, RAID10 x 4 |
16.58 | 7.85 | 40.61 | 12.25 | 5.61 |
| LSI Nytro WarpDrive 800 GB 4 Partições (MLC) |
17.39 | 17.08 | 31.42 | 13.63 | 7.43 |
| Toshiba 10K MBF2600RC 600GB H/W LSI 9286-8e x 16, RAID10 x 4 |
24.20 | 10.89 | 57.94 | 20.61 | 7.35 |
| Toshiba 15K MK01GRRB 147GB Software RAID x 16, RAID10 x 4 |
61.40 | 54.33 | 126.77 | 45.21 | 19.28 |




Amazon