The only way I know of is to synchronize writes to the DB. This shouldn't be a problem for me actually, even with a cluster, since what I really need is for each node with a particular relationship to have a unique "name" property, like how good parents would ensure their children all have unique names. I could use terracottta and a concurrent data structure to ensure there is only one thread writing to a particular node at any given time, then I'd be guaranteed that checking for existence would work.
-Matt On , Michael Hunger <[email protected]> wrote: > Another idea is a merge after the fact, so either in a nightly batch or > during a get operation duplicates are discovered they are merged. > Cheers > Michael > Am 10.06.2011 um 18:55 schrieb Rick Bullotta: > > Good point. Same would apply to relationship-based indexing, I suppose. > In our use case, all of the entities that must be unique are maintained > in a domain model that is managed by an in-memory hash, so we can enforce > it prior to persistence. > > > > I suppose that one brute force way would be to synchronize/pipeline > writes that required a unique index so that the situation of uncommitted > changes on another transaction could not occur. > > > > -----Original Message----- > > From: [email protected] > [mailto:[email protected]] On Behalf Of Alexander Smirnov > > Sent: Friday, June 10, 2011 12:48 PM > > To: Neo4j user discussions > > Subject: Re: [Neo4j] unique indexes > > > > Check befor update could not help there, because Neo4j does not show > > uncommited changes to other transactions, so it's possible to store > > the same value in concurrent transactions. > > I also tried to figure out how to avoid duplicated values in database. > > Seems that it needed some locks on database objects. > > Can someone provide an example how to lock database objects properly ? > > > > On Fri, Jun 10, 2011 at 8:01 AM, Rick Bullotta > > [email protected]> wrote: > >> If you need to, you could check the existence of a match prior to > every attempted add/insert/update. > >> > >> -----Original Message----- > >> From: [email protected] > [mailto:[email protected]] On Behalf Of Matt C > >> Sent: Friday, June 10, 2011 10:25 AM > >> To: Neo4j user discussions > >> Subject: Re: [Neo4j] unique indexes > >> > >> An index that would enforce every value added to it be unique. I don't > even > >> see support for that in Lucene, so, nevermind. Just something I'm used > to > >> SQL handling for me. > >> > >> On Fri, Jun 10, 2011 at 1:05 AM, Peter Neubauer > >> [email protected]> wrote: > >> > >>> Matt, > >>> what do you mean by unique indexes? > >>> > >>> 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 Fri, Jun 10, 2011 at 7:30 AM, Matt C [email protected]> wrote: > >>>> Sorry if this is covered somewhere, I couldn't find it in the docs. I > >>> was > >>>> wondering if its possible to create unique indexes with the > >>>> LuceneIndexProvider? > >>>> > >>>> -Matt > >>>> _______________________________________________ > >>>> 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 > >> _______________________________________________ > >> Neo4j mailing list > >> [email protected] > >> https://lists.neo4j.org/mailman/listinfo/user > >> > > > > > > > > -- > > _________________ > > entia non sunt multiplicanda praeter necessitatem, > > (entities should not be multiplied beyond necessity.) > > _______________________________________________ > > 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 _______________________________________________ Neo4j mailing list [email protected] https://lists.neo4j.org/mailman/listinfo/user

