That is a good answer right there: if you want to force uniqueness of some value, build it into the document-uri.
-- Mike On 30 Aug 2012, at 12:21 , Geert Josten wrote: > Hi Danny, > > Are you talking about duplicate uri’s? That is normally not possible. If you > mean some element value that occurs in more than one document, do something > like this: > > xdmp:estimate(cts:search(doc(), cts:element-value-query(xs:QName(‘myelem’), > ‘myid’))) > > Kind regards, > Geert > > Van: [email protected] > [mailto:[email protected]] Namens Danny Sinang > Verzonden: donderdag 30 augustus 2012 21:13 > Aan: MarkLogic Developer Discussion > Onderwerp: Re: [MarkLogic Dev General] Performance of fn:exists(fn:doc($uri)) > > What I meant was, what's the fastest way to check for documents with > duplicate id's ? > > On Thu, Aug 30, 2012 at 3:00 PM, Danny Sinang <[email protected]> wrote: > Can anyone recommend a fast way to check for duplicate id's ? > > On Thu, Aug 30, 2012 at 2:06 PM, Geert Josten <[email protected]> wrote: > That read-locks are URI locks, not fragment locks is something I didn't > know. Sounds excellent, should have known earlier.. > > And now the internal code MarkLogic uses to generate id's for all its > internal objects makes much more sense too.. > > Mike wrote: > > To put it more simply: how are you going to guarantee the uniqueness of > the URI, if not by checking to see if it exists? > > I can only think of one other way, by using a write lock on a fixed uri > (or several fixed uri's), like always doing a > xdmp:document-insert('/assets/lock', <x/>) before deriving a new uri. But > that slows down creation processes, likely more than using the read-lock > approach. :-/ > > That leaves perhaps only one thing that need attention. If you already > have many documents, then the likeliness random comes up with an id that > already exists increases. The average number of attempts it needs to take > to find an unused number increases over time too. Luckely the range of > random is very large (20 digits), so you really need quite a very lot of > documents to even get close to 1/100000 of the space.. > > :) > > Grtz, > Geert > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general > > > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
