Metodologia

Comparativo da DRIC com outras tecnologias.

Notas

Aqui você poderá entender o que nossa tecnologia proporciona, seus diferenciais competitivos, aplicações e muito mais! Atualmente trabalhamos com 12 datasets que juntos possuem aproximadamente 500.000 de arquivos dos tipos mais comuns (jpg, wav, mp4, jpeg, html, json, txt, png, xml, pdf, csc, mp3, etc...) e tamanhos individuais variados de até 1Gb.

Nosso benchmarking avaliou 4 dos principais algoritmos de compactação de dados e 3 de cifragem de dados, dos quais juntos totalizam mais de 30 plug-ins contendo 45 CODECs combinados, resultando em aproximadamente 9.450 configurações diferentes. O benchmarking é executado em 3 setups de máquinas diferentes, totalizando 28.530 configurações, e continua crescendo.

Objetivo

Obter as taxas de compactação e cifragem dos arquivos em diferentes níveis de codificação ACP.

O que testamos?

Propositalmente, utilizamos um hardware de performance limitada 😯 sendo assim focamos principalmente nas taxas de otimização e compactação obtidas. 💪 A velocidade de codificação e decodificação, bem como arquivos de maior volume individual, não foi objeto de avaliação deste cenário, entretanto, seus números foram registrados e podem ser acessados neste benchmarking. Cabe ressaltar que durante a execução não sofremos nenhum problema de desempenho. 😃

Este mesmo conjunto de dados também continha um conjunto de arquivos de teste para validar o próprio teste. 💡 Coisas como arquivos com conteúdo duplicado, arquivos com frequência de palavras duplicadas e em ordem diferente, one-time pads, só para citar alguns. A saída desses casos de teste foi a esperada, evidenciando o design bem concebido da tecnologia. 😎

Para ter um ponto de comparação, além da DGA, este mesmo conjunto de dados também foi testado usando os seguintes algoritmos de compactação: Deflate, LZW, Adaptative Huffman e Shannon. Para criptografia utilizamos como referência: AES, RSA e Blowfish.

Como testamos?

Foram realizados dois tipos de testes, sendo eles com o IAC em modo Manual-Sync e em modo Auto-Sync, somente para sincronização das estações ADP. Estes dados estavam armazenados em um bucket. Todos os arquivos codificados tiveram como output os arquivos em formato EBP, bem como a Master Tree, Branchs, File Tree e Log de execução para análise.

Com o IAC em Manual-Sync, ocorreu a codificação ACP do conjunto de arquivos de teste enquanto os sistemas de decodificação ADP estavam desligados e desconectados de qualquer meio de conectividade. Todo output movido para um IAC e então os sistemas de decodificação ADP foram religados, nos certificamos de não haver conectividade e assim decodificamos todo o conjunto. Para o modo Auto-Sync, enquanto ocorria a codificação ACP, as estações ADP sincronizavam os pacotes EBP e PEBP automaticamente.

Como calculamos os resultados?

Dividimos em duas partes, sendo os cálculos referentes às taxas de compactação e os cálculos referentes à criptografia. Coletamos alguns dados importantes que são utilizados para calcular os valores obtidos, sendo eles: (A) tamanho do arquivo não-codificado, (B) tamanho codificado, (C) tempo de codificação, (D) tempo de decodificação e (E) velocidade de transferência.

Para encontrar os valores referentes à otimização e compactação de dados, aplicamos as fórmulas descritas a seguir.

MódulosValoresFórmula
VDETaxa de CompactaçãoA ÷ B
ACPVelocidade de CompactaçãoA ÷ C
ADPVelocidade de DescompactaçãoA ÷ D
--Velocidade de ida e volta (Round Trip Speed)(2 x A) ÷ (C + D)

Os tamanhos são apresentados usando prefixos binários – 1 KiB equivale a 1.024 bytes, 1 MiB equivale a 1.024 KiB e assim por diante.

Para encontrar os valores referentes à cifragem dos arquivos, trabalhamos com os seguintes ranges:

ValoresMétricasRange
EntropiaValores consistentes e elevados demonstram alta taxa de aleatoriedade nos dados.>= 7.999.769 <= 7.999.928
Chi-SquaredGrande variação e a presença de diferentes padrões tornam mais complexas a análise, tornando os dados mais robustos contra tentativas de decifração.>= 285.199 <= 2.842.240
Média AritméticaVariação mínima, garantindo uma distribuição média estável.>= 1.274.414 <= 1.275.757
Monte Carlo PiEstimativas precisas e distribuição equilibrada dos dados.>= 0 < 1
Coeficiente de Correlação SerialBaixa correlação entre os dados.>= 0 < 1

Os resultados encontrados são uma forte variabilidade no Chi-Squared Value, a consistente alta entropia e a baixa correlação serial, representando uma forte proteção contra tentativas de análise e engenharia reversa dos dados.

Para encontrar os valores referentes ao desempenho e economia de banda, aplicamos as fórmulas descritas a seguir.

MódulosValoresFórmula
--Tempo de TransmissãoA ÷ E
VBETempo de Transmissão OtimizadoB ÷ E

CODEC

Configuramos as principais variáveis de nosso CODEC, sendo elas:

  • Velocidade do codificador
  • Escala do codificador

Para todos os arquivos trabalhamos com o parâmetro de velocidade Padrão.

VelocidadeEscalaQualidadeExclusão?Export?
Padrão200BaixoSimPEBP
Padrão400MédioSimPEBP
Padrão600PadrãoSimPEBP
Padrão800AltoSimPEBP
Padrão1600--SimPEBP/1
Padrão1700--SimPEBP/2
Padrão1800--SimPEBP/3
Padrão1900--SimPEBP/4

Para os arquivos de multimídia, atestamos a qualidade obtida pós ADP com o VMAF score.

PontuaçãoQualidadePerdas
<= 20Muito RuimNotáveis
> 20 <= 40Ruim (Pobre)Perceptíveis
> 40 <= 60RazoávelQuestionáveis
> 60 <= 80BomJustas
> 80 <= 100ExcelenteImperceptíveis

Configuração de máquina

Não pense que certos algoritmos são sempre mais rápidos, você pode se surpreender! A arquitetura, a implementação e o ambiente, por exemplo, mudam drasticamente a performance, fazendo com que se comportem completamente diferente com os mesmos dados.

Nosso benchmarking é executado atualmente em máquinas bastante recentes, de tecnologia ARM moderna. Veja abaixo o setup das máquinas utilizadas nesta avaliação.

E sobre o multi-threading?

Não é fácil responder essa pergunta, porque a concepção das soluções avaliadas difere umas das outras. Obviamente que se fosse possível explorar este recurso, os resultados seriam diferentes. O principal objetivo foi apresentar dados para usuários casuais, que normalmente utilizam a compactação e a descompactação com um único thread.

Desempenho e Economia de Banda

Esta análise se concentra em destacar o impacto significativo na eficiência na transmissão de dados, independentemente da comparação entre larguras de banda. Simulamos cenários de fluxos de dados TCP e UDP para medir o throughput de uma rede que os está transportando. Escolhemos o Iperf como ferramenta de teste de rede, uma das mais utilizadas. O Iperf também permite a configuração de vários parâmetros que podem ser usados para testar uma rede em arquitetura cliente e servidor, facilitando a medição de throughput entre as duas extremidades, de forma unidirecional ou bidirecional.

Diferencial do nosso benchmarking

Existem muitos outros benchmarkings, mas todos eles sempre analisam as mesmas variáveis e valores. Sendo assim, a depender do que você esteja buscando, pode ser que te atenda ou não.

Uma grande parte dos benchmarkings utilizam programas de linha de comendo em vez de bibliotecas. Outro ponto importante é a utilização de CODECs mais variados, mas que geralmente acabam não sendo explorados. Na verdade poucos são os benchmarkings que trabalham com bibliotecas.