Métodos de redução de dados podem ser usados para diminuir a quan­ti­dade de dados a serem fi­si­ca­mente ar­ma­ze­na­dos, o que economiza espaço e custos.

Definição: Redução de dados

Redução de dados é o termo usado para definir di­fe­ren­tes métodos de oti­mi­za­ção de ca­pa­ci­dade de ar­ma­ze­na­mento. Todos têm como objetivo final diminuir a quan­ti­dade de dados a serem ar­ma­ze­na­dos, com vista na efi­ci­ên­cia e na economia de recursos e despesas, uma vez que a quan­ti­dade de dados só aumenta no mundo.

Entre os métodos usados na redução de dados estão a com­pres­são e a des­du­pli­ca­ção. Enquanto a com­pres­são faz uso de re­dun­dân­cias dentro de arquivos para comprimir dados e evitar perdas, al­go­rit­mos de des­du­pli­ca­ção sin­cro­ni­zam dados entre arquivos, evitando re­dun­dân­cias.

Des­du­pli­ca­ção

A des­du­pli­ca­ção (ou de­du­pli­ca­ção) é um processo de redução de dados que tem como principal objetivo evitar a re­dun­dân­cia de dados em um sistema de ar­ma­ze­na­mento. Me­ca­nis­mos de des­du­pli­ca­ção utilizam al­go­rit­mos especiais para iden­ti­fi­car e eliminar arquivos ou blocos de dados re­dun­dan­tes, o que pode ser feito tanto no destino do ar­ma­ze­na­mento quanto na origem dos dados. É comum encontrar processos de des­du­pli­ca­ção em backups de dados.

A redução de dados por des­du­pli­ca­ção resulta na gravação, em um suporte de dados não volátil, da quan­ti­dade mínima de in­for­ma­ções ne­ces­sá­rias para que um arquivo possa ser re­cons­ti­tuído sem perdas. Assim sendo, quanto mais dados du­pli­ca­dos forem removidos, menor será a quan­ti­dade de dados a serem ar­ma­ze­na­dos ou trans­fe­ri­dos.

Dados du­pli­ca­dos podem ser iden­ti­fi­ca­dos no nível do arquivo, como no Git ou no Dropbox, mas al­go­rit­mos de des­du­pli­ca­ção no nível do su­bar­quivo são mais efi­ci­en­tes. Eles funcionam dividindo arquivos em blocos de dados (chunks) e de­ter­mi­nando, a cada um deles, somas de ve­ri­fi­ca­ção ex­clu­si­vas, chamadas de valores hash. O controle central de todas as somas de ve­ri­fi­ca­ção é feito por um banco de dados de ras­tre­a­mento.

Na des­du­pli­ca­ção baseada em blocos, blocos podem ser divididos de duas formas di­fe­ren­tes:

  • Janela fixa/Bloco fixo: Arquivos são divididos em seções que contém exa­ta­mente o mesmo com­pri­mento. Este é baseado no tamanho do cluster do arquivo ou do sistema RAID (nor­mal­mente, 4 KB).
  • Janela des­li­zante/Bloco variável: O algoritmo divide dados em blocos, cujo com­pri­mento varia de acordo com os tipos de dados a serem pro­ces­sa­dos.

O modo de divisão dos blocos in­flu­en­cia for­te­mente a efi­ci­ên­cia do processo de des­du­pli­ca­ção, o que pode ser com­pro­vado quando arquivos des­du­pli­ca­dos são pos­te­ri­or­mente alterados. No método de bloco fixo, todos os demais segmentos também são ca­te­go­ri­za­dos como novos pelo algoritmo de des­du­pli­ca­ção, quando um arquivo é alterado por mudanças nos limites dos blocos. Isso aumenta tanto o esforço com­pu­ta­ci­o­nal quanto a uti­li­za­ção da largura de banda.

Quando, por outro lado, um algoritmo utiliza o método de blocos variáveis em um processo de des­du­pli­ca­ção, al­te­ra­ções re­a­li­za­das em um único bloco de dados não afetam os demais segmentos. Assim, somente o bloco de dados alterado é estendido pelos novos bytes e salvo, reduzindo a carga da rede. En­tre­tanto, a fle­xi­bi­li­dade de al­te­ra­ções de arquivos tem maior exigência com­pu­ta­ci­o­nal, uma vez que o algoritmo deve, pri­mei­ra­mente, entender como se dá a divisão dos blocos.

Com­pres­são

A com­pres­são de dados é um processo de redução de dados que converte arquivos em re­pre­sen­ta­ções reduzidas, mais efi­ci­en­tes que a versão original. Seu objetivo também é diminuir o espaço de ar­ma­ze­na­mento ne­ces­sá­rio, assim como o tempo de trans­mis­são dos arquivos. Duas abor­da­gens di­fe­ren­tes colaboram para o ganho de co­di­fi­ca­ção:

  • Com­pres­são sem perdas: Na com­pres­são de dados por re­dun­dân­cia, estes mesmos dados podem ser des­com­pri­mi­dos, em processo reverso, com precisão de bits. Neste caso, dados de entrada e saída per­ma­ne­cem idênticos. A re­a­li­za­ção de uma com­pres­são sem perdas só é possível em arquivos que contenham in­for­ma­ções re­dun­dan­tes.
  • Com­pres­são com perdas: Na com­pres­são de dados por ir­re­le­vân­cia, in­for­ma­ções com­pre­en­di­das como ir­re­le­van­tes são removidas durante o processo de com­pres­são do arquivo. Alguns dados sempre são perdidos quando esta abordagem é utilizada, o que quer dizer que dados originais só podem ser apro­xi­ma­da­mente res­tau­ra­dos após serem sub­me­ti­dos a uma com­pres­são. Não há como dizer, com precisão, que dados são clas­si­fi­ca­dos como ir­re­le­van­tes. Na com­pres­são de um áudio MP3, por exemplo, padrões de frequên­cia su­pos­ta­mente pouco ou não audíveis podem ser removidos.

Embora com­pres­sões que ocorram no nível do sistema de ar­ma­ze­na­mento pra­ti­ca­mente não ocasionem perdas, perdas de dados durante trans­mis­sões de imagens, vídeos e áudios são pro­po­si­tal­mente pro­vo­ca­das, com o objetivo de se reduzir o tamanho do arquivo.

Tanto a co­di­fi­ca­ção quanto a de­co­di­fi­ca­ção de um arquivo exigem esforços com­pu­ta­ci­o­nais que dependem, pri­o­ri­ta­ri­a­mente, do método de com­pres­são utilizado. Enquanto uma abordagem esforça-se para re­pre­sen­tar dados de saída da forma mais reduzida possível, a outra concentra-se em reduzir o tempo ne­ces­sá­rio de com­pu­ta­ção. Assim sendo, o método de com­pres­são a ser escolhido deve depender, sempre, dos re­qui­si­tos e da área de aplicação.

Aplicação de métodos de redução de dados

Empresas ge­ral­mente utilizam métodos de des­du­pli­ca­ção para realizar backups ou para otimizar o ar­ma­ze­na­mento em sistemas de arquivos padrão. É que o método de des­du­pli­ca­ção é es­pe­ci­al­mente eficiente em se tratando de ar­ma­ze­na­mento de arquivos idênticos.

Métodos de com­pres­são de dados, por outro lado, costumam resultar em custos de com­pu­ta­ção mais altos, exigindo, portanto, pla­ta­for­mas mais complexas. Sistemas de ar­ma­ze­na­mento que combinam ambos os métodos de redução de dados são, portanto, mais efi­ci­en­tes. Pri­mei­ra­mente, eles removem re­dun­dân­cias dos arquivos a serem ar­ma­ze­na­dos, por meio da des­du­pli­ca­ção. Em seguida, os dados são com­pri­mi­dos.

Ir para o menu principal