Testes de Simulação Determinística em Rust: Uma Abordagem de Máquina de Estados

2025-08-05
Testes de Simulação Determinística em Rust: Uma Abordagem de Máquina de Estados

A equipe Polar Signals compartilha sua experiência na construção de um novo banco de dados Rust com uma arquitetura de máquina de estados que coloca os testes de simulação determinística (DST) em primeiro plano. Diferentemente de seu banco de dados Go anterior, FrostDB, o novo banco de dados evita controlar o planejador existente e, em vez disso, usa um modelo de máquina de estados em que todos os componentes principais são escritos como máquinas de estados de thread único que se comunicam por meio de um barramento de mensagens. Essa abordagem fornece controle completo sobre concorrência, tempo, aleatoriedade e injeção de falhas, simplificando bastante a implementação do DST e descobrindo dois bugs críticos. Embora essa abordagem exija sobrecarga cognitiva extra, ela resulta em um raciocínio mais preciso sobre o comportamento do sistema e código mais confiável.

Leia mais

API sem servidor S2 alcança ganhos significativos de desempenho e economia de custos com perfil contínuo

2025-02-14
API sem servidor S2 alcança ganhos significativos de desempenho e economia de custos com perfil contínuo

S2, uma API sem servidor para streaming de dados, melhorou significativamente o desempenho e reduziu os custos usando o Polar Signals Cloud para perfil contínuo. Enfrentando desafios com o uso ineficiente da CPU, limitando a capacidade do usuário e aumentando os custos operacionais, a S2 utilizou os recursos de perfil contínuo do Polar Signals Cloud, especialmente seus recursos pprof.me e pilha de chamadas invertidas, para identificar e resolver vários gargalos de desempenho. Por exemplo, uma única alteração de código que permite a aceleração de hardware no Graviton por meio da biblioteca sha2 reduziu o uso da CPU para o cálculo da soma de verificação SHA256 de 68,37% para 31,82%, dobrando efetivamente a taxa de transferência. Outras otimizações incluíram melhorias no cálculo da soma de verificação CRC32C do AWS S3 Rust SDK e alocação de memória. O preço flexível do Polar Signals Cloud também se mostrou crucial para as necessidades exclusivas da S2.

Leia mais
Desenvolvimento perfil contínuo