пока не будет выполнен 5, так? И этого можно достичь используя изоляции
Чтобы не устраивать блокировки, можно поступить следующим образом: считать и сохранять ночью (после полуночи, например, в 2 час ночи) сумму всех строк до сегодняшнего дня не включая сегодняшний день. А при запросе суммы, брать предварительно рассчитанную сумму и прибавлять к ней сумму строк, которые добавлены после даты, до которой эта сумма рассчитана (эту дату тоже надо будет сохранить для корректного расчета суммы ночью до нового расчета и на случай, если ночной джоб не сработает).
при парралейном изменении все равно нужны блокировки(хотя мы незнаем требования к качеству данных)
Именно для подсчета суммы - не нужны. Минус лишняя блокировка - это уменьшение вероятности deadlock-ов.
Представь что тут расчет баланса по кошельку клиента). И клиент делает два заказа. Там точно не нужно ничего для подсчета новой итоговой суммы?)
Для денег такое, конечно, не пойдёт.
Но тупой подсчет всех строк, который описывал топикстартер, для денег также не пойдёт, поэтому я предположил, что временное несоответствие суммы для него не проблема.
Обсуждают сегодня