Поле порядкового номера с одновременной записью - PullRequest
0 голосов
/ 18 декабря 2018

Представьте себе рельсовый путь, и моя цель - хранить каждый вагон, который существует на этом пути.У каждого вагона есть позиция.Скажем, на треке 100 вагонов, поэтому каждый объект вагона будет иметь трекпозицию от 1 до 100.

Это, по сути, то, что мы делаем сейчас, когда у трека есть дочерние вагоны, а у каждого вагона естьцелое число TrackPosition.

Когда добавляется новый вагон, мы просто берем количество вагонов на пути + 1, чтобы сохранить положение нового вагона.

У нас возникают проблемы внесколько разных областей:

  • Мы хотели бы добавить автомобили одновременно, используя AWS Lambda.Это создает проблему, поскольку две функции могут попасть в линию логики, которая вычисляет «общее количество автомобилей на трассе + 1» одновременно.Когда они отправятся на спасение, обе машины будут иметь одинаковую позицию.Блокировка этого фрагмента кода невозможна в AWS Lambda (насколько я могу судить по тому, что я прочитал).В настоящее время мы решили эту проблему, установив Lambdas для синхронного срабатывания (параллелизм равен 1), что явно не идеально для производительности.

  • Мы хотели бы добавить машину всередина трека.Это будет связано с захватом любого автомобиля с большей позицией и увеличением их всех.Нетрудно написать какой-то код для этого, но ..

Мне интересно, упускаю ли я что-то фундаментальное в SQL, которое может достичь того, чего я добиваюсь, с меньшей ошибкой?склонный путь.То, как я это делаю, кажется наивным.Я изучил последовательности, но я не уверен, что они решат мою проблему параллелизма.

Любое понимание будет с благодарностью.Мы используем Entity Framework Core 2 с SQL Server.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...