Автор Тема: СУБД. Журнал транзакций.  (Прочитано 15147 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #15 : Апрель 16, 2012, 06:30:47 am »
Цитировать
в блокировочном сервере происходит "отлуп" с откатом второй транзакции

Вторая транзакция даже не начнется в блокировочнике

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #16 : Апрель 16, 2012, 06:45:09 am »
Цитировать
в блокировочном сервере происходит "отлуп" с откатом второй транзакции

Вторая транзакция даже не начнется в блокировочнике
Ну, а теперь, наверное, надо включить мозги...

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #17 : Апрель 16, 2012, 07:17:57 am »
Щелкнул тумблером

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #18 : Апрель 16, 2012, 07:26:23 am »
Щелкнул тумблером
Ну, так теперь скажите, как "не начавшаяся транзакция" узнает о том, что нужный ей для изменения объект кем-то уже изменён?.. :)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #19 : Апрель 16, 2012, 07:34:29 am »
Ну так по блокировке.... Не? ???

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #20 : Апрель 16, 2012, 07:39:09 am »
Ну так по блокировке.... Не? ???
А кто ж не стартовавшей транзакции даст смотреть блокировки?.. Туда посторонних не пускают, там только один процесс работает... Постучишься к нему...
- Можно мне такую-то запись прочитать?..
- Не-а, встань в очередь...
Через какое-то время...
- Эй ты... ожидающий, откатывайся...
или
- На читай... но по-быстрому...
Но чтоб постучаться, стартовать транзакцию всё же придётся...

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #21 : Апрель 16, 2012, 07:45:12 am »
Так откатывать то нечего, если она фактически с данными ничего не делала. А версионник будет реально данные колбасить, а потом откатывать.

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #22 : Апрель 16, 2012, 07:48:32 am »
Так откатывать то нечего, если она фактически с данными ничего не делала. А версионник будет реально данные колбасить, а потом откатывать.
Так, тумблер щёлкнул, но мозги пока не включились... прогреваются видимо.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #23 : Апрель 16, 2012, 07:50:34 am »
Не... у нас видимо рассинхронизация... так как вы щелкнуть забыли.  ;)

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: СУБД. Журнал транзакций.
« Ответ #24 : Апрель 16, 2012, 08:11:00 am »
1. А если транзакцию не запускать, а просто выполнить чтение, то какие данные будут прочтены? Блокировка не произойдёт? Или транзакция автоматом запустится?

2. Зачем откатывать транзакцию, если она была блокирована на входе и никаких неправильных данных прочесть не смогла? Может, просто после снятьия блокировки ей сказали "на, читай", и всё?

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #25 : Апрель 16, 2012, 08:27:24 am »
1. А если транзакцию не запускать, а просто выполнить чтение, то какие данные будут прочтены? Блокировка не произойдёт? Или транзакция автоматом запустится?
Простите, что вопросом... на вопрос... А как выполнить чтение, если транзакция не стартована. Любое действие (чтение, вставка, обновление, удаление) выполняются запросами, запросы выполняются внутри транзакций (иногда транзакция стартует неявно для разработчика (с параметрами по умолчанию), но вне транзакции... жизни нет).

Цитата: Valery Solovey
2. Зачем откатывать транзакцию, если она была блокирована на входе и никаких неправильных данных прочесть не смогла? Может, просто после снятьия блокировки ей сказали "на, читай", и всё?
Транзакцию надо завершать. Если транзакция ничего не делала, то её можно зафиксировать или откатить... Но надо учитывать и мнение других транзакций... которые могут иметь разные уровни изолированности, разные режимы ожидания... То есть, наша транзакция что-то успела прочитать, больше ничего не делала, и через какое-то время... завершилась (commit | rollback). Но пока она ничего не делала, другая транзакция попыталась какие-то из считанных данных изменить, а ей не дали, поскольку висит блокировка по чтению. И эта вторая/не наша транзакция откатилась. Другими словами, то что наша транзакция "ничего не делает" не означает, что она никому не мешает.
Ещё хуже ситуация, когда наша транзакция что-то поменяла и теперь хочет что-то прочитать. А это "что-то" блокировано другой пишущей транзакцией, которая жаждет прочитать то, что поменяла наша транзакция. Возникает deadlock.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #26 : Апрель 16, 2012, 09:16:39 am »
Так, тумблер щёлкнул, но мозги пока не включились... прогреваются видимо.

Ну так что?

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #27 : Апрель 16, 2012, 11:11:06 am »
Так, тумблер щёлкнул, но мозги пока не включились... прогреваются видимо.

Ну так что?
Жду... когда поясните, что там версионник "колбасить будет"...

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: СУБД. Журнал транзакций.
« Ответ #28 : Апрель 16, 2012, 11:28:56 am »
Вот это наглость :o

Ты в очередной раз поимел наглость принизить мои умственные способности. И в очередной раз ошибся.
И еще ждешь от меня объяснений?

Сам погуглишь.

alexus

  • Гость
Re: СУБД. Журнал транзакций.
« Ответ #29 : Апрель 16, 2012, 11:34:22 am »
Вот это наглость :o
Н-да, пожалуй я поспешил...

Цитата: ilovb
Ты в очередной раз поимел наглость принизить мои умственные способности. И в очередной раз ошибся.
И еще ждешь от меня объяснений?
Нет, уже не жду. Собственно, всё было понятно из фразы:
Цитата: ilovb
Вторая транзакция даже не начнется в блокировочнике
Принизить Ваши умственные способности невозможно, в связи... с полным их отсутствием... :(
Я действительно поспешил, простите.