2.4 KiB
2.4 KiB
AGD-0021: Full Migration to Atomic Telemetry
Contexto
Durante a implementação do isolamento do overlay de debug no Host Desktop (DEC-0007), foi introduzido o AtomicTelemetry para permitir acesso assíncrono e sem locks aos dados de performance. Por motivos de cautela inicial, os campos legados telemetry_current e telemetry_last foram mantidos no VirtualMachineRuntime para compatibilidade com processos de certificação e logs internos.
Problema
A manutenção de dois sistemas paralelos de telemetria gera redundância de código, aumenta a superfície de erro e consome ciclos de CPU desnecessários para atualizar dados que já estão disponíveis de forma mais eficiente via atômicos. A "compatibilidade" pretendida não justifica o débito técnico de manter estruturas duplicadas.
Pontos Críticos
- Fato:
AtomicTelemetryjá provê todos os dados necessários (ciclos, memória, logs). - Risco: Remoção de
telemetry_lastpode quebrar ferramentas que dependem de snapshots estáticos por frame se não houver um substituto claro de snapshot via atômicos. - Tradeoff: A migração exige refatorar o
VirtualMachineRuntimee possivelmente oLogServicepara convergirem em uma única fonte de verdade. - Hipótese: Um snapshot derivado do
AtomicTelemetryao final de cada frame é suficiente para substituir otelemetry_lastlegado sem perda de precisão.
Opções
- Opção A (Recomendada): Migração total e remoção dos campos legados. O
AtomicTelemetrytorna-se a única fonte de verdade. Onde snapshots estáveis são necessários, eles são extraídos viaAtomicTelemetry::snapshot(). - Opção B: Manter redundância (Descartada pelo usuário).
Sugestão / Recomendação
- Remover
telemetry_currentetelemetry_lastdoVirtualMachineRuntime. - Refatorar o loop de execução para atualizar exclusivamente o
AtomicTelemetry. - Garantir que o
LogServicee outras auditorias consumam dados do novo modelo. - Atualizar as especificações para refletir o modelo único.
Perguntas em Aberto
- Existe algum uso específico de
telemetry_lastem ferramentas externas (não mapeadas) que dependem do layout de memória antigo? (Assumimos que não para este escopo).
Criterio para Encerrar
- Remoção completa dos campos no código.
- Compilação e execução bem-sucedida do Host Desktop com o novo modelo único.
- Atualização da documentação normativa.