Яйцо или курица?

  1. 7 г. назад
    29.11.2016 22:31:25 отредактировано Fynjy

    Транзакция всегда устанавливает блокировку нужных данных или нет? Я утверждаю, что всегда, на то она и транзакция, мой оппонент говорит, что существует транзакции при которых данные не блокируются.
    Как аргументирует? Вот цитирую:

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

    Ответы: (8)
  2. транзакция всегда подразумевает переход от одного целостного состояния БД к другому.
    в случае многопользовательского доступа обеспечить чистоту без блокировок нереально, насколько помню

    Ответы: (2)
  3. (1) у него теперь круче аргументация

    Begin tran
    print 'OK'
    commit tran

    Транзакция есть? Есть! А блокировки нет.
    Я немного в шоке )

    Ответы: (5) (10)
  4. 29.11.2016 23:47:37 отредактировано sda553

    у меня, в моем по (оракл) , самому приходится после начала транзакции создавать все эксклюзивные и не эксклюзивные блокировки. А по коммиту локи всем скопом освобождаются

  5. 30.11.2016 00:03:58 отредактировано sda553

    второй поток, если лочит залоченное из другого потока, то поток ждет. потом свой лок получает и вперед дальше по потоку

    Ответы: (6)
  6. (2) ну, тогда можно сказать, например, что для работы сотового телефона сим-карта не обязательна.
    ведь в червяка на телефоне можно и без неё погонять

    Ответы: (6)
  7. (4) не, здесь смысл не в конфликте блоков, а именно может ли транзакция быть без блокировок.
    (5) я ему тоже отписал "а смысл этой конструкции"

    Ответы: (7)
  8. (6) Вырожденный случай. Твой оппонент софист.

  9. (0) Вопрос неточный.
    Что считать "нужными данными" и "устанавливает блокировку"?
    Данные, которые только считываются, не записываются, они - "нужные"? Можно их считать "заблокированными", если другая транзакция их может читать, но не может изменять?

    Ответы: (9)
  10. ptiz Можно их считать "заблокированными", если другая транзакция их может читать, но не может изменять?

    конечно, а почему нет?

  11. Fynjy Begin tran
    print 'OK'
    commit tran

    хм.

или зарегистрируйтесь чтобы ответить!