Виртуальная машина Java когда-либо перемещает объекты в памяти, и если да, то как она обрабатывает ссылки на перемещенный объект?
Я спрашиваю, потому что я изучаю идею хранения объектов распределенным способом (т.е. на нескольких серверах), но мне нужна возможность перемещать объекты между серверами по соображениям эффективности. Объекты должны иметь возможность содержать указатели друг на друга, даже на объекты на удаленных серверах. Я пытаюсь думать о лучшем способе обновления ссылок на перемещенные объекты.
Мои две идеи до сих пор:
- Поддерживайте ссылочное обозначение где-то, что не движется за время жизни объекта, которое мы обновляем, если объект перемещается. Но как справиться с этими отказами?
- Сохраняйте список обратных ссылок с каждым объектом, поэтому мы знаем, что нужно обновлять, если объект перемещен. Конечно, это создает накладные расходы.
Мне было бы интересно получить отзывы об этих подходах и любые предложения по альтернативным подходам.