Автоинкремент на Azure устройство хранения данных таблицы

Код для удобочитаемости. Если Вы хотите знать то, что работает лучше, используйте профилировщика, поскольку оптимизация и компиляторы варьируются, и проблемы производительности редко, где люди думают, что они.

17
задан abatishchev 2 November 2015 в 23:03
поделиться

2 ответа

Я еще не реализовал это, но работаю над этим ...

Вы можете заполнить очередь своими следующими идентификаторами для использования, а затем просто выбрать их из очереди, когда вам нужно их.

Вам необходимо вести таблицу, в которой будет содержаться значение наибольшего числа, добавленного в очередь. Если вы знаете, что не будете использовать тонну целых чисел, вы можете заставить работника время от времени просыпаться и следить за тем, чтобы в очереди все еще были целые числа. У вас также может быть использованная очередь int, которую воркер мог бы проверять, чтобы следить за ее использованием.

Вы также можете подключить этого воркера, чтобы, если очередь была пустой, когда вашему коду требовался идентификатор (случайно), он мог прервать работу воркера. вздремнуть, чтобы создать больше ключей как можно скорее.

Если этот вызов завершился неудачно, вам понадобится способ (сообщить работнику, что вы собираетесь выполнять эту работу за него (блокировка),

4
ответ дан 30 November 2019 в 12:27
поделиться

Если вам действительно нужно избегать руководств, рассматривали ли вы возможность использования чего-либо, основанного на дате / времени, а затем ключей секций для минимизации риска параллелизма.

Ключ раздела может быть по пользователю, году, месяцу, дню, часу и т. Д., А ключ строки может быть оставшейся частью даты и времени с достаточно маленьким промежутком времени для управления параллелизмом.

Конечно, вы должны спросить себя, ценой даты в Azure, действительно ли избегание Guid стоит всех этих дополнительных усилий (при условии, что Guid просто работает).

3
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: