"Грязное чтение", означающее чтение значения объекта, даже если он заблокирован записью другим потоком, на сайте Terracotta является описал, но я слышал, что их не следует использовать, даже если вас не волнует возможность что вы можете получить старые данные при грязном чтении заблокированного объекта.
Есть ли у кого-нибудь опыт использования грязных чтений в Terracotta, и безопасно ли их использовать, если вас не волнует возможность чтения старого значения?




Грязное чтение - это грязное чтение. Terracotta, будучи распределенным / кластеризованным, только добавляет возможность читать даже более старые значения общего изменяемого состояния, к которому вы получаете доступ, без надлежащей синхронизации.
Вы должны отметить, что в модели памяти в Java 5 вам не гарантируется, что Когда-либо прочитает обновленное значение, если вы не используете правильную синхронизацию. Terracotta может решить воспользоваться этой возможностью. Фактически, любая JVM может на досуге воспользоваться этим. Даже если он может работать на вашем компьютере, он может сломаться на других машинах. Он может сломаться при незначительных обновлениях JVM, и он может сломаться для одной и той же версии той же JVM на другом процессоре.
Имея это в виду, вы можете сказать, что грязное чтение небезопасно в любой JVM ... Если вы не возражаете против возможности того, что вы никогда не сможете прочитать обновления, которые делают другие потоки - маловероятная ситуация, но Это могло случиться.
Кроме того, когда вы на самом деле переходите по ссылке на Terracottas wiki, в ней говорится, что статья была удалена и шаблон не приветствуется.
Я разработчик Terracotta. Суть ответа такая же, как уже отмечал Кристиан Вест Хансен - точно так же, как JVM не дает никаких гарантий относительно видимости обновлений разделяемого объекта, к которому осуществляется доступ без надлежащей синхронизации, Terracotta также не может дать никаких гарантий относительно грязного чтения из файла. кластерный объект.
Ссылка действительно была намеренно удалена и заменена предупреждением не использовать этот шаблон.
Да, он был удален в результате моего разговора с инженером по продажам Terracotta.