Coleta de lixo distribuída - Distributed garbage collection

A coleta de lixo distribuída ( DGC ) na computação é um caso particular de coleta de lixo em que um cliente remoto pode conter referências a um objeto .

O DGC usa alguma combinação das técnicas clássicas de coleta de lixo (GC), rastreamento e contagem de referência . Ele precisa cooperar com os coletores de lixo locais em cada processo para manter contagens globais ou rastrear globalmente a acessibilidade dos dados. Em geral, os processadores remotos não precisam saber sobre contagem interna ou rastreamento em um determinado processo, e as informações relevantes são armazenadas em interfaces associadas a cada processo.

DGC é complexo e pode ser caro e lento para liberar memória. Como uma forma barata de evitar algoritmos DGC, pode-se contar com um contrato de arrendamento de tempo - definido ou configurado no objeto remoto; é tarefa do stub renovar periodicamente o aluguel do objeto remoto. Se o contrato de arrendamento expirou, o processo do servidor (o processo de possuir o objeto remoto) pode seguramente assumir que tanto o cliente não está mais interessada no objeto, ou que uma partição de rede ou falha de renovação da concessão obstruída, caso em que ele é "difícil sorte "para o cliente se de fato ainda estiver interessado. Portanto, se houver apenas uma única referência ao objeto remoto no servidor representando uma referência remota desse cliente, essa referência pode ser descartada, o que significa que o coletor de lixo local no servidor irá coletar o objeto em algum futuro ponto no tempo.

Referências

  • Abdullahi, Saleh E .; Ringwood, Graem A. (1998). “Coleta de lixo na Internet: um levantamento da coleta de lixo distribuída” . Pesquisas de computação ACM . 30 (3): 330–373. doi : 10.1145 / 292469.292471 . S2CID  17057004 .