¿Alguna vez la máquina virtual Java mueve objetos en la memoria y, de ser así, cómo gestiona la actualización de las referencias al objeto movido?¿Mueve Java VM objetos en la memoria y, de ser así, cómo?
Lo pido porque estoy explorando la idea de almacenar objetos de forma distribuida (es decir, en varios servidores), pero necesito la capacidad de mover objetos entre servidores por razones de eficiencia. Los objetos deben poder contener punteros entre sí, incluso a objetos en servidores remotos. Estoy tratando de pensar en la mejor forma de actualizar las referencias a los objetos movidos.
Mis dos ideas hasta el momento son:
- Mantener un direccionamiento indirecto en algún lugar de referencia que no se mueve durante la vida útil del objeto, que actualizamos si el objeto se mueve. Pero, ¿cómo se manejan estas indirecciones?
- Mantenga una lista de referencias inversas con cada objeto, para que sepamos qué debe actualizarse si el objeto se mueve. Por supuesto, esto crea una sobrecarga de rendimiento.
Me gustaría recibir comentarios sobre estos enfoques y sugerencias sobre enfoques alternativos.
Honestamente, no puedo ver la relevancia de .NET remoto y CORBA en esto. ¿Puede proporcionar punteros más específicos? – sanity
Además, realmente lo que estoy buscando es una explicación de * cómo * los sistemas recolectados de basura mueven objetos alrededor. – sanity
@Sanity - Rob Walker recomienda esas tecnologías como un medio para comprender mejor sus estrategias sobre por qué y cómo hacen las cosas que hacen. –