That is to be expected. It is due to cache staleness issues in the ReadOnly
instance.

Using
cache_type=none
should give the lowest probability of these things happening, but there are
no guarantees.

-t

2011/4/6 Alfredas Chmieliauskas <al.fre...@gmail.com>

> Hey,
>
> Thanks for the ideas.
> Both
> readOnlyGraphDb.getConfig().getGraphDbModule().getNodeManager().clearCache()
> and cache_type=none worked.
>
> But I've run into some issues down the road.
>
> To test i've taken the same db folder with some nodes, properties and
> relations and created a read-only embedded db with it; later the same
> folder for "standard" embedded db.
>
> When opening the db as read-only:
> 1) node.getRelationships() is empty for all nodes whereas it is not
> the case in the "standard" mode
> 2) node.getPropertyKeys() sometimes throws
> org.neo4j.kernel.impl.nioneo.store.InvalidRecordException:
> Position[63] requested for operation is high id[24], store is ok[true]
>
>  
> org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.acquireWindow(CommonAbstractStore.java:521)
>
>  
> org.neo4j.kernel.impl.nioneo.store.AbstractDynamicStore.getLightRecords(AbstractDynamicStore.java:425)
>
>  
> org.neo4j.kernel.impl.nioneo.store.PropertyIndexStore.getRecord(PropertyIndexStore.java:196)
>
>  
> org.neo4j.kernel.impl.nioneo.xa.ReadTransaction.getPropertyIndex(ReadTransaction.java:201)
>
>  
> org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$ReadOnlyResourceConnection.loadIndex(NioNeoDbPersistenceSource.java:206)
>
>  
> org.neo4j.kernel.impl.persistence.PersistenceManager.loadIndex(PersistenceManager.java:84)
>
>  
> org.neo4j.kernel.impl.core.PropertyIndexManager.getIndexFor(PropertyIndexManager.java:141)
>
>  org.neo4j.kernel.impl.core.NodeManager.getIndexFor(NodeManager.java:765)
>
>  org.neo4j.kernel.impl.core.Primitive.getPropertyKeys(Primitive.java:117)
>
>  org.neo4j.kernel.impl.core.NodeProxy.getPropertyKeys(NodeProxy.java:129)
>
> which works  fine in the  "standard" mode.
>
> I wonder am I doing something wrong or are these issues known?
>
> Alfredas
>
> On Wed, Apr 6, 2011 at 9:18 AM, Mattias Persson
> <matt...@neotechnology.com> wrote:
> > A "refresh", i.e. clearing of caches can be performed by (API may
> change):
> >
> >
> >
> readOnlyGraphDb.getConfig().getGraphDbModule().getNodeManager().clearCache();
> >
> > and you could maybe keep the default cache_type setting. That should do
> what
> > you're asking for.
> >
> > 2011/4/5 David Montag <david.mon...@neotechnology.com>
> >
> >> Alfredas,
> >>
> >> A solution based on EmbeddedReadOnlyGraphDatabase would not be able to
> >> benefit from caching, as each "refresh" of the view would have to clear
> the
> >> caches. You could possibly achieve the solution you want by setting the
> >> config parameter cache_type=none for the read-only instance. Then it
> should
> >> not cache anything and always read from disk or OS cache. This would
> >> however
> >> yield degraded performance if you repeatedly read the same data.
> >>
> >> If your processing could benefit from caching, then you're better off
> >> creating a new instance, or manually clearing the caches. Or going with
> the
> >> HA-based solution that Jim and Mattias outlined.
> >>
> >> David
> >>
> >> On Tue, Apr 5, 2011 at 9:36 AM, Alfredas Chmieliauskas
> >> <al.fre...@gmail.com>wrote:
> >>
> >> > Yes. The read only client would query the db at time intervals.
> >> >
> >> > Alfredas
> >> >
> >> > On Tue, Apr 5, 2011 at 5:40 PM, David Montag
> >> > <david.mon...@neotechnology.com> wrote:
> >> > > Alfredas,
> >> > > When you say watch, do you mean "poll" the graph at some interval?
> What
> >> > > would the read-only client do?
> >> > > Thanks,
> >> > > David
> >> > >
> >> > > On Tue, Apr 5, 2011 at 5:26 AM, Alfredas Chmieliauskas <
> >> > al.fre...@gmail.com>
> >> > > wrote:
> >> > >>
> >> > >> Dear all,
> >> > >>
> >> > >> we have the following situation:
> >> > >> - 1 client is writing to the embedded db (writer)
> >> > >> - 1 client would like to watch that (read-only)
> >> > >>
> >> > >> is that possible with the EmbeddedReadOnlyGraphDatabase?
> >> > >> Currently it seems that the read-only db does not see the updates
> from
> >> > >> the writer since its creation. It there a way to force refresh
> besides
> >> > >> creating a new instance?
> >> > >>
> >> > >> Also are there any other/better ways to do that (1 writer, 1
> reader)
> >> > >> without going into the server mode?
> >> > >>
> >> > >> Thanks a lot,
> >> > >>
> >> > >> Alfredas
> >> > >> _______________________________________________
> >> > >> Neo4j mailing list
> >> > >> User@lists.neo4j.org
> >> > >> https://lists.neo4j.org/mailman/listinfo/user
> >> > >
> >> > >
> >> > >
> >> > > --
> >> > > David Montag <david.mon...@neotechnology.com>
> >> > > Neo Technology, www.neotechnology.com
> >> > > Cell: 650.556.4411
> >> > > Skype: ddmontag
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> David Montag <david.mon...@neotechnology.com>
> >> Neo Technology, www.neotechnology.com
> >> Cell: 650.556.4411
> >> Skype: ddmontag
> >> _______________________________________________
> >> Neo4j mailing list
> >> User@lists.neo4j.org
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> >
> >
> >
> > --
> > Mattias Persson, [matt...@neotechnology.com]
> > Hacker, Neo Technology
> > www.neotechnology.com
> > _______________________________________________
> > Neo4j mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
> >
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Tobias Ivarsson <tobias.ivars...@neotechnology.com>
Hacker, Neo Technology
www.neotechnology.com
Cellphone: +46 706 534857
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to