Задать вопрос
Ответы пользователя по тегу PostgreSQL
  • Как использовать уровень изоляции Serialization с большими запросами?

    @GLeBaTi
    Использовать очередь конкурирующих запросов.
    У меня, например, часто конфликтовали запросы на изменение поля `Project.LastModificationDate` когда несколько пользователей одновременно сохраняют его. Я создал очередь по `ProjectId` для всех сохранений. И таких видов очередей у меня несколько.
    Ответ написан
    Комментировать
  • Dbeaver не видит новые БД, что делать?

    @GLeBaTi
    Настройки соединения -> Postgresql -> "Показывать все базы данных"
    Ответ написан
    4 комментария
  • Как защититься от двойного списания в многопоточном приложении?

    @GLeBaTi
    1) Использовать уровень изоляции транзакций: serializable
    но производительность Update упадет, поэтому лучше делать замеры и смотреть, подходит или нет. Обычно Update-ов не так много как чтений.
    Преимущество: не надо будет танцевать с бубном.

    2) Сделать эту операцию через класс, который контролирует. Т.е. если мы делаем запрос второй раз, это класс смотрит, завершился ли первый.
    А тут уже 2 варианта:
    - ответить пользователю отказом (типо: "дождитесь окончания предыдущей операции")
    - дождаться выполнения первой и приступить к выполнению второй. Но если после первой, баланс <0, то сказать об этом пользователю.
    Ответ написан
    Комментировать