If you have the uri-lexicon turned on you can use
cts:uri-match(fn:concat("/document-", xdmp:random(), ".xml"))
From: [email protected]
[mailto:[email protected]] On Behalf Of Danny Sinang
Sent: Wednesday, August 29, 2012 12:33 PM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Performance of fn:exists(fn:doc($uri))
Thanks Geert.
I did try fn:exists(fn:doc($uri)) on CQ before your response came in and found
it to be fast.
The locking / prevention of duplicate id's is discussed in
http://markmail.org/message/mm5vtacpdzwfy44j .
Regards,
Danny
On Wed, Aug 29, 2012 at 2:23 PM, Geert Josten
<[email protected]<mailto:[email protected]>> wrote:
Hi Danny,
Performance should be easy to measure. Call the function from within QConsole x
number of time and request profile output. Do the same while using xdmp:exists
instead of fn:exists. That function works only on (partially) searchable
expression, because it doesn't retrieve the actual content. It won't create a
read-lock either, but I'm not sure why you want one. It won't prevent duplicate
id's from being generated in concurrent requests..
Kind regards,
Geert
Van:
[email protected]<mailto:[email protected]>
[mailto:[email protected]<mailto:[email protected]>]
Namens Danny Sinang
Verzonden: woensdag 29 augustus 2012 19:11
Aan: general
Onderwerp: [MarkLogic Dev General] Performance of fn:exists(fn:doc($uri))
Hi,
ML support suggested we do this to generate a unique ID for our documents :
declare function choose-uri() as xs:string
{
let $uri := fn:concat("/document-", xdmp:random(), ".xml")
return if (fn:exists(fn:doc($uri))) then choose-uri() else $uri
};
My question is, will the call to fn:exists(fn:doc($uri)) be fast, considering
that we now have 8 million documents ?
The fn:exists(fn:doc($uri)) call is needed to obtain a read lock, which will be
upgraded to a write lock when xdmp:document-insert is called.
Regards,
Danny
_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general