Como funciona a compactação na arquitetura de memória orientada a objetos

Uma equipe de engenheiros do MIT desenvolveu uma hierarquia de memória orientada a objetos para trabalhar com dados de forma mais eficiente. No artigo, entendemos como isso é organizado.

Como funciona a compactação na arquitetura de memória orientada a objetos
/ PxHere /DP

Como você sabe, o aumento de desempenho das CPUs modernas não é acompanhado por uma diminuição correspondente na latência ao acessar a memória. A diferença na mudança de indicadores de ano para ano pode chegar a até 10 vezes (PDF, página 3). Com isso, surge um gargalo, que não permite o aproveitamento total dos recursos disponíveis e retarda o processamento dos dados.

A penalidade de desempenho é o chamado atraso de descompressão. Em alguns casos, a descompactação de dados preparatória pode levar até 64 ciclos do processador.

Para comparação: adição e multiplicação de números de ponto flutuante ocupar não mais do que dez ciclos. O problema é que a memória trabalha com blocos de dados de tamanho fixo, enquanto os aplicativos operam com objetos que podem conter diferentes tipos de dados e diferem entre si em tamanho. Para resolver o problema, os engenheiros do MIT desenvolveram uma hierarquia de memória orientada a objetos que otimiza o processamento de dados.

Como a tecnologia funciona

A solução é baseada em três tecnologias: Hotpads, Zippads e o algoritmo de compressão COCO.

Hotpads são uma hierarquia orientada por software de memória de registro de rascunho (borrador). Esses registros são chamados de pads (pads) e existem três deles - de L1 a L3. Eles armazenam objetos de tamanhos diferentes, metadados e matrizes de ponteiros.

Em essência, a arquitetura é um sistema de cache, mas aprimorado para trabalhar com objetos. O nível do bloco no qual o objeto está localizado depende da frequência com que é usado. Se um dos níveis "transborda", o sistema aciona um mecanismo semelhante aos "coletores de lixo" em Java ou Go. Ele analisa quais objetos são usados ​​com menos frequência do que outros e os move automaticamente entre os níveis.

Zippads funciona com base em Hotpads - arquiva e descompacta dados que entram ou saem dos dois últimos níveis da hierarquia - o pad L3 e a memória principal. No primeiro e no segundo pads, os dados são armazenados inalterados.

Como funciona a compactação na arquitetura de memória orientada a objetos

Zippads comprime objetos de até 128 bytes. Objetos maiores são divididos em partes, que são colocadas em diferentes áreas da memória. Conforme os desenvolvedores escrevem, essa abordagem aumenta o coeficiente de memória efetivamente usada.

Para compactar objetos, é utilizado o algoritmo COCO (Cross-Object COmpression), que abordaremos mais adiante, embora o sistema seja capaz de trabalhar com Base-Delta-Imediato ou FPC. O algoritmo COCO é uma variação da compressão diferencial (compressão diferencial). Ele compara objetos com "base" e remove bits duplicados - veja o diagrama abaixo:

Como funciona a compactação na arquitetura de memória orientada a objetos

De acordo com os engenheiros do MIT, sua hierarquia de memória orientada a objetos é 17% mais rápida do que as abordagens clássicas. É muito mais próximo em sua estrutura da arquitetura de aplicativos modernos, portanto, o novo método tem potencial.

Espera-se que, antes de tudo, empresas que trabalham com big data e algoritmos de aprendizado de máquina possam começar a usar a tecnologia. Outra direção potencial são as plataformas de nuvem. Os provedores de IaaS poderão trabalhar com mais eficiência com virtualização, sistemas de armazenamento e recursos de computação.

Nossos recursos e fontes adicionais:

Como funciona a compactação na arquitetura de memória orientada a objetos "Como construímos IaaS": materiais sobre o trabalho do 1cloud

Como funciona a compactação na arquitetura de memória orientada a objetos A evolução da arquitetura de nuvem 1cloud
Como funciona a compactação na arquitetura de memória orientada a objetos Serviço de armazenamento de objetos em 1cloud

Como funciona a compactação na arquitetura de memória orientada a objetos Ataques potenciais em HTTPS e como se proteger contra eles
Como funciona a compactação na arquitetura de memória orientada a objetos Quais são as semelhanças e diferenças entre as abordagens de Entrega Contínua e Integração Contínua
Como funciona a compactação na arquitetura de memória orientada a objetos Como proteger um servidor na Internet: experiência 1cloud

Fonte: habr.com

Adicionar um comentário