There are four limitations in the current version of ObjLayer. The most restrictive semantic limitation is that there are no primitives for uncaching objects due to insufficient memory capacity, something hardware caching can easily do. The issues are more tricky here, for instance, liveness can be hard to ensure: the application has to ensure positive progress of computation ``using'' an object before it can potentially be uncached by ObjLayer. Also, the application might need to choose which object is best to uncache.
The current implementation has three limitations. Object ID's are not
recycled, so the usable object space (with processors,
in the
current version) steadily shrinks with time. Besides, a processor may run out
of ID's even when some other processor has ID's available (we use a direct
mapping from the processors number). Rectifying this involves solving a
distributed garbage collection problem. The validation protocol at present
asks only the latest owner (creator or modifier) for a later version. This
may give rise to hot spots at the latest owner. We are considering validation
messages to be propagated along a bounded degree graph.