[jbosscache-dev] Handling invalid nodes
Mircea Markus
mmarkus at redhat.com
Mon May 19 05:57:35 EDT 2008
What about doing the isInvalid check(and exception throwing ) in an
interceptor that would be AFTER the CacheLoaderInterceptor? Phps
CallInterceptor?
Manik Surtani wrote:
> Guys,
>
> I've been thinking about behaviour with the Node API, and wonder what
> works best from a user standpoint. Consider:
>
> * User gets a hold of a node and holds on to the ref for performance
> reasons (Node n = cache.getNode(fqn))
> * Performs tasks on the node: n.put(), n.get(), etc.
> * Node checks for validity before performing any API calls, throwing a
> NodeNotValidException if the node is not valid anymore.
>
> Nodes get marked as invalid if they are removed or moved by a
> concurrent thread, or invalidated by a remote one. Eviction did not
> mark a node as invalid, but I think this is inconsistent and a bug:
> eviction too should mark the node as invalid.
>
> So the question is this - with potentially likely events marking a
> node as invalid - especially with eviction - should we throw a
> NodeNotValidException? Since (as of 2.1.0), the Node implementation
> that a user has is an instance of NodeInvocationDelegate which in turn
> has a reference to an UnversionedNode, perhaps we should handle the
> NNVE within the NodeInvocationDelegate and perform a lookup internally
> and refresh the UnversionedNode reference, and THEN throw a NNVE if we
> can't fetch the node?
>
> Th drawback is that this is potentially two calls for what should be
> one - node gets evicted, we call cache.getNode() internally to refresh
> the reference (from a cache loader, etc), and then invoke whatever
> call the user intended to call up the interceptor chain. The benefit
> is a smoother user experience.
>
> Thoughts/opinions?
>
> Cheers,
> --
> Manik Surtani
> Lead, JBoss Cache
> manik at jboss.org
>
>
>
>
>
>
> _______________________________________________
> jbosscache-dev mailing list
> jbosscache-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jbosscache-dev
More information about the jbosscache-dev
mailing list