powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем плох блокировочник по сравнению с версионником?
25 сообщений из 370, страница 3 из 15
Чем плох блокировочник по сравнению с версионником?
    #38953999
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНу я тоже так понял. Но это как бы это все же особые требования к оперативности.
Да даже не совсем так. Допустим, есть некие данные А. Допустим, у нас есть две транзакции: одна читает А и пишет Б, другая читает А и как-то их модифицирует. Так вот, с точки зрения состояния базы и вообще логики происходящего нет разницы между двумя ситуациями:

прошла первая транзакция, через десять минут вторая

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

Поэтому если мы считаем, что в первом случае всё нормально и данные правильные, нет ровно никаких резонов считать, что во втором они неправильные. Если мы хотим, чтобы Б всегда соответствовали последнему состоянию А - значит, нужно явно это указывать (то есть вызывать первую операцию в конце второй).
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954026
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarervadiminfoНу я тоже так понял. Но это как бы это все же особые требования к оперативности.
Да даже не совсем так. Допустим, есть некие данные А. Допустим, у нас есть две транзакции: одна читает А и пишет Б, другая читает А и как-то их модифицирует. Так вот, с точки зрения состояния базы и вообще логики происходящего нет разницы между двумя ситуациями:

прошла первая транзакция, через десять минут вторая

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

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

а порядок пушкин будет задавать, если первый запускает вася, а второй петя?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954031
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа порядок пушкин будет задавать, если первый запускает вася, а второй петя?
А кто задаёт порядок в многопользовательской системе?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954033
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerViPRosа порядок пушкин будет задавать, если первый запускает вася, а второй петя?
А кто задаёт порядок в многопользовательской системе?
тот кто проектирует
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954037
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerТо есть предыдущее утверждение явно дезавуируем.

Какое именно из них?

softwarerВыбор - не преимущество. Уместный выбор - преимущество. Неуместный выбор - недостаток.

А давайте не только Вы будете решать, какой выбор --- уместный, а какой --- нет? ;)

softwarerУстановка savepoint-а бесплатна и ничему не мешает.

Где-то бесплатна, а где-то нет. И пример, где мешает, я уже приводил.

softwarerКак пример "выборов", которые по Вашей логике, являются преимуществом.

Ясно. Ну некоторые из них (иногда) являются. Например, в блокировочниках обычно можно использовать READ UNCOMMITTED просто для того, чтобы оценить прогресс какой-нибудь "затормозившей" транзакции, смотря на ещё незакомиченные ею данные. Без него этой возможности (именно таким способом) нет.

softwarerНу вот и очень плохо, что не получится Такие нехорошие, выбор отобрали
Да нет, не очень. Отсутствие этих выборов легко можно пережить.

Кстати, "нормальная" СУБД, о которой Вы говорите --- это Oracle?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954038
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не теши себя, я имел ввиду что разработчики субд не осилили задачу многопользовательского доступа
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954039
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так как их не интересовал (как и любого любителя теории множеств чего либо) содержание
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954046
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRossoftwarerпропущено...
А кто задаёт порядок в многопользовательской системе?
тот кто проектирует
А зачем? Тут softwarer прав --- любой порядок пересекающихся транзакций корректен, хотя это и не очень интуитивно.
Вот Вам такой пример: я запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны . Кстати, ничто не мешает какой-то гипотетической СУБД работать то так, то этак, и это тоже нормально.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954048
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosтак как их не интересовал (как и любого любителя теории множеств чего либо) содержание
А в чём сила содержание, брат? ;)
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954073
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousя запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то
модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они
пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как
увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в
версионнике), и оба исхода корректны.
Ну, лично я бы не назвал корректным исход, когда в первой половине отчёта выведены данные
перед изменением, а во второй - после него.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954079
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousак вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны .
Ну да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954087
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlinePgSQLAnonymousак вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны .
Ну да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.ерунда, максимум что не сойдется сумма активов и пассивов в каком-нибудь отчете
по-моему тут как-то многими переоценивается значение версионности и примеры проводятся никак не демонстрирующие ее
мне так кажется гораздо важнее что например не покажутся данные транзакции, которая будет откачена
а прочитается что Петя у Васи снял деньги чуть раньше или чуть позже - разницы особой нет, все равно пока с этими прочитанными данными что-то сделают в базе они могут еще не раз поменяться
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954100
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovPgSQLAnonymousя запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то
модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они
пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как
увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в
версионнике), и оба исхода корректны.
Ну, лично я бы не назвал корректным исход, когда в первой половине отчёта выведены данные
перед изменением, а во второй - после него.

И были бы правы. Разве я где-то говорил, что это корректный результат?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954104
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSuperерунда, максимум что не сойдется сумма активов и пассивов в каком-нибудь отчете

Нет, минуточку. ;) Если отчёт отображает состояние базы, которого никогда не было, он просто косой. Если СУБД не позволяет сделать отчёт, который бы не отображал таких состояний --- она тоже косая. ;)

SergSuperа прочитается что Петя у Васи снял деньги чуть раньше или чуть позже - разницы особой нет, все равно пока с этими прочитанными данными что-то сделают в базе они могут еще не раз поменяться
Вот именно.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954105
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miwaonlineНу да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.
Значит, один из них --- по состоянию "до", а другой --- "после" проведения платёжки. Что не так-то?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954121
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousViPRosтак как их не интересовал (как и любого любителя теории множеств чего либо) содержание
А в чём сила содержание, брат? ;)
видишь как народ испугался слова "правильные"?
а "правильность" требует осмысления (данные как информация) и тогда субд знал бы как упорядочить конкурирующие транзакции, что бы все было осмысленно
не - целостно, атомарно, хренарно - а осмысленно
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954124
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousViPRosпропущено...

тот кто проектирует
А зачем? Тут softwarer прав --- любой порядок пересекающихся транзакций корректен, хотя это и не очень интуитивно.
Вот Вам такой пример: я запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны . Кстати, ничто не мешает какой-то гипотетической СУБД работать то так, то этак, и это тоже нормально. В правильном блокировочнике отчет, который выполняется 3 дня просто не даст менять данные все эти 3 дня. Грязное чтение может приводить к совершенно причудливым искажениям отчета. Так, например, в какой-то момент процедуры ETL могут просто обнулить агрегатную таблицу перед пересчетом.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954134
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousРазве я где-то говорил, что это корректный результат?
А процитировал я чьи слова?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954174
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovPgSQLAnonymousРазве я где-то говорил, что это корректный результат?
А процитировал я чьи слова?..

Вы их, очевидно, не поняли.

Dimitry SibiryakovНу, лично я бы не назвал корректным исход, когда в первой половине отчёта выведены данные перед изменением, а во второй - после него.

В случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954187
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousВ случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации.Хуясе. Какая все-таки волшебная технология эти блокировочники. Готов выкинуть свой Oracle, не глядя. Давайте только вы поясните, как блокировочник технически решит вот такую задачу:
Мы запускаем отчет, который будет работать 3 дня. В самом начале выполнения оптимизатор составляет 2х страничный план выполнения. В рамках этого плана 3 раза делается join с таблицей агрегатов. При этом первый join происходит в первый день, второй во второй, третий - в третий. На второй день происходит пересчет таблицы агрегатов. Что будет делать блокировочник?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954188
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousmiwaonlineНу да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.
Значит, один из них --- по состоянию "до", а другой --- "после" проведения платёжки. Что не так-то?
То, что это один и тот же отчет, в котором нет состояния "до" и "после", а есть две части, которые, по непонятной мне логике, имеют право отображать разные данные.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954190
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSupermiwaonlineпропущено...

Ну да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.ерунда, максимум что не сойдется сумма активов и пассивов в каком-нибудь отчете

Я правильно понял, что несогласованный между собой (или противоречащий сам себе) отчет для вас - ерунда?
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954196
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander RyndinPgSQLAnonymousВ случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации.Хуясе. Какая все-таки волшебная технология эти блокировочники. Готов выкинуть свой Oracle, не глядя. Давайте только вы поясните, как блокировочник технически решит вот такую задачу:
Мы запускаем отчет, который будет работать 3 дня. В самом начале выполнения оптимизатор составляет 2х страничный план выполнения. В рамках этого плана 3 раза делается join с таблицей агрегатов. При этом первый join происходит в первый день, второй во второй, третий - в третий. На второй день происходит пересчет таблицы агрегатов. Что будет делать блокировочник?
It depends. Если полный пересчёт (либо блокировки "пересекаются"), то пересчёт заблокируется (а то Вы не знали ;) ).

Вообще, я уже говорил --- я за гибридный подход (т.е. возможность выбора в одной СУБД как полноценного версионного, так и блокировочного механизма).
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954199
PgSQLAnonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miwaonlinePgSQLAnonymousпропущено...

Значит, один из них --- по состоянию "до", а другой --- "после" проведения платёжки. Что не так-то?
То, что это один и тот же отчет, в котором нет состояния "до" и "после", а есть две части, которые, по непонятной мне логике, имеют право отображать разные данные.
Где Вы взяли какие-то "две части"? Я говорил о двух вариантах выполнения отчёта (в версионнике и блокировочнике).
Нет никаких частей, никаких "разных данных", оба отчёта корректны.
...
Рейтинг: 0 / 0
Чем плох блокировочник по сравнению с версионником?
    #38954205
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PgSQLAnonymousAlexander Ryndinпропущено...
Хуясе. Какая все-таки волшебная технология эти блокировочники. Готов выкинуть свой Oracle, не глядя. Давайте только вы поясните, как блокировочник технически решит вот такую задачу:
Мы запускаем отчет, который будет работать 3 дня. В самом начале выполнения оптимизатор составляет 2х страничный план выполнения. В рамках этого плана 3 раза делается join с таблицей агрегатов. При этом первый join происходит в первый день, второй во второй, третий - в третий. На второй день происходит пересчет таблицы агрегатов. Что будет делать блокировочник?
It depends. Если полный пересчёт (либо блокировки "пересекаются"), то пересчёт заблокируется (а то Вы не знали ;) ).

Вообще, я уже говорил --- я за гибридный подход (т.е. возможность выбора в одной СУБД как полноценного версионного, так и блокировочного механизма).Это как так? Мой трехдневный отчет заблокирует ежедневное обновление агрегатов? А где же тогда магия?
Хорошо, что я решил задать вам этот вопрос, а не снес Oracle. А то мне показалось, что вы в прошлый раз сказали вот это:
PgSQLAnonymousВ случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации.
...
Рейтинг: 0 / 0
25 сообщений из 370, страница 3 из 15
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Чем плох блокировочник по сравнению с версионником?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]