Daniel, there is the ImpertmanentGraphDatabase, https://github.com/neo4j/community/blob/master/kernel/src/test/java/org/neo4j/test/ImpermanentGraphDatabase.java that you could use just to test in-memory out, since it does abstract away the file system layer. Would be interesting to see if you can get any differences. It's mostly a test utility, but could provide useful.
Cheers, /peter neubauer GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - NOSQL for the Enterprise. http://startupbootcamp.org/ - Öresund - Innovation happens HERE. On Wed, Sep 28, 2011 at 8:30 PM, Daniel Morozoff <danielmoroz...@gmail.com> wrote: > Michael, > The amount of nodes traversed / and the amount of relationships vary. I > personally have seen it go from 2 - 2k+ for relationships, and similarly for > the amounts of nodes traversed. The total number of nodes in the DB is ~ 4M. > We dynamically assigne the number of sets, usually ~ 3-4 steps. > The usecase is basically we developed a novel algorithm to detect subspace > similarities in graph networks (solely based on the geometry of space). The > applications as you can imagine are varied in numerous fields. > > Hope this helps, > Dan > P.S. As for the graph generator -- I don't think you can recreate a > similarly sparsed graph algorithmically, best case is to use some sort of > real world sparse data. > > Daniel Morozoff-Abezgauz > > Mobile: 415-652-2388 > Email: danielmoroz...@gmail.com > Website: http://patentula.com > > > > On Tue, Sep 27, 2011 at 3:06 PM, Michael Hunger > <michael.hun...@neotechnology.com> wrote: >> >> Dan about how many nodes as traversal result are we talking here? >> You said you have one type of relationship. How many relationships do you >> have per node pointing to other nodes (outgoing) and incoming (min, max, avg >> or distribution) ? >> How many steps does your traversal go? >> And what is the usecase behind it? So that we can understand your graph >> model and the operations you'd like to perform. >> Perhaps you could also share (privately) a graph generator that would >> create a graph as yours. Then we could run some performance tests of our >> own. >> Cheers >> Michael >> Am 27.09.2011 um 23:17 schrieb Daniel Morozoff: >> >> Hi Michael, >> Sure we may move it to the mailing list. >> We have single nodes connected with one type of relationship. We are >> running cold cache but using an indexing mechanism to find start node (which >> we have only one). We also implemented a stop evaluator running on a depth >> protocol and it is working - so I believe we are traversing the exact amount >> we need. >> Does neo4j support loading an entire db into memory btw? >> The reason I asked of blackray, is b/c we need the capability to receive >> close to instantaneous responses on a web query. So we will need to run the >> calculation the back end before exposing it to the front end. >> Regards, >> Dan >> >> >> >> On Tue, Sep 27, 2011 at 1:39 PM, Michael Hunger >> <michael.hun...@neotechnology.com> wrote: >>> >>> Can we take this to the mailing list ? >>> After all what is your usecase? >>> What is the structure of your graph, what your starting nodes, etc. >>> Do you have cold or hot caches. >>> I think probably the traverser is not limiting to the right set and >>> traverses too much of the graph. >>> Cheers >>> Michael >>> Am 27.09.2011 um 20:41 schrieb Peter Neubauer: >>> >>> Daniel, >>> I think Michael has been testing some with these setups... >>> >>> /peter >>> >>> Sent from my phone. >>> >>> On Sep 27, 2011 6:21 PM, "Daniel Morozoff" <danielmoroz...@gmail.com> >>> wrote: >>> > Hi Peter, >>> > >>> > Thanks for your response. Makes total sense! Can you recommend any in >>> > memory >>> > DBs like blackray that work well with neo4j and java? >>> > >>> > Thanks, >>> > >>> > Dan >>> > >>> > On Tue, Sep 27, 2011 at 12:26 AM, Peter Neubauer < >>> > peter.neuba...@neotechnology.com> wrote: >>> > >>> >> Daniel, >>> >> remember that the traversals are lazy, so nothing is traversed until >>> >> you actually iterate. Is that explaining the difference? Also, try >>> >> running the code several times, and the caches and the JVM will help >>> >> to bring times down compared to cold runs. >>> >> >>> >> HTH, >>> >> >>> >> Cheers, >>> >> >>> >> /peter neubauer >>> >> >>> >> GTalk: neubauer.peter >>> >> Skype peter.neubauer >>> >> Phone +46 704 106975 >>> >> LinkedIn http://www.linkedin.com/in/neubauer >>> >> Twitter http://twitter.com/peterneubauer >>> >> >>> >> http://www.neo4j.org - Your high performance graph database. >>> >> http://startupbootcamp.org/ - Öresund - Innovation happens HERE. >>> >> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing >>> >> party. >>> >> >>> >> >>> >> >>> >> On Mon, Sep 26, 2011 at 9:54 PM, <danielmoroz...@gmail.com> wrote: >>> >> > Hi Peter, >>> >> > >>> >> > I know you are one of the admins for the forums and I was wondering >>> >> > if >>> >> you could assist me with my question. I posted it already on the >>> >> forum, but >>> >> have not received a response. >>> >> > >>> >> > My question pertains to running the getAllNodes() method on a >>> >> > Traverser >>> >> object. It takes drastically longer to get all nodes than to traverse >>> >> them. >>> >> > >>> >> > I assumed it was a indexing issue and decompiled the kernel lib >>> >> > file, but >>> >> could not find where the indexing was occurring (as it was not in the >>> >> Traverser class). >>> >> > >>> >> > Could you give me some input, as we are attempting to optimize our >>> >> algorithms, but 95% of the speed comes from this one method. >>> >> > >>> >> > Here is a copy of my post: >>> >> > >>> >> > For your reference the size of the DB is ~6.8 Gb >>> >> > ------------------------------------------------------------ >>> >> > >>> >> > long startTime = System.currentTimeMillis(); >>> >> > Traverser treeTraverser = root.traverse( >>> >> > Traverser.Order.BREADTH_FIRST, >>> >> > operator.getStopEvaluator(), >>> >> > ReturnableEvaluator.ALL, >>> >> > relationshipType, >>> >> > Direction.OUTGOING); >>> >> > >>> >> > long endTime = System.currentTimeMillis(); >>> >> > >>> >> > System.out.println("\n||TIME NEEDED FOR TRAVERSAL: >>> >> "+(endTime-startTime)+" >>> >> > ms||"); >>> >> > int size = 0; >>> >> > startTime =System.currentTimeMillis(); >>> >> > Iterable <Node> nodeCollection = >>> >> treeTraverser.getAllNodes(); >>> >> > endTime = System.currentTimeMillis(); >>> >> > >>> >> > System.out.println("\n||TIME NEEDED TO GET NODES: >>> >> > "+(endTime-startTime)+" >>> >> > ms||"); >>> >> > >>> >> > >>> >> > ----------------------------------------------------------- >>> >> > Console output::: >>> >> > >>> >> > ||TIME NEEDED FOR TRAVERSAL: 63 ms|| >>> >> > >>> >> > ||TIME NEEDED TO GET NODES: 56875 ms|| >>> >> > >>> >> > ------------------------------------------------------------ >>> >> > >>> >> > Thank you so much, >>> >> > >>> >> > Dan >>> >> > >>> >> >>> >> >> > > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user