|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
hvladДавайте ещё раз уточним - рестарт имеет смысл только в том случае, когда тр-ция-конкурент уже не активна. Если она активна, то выдаётся обычное сообщение о конфликте в котором первичный код ошибки - isc_deadlock и только вторичная ошибка будет isc_update_conflict. Если же тр-ция-конкурент не активна, то делается рестрат запроса в новом снимке. В коде сейчас прописано 10 попыток рестрата, после 10-ой будет выдана isc_update_conflict (без isc_deadlock). Есть сомнения\возражения ? Ну вот теперь в голове у меня все стало на свои места :) Спасибо за пояснения!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 16:04 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
hvladЕсть сомнения\возражения ? На мой вкус 10 повторов это лишка, хватило бы и одного-двух. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 00:21 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНа мой вкус 10 повторов это лишка, хватило бы и одного-двух.Я же просил сомнения\возражения, а не брюзжание :) Понятно, что 10 повторов - это слишком. Просто нужно было какой-то ограничитель поставить, на тот случай, которого "не может быть". Это можно будет изменить до релиза, при необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 01:16 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
А повторы с каким-то интервалом идут? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 07:43 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Exteris, С разумным интервалом! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 09:02 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
ExterisА повторы с каким-то интервалом идут?Пауза не нужна, т.к. известно, что тр-ция конкурент уже не активна - ждать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 09:25 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Хм, тогда действительно 10 повторов - многовато. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 09:35 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Exteris, это на случай наша транзакция мега длительная, а пока она выполняется завершаются 10 и более коротких, причём старт-коммиты должны ещё и не удачно попасть до рестарта и каждый раз после рестарта. Конечно сценарий маловероятный, но мало ли ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 09:44 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
кстати. Может вопрос немного не в тему, но мало ли есть связь. Планируется ли сделать так чтобы запросы к MON$ вели себя по разному в зависимости от уровня изолированности транзакции? Раньше вроде RC был не очень пригоден поэтому для MON$ всегда работал SNAPSHOT, а теперь вроде как доступна консистентная информация на уровне запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 09:54 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Симонов Денис, ошибаешься. независимо от уровня изолированности информация в mon$ всегда собирается как снимок (snapshot не по уровню изолированности), потому что иначе в RC невозможно согласованное получение данных из связанных таблиц. Как раз самое правильное - получение mon$ в read read committed. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 10:49 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
kdv, так оно и так в новом RC снимок. Вот только для обновления информации в MON$ сейчас надо перезапускать транзакцию, а для ряда случаев достаточно было бы просто перевыполнить запрос. Т.е. можно было бы менять поведения в зависимости от того где запрашивается информация из MON$ в RC или SNAPSHOT ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:01 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Симонов Денис, да ну нафиг. Если ты лезешь в mon$statements, то тебе потом явно захочется посмотреть в mon$attachments, или в mon$transactions. А если они в RC, то 1. получить консистентные данные получится только джойном 2. всё равно с производительностью будет плохо, потому что запрос к одной таблице опять потребует сканирования состояния всех коннектов. 3. вычитка mon$ в режиме RC предполагает их частое "дрюкание". См. пункт 2. Этот вопрос обсуждался еще когда mon$ делались. Разработчики решили делать снапшот, читаемый в любой транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:08 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
hvladЯ же просил сомнения\возражения, а не брюзжание :) Это и есть сомнение: если сейчас длинный апдейт валится через пару минут с ошибкой конфликта, то с десятью повторами его время выполнения будет колебаться от двух до 20 минут в зависимости от фазы Луны. Если не будет простого способа обнаружить наличие рестартов, это создаст ещё одну трудно диагностируемую проблему производительности для поддержки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 11:48 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли не будет простого способа обнаружить наличие рестартов, это создаст ещё одну трудно диагностируемую проблему производительности для поддержки.Я же писал выше. Хочешь ловить рестарты - делай обработчик ошибки в PSQL блоке ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:08 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
hvladЯ же писал выше. Хочешь ловить рестарты - делай обработчик ошибки в PSQL блоке Ты думаешь как разработчик, который пишет код. Попробуй для разнообразия подумать как работник техподдержки, которому клиент жалуется на "update долго работает". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:12 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Такая ситуация потенциально может быть если ты только обновляешь не меньше миллиона строк. Это и без всяких рестартов будет больно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:16 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Симонов ДенисТакая ситуация потенциально может быть если ты только обновляешь не меньше миллиона строк. Тот же S-Market способен регулярно обновлять и по пять миллионов записей одним махом. Качество разработчиков софта в мире не растёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:39 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, и что одновременно эти 5 миллионов кто-то ещё правит? Ну предположим правит, вот будет облом апдейту, запустят его снова с клиента. Что будет быстрее что ли? Вроде эта одна из тех операций которая должна завершится в любом случае. А вот диагностика конечно нужна. Можно например ввести в MON$STATEMENTS счётчик рестартов ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:44 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladЯ же писал выше. Хочешь ловить рестарты - делай обработчик ошибки в PSQL блоке Ты думаешь как разработчик, который пишет код. Попробуй для разнообразия подумать как работник техподдержки, которому клиент жалуется на "update долго работает".Рестарт делает движок, или рестарт делает само приложение - в чём разница для техподдержки ? У тебя есть способ обеспечить ему счастье ? Рассказывай, подумаем. Для разнообразия ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 12:45 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Симонов Денис, точнее в MON$RECORD_STATS ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:03 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТот же S-Market способен регулярно обновлять и по пять миллионов записей одним махом. Качество разработчиков софта в мире не растёт. Это же обработка данных за промежуток времени, остатки, продажи и т.п. Не мешай в одну кучу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2018, 13:13 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
hvlad, в RDB$TYPES для MON$ISOLATION_MODE забыли добавить 4 - READ_CONSISTENCY ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 13:19 |
|
Согласованное чтение в read commited и промежуточная сборка мусора
|
|||
---|---|---|---|
#18+
точнее READ_COMMITED_CONSISTENCY. Ну вам виднее как назвать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 13:20 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1561028]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 183ms |
0 / 0 |