Spec-Zone.ru › OpenJDK 8

Интерфейс DGC

Все суперинтерфейсы:
Remote

public interface DGC
extends Remote

Абстракция DGC используется для серверной части алгоритма распределённого сбора мусора. Этот интерфейс содержит два метода: dirty и clean. Вызов dirty делается, когда удалённая ссылка размаршаливается в клиенте (клиент указывается его VMID). Соответствующий вызов clean делается, когда больше нет ссылок на удалённую ссылку в клиенте. Неудачный вызов dirty должен запланировать сильный вызов clean, чтобы номер последовательности вызова можно было сохранить для обнаружения будущих вызовов, полученных вне порядка распределённым сборщиком мусора. Ссылка на удалённый объект сдает клиенту, который держит ссылку, на определённый период времени. Период аренды начинается, когда получен вызов dirty. Клиент несёт ответственность за продление аренды, вызывая dirty для удалённых ссылок, которые он держит, прежде чем аренда истечёт. Если клиент не продлит аренду до истечения срока действия, распределённый сборщик мусора предполагает, что удалённый объект больше не ссылается на этот клиент.

Методы

Модификатор и тип Метод и описание
void clean(ObjID[] ids, long sequenceNum, VMID vmid, boolean strong)

Вызов clean удаляет 'vmid' из списка ссылок каждого удалённого объекта, указанного в 'id's.

Lease dirty(ObjID[] ids, long sequenceNum, Lease lease)

Вызов dirty запрашивает аренды для удалённых ссылок на объекты, связанные с идентификаторами объектов, содержащимися в массиве 'ids'.

Методы

dirty

Lease dirty(ObjID[] ids,
            long sequenceNum,
            Lease lease)
     throws RemoteException

Вызов dirty запрашивает аренды для удалённых ссылок на объекты, связанные с идентификаторами объектов, содержащимися в массиве 'ids'. 'lease' содержит уникальный идентификатор виртуальной машины клиента (VMID) и запрашиваемый период аренды. Для каждого удалённого объекта, экспортированного в локальной виртуальной машине, сборщик мусора поддерживает список ссылок — список клиентов, которые ссылаются на него. Если аренда предоставлена, сборщик мусора добавляет VMID клиента в список ссылок для каждого удалённого объекта, указанного в 'ids'. Параметр 'sequenceNum' — это номер последовательности, который используется для обнаружения и отбрасывания вызовов сборщику мусора, поступивших с опозданием. Номер последовательности должен всегда увеличиваться для каждого последующего вызова сборщика мусора. Некоторые клиенты не могут сгенерировать VMID, так как VMID — это универсальный уникальный идентификатор, который содержит адрес хоста, который некоторые клиенты не могут получить из-за ограничений безопасности. В этом случае клиент может использовать VMID null, и распределённый сборщик мусора назначит VMID для клиента. Вызов dirty возвращает объект Lease, содержащий используемый VMID и предоставленный период аренды для удалённых ссылок (сервер может решить предоставить меньший период аренды, чем запрашивает клиент). Клиент должен использовать VMID, используемый сборщиком мусора, для выполнения соответствующих вызовов clean, когда клиент удаляет ссылки на удалённые объекты. Клиентской виртуальной машине достаточно сделать один начальный вызов dirty для каждой ссылки на удалённую ссылку, на которую ссылается виртуальная машина (даже если у неё есть несколько ссылок на один и тот же удалённый объект). Клиент также должен выполнить вызов dirty для продления аренды на удалённые ссылки перед истечением срока аренды. Когда клиент больше не имеет ссылок на определённый удалённый объект, он должен запланировать вызов clean для идентификатора объекта, связанного со ссылкой.

Параметры:
ids - Идентификаторы объектов, которые нужно пометить как ссылаемые вызывающим клиентом
sequenceNum - Номер последовательности
lease - Запрашиваемая аренда
Возвращает:
Предоставленная аренда
Исключение:
RemoteException - если вызов dirty завершился неудачно

clean

void clean(ObjID[] ids,
           long sequenceNum,
           VMID vmid,
           boolean strong)
    throws RemoteException

Вызов clean удаляет 'vmid' из списка ссылок каждого удалённого объекта, указанного в 'id's. Номер последовательности используется для обнаружения вызовов clean с опозданием. Если аргумент 'strong' равен true, то вызов clean — результат неудачного вызова dirty, следовательно, номер последовательности для клиента 'vmid' нужно запомнить.

Параметры:
ids - Идентификаторы объектов, которые нужно пометить как не ссылаемые вызывающим клиентом
sequenceNum - Номер последовательности
vmid - VMID клиента
strong - сделать сильный вызов clean
Исключение:
RemoteException - если вызов clean завершился неудачно

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API