[Neo] Dijkstra search on a big graph

Anton Popov popov.UA.work at gmail.com
Fri Feb 5 18:36:46 CET 2010


Hello all,

I'm still doing my tests on Neo4J. I've imported some data to Neo4J database
& trying to search a shortest path search using Dijkstra implementation from
neo4j-graph-algo package.
As a result - I get exceptions & hanged application - can anyone help me to
solve the problem?

I've packed the bundle, containing Java code, system output (with
Exceptions), neo4j.properties and results of top command. It's available
here:
https://docs.google.com/leaf?id=0Bx7diqqg3SSaYzMzZjU1ZGUtNjhjOS00MDg1LWFhYzItOWY0YjU5MTRlODdm&hl=en
Please forgive me many System.out prints - that's just an test code to be
introduced to the system, it's features & performance.

After the last Exception, written to the output application seems to hang.
Used memory is 1848m during that moment.
My environment is:
 - Ubuntu, 4GB of RAM.
 - Before test starts, top shows that I have 3.4GB of RAM non-used. So
almost no other applications run.
 - I'm using following Neo4J versions:
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-kernel</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-graph-algo</artifactId>
            <version>0.3-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-index</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>


The Exceptions actually are:

org.neo4j.kernel.impl.nioneo.store.MappedMemException: java.io.IOException:
Invalid argument
    at
org.neo4j.kernel.impl.nioneo.store.MappedPersistenceWindow.<init>(MappedPersistenceWindow.java:59)
    at
org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.allocateNewWindow(PersistenceWindowPool.java:530)
    at
org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.refreshBricks(PersistenceWindowPool.java:430)
    at
org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.acquire(PersistenceWindowPool.java:122)
    at
org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.acquireWindow(CommonAbstractStore.java:459)
    at
org.neo4j.kernel.impl.nioneo.store.NodeStore.loadLightNode(NodeStore.java:129)
    at
org.neo4j.kernel.impl.nioneo.xa.NeoReadTransaction.nodeLoadLight(NeoReadTransaction.java:74)
    at
org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$ReadOnlyResourceConnection.nodeLoadLight(NioNeoDbPersistenceSource.java:234)
    at
org.neo4j.kernel.impl.persistence.PersistenceManager.loadLightNode(PersistenceManager.java:67)
    at
org.neo4j.kernel.impl.core.NodeManager.getNodeForProxy(NodeManager.java:442)
    at
org.neo4j.kernel.impl.core.NodeProxy.getRelationships(NodeProxy.java:87)
    at
org.neo4j.graphalgo.shortestpath.Dijkstra$DijstraIterator.next(Dijkstra.java:313)
    at
org.neo4j.graphalgo.shortestpath.Dijkstra.calculate(Dijkstra.java:497)
    at
org.neo4j.graphalgo.shortestpath.Dijkstra.getPathAsNodes(Dijkstra.java:693)
    at com.example.neo4j.search.NeoDijkstra.getRoute(NeoDijkstra.java:85)
    at com.example.neo4j.search.NeoDijkstra.main(NeoDijkstra.java:153)
Caused by: java.io.IOException: Invalid argument
    at sun.nio.ch.FileChannelImpl.truncate0(Native Method)
    at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:728)
    at
org.neo4j.kernel.impl.nioneo.store.MappedPersistenceWindow.<init>(MappedPersistenceWindow.java:53)
    ... 15 more

*and the last one is*

Feb 5, 2010 6:58:00 PM
org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool logWarn
WARNING: [/home/apopov/tmp/neo4j/data/neostore.nodestore.db] Unable to
memory map
Exception in thread "main" java.lang.IllegalArgumentException: Start node
equals end node
    at
org.neo4j.kernel.impl.core.RelationshipImpl.<init>(RelationshipImpl.java:58)
    at
org.neo4j.kernel.impl.core.NodeManager.getMoreRelationships(NodeManager.java:598)
    at
org.neo4j.kernel.impl.core.NodeImpl.getMoreRelationships(NodeImpl.java:332)
    at
org.neo4j.kernel.impl.core.NodeImpl.ensureFullRelationships(NodeImpl.java:320)
    at
org.neo4j.kernel.impl.core.NodeImpl.getAllRelationshipsOfType(NodeImpl.java:129)
    at
org.neo4j.kernel.impl.core.NodeImpl.getRelationships(NodeImpl.java:199)
    at
org.neo4j.kernel.impl.core.NodeProxy.getRelationships(NodeProxy.java:87)
    at
org.neo4j.graphalgo.shortestpath.Dijkstra$DijstraIterator.next(Dijkstra.java:313)
    at
org.neo4j.graphalgo.shortestpath.Dijkstra.calculate(Dijkstra.java:509)
    at
org.neo4j.graphalgo.shortestpath.Dijkstra.getPathAsNodes(Dijkstra.java:693)
    at com.example.neo4j.search.NeoDijkstra.getRoute(NeoDijkstra.java:85)
    at com.example.neo4j.search.NeoDijkstra.main(NeoDijkstra.java:153)

-- 
Best regards,
Popov Anton


More information about the User mailing list