Description
This code currently has a hardwired optimization for MongoDB (returning an Iterable over a DBCursor). For all other persistences, a java List of all matching NodeDocuments will be built.
I see two ways to address this:
1) Generalize the Mongo approach, where a query to the persistence can return a live iterator, or
2) Stick with the public DS API, but leverage paging (get N nodes at once, and then keep calling query() again with the right starting ID).
2) sounds simpler, but is not transactional; mreutegg would that be sufficient?