Checking for uniqueness within the database is good, like Geert suggested.
If you want to make them unique across databases and servers assign each
database and each server a unique prefix and prepend that to your "local"
unique id.  That will guarantee that it is unique across your platform.

This is actually a common pattern used by credit card providers, the first
four digits of your credit card are unique to your provider the remaining
digits are semi-random but unique to your card.  That way they can
guaranteed uniqueness across providers without the synchronization card
numbers issued across organizations.

Enjoy.

Keith

On Tue, Feb 13, 2018 at 7:53 AM, Geert Josten <geert.jos...@marklogic.com>
wrote:

> Hi Abhinav,
>
> sem:uuid-string() generates a 123-bit size random string, which makes
> changes on collisions extremely rare. If you prefer being paranoid, and
> want to check anyhow (there are various ways tocheck if an id or uri is
> taken or not), you’d typically do that in one database only. You could also
> do it across multiple databases, but the more you check and include, the
> slower it obviously gets.
>
> There are some brief notes on this topic in the README of my ml-unique
> library: https://github.com/grtjn/ml-unique
>
> Cheers,
> Geert
>
> From: <general-boun...@developer.marklogic.com> on behalf of "
> abhinav.mish...@cognizant.com" <abhinav.mish...@cognizant.com>
> Reply-To: MarkLogic Developer Discussion <general@developer.marklogic.com>
> Date: Tuesday, February 13, 2018 at 9:39 AM
> To: "general@developer.marklogic.com" <general@developer.marklogic.com>
>
> Subject: Re: [MarkLogic Dev General] Unique GUID generation in MarkLogic
>
> Hi Geert,
>
>
> Thank you for your response.
>
>
> I guess it is just something we are wondering about. If we changed Servers
> or hardware, would there be a chance for duplicates. There is no other
> specific reason though.
>
>
> Regards,
>
> Abhinav
> ------------------------------
> *From:* general-boun...@developer.marklogic.com <
> general-boun...@developer.marklogic.com> on behalf of Geert Josten <
> geert.jos...@marklogic.com>
> *Sent:* Tuesday, February 13, 2018 8:55 AM
> *To:* MarkLogic Developer Discussion; general-request@developer.
> marklogic.com
> *Subject:* Re: [MarkLogic Dev General] Unique GUID generation in MarkLogic
>
> Hi Abhinav,
>
> Can you elaborate on what you mean with ‘unique across environments’?
>
> Cheers,
> Geert
>
> From: <general-boun...@developer.marklogic.com> on behalf of abhinav
> mishra <abhinavmishr...@gmail.com>
> Reply-To: MarkLogic Developer Discussion <general@developer.marklogic.com>
> Date: Tuesday, February 13, 2018 at 8:40 AM
> To: "general-requ...@developer.marklogic.com" <general-request@developer.
> marklogic.com>, "general@developer.marklogic.com" <
> general@developer.marklogic.com>
> Subject: [MarkLogic Dev General] Unique GUID generation in MarkLogic
>
> Hi All,
>
> We are exploring ways to generate GUIDs. We just want to be sure that the
> GUIDs are unique always and we have a requirement that these GUIDs should
> be even unique across environments. There should not be same GUID in two
> MarkLogic environments
>
> We found sem:uuid-string() function from documentation and seems like a
> good point to start with. However we are not sure if this method returns
> unique across environments.
>
> Can someone guide or provide more information on GUID generation, any
> third party open source library which we can use.
>
> Regards,
> Abhinav
> --
> Sent from my iPhone
> This e-mail and any files transmitted with it are for the sole use of the
> intended recipient(s) and may contain confidential and privileged
> information. If you are not the intended recipient(s), please reply to the
> sender and destroy all copies of the original message. Any unauthorized
> review, use, disclosure, dissemination, forwarding, printing or copying of
> this email, and/or any action taken in reliance on the contents of this
> e-mail is strictly prohibited and may be unlawful. Where permitted by
> applicable law, this e-mail and other e-mail communications sent to and
> from Cognizant e-mail addresses may be monitored.
>
> _______________________________________________
> General mailing list
> General@developer.marklogic.com
> Manage your subscription at:
> http://developer.marklogic.com/mailman/listinfo/general
>
>


-- 
Keith
"Do what you can, with what you have, where you are." - Theodore Roosevelt
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to