SSP chains : robust, distributed references supporting acyclic garbage collection
Résumé
SSP chains are a novel technique for referencing objects in a distributed system. To client software, any object reference appears to be a local pointer, when the target is remote an SSP chain adds an indeterminate number of levels of indirection. Copying a reference across the distributed system extends an SSP chain at one end, migrating the target object extends it at the other end. Invocation through an SSP chain is efficient : each stage of an SSP chain contains location information and long chains are short-cut at invocation time. These actions require (almost) no extra messages in addition to those of the client application. The rules for creating, using, modifying and deleting SSP chains are stated precisely and maintain well-defined invariants. The invariants hold even in the presence of message failures (loss, duplication, late delivery), after a crash, the existence invariants must be re-established. SSP chains support distributed garbage collection (GC), we present a robust distributed variant of reference counting. The techniques presented here are cheap, robust, widely applicable and scalable.