Not sure it applies, but also remember that the node id itself is essentially a 
"unique key" across the entire set of nodes.


-----Original Message-----
From: [email protected] [mailto:[email protected]] On 
Behalf Of [email protected]
Sent: Friday, June 10, 2011 3:10 PM
To: Neo4j user discussions
Subject: Re: [Neo4j] unique indexes

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
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to