public interface DGC
DGC 抽象用于分布式垃圾回收算法的服务器端。此接口包含了两个方法:dirty 和 clean。当一个远程引用在客户机(客户机由其 VMID 表示)被解组时,则进行一次脏 (dirty) 调用。当客户机上不存任何针对远程引用的更多引用时,则进行一次相应的洁 (clean) 调用。一次失败的脏调用必须安排一次强洁调用,这样调用的序列号才能保持,以检测未来由分布式垃圾回收器接收的无序调用。针对远程对象的引用由保持该引用的客户机租借一段时间。租借期从接收到脏调用时开始。对租借进行续期是客户机的职责,其方式是:在租借期满之前,在客户机保持的远程引用上进行附加的脏调用。如果客户机在期满之前没有对租借进行续期,则分式布垃圾回收器假定远程对象已不再为该客户机所保持。
方法摘要 | |
---|---|
void |
clean(ObjID[] ids, long sequenceNum, VMID vmid, boolean strong) 洁调用从 'ids' 指示的每个远程对象的引用列表中移除 'vmid'。 |
Lease |
dirty(ObjID[] ids, long sequenceNum, Lease lease) 脏调用为(与包含在数组 'ids' 中的对象标识符关联的)远程对象引用请求租借。 |
方法详细信息 |
---|
Lease dirty(ObjID[] ids, long sequenceNum, Lease lease) throws RemoteException
ids
- 调用客户机进行引用时要标记的对象 ID
sequenceNum
- 序号
lease
- 请求的租期
RemoteException
- 如果脏调用失败
void clean(ObjID[] ids, long sequenceNum, VMID vmid, boolean strong) throws RemoteException
ids
- 调用客户机取消引用时要标记的对象 ID
sequenceNum
- 序号
vmid
- 客户机 VMID
strong
- 进行“强”洁调用
RemoteException
- 如果洁调用失败