Представьте себе рельсовый путь, и моя цель - хранить каждый вагон, который существует на этом пути.У каждого вагона есть позиция.Скажем, на треке 100 вагонов, поэтому каждый объект вагона будет иметь трекпозицию от 1 до 100.
Это, по сути, то, что мы делаем сейчас, когда у трека есть дочерние вагоны, а у каждого вагона естьцелое число TrackPosition.
Когда добавляется новый вагон, мы просто берем количество вагонов на пути + 1, чтобы сохранить положение нового вагона.
У нас возникают проблемы внесколько разных областей:
Мы хотели бы добавить автомобили одновременно, используя AWS Lambda.Это создает проблему, поскольку две функции могут попасть в линию логики, которая вычисляет «общее количество автомобилей на трассе + 1» одновременно.Когда они отправятся на спасение, обе машины будут иметь одинаковую позицию.Блокировка этого фрагмента кода невозможна в AWS Lambda (насколько я могу судить по тому, что я прочитал).В настоящее время мы решили эту проблему, установив Lambdas для синхронного срабатывания (параллелизм равен 1), что явно не идеально для производительности.
Мы хотели бы добавить машину всередина трека.Это будет связано с захватом любого автомобиля с большей позицией и увеличением их всех.Нетрудно написать какой-то код для этого, но ..
Мне интересно, упускаю ли я что-то фундаментальное в SQL, которое может достичь того, чего я добиваюсь, с меньшей ошибкой?склонный путь.То, как я это делаю, кажется наивным.Я изучил последовательности, но я не уверен, что они решат мою проблему параллелизма.
Любое понимание будет с благодарностью.Мы используем Entity Framework Core 2 с SQL Server.