Я искал некоторые статьи или рекомендации по передовой практике создания идентификаторов (для федеративного / первичного ключа) для федеративных баз данных Azure и не нашел ничего убедительного. Объединенные таблицы не поддерживают столбцы идентификаторов, поэтому мне кажется, что единственный практический тип идентификатора - это GUID, поскольку попытка централизованно создать и использовать BigInt создает единую точку отказа в приложении. Моя главная проблема - это влияние на производительность использования GUID над BigInts (особенно для индексации таблиц).
Есть ли рекомендуемые / лучшие практики (или существующие библиотеки) для создания уникальных BigInts для распределенной системы (или мне не следует беспокоиться о влиянии производительности на использование GUID?).
[Update]
Прочитав об этом больше после публикации вопроса, мне кажется, что генерация ключей будет проблемой в Azure. Согласно этому сообщению blog от Microsoft, рекомендуется использовать GUID в качестве федеративного ключа. Однако они не упоминают, что все индексы (включая кластерные индексы) в таблицах объединения должны содержать ключ объединения. Это означает, что все эти индексы будут содержать GUID, который снизит производительность вставки.
Альтернатива, похоже, заключается в использовании централизованной службы генерации ключей (как упомянуто Саймоном ниже), которая имеет свои недостатки с точки зрения потенциальной узкой части и центральной точки отказа.
Я бы подумал, что от Microsoft было бы больше уверенности в этом, поскольку наверняка с этой проблемой столкнутся все, кто создает федеративные таблицы!
В итоге я решил воспользоваться услугами централизованной генерации ключей, но это меня немного беспокоит. Если у кого-то есть какая-то магическая техника, я бы хотел ее услышать (или сообщить, если я упускаю что-то очевидное)!