AFAIK there are no differences between the two. The read-only version makes
sure you cannot perform modifications to the graph, but otherwise they use
the same calls and code.

Regarding the NonWritableChannelException. I see that FileChannel.write() is
called (even though nothing has changed), even when in read-only mode when
releasing persistence windows for the persistence window implementation used
for windows/non-memory-mapped environments. That should be the culprit in
here. I'll try to reproduce it locally.

2011/6/29 Paul Bandler <[email protected]>

> The problem resulting in the NonWritableChannelException occurred on
> Windows although I need to run on Solaris as well as Windows.
>
> Actually I must apologise for saying that the previously reported issue
> didn't solicit a response - I see that Johan Svensson did just today and
> suggests it might be fixed in the new milestone release.
>
> My questions regarding what actual effect using the
> EmbeddedReadOnlyGraphDatabase is still relevant however...?
>
> On 28 Jun 2011, at 21:21, Rick Bullotta wrote:
>
> > Paul, are you on windows or Linux?
> >
> > ----- Reply message -----
> > From: "Paul Bandler" <[email protected]>
> > Date: Tue, Jun 28, 2011 1:34 pm
> > Subject: [Neo4j] Advantages of EmbeddedReadOnlyGraphDatabase ? [was
> NonWritableChannelException]
> > To: "Neo4j user discussions" <[email protected]>
> >
> > Are there advantages in accessing the database via the
> EmbeddedReadOnlyGraphDatabaseclass in a read-only application?
> >
> > A week or so back I posted the message below regarding a problem
> experienced while using EmbeddedReadOnlyGraphDatabase that regrettably
> didn't solicit any responses and since then I've been using the standard
> read-write EmbeddedGraphDatabase without repeat of the same issue even
> though my application is read-only. Are there any avoidable performance
> penalties using EmbeddedGraphDatabase in place of
> EmbeddedReadOnlyGraphDatabase?
> >
> > Along a similar lines, as my application is read-only, I'm not doing any
> explicit transaction management - is there any reason why I should?
> >
> >
> >
> > Begin forwarded message:
> >
> > > From: Paul Bandler <[email protected]>
> > > Date: 21 June 2011 12:22:56 GMT+01:00
> > > To: Neo4j user discussions <[email protected]>
> > > Subject: [Neo4j] NonWritableChannelException
> > > Reply-To: Neo4j user discussions <[email protected]>
> > >
> > > The above exception is thrown from the call stack indicated below while
> traversing a neo4j graph using the EmbededReadOnly database. Using 1.4M04.
> > >
> > > The application is running with 1gb of heap with defaulting all other
> parameters except cache_type=weak on windows.
> > >
> > > I found some reports of this exception being thrown at shutdown back
> > > in January but this is not happening at shutdown and I could find no
> posted resolution of that thread anyway.
> > >
> > > Can anyone suggest what the cause if this exception is?
> > >
> > > Thanks
> > >
> > > Paul
> > >
> > >>
> > >
> > >> Exception in thread "main"
> java.nio.channels.NonWritableChannelException
> > >>        at sun.nio.ch.FileChannelImpl.write(Unknown Source)
> > >>        at
> org.neo4j.kernel.impl.nioneo.store.AbstractPersistenceWindow.writeOut(AbstractPersistenceWindow.java:104)
> > >>        at
> org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.refreshBricks(PersistenceWindowPool.java:536)
> > >>        at
> org.neo4j.kernel.impl.nioneo.store.PersistenceWindowPool.acquire(PersistenceWindowPool.java:128)
> > >>        at
> org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.acquireWindow(CommonAbstractStore.java:526)
> > >>        at
> org.neo4j.kernel.impl.nioneo.store.RelationshipStore.getChainRecord(RelationshipStore.java:327)
> > >>        at
> org.neo4j.kernel.impl.nioneo.xa.ReadTransaction.getMoreRelationships(ReadTransaction.java:114)
> > >>        at
> org.neo4j.kernel.impl.nioneo.xa.ReadTransaction.getMoreRelationships(ReadTransaction.java:97)
> > >>        at
> org.neo4j.kernel.impl.persistence.PersistenceManager.getMoreRelationships(PersistenceManager.java:108)
> > >>        at
> org.neo4j.kernel.impl.core.NodeManager.getMoreRelationships(NodeManager.java:603)
> > >>        at
> org.neo4j.kernel.impl.core.NodeImpl.getMoreRelationships(NodeImpl.java:399)
> > >>        at
> org.neo4j.kernel.impl.core.IntArrayIterator.hasNext(IntArrayIterator.java:93)
> > >>        at
> org.neo4j.kernel.impl.core.NodeImpl.getSingleRelationship(NodeImpl.java:218)
> > >>
> > > _______________________________________________
> > > Neo4j mailing list
> > > [email protected]
> > > https://lists.neo4j.org/mailman/listinfo/user
> >
> > _______________________________________________
> > Neo4j mailing list
> > [email protected]
> > https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [[email protected]]
Hacker, Neo Technology
www.neotechnology.com
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to