lo que permite decir que tengo una serie N servidor de tamaño constituido así:¿Cómo funciona Terracotta en esta situación?
alt text http://www.terracotta.org/web/download/attachments/43909161/ServerArrayMirrorGroup.png
Tengo un simple JavaBean/POJO:
package example;
public class Person {
private OtherObject obj;
public void setObj(OtherObject theObj) {
synchronized (this) {
obj = theObj;
}
}
public OtherObject getObj() {
synchronized (this) {
return obj;
}
}
}
Ahora bien, si una de las llamadas de clientes Person.setObj (OtherObject) en un objeto Person en la raíz TC (estructura de datos), es el bloque sincronizado (en Person.setObj (OtherObject)) en ese cliente que se celebró:
1) Hasta el N de los servidores en el N matriz de servidores de tamaño se han sincronizado/actualizado con ese atributo Person.obj?
o
2) hasta que el servidor "activa" se ha sincronizado con que actualizó atribuyen Person.obj? Entonces los otros servidores (N-1) en la matriz se sincronizan como sea posible?
o
3) algún otro método que estoy con vistas?
Just FYI: la sincronización en este caso no hace nada porque la asignación de una referencia es atómica. – cletus
Lo cambié para ser un objeto en lugar de una Cadena – systemoutprintln
@cletus: No es verdadero. La sincronización introduce una garantía de visibilidad para la asignación de referencia a otros hilos, y en este caso también a otros servidores. Sin sincronización, ningún otro subproceso en el JVM o clúster verá nunca que la variable ha cambiado. –