2.4.2. O processamento interno dos modos de escrita VDO
Esta seção fornece detalhes sobre como funcionam os modos de escrita sync
e async
VDO.
Se o módulo kvdo
estiver operando em modo síncrono:
- Ele escreve temporariamente os dados no pedido para o bloco alocado e depois reconhece o pedido.
- Uma vez concluído o reconhecimento, é feita uma tentativa de deduplicar o bloco através do cálculo de uma assinatura MurmurHash-3 dos dados do bloco, que é enviada para o índice VDO.
-
Se o índice VDO contém uma entrada para um bloco com a mesma assinatura,
kvdo
lê o bloco indicado e faz uma comparação byte por byte dos dois blocos para verificar se são idênticos. -
Se forem de fato idênticos, então
kvdo
atualiza seu mapa de blocos para que o bloco lógico aponte para o bloco físico correspondente e libere o bloco físico alocado. -
Se o índice VDO não contém uma entrada para a assinatura do bloco que está sendo escrito, ou se o bloco indicado não contém realmente os mesmos dados,
kvdo
atualiza seu mapa de blocos para tornar o bloco físico temporário permanente.
Se kvdo
estiver operando em modo assíncrono:
- Em vez de escrever os dados, ele reconhecerá imediatamente o pedido.
- Tentará então deduplicar o bloco da mesma forma descrita acima.
-
Se o bloco se tornar um duplicado,
kvdo
atualiza seu mapa de blocos e libera o bloco alocado. Caso contrário, ele escreve os dados no pedido para o bloco alocado e atualiza o mapa de blocos para tornar o bloco físico permanente.