An automatic close after a timeout it could be nice to have, but it could make the behaviour unpredictable.
I'd definitely prefer the iterators implement the AutoCloseable interface, so this makes the code more clean and allow the user to close() a result when it's not needed anymore. On 28 December 2016 at 17:12, Paul Jackson <[email protected]> wrote: > +1 > > The obvious/preferred route (for me), since the vertices() and edges() > methods in org.apache.tinkerpop.gremlin.structure.Graph return Iterator, > is to have them return an interface that extends Iterator and > AutoCloseable. If you create a new interface in 3.x for this, it would > probably be CloseableIterator rather than the CloseableIterable of 2.x. > > Alternative (messy) could make Graph responsible for this. Have it > register each iterator and close it after period of inactivity exceeds a > timeout, or if the Graph itself is closed. That's all I got. > > -Paul > > > On 2016-12-28 08:27 (-0500), Stephen Mallette <[email protected]> > wrote: > > In TinkerPop 2.x we had a CloseableIterable class which allowed graphs > like > > Sparksee and OrientDB to release server resources. Luca recently brought > up > > this topic on the gremlin-users mailing list: > > > > https://groups.google.com/d/msg/gremlin-users/lHepXl_Nle4/n3QeYqmNCwAJ > > > > Is there any way to implement this without having something like > > CloseableIterable? Traversal already implements AutoCloseable which could > > call close() to the underlying iterator. We use close() for remoting > > Traversals at this point. There is nothing analogous for a standard > > traversal instance. > > > > Thoughts? > > >
