Pergunta

"Dirty lê", ou seja, lendo o valor de um objeto, embora seja por outro segmento, são descrito no site da Terracotta, mas eu ouvi que eles não devem ser usados, mesmo se você não se preocupam com a possibilidade de que você pode obter os dados de idade, quando você suja a ler o objeto bloqueado.

Alguém tem alguma experiência de usar leituras sujas em terracota, e eles são seguros para usar se você não se preocupam com a possibilidade de ler um valor antigo?

Foi útil?

Solução

Uma leitura suja é uma leitura suja. Terracotta, sendo distribuído / cluster, acrescenta apenas a possibilidade de ler valores ainda mais antigas do estado mutável compartilhado que você está acessando sem sincronização adequada.

Você deve observar que, sob o modelo de memória em Java 5, você não está garantido para nunca ler um valor atualizado, se você não usar a sincronização adequada. Terracotta pode decidir aproveitar essa possibilidade. Na verdade, qualquer JVM poderá, a seu lazer, tirar proveito dela. Mesmo que isso pode funcionar em sua máquina, ele pode quebrar em outras máquinas. Ele pode quebrar em pequenas atualizações do JVM, e pode quebrar para a mesma versão da mesma JVM em uma CPU diferente.

Com isso em mente, você pode dizer que suja lê não é seguro em qualquer JVM ... A menos que você não se importa a possibilidade de que você nunca vai ser capaz de ler as atualizações que outros segmentos fazer - uma situação improvável, mas isso poderia acontecer.

Além disso, quando você realmente seguir o seu link para Terracotas wiki, ele diz que o artigo foi removido e que o padrão é desencorajado.

Outras dicas

Eu sou um desenvolvedor Terracotta. A essência da resposta é tão Christian Vest Hansen já observado - assim como a JVM não faz nenhuma garantia sobre a visibilidade das atualizações de um objeto compartilhado que é acessado w / o sincronização adequada, Terracotta da mesma forma pode fazer sem garantias sobre sujo lê de um objeto de cluster.

O link tem, efectivamente, propositadamente sido removido e substituído por um aviso para não usar esse padrão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top