Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 9 10 [11] 12   вперед  Ctrl      все
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Dimitry Sibiryakov

Нет, в FB читаются текущие для данной транзакции данные, но Оракло-гайз настаивают, что
читать надо консистентные данные, до DML...

И что же такое версионность в Вашем понимании?
Пг гайз тоже так думают. Мне вот интересно, в Оракле after триггер видет в таблице запись при select * from та самая таблица?

А версионность нужна для того, чтоб когда один пишет - другие не видели что он написал. Что-то типа "Ты сундук видешь? Нет. И я нет. А он есть. Шас вон тот-вот пацанчик commit сделает и будет."
9 авг 10, 15:55    [9235496]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54758

Warstone

А версионность нужна для того, чтоб когда один пишет - другие не видели что он написал.

Т.е. чтобы триггер не видел что уже написал вызвавший его DML.

Posted via ActualForum NNTP Server 1.4

9 авг 10, 16:02    [9235562]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Yo.!
Guest
Gluk (Kazan)

Гммм ... а я что сказал?

да, зарапортовался. пропустил statement и в результате нечто странное прочитал

Dimitry Sibiryakov

Вот как раз "иметь две сущности таблицы" и называется "версионностью". В триггере просто
должна быть доступна версия таблицы до старта DML.

ага, тут у нас транзакция видит изменения которая внесла, в тригере не видит, а тут мы рыбу заворачивали. славо ундуским богам, даже у индусов мозгов хватает так не делать ...
9 авг 10, 16:08    [9235599]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Dimitry Sibiryakov

SergSuper
и в FB так и сделано?
(но в любом случае версионность это несколько другое)

Нет, в FB читаются текущие для данной транзакции данные, но Оракло-гайз настаивают, что
читать надо консистентные данные, до DML...
я тут подумал - как Вы предлагаете тоже плохо
получается что каждая запись может апдейтится несколько раз и непонятно какое надо брать изменение за окончательное
Dimitry Sibiryakov
И что же такое версионность в Вашем понимании?
каждый конект видит свою версию БД
9 авг 10, 16:14    [9235647]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Dimitry Sibiryakov

Т.е. чтобы триггер не видел что уже написал вызвавший его DML.
Э-э-э... Нет... Не для этого. В реализации пг, как ты видел, before триггер не видит, так как данных еще нет, а after - уже видит.

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

За счет этого можно читать и писать одновременно. Без блокировок. Это в теории, если я правильно понят то, что об этом читал.
9 авг 10, 16:14    [9235650]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
SergSuper
каждый конект видит свою версию БД
И, что самое интересное, на этом можно поймать кучу глюков, если не готов к такому режиму работы.
9 авг 10, 16:16    [9235664]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Warstone
Версионность нужна для другого. Основная идея в том, что в 2-х транзакциях может быть инсерт с одинаковым первичным ключем и это пройдет (на момнет инсерта), а вот на момент коммита - какая-то транзакция отроллбэчится (если в это время не сделали удаления одного из первичных ключей, конечно).
Это называется DEFERRED CONSTRAINTS CHECKING и версионность тут не при чём.

Warstone
За счет этого можно читать и писать одновременно. Без блокировок. Это в теории, если я правильно понят то, что об этом читал.
Без обид, перечитайте ещё несколько раз.
Ну и про версионность тоже не помешает :)
9 авг 10, 16:22    [9235696]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54758

Yo.!
тут у нас транзакция видит изменения которая внесла, в тригере не видит

Опять ты зарапортовался и пропустил statement. DML это statement. Statement не видит
изменения которые внёс. И триггеру тоже их видеть ни к чему.

Warstone

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

Нет, это работа для deferred constraints, которым версионность - с боку припека.

Версионность это всего лишь один из способов реализовать принцип "писатели не блокируют
читателей".

Posted via ActualForum NNTP Server 1.4

9 авг 10, 16:26    [9235716]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
roden
Member

Откуда:
Сообщений: 741
Warstone
SergSuper
каждый конект видит свою версию БД
И, что самое интересное, на этом можно поймать кучу глюков, если не готов к такому режиму работы.

+1
Но что ещё более интересно. пока эти глюки не поймаешь, не поймешь что конкретно тупит: мозг, логика или СУБД ;)
9 авг 10, 17:10    [9235925]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
hvlad
]Это называется DEFERRED CONSTRAINTS CHECKING

А она есть в планах для FB?
9 авг 10, 17:21    [9236022]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
artemana
hvlad
Это называется DEFERRED CONSTRAINTS CHECKING

А она есть в планах для FB?
Пока нет.
На моей памяти это просили лишь пару раз.
9 авг 10, 18:03    [9236269]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
hvlad
artemana
hvlad
Это называется DEFERRED CONSTRAINTS CHECKING

А она есть в планах для FB?
Пока нет.
На моей памяти это просили лишь пару раз.

Вещь конечно сильно спецефическая, нужная только системам репликации, наверное.
9 авг 10, 18:41    [9236422]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54758

artemana

Вещь конечно сильно спецефическая, нужная только системам репликации, наверное.

Отдельным типам репликаторов - да. Но их мало. Собственно, из тех, которые не "только для
внутреннего употребления" мне таковые вообще неизвестны.

Posted via ActualForum NNTP Server 1.4

9 авг 10, 19:03    [9236512]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

artemana

Вещь конечно сильно спецефическая, нужная только системам репликации, наверное.

Отдельным типам репликаторов - да. Но их мало. Собственно, из тех, которые не "только для
внутреннего употребления" мне таковые вообще неизвестны.

Про свой забыл? По моему ему и любым другим было бы 'приятно', если бы система могла проверять fk и unique не для каждой операции, а при commit. Конфликтов было бы меньше.
9 авг 10, 19:12    [9236549]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54758

artemana

Про свой забыл? По моему ему и любым другим было бы 'приятно', если бы система могла
проверять fk и unique не для каждой операции, а при commit. Конфликтов было бы меньше.

Приятно - может быть. Но в штатном режиме мой репликатор как и любой другой, построенный
на логах не нарушает какие-либо констрейны. Отложенные констрейны нужны тем репликаторам,
которые работают без лога, на флагах или сравнении содержимого. Но как я уже сказал: если
кто-нибудь таковые на рынке знает - просветите. Мне не встречались.

Posted via ActualForum NNTP Server 1.4

9 авг 10, 19:43    [9236620]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

artemana

Про свой забыл? По моему ему и любым другим было бы 'приятно', если бы система могла
проверять fk и unique не для каждой операции, а при commit. Конфликтов было бы меньше.

Приятно - может быть. Но в штатном режиме мой репликатор как и любой другой, построенный
на логах не нарушает какие-либо констрейны.

У тебя лог не полный, ты знаешь текущее состояния записи, а не то, каким оно было на момент операции. А значит есть ситуации когда внутри транзакции констрайны нарушаются и ты с этим в штатном режиме не справляешься. Сам же рассказывал. Или я где то тебя не правильно понял в обозначение границ "штатного режима работы"?
9 авг 10, 20:00    [9236674]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Dimitry Sibiryakov

Отдельным типам репликаторов - да. Но их мало. Собственно, из тех, которые не "только для
внутреннего употребления" мне таковые вообще неизвестны.
А вот в Постгре есть механизм WAL. Который ведет журнал изменений и его можно проигрывать или для восстановления базы или для репликации. В 9.0 (Сейчас бета4 или уже бета 5... В сентябре будет релиз, скорей всего) доставка WAL на запасной сервер будет оптимизирована и "практически" моментальная. Таким образом в Пг появится нативная master-slave репликация с hot stand. Это отбрасывает необходимость "сторонних репликантов".
9 авг 10, 20:04    [9236681]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
hvlad
Это называется DEFERRED CONSTRAINTS CHECKING и версионность тут не при чём.

Без обид, перечитайте ещё несколько раз.
Ну и про версионность тоже не помешает :)
Ну ИМХО DEFERRED легче отрабатывается на версионнике.

Конечно перечитаю. Я вообще к версионности относился так: Это такая штука, которая позволяет не делать блокировки. Но проблемы с ней будут на коммитах. Если у меня не будет откатов транзакций, то все будет хорошо. Если будут - надо разбираться - почему откатилось и что делать. Но это как и везде.

Кстати, просветите насчет мсскл: У него до сих пор блокировки на чтение и "желательно не делать долгих селектов, так как это катастрофически сказывается на производительности всего сервера"
9 авг 10, 20:08    [9236691]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Warstone

Кстати, просветите насчет мсскл: У него до сих пор блокировки на чтение и "желательно не делать долгих селектов, так как это катастрофически сказывается на производительности всего сервера"


Версионник с 2005 года (ну может чуть позже). Вернее гибрид.
Про реализацию можно долго спорить. Если собираешься затеять срач на тему истинной версионности, пойду за попкорном
9 авг 10, 20:13    [9236695]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54758

artemana

А значит есть ситуации когда внутри транзакции констрайны нарушаются и ты с этим в штатном
режиме не справляешься. Сам же рассказывал.

Ну да, есть такая буква... Но, IMHO, оно не стоит того, чтобы вводить deferred
constraints. У них цена уж больно велика (если мне мой нюх не изменяет). Т.е. в простейших
случаях всё может быть и ништяк, но как я представлю транзакцию, внутри которой пара
миллионов DML и данные несколько раз проходят инвалидные состояния...

Warstone
Таким образом в Пг появится нативная master-slave репликация с hot stand.
Это отбрасывает необходимость "сторонних репликантов".

Щаззз... Оптимизм. WAL это просто отлично для простейшего standby в локалке.
Но в жизни кому ни попадя нужна неполная multimaster репликация, и вот тут-то WAL-а
становится недостаточно. Простейший случай: филиалы, в которых находится "урезанная" база,
обмениваются изменениями с центральной, причём часть данных, поступающих из филиалов
должна-таки не только попадать в центр, но и уходить в остальные филиалы.

Вон, у того же мускуля WAL уже давно есть, а мультимастер репликация ограничена ровно
двумя мастерами, причём один slave не может принимать изменения с двух мастеров одновременно.

Posted via ActualForum NNTP Server 1.4

9 авг 10, 20:29    [9236730]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Warstone
Member

Откуда:
Сообщений: 4896
Блог
Gluk (Kazan)
Версионник с 2005 года (ну может чуть позже). Вернее гибрид.
Про реализацию можно долго спорить. Если собираешься затеять срач на тему истинной версионности, пойду за попкорном
Я-бы удовлетворился ссылочками на то какой он гибрид и какой блокировочник. Мне для общего образования.
Dimitry Sibiryakov
Щаззз... Оптимизм.
Да, согласен, мультимастера нету на нативном уровне. Да и его сложно сделать вообще-то. Хотя если сиквенсы настроить на чередование, логгировать только изменения и данные с других мастеров - readonly... Ну да это все не мне вам рассказывать. Наверняка не один раз такое делали.
Тут, кстати, Хранимки опять-таки дают большой плюс к возможности масштабирования =))
9 авг 10, 21:49    [9236890]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54758

Warstone
Да и его сложно сделать вообще-то.

На нативном уровне - сложно. На стороннем - как два пальца об асфальт. Всего-то две
проблемы решить:
1) Глобально-уникальные ключи
2) Предотвращение data bounce

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

Posted via ActualForum NNTP Server 1.4

9 авг 10, 22:32    [9237025]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
hvlad
Member

Откуда:
Сообщений: 11551
Warstone
Ну ИМХО DEFERRED легче отрабатывается на версионнике.
А на чём основано это мнение ?

Warstone
Конечно перечитаю. Я вообще к версионности относился так: Это такая штука, которая позволяет не делать блокировки. Но проблемы с ней будут на коммитах. Если у меня не будет откатов транзакций, то все будет хорошо. Если будут - надо разбираться - почему откатилось и что делать. Но это как и везде.
Я вам рекомендую сначала хоть что-то почитать о версионности, хотя бы что-то об известных практических реализациях, а уж потом высказываться публично.
Ибо уже даже не улыбает.
9 авг 10, 22:41    [9237069]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Warstone
Я-бы удовлетворился ссылочками на то какой он гибрид и какой блокировочник. Мне для общего образования.


Начать можно отсюда.
Продолжать в BOL
10 авг 10, 07:22    [9237598]     Ответить | Цитировать Сообщить модератору
 Re: MySQL и Firebird для Web  [new]
artemana
Member

Откуда: Днепропетровск
Сообщений: 1929
Dimitry Sibiryakov

.. Но, IMHO, оно не стоит того, чтобы вводить deferred
constraints. У них цена уж больно велика (если мне мой нюх не изменяет). Т.е. в простейших
случаях всё может быть и ништяк, но как я представлю транзакцию, внутри которой пара
миллионов DML и данные несколько раз проходят инвалидные состояния...


Но и архи сложного вроде ничего нет. Внутри транзакции небольшой журнальчик, содержащий сведения только о тех записях, которые размещены транзакцией в ‘невалидном’ состоянии. Перед основными действиями по окончание транзакции пройти по этому журналу и еще раз выполнить проверку на ‘валидность’ каждой записи.

Кстати, этот так называемый DEFERRED, в таком или другом виде вроде работает для методанных, то есть внутри транзакции можно объявить ‘невалидную’ процедуру, а если к концу транзакции дополнить методанные базы необходимыми процедуре объектами, то транзакция завершится успешно.
10 авг 10, 11:13    [9238754]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 3 4 5 6 7 8 9 10 [11] 12   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить