Controle de limpeza e limpeza

O RDBSS fornece várias rotinas para limpar e limpar estruturas FOBX quando elas não são mais necessárias.

Na limpeza, não há mais identificadores de usuário associados ao objeto de arquivo. Nesses casos, a janela de tempo entre fechar e limpar é determinada pelas referências adicionais mantidas pelo Gerenciador de Memória e pelo Gerenciador de Cache. O RDBSS usa um processo de catador que é executado em um thread separado para ocultar e limpar FOBX desnecessário e outras estruturas.

Atualmente, a limpeza foi implementada para estruturas de SRV_CALL, NET_ROOT e V_NET_ROOT. A limpeza da FCB é tratada separadamente. O FOBX pode e deve ser sempre finalizado de forma síncrona. A única estrutura de dados que terá que ser potencialmente habilitada para finalização scavenged são estruturas SRV_OPEN.

O processo de catadores, pois ele é implementado no RDBSS atualmente, não consumirá nenhum recurso do sistema até que haja a necessidade de finalização scavenged. A primeira entrada a ser marcada para finalização scavenged resultará na postagem de uma solicitação de temporizador para o catador. Na implementação atual, as solicitações de temporizador são postadas como solicitações de temporizador única. Isso implica que não há garantias sobre o intervalo de tempo no qual as entradas serão finalizadas. O mecanismo de ativação de catadores é um potencial candidato para ajuste fino em um estágio posterior.

As rotinas de limpeza e limpeza do RDBSS incluem o seguinte:

Rotina Descrição

RxPurgeAllFobxs

Essa rotina limpa todas as estruturas FOBX associadas a um minidiretório de rede.

RxPurgeRelatedFobxs

Essa rotina limpa todas as estruturas FOBX associadas a uma estrutura NET_ROOT.

RxScavengeAllFobxs

Essa rotina armazena todas as estruturas FOBX associadas a um determinado objeto de dispositivo de minidiretório de rede.

RxScavengeFobxsForNetRoot

Essa rotina armazena todas as estruturas FOBX associadas a uma determinada estrutura NET_ROOT.