InícioVPSEscalabilidadeMelhorando a eficiência dos metadados para uso em aplicações de grande escala...

Melhorando a eficiência dos metadados para uso em aplicações de grande escala na web.

Date:

Motores de dados como o RocksDB estão se tornando essenciais para evitar problemas de acesso a metadados que podem impactar o funcionamento eficiente de sistemas em larga escala. Veja as informações importantes sobre esse cenário.

Visualization of data in motion through a data center corridor of servers.
Imagem:
chsyys/FreePik

No cerne da maioria das aplicações de software, encontra-se um motor de dados oculto, que serve para organizar e catalogar informações importantes. Até o momento, esses motores de dados, também conhecidos como motores de armazenamento, têm operado em segundo plano, trabalhando silenciosamente abaixo da aplicação e acima do sistema de armazenamento.

Um mecanismo de dados comumente executa tarefas fundamentais de administração de armazenamento, especialmente a criação, leitura, atualização e exclusão de dados (CRUD). Além disso, é necessário que o mecanismo de dados ofereça uma interface eficiente para leituras sequenciais de dados e atualizações atômicas simultâneas de várias chaves.

As empresas estão utilizando cada vez mais os motores de dados para realizar diversas atividades em tempo real, enquanto os dados estão em movimento. Nesse contexto, motores de dados conhecidos, como o RocksDB, estão desempenhando um papel fundamental na administração de cargas de trabalho que demandam muito processamento de metadados, contribuindo para evitar possíveis gargalos de acesso que poderiam impactar o desempenho do sistema como um todo.

Enquanto os metadados ocupam uma pequena parte dos recursos em comparação com os dados, qualquer atraso mínimo na experiência do usuário se torna claramente perceptível, destacando a importância de um desempenho extremamente rápido. Esse desafio se torna ainda mais evidente ao lidar com cargas de trabalho modernas e intensivas em metadados, como IoT e análises avançadas.

Os tipos mais comuns de estruturas de dados em um motor de dados são B-tree e LSM árvore. Identificar como a aplicação é utilizada ajuda a decidir qual estrutura de dados é mais adequada para atingir o desempenho desejado. Com essa informação, é possível otimizar os metadados conforme os aplicativos crescem e alcançam uma escala web.

Vantagens e desvantagens da estrutura de dados B-tree.

As árvores B são classificadas de acordo com a chave escolhida pelo usuário, o que as torna ideais para situações em que há muitas operações de leitura e busca, poucas operações de escrita e os dados são de tamanho reduzido para caber na memória principal. Elas são recomendadas para pequenos bancos de dados de uso geral.

Contudo, as árvores B enfrentam desafios importantes em relação ao desempenho de escrita devido a diversas razões, como o aumento da sobrecarga de espaço para lidar com a fragmentação, a amplificação de escrita causada pela necessidade de ordenar os dados a cada operação, e a realização de escritas simultâneas que requerem bloqueios, afetando consideravelmente o desempenho global e a escalabilidade do sistema.

Pontos positivos e negativos da metodologia LSM.

As árvores LSM são componentes essenciais em diversas plataformas de dados e armazenamento que lidam com uma grande quantidade de operações de escrita. Isso é especialmente relevante para aplicações que frequentemente inserem e atualizam novas chaves ou registros de escrita, o que pode sobrecarregar as transações de escrita tanto na memória quanto no momento em que a memória ou o cache são descarregados para o disco.

VEJA TAMBEM:  Os dados desorganizados estão impedindo as empresas de avançarem na área de inteligência artificial.

Um LSM é uma estrutura parcialmente ordenada composta por vários níveis, sendo o nível mais alto uma matriz de dados ordenada que fica em memória, enquanto os níveis inferiores são arrays de dados ordenados que geralmente estão armazenados em dispositivos de armazenamento mais lentos e persistentes. Periodicamente, um processo de compacção offline mescla os dados do nível superior com o nível inferior.

As vantagens do LSM em relação ao B-tree se devem ao fato de que as operações de escrita são realizadas totalmente em memória, com um registro de cabeçalho de gravação (WAL) utilizado para garantir a proteção dos dados até serem liberados da memória para armazenamento permanente. A velocidade e a eficiência são melhoradas devido ao uso de um método de escrita apenas de anexação pelo LSM, permitindo gravações sequenciais rápidas sem os problemas de fragmentação enfrentados pelas árvores B. Inserções e atualizações podem ser realizadas de forma muito mais rápida, enquanto o sistema de arquivos é continuamente organizado e reestruturado por meio de um processo de compactação em segundo plano que diminui o tamanho dos arquivos necessários para armazenar os dados no disco.

LSM tem desvantagens próprias. Por exemplo, a leitura pode ser comprometida ao acessar dados em pequenas partes de forma aleatória, já que os dados estão dispersos. Localizar os dados desejados rapidamente pode ser desafiador se a configuração não estiver otimizada. É possível mitigar essa questão utilizando índices, filtros de flores e outras técnicas de otimização, como ajustar tamanhos de arquivos, blocos e uso de memória, embora isso dependa do conhecimento técnico das organizações desenvolvedoras para lidar com essas tarefas de forma eficiente.

Melhoria de performance em estabelecimentos essenciais.

Os três elementos fundamentais para o desempenho central em uma loja de valor essencial são a melhoria da gravação, melhoria da leitura e melhoria do espaço. Cada um desses fatores tem impacto significativo nas características de desempenho, estabilidade e eficiência do sistema. É importante lembrar que ajustar o desempenho de uma loja de valor essencial é um desafio em constante evolução, que se adapta conforme a utilização da aplicação, infraestrutura e requisitos mudam ao longo do tempo.

Registrar um aumento no volume.

A amplificação da escrita refere-se à quantidade total de bytes escritos durante uma operação de gravação lógica. Esse fenômeno ocorre quando os dados são transferidos, duplicados e organizados em diferentes níveis internos, resultando em reescritas repetidas. A intensidade da amplificação da escrita depende do tamanho dos dados originais, do número de níveis, do tamanho da tabela, da frequência de substituições e de outros elementos envolvidos.

Leia o aumento de volume.

Este é um aspecto determinado pela quantidade de leituras de disco que uma solicitação de leitura de aplicação provoca. Se uma consulta de dados de 1K não é encontrada nas linhas armazenadas em memtable, então a solicitação de leitura será direcionada para os arquivos em armazenamento persistente, o que contribui para a redução da amplificação de leitura. O tipo de consulta (por exemplo, consulta de intervalo versus consulta de ponto) e o tamanho da solicitação de dados também terão impacto na amplificação de leitura e no desempenho global da leitura. O desempenho das leituras também pode variar ao longo do tempo à medida que os padrões de uso da aplicação se alteram.

VEJA TAMBEM:  Os investimentos em infraestrutura em nuvem estão em ascensão.

Expansão do espaço

Essa é a explicação de como a quantidade de armazenamento utilizado pelos dados pode variar conforme o tamanho real dos dados. Esse aspecto é influenciado pela natureza e dimensão dos dados inseridos e atualizados pela aplicação, levando em consideração o uso de compressão, o tipo de compactação e a frequência com que ela é aplicada.

A expansão do espaço é influenciada por vários fatores, como a presença de uma grande quantidade de dados não coletados, a realização de muitas inserções e atualizações, e a escolha do algoritmo de compactação. Existem diversas opções de ajuste que podem impactar a expansão do espaço. Além disso, as equipes podem personalizar a forma como a compressão e compactação são executadas, determinar a profundidade e tamanho desejados para cada nível, e ajustar o momento em que a compactação é realizada para otimizar a organização dos dados. Esses fatores de expansão também são influenciados pela carga de trabalho, tipo de dados, infraestrutura de memória e armazenamento, e padrão de utilização da aplicação.

Otimização bidirecional: Maximizando a escrita e a leitura de informações.

Na maioria dos casos, as estruturas de dados existentes de armazenamento de valor-chave podem ser ajustadas para serem satisfatórias em termos de velocidade de leitura e gravação para aplicativos, porém não conseguem alcançar alto desempenho em ambas as operações. Esse problema se torna crítico quando os conjuntos de dados aumentam de tamanho. À medida que os volumes de metadados continuam a crescer, podem ultrapassar o tamanho dos próprios dados. Assim, as organizações logo se veem tendo que ponderar entre desempenho, capacidade e custo.

Quando surgem questões de desempenho, equipes frequentemente optam por reorganizar os dados em shards. O sharding é uma prática essencial, porém consome tempo dos desenvolvedores. À medida que a quantidade de conjuntos de dados aumenta, os desenvolvedores precisam investir mais tempo particionando e distribuindo os dados entre os fragmentos, em vez de concentrarem-se na escrita de código.

Além da fragmentação, equipes frequentemente buscam otimizar o desempenho do banco de dados. A boa notícia é que ferramentas completas, como o RocksDB, oferecem uma ampla gama de opções de ajuste – talvez até em excesso. A desvantagem é que o ajuste é um processo demorado e iterativo, uma habilidade complexa na qual desenvolvedores experientes podem enfrentar dificuldades.

Conforme mencionado anteriormente, um aspecto significativo é a amplificação da gravação. À medida que o número de operações de gravação aumenta, o fator de amplificação de gravação (WAF) também aumenta, resultando em um desempenho de E/S reduzido, o que pode levar a uma diminuição no desempenho e atrasos imprevisíveis. Dado que os motores de dados, como o RocksDB, estão na parte mais profunda da pilha de software, qualquer interrupção de E/S nessa camada pode afetar significativamente a performance da aplicação, causando grandes atrasos. Em um cenário ideal, uma aplicação teria um fator de amplificação de escrita próximo a um valor baixo, representado por “n”. Um WAF comum de 30 terá um impacto dramático no desempenho da aplicação em comparação com um WAF mais próximo do ideal, que seria em torno de 5.

VEJA TAMBEM:  Um plano estratégico do CISO para garantir a segurança na computação em nuvem.

É verdade que são poucas as aplicações ideais, e para ampliá-las é necessário ter habilidade ou a capacidade de fazer ajustes sucessivos. Depois de ajustadas, essas aplicações podem enfrentar problemas de desempenho adicionais e significativos caso as cargas de trabalho ou os sistemas subjacentes sejam modificados, o que exigirá mais ajustes e possivelmente um ciclo contínuo de readaptação, consumindo mais tempo dos desenvolvedores. A simples adição de recursos, embora uma solução imediata, também não é uma solução a longo prazo.

Em rumo aos motores de dados avançados da próxima geração.

Novas tecnologias de armazenamento de dados estão sendo desenvolvidas para solucionar as limitações encontradas em tarefas que demandam baixa latência e alto volume de dados, como é o caso do processamento de metadados. Em um próximo artigo, será abordada a tecnologia do Speedb e sua estratégia para otimizar esses aspectos.

Com a crescente adoção de arquiteturas de microsserviços de baixa latência, os desenvolvedores têm a oportunidade de otimizar o desempenho dos metadados, seja ajustando ou substituindo o mecanismo de dados para resolver questões de desempenho e escalabilidade do passado. Essas alternativas não apenas requerem menos intervenção direta dos desenvolvedores, mas também são mais adequadas para atender às exigências das aplicações atuais.

Hilik Yochai é o diretor de ciência e um dos fundadores da Speedb, uma empresa responsável pelo desenvolvimento do motor de dados Speedb, que pode ser facilmente substituído pelo RocksDB. Além disso, a Speedb mantém a comunidade open-source Hive, onde os programadores podem interagir, aprimorar e compartilhar conhecimentos e boas práticas relacionadas ao Speedb e RocksDB. A tecnologia da Speedb auxilia os desenvolvedores a aprimorarem suas operações de dados em grande escala, oferecendo escalabilidade ilimitada e alto desempenho sem comprometer a funcionalidade, ao mesmo tempo em que busca constantemente melhorar a usabilidade e facilidade de uso.

Lo siento, pero necesito más información o el texto que deseas que parafrasee. ¿Puedes proporcionarme más detalles o el contenido completo del texto?

O New Tech Forum proporciona um espaço para analisar e debater tecnologia empresarial emergente de forma abrangente e detalhada. A seleção é feita de forma subjetiva, com base nas tecnologias que consideramos relevantes e mais interessantes para os leitores da InfoWorld. A InfoWorld não garante a publicação por motivos de marketing e se reserva o direito de editar todo o conteúdo enviado. Qualquer dúvida pode ser enviada para newtechforum@infoworld.com.

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui