Some objects may want to be used on a per node basis
(exclusively).
A Non-shared instance may be the case where
>large chunks of RAM are used.
>Or resources for that JVM instance are consumed
excessively.
>A long running process is stalled, but going to
consume mass CPU making other processes undesirable for
shared execution - this may not be apparent if it is
initially IOBound (i.e. loading a dataset).
In these cases, it may not be possible to determine
from the system cpu that it is about to become busy.
However if the finderQuery supports
find(NonSharedObjectInstance instance where
instance.inUse = false);
It would allow for instances to be queried and returned
as necessary. Once an invocation on that instance takes
place it should set the inUse boolean to true - and if
any subsequent calls are made, it should throw an
IllegalStateException.