Я не знаком с их (терракотовой) реализацией, но с точки зрения JMM, должен занять блокировку всего кластера. Однако этот пример очень прост; просто изменение ссылки, и это может привести к ее преобразованию во что-то, что больше похоже на изменчивую запись, и полностью избежать блокировки.
Но, если вы делаете нетривиальные вещи в своем синхронизированном блоке, то я бы предположил, что TC пессимистически берет блокировку на уровне cluser в начале синхронизированного блока. Если бы они этого не сделали, они были бы в противоречии со спецификацией JMM. как я понимаю.
Другими словами, ваш вариант № 1. Так что будьте осторожны с тем, что вы разделяете в кластере, и используйте неизменные объекты и структуры данных java.util.concurrent. *, Когда можете - последний получает особую внутреннюю любовь в TC.