|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
vadiminfoНу я тоже так понял. Но это как бы это все же особые требования к оперативности. Да даже не совсем так. Допустим, есть некие данные А. Допустим, у нас есть две транзакции: одна читает А и пишет Б, другая читает А и как-то их модифицирует. Так вот, с точки зрения состояния базы и вообще логики происходящего нет разницы между двумя ситуациями: прошла первая транзакция, через десять минут вторая обе транзакции идут параллельно, первая успевает ухватить старую версию изменяемых данных. Поэтому если мы считаем, что в первом случае всё нормально и данные правильные, нет ровно никаких резонов считать, что во втором они неправильные. Если мы хотим, чтобы Б всегда соответствовали последнему состоянию А - значит, нужно явно это указывать (то есть вызывать первую операцию в конце второй). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 19:23 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
softwarervadiminfoНу я тоже так понял. Но это как бы это все же особые требования к оперативности. Да даже не совсем так. Допустим, есть некие данные А. Допустим, у нас есть две транзакции: одна читает А и пишет Б, другая читает А и как-то их модифицирует. Так вот, с точки зрения состояния базы и вообще логики происходящего нет разницы между двумя ситуациями: прошла первая транзакция, через десять минут вторая обе транзакции идут параллельно, первая успевает ухватить старую версию изменяемых данных. Поэтому если мы считаем, что в первом случае всё нормально и данные правильные, нет ровно никаких резонов считать, что во втором они неправильные. Если мы хотим, чтобы Б всегда соответствовали последнему состоянию А - значит, нужно явно это указывать (то есть вызывать первую операцию в конце второй). а порядок пушкин будет задавать, если первый запускает вася, а второй петя? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 19:53 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
ViPRosа порядок пушкин будет задавать, если первый запускает вася, а второй петя? А кто задаёт порядок в многопользовательской системе? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 19:57 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
softwarerViPRosа порядок пушкин будет задавать, если первый запускает вася, а второй петя? А кто задаёт порядок в многопользовательской системе? тот кто проектирует ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 19:57 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
softwarerТо есть предыдущее утверждение явно дезавуируем. Какое именно из них? softwarerВыбор - не преимущество. Уместный выбор - преимущество. Неуместный выбор - недостаток. А давайте не только Вы будете решать, какой выбор --- уместный, а какой --- нет? ;) softwarerУстановка savepoint-а бесплатна и ничему не мешает. Где-то бесплатна, а где-то нет. И пример, где мешает, я уже приводил. softwarerКак пример "выборов", которые по Вашей логике, являются преимуществом. Ясно. Ну некоторые из них (иногда) являются. Например, в блокировочниках обычно можно использовать READ UNCOMMITTED просто для того, чтобы оценить прогресс какой-нибудь "затормозившей" транзакции, смотря на ещё незакомиченные ею данные. Без него этой возможности (именно таким способом) нет. softwarerНу вот и очень плохо, что не получится Такие нехорошие, выбор отобрали Да нет, не очень. Отсутствие этих выборов легко можно пережить. Кстати, "нормальная" СУБД, о которой Вы говорите --- это Oracle? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 20:02 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
не теши себя, я имел ввиду что разработчики субд не осилили задачу многопользовательского доступа ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 20:03 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
так как их не интересовал (как и любого любителя теории множеств чего либо) содержание ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 20:05 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
ViPRossoftwarerпропущено... А кто задаёт порядок в многопользовательской системе? тот кто проектирует А зачем? Тут softwarer прав --- любой порядок пересекающихся транзакций корректен, хотя это и не очень интуитивно. Вот Вам такой пример: я запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны . Кстати, ничто не мешает какой-то гипотетической СУБД работать то так, то этак, и это тоже нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 20:15 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
ViPRosтак как их не интересовал (как и любого любителя теории множеств чего либо) содержание А в чём сила содержание, брат? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 20:18 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousя запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны. Ну, лично я бы не назвал корректным исход, когда в первой половине отчёта выведены данные перед изменением, а во второй - после него. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 20:58 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousак вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны . Ну да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 21:07 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
miwaonlinePgSQLAnonymousак вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны . Ну да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.ерунда, максимум что не сойдется сумма активов и пассивов в каком-нибудь отчете по-моему тут как-то многими переоценивается значение версионности и примеры проводятся никак не демонстрирующие ее мне так кажется гораздо важнее что например не покажутся данные транзакции, которая будет откачена а прочитается что Петя у Васи снял деньги чуть раньше или чуть позже - разницы особой нет, все равно пока с этими прочитанными данными что-то сделают в базе они могут еще не раз поменяться ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 21:29 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovPgSQLAnonymousя запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны. Ну, лично я бы не назвал корректным исход, когда в первой половине отчёта выведены данные перед изменением, а во второй - после него. И были бы правы. Разве я где-то говорил, что это корректный результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 21:58 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
SergSuperерунда, максимум что не сойдется сумма активов и пассивов в каком-нибудь отчете Нет, минуточку. ;) Если отчёт отображает состояние базы, которого никогда не было, он просто косой. Если СУБД не позволяет сделать отчёт, который бы не отображал таких состояний --- она тоже косая. ;) SergSuperа прочитается что Петя у Васи снял деньги чуть раньше или чуть позже - разницы особой нет, все равно пока с этими прочитанными данными что-то сделают в базе они могут еще не раз поменяться Вот именно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 22:05 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
miwaonlineНу да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел. Значит, один из них --- по состоянию "до", а другой --- "после" проведения платёжки. Что не так-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 22:08 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousViPRosтак как их не интересовал (как и любого любителя теории множеств чего либо) содержание А в чём сила содержание, брат? ;) видишь как народ испугался слова "правильные"? а "правильность" требует осмысления (данные как информация) и тогда субд знал бы как упорядочить конкурирующие транзакции, что бы все было осмысленно не - целостно, атомарно, хренарно - а осмысленно ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 23:15 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousViPRosпропущено... тот кто проектирует А зачем? Тут softwarer прав --- любой порядок пересекающихся транзакций корректен, хотя это и не очень интуитивно. Вот Вам такой пример: я запускаю 2 транзакции --- отчёт (и он выполняется 3 дня) и какую-то модификацию данных, которые он затрагивает (и она выполняется 1 секунду), и они пересекаются. Так вот, в отчёте, который сформируется только через 3 дня, я могу как увидеть изменённые данные (так будет в блокировочнике), так и нет (а так --- в версионнике), и оба исхода корректны . Кстати, ничто не мешает какой-то гипотетической СУБД работать то так, то этак, и это тоже нормально. В правильном блокировочнике отчет, который выполняется 3 дня просто не даст менять данные все эти 3 дня. Грязное чтение может приводить к совершенно причудливым искажениям отчета. Так, например, в какой-то момент процедуры ETL могут просто обнулить агрегатную таблицу перед пересчетом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2015, 23:25 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousРазве я где-то говорил, что это корректный результат? А процитировал я чьи слова?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 00:22 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovPgSQLAnonymousРазве я где-то говорил, что это корректный результат? А процитировал я чьи слова?.. Вы их, очевидно, не поняли. Dimitry SibiryakovНу, лично я бы не назвал корректным исход, когда в первой половине отчёта выведены данные перед изменением, а во второй - после него. В случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 08:24 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousВ случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации.Хуясе. Какая все-таки волшебная технология эти блокировочники. Готов выкинуть свой Oracle, не глядя. Давайте только вы поясните, как блокировочник технически решит вот такую задачу: Мы запускаем отчет, который будет работать 3 дня. В самом начале выполнения оптимизатор составляет 2х страничный план выполнения. В рамках этого плана 3 раза делается join с таблицей агрегатов. При этом первый join происходит в первый день, второй во второй, третий - в третий. На второй день происходит пересчет таблицы агрегатов. Что будет делать блокировочник? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 08:48 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousmiwaonlineНу да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел. Значит, один из них --- по состоянию "до", а другой --- "после" проведения платёжки. Что не так-то? То, что это один и тот же отчет, в котором нет состояния "до" и "после", а есть две части, которые, по непонятной мне логике, имеют право отображать разные данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 08:49 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
SergSupermiwaonlineпропущено... Ну да, конечно. В начале отчета (условно для простоты - взаиморасчеты между контрагентами) Вася должен Пете деньги за неоплаченные накладные, а в конце - уже Петя должен Васе, потому что во время выполнения отчета бух платежку провел.ерунда, максимум что не сойдется сумма активов и пассивов в каком-нибудь отчете Я правильно понял, что несогласованный между собой (или противоречащий сам себе) отчет для вас - ерунда? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 08:51 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
Alexander RyndinPgSQLAnonymousВ случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации.Хуясе. Какая все-таки волшебная технология эти блокировочники. Готов выкинуть свой Oracle, не глядя. Давайте только вы поясните, как блокировочник технически решит вот такую задачу: Мы запускаем отчет, который будет работать 3 дня. В самом начале выполнения оптимизатор составляет 2х страничный план выполнения. В рамках этого плана 3 раза делается join с таблицей агрегатов. При этом первый join происходит в первый день, второй во второй, третий - в третий. На второй день происходит пересчет таблицы агрегатов. Что будет делать блокировочник? It depends. Если полный пересчёт (либо блокировки "пересекаются"), то пересчёт заблокируется (а то Вы не знали ;) ). Вообще, я уже говорил --- я за гибридный подход (т.е. возможность выбора в одной СУБД как полноценного версионного, так и блокировочного механизма). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 09:02 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
miwaonlinePgSQLAnonymousпропущено... Значит, один из них --- по состоянию "до", а другой --- "после" проведения платёжки. Что не так-то? То, что это один и тот же отчет, в котором нет состояния "до" и "после", а есть две части, которые, по непонятной мне логике, имеют право отображать разные данные. Где Вы взяли какие-то "две части"? Я говорил о двух вариантах выполнения отчёта (в версионнике и блокировочнике). Нет никаких частей, никаких "разных данных", оба отчёта корректны. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 09:06 |
|
Чем плох блокировочник по сравнению с версионником?
|
|||
---|---|---|---|
#18+
PgSQLAnonymousAlexander Ryndinпропущено... Хуясе. Какая все-таки волшебная технология эти блокировочники. Готов выкинуть свой Oracle, не глядя. Давайте только вы поясните, как блокировочник технически решит вот такую задачу: Мы запускаем отчет, который будет работать 3 дня. В самом начале выполнения оптимизатор составляет 2х страничный план выполнения. В рамках этого плана 3 раза делается join с таблицей агрегатов. При этом первый join происходит в первый день, второй во второй, третий - в третий. На второй день происходит пересчет таблицы агрегатов. Что будет делать блокировочник? It depends. Если полный пересчёт (либо блокировки "пересекаются"), то пересчёт заблокируется (а то Вы не знали ;) ). Вообще, я уже говорил --- я за гибридный подход (т.е. возможность выбора в одной СУБД как полноценного версионного, так и блокировочного механизма).Это как так? Мой трехдневный отчет заблокирует ежедневное обновление агрегатов? А где же тогда магия? Хорошо, что я решил задать вам этот вопрос, а не снес Oracle. А то мне показалось, что вы в прошлый раз сказали вот это: PgSQLAnonymousВ случае блокировочника во всём отчёте будут выведены данные после изменения, т.е. фактически считается, что он был выполнен после модификации, а в версионнике --- до модификации. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2015, 09:13 |
|
|
start [/forum/topic.php?fid=35&msg=38954038&tid=1552327]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 257ms |
total: | 391ms |
0 / 0 |