|
|
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
hi all. Сабж. Встречается эта "комета" чрезвычайно редко (я видел последний раз несколько лет взад, хотя изгаляюсь над ФБ чуть ли не каждый день). Все транзакции стартуют как read committed record_version no wait, число isql'ей = 350. Молотьба шла с 31-10-2013 15:53, остановлена только что. За эти 50 ч в двух error-логах окошек вылезло: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. Видно, что каждый из этих isql'ей в соотв-щий ошибке момент времени не мог достучаться до сервака ("Cannot get server version without database connection"). Но в firebird.log'е НИЧЕГО нету! И крашей тоже не было. И чего тогда это могло быть ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. PS. Вопрос ДСа от 2009 на эту же тему читал, но так и не понял, где собака порылась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 18:22:53 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидPS. Вопрос ДСа от 2009 на эту же тему читал Тот мой вопрос был совсем на другую тему. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 19:49:23 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а, точно. Тогда всё еще загадочнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 19:56:28 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Таблоид> Видно, что каждый из этих isql'ей в соотв-щий ошибке Таблоид> момент времени не мог достучаться до сервака Вроде бы это может не иметь никакого отношения к самим insert-ам, т.е. если какая-то бага и проблем действительно есть, то где-нибудь в другом месте. Иначе старый рецепт бесконфликтности insert-ов придётся пересматривать, чего лично мне очень бы не хотелось. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 20:54:15 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамВроде бы это может не иметь никакого отношения к самим insert-ам, т.е. если какая-то бага и проблем действительно есть, то где-нибудь в другом месте.Вероятнее всего - именно так. Ибо "встреча" с этим сообщением для инсертов происходит ЧРЕЗВЫЧАЙНО редко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 21:25:47 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Так хочешь поймать - избавься от всех реконнектов и пр. Оставь только 1 коннект в самом начале и запусти тест. Заодно ещё и нагрузку можно будет увеличть. Более того, в идеале - ещё и сначала 350 коннектов и только потом 350 молотилок insert-а. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 21:28:53 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Ну так попробуй не использовать no wait. Ибо что бы там ни говорил kdv, no wait это не единственный правильный вариант. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 21:32:32 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
А как wait вместо no wait должен помочь в данном случае? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 21:41:12 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамА как wait вместо no wait должен помочь в данном случае? Заставит транзакцию подождать освобождения ресурса за который она конфликтует. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 21:44:47 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
ГРТак хочешь поймать - избавься от всех реконнектов и пр. Оставь только 1 коннект в самом начале и запусти тест .Т.е. создать огромный скрипт не с 30 (как сейчас), а с 3000 execute_block'ами + коммитами и молотили чтобы без передыхов (типа shell ping -n 30 localhost>nul) - так ? ГРЗаодно ещё и нагрузку можно будет увеличть.Нагрузку могу увеличить раза в полтора-два, не более. Как-то делал 700-800 аттачей, ~полтора года взад, когда с missing entries воевал, - сервер начинает загибаться. Ошибка (на имеющемся у мну железе) появляется не чаще, чем орбитальные сближения Марса с Землёй. ГРБолее того, в идеале - ещё и сначала 350 коннектов и только потом 350 молотилок insert-а. Сделать что-то типа барьера (термин из java), когда 100 задач подходят к стартовой точке, НЕ начиная выполнения до тех пор, пока не откроется барьер, а затем после открытия этого шлагбаума сразу все вместе ломятся со своими 100500 insert'ами - я правильно понял твою мысль ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 22:19:45 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovГаджимурадов РустамА как wait вместо no wait должен помочь в данном случае?Заставит транзакцию подождать освобождения ресурса за который она конфликтует.Она дождётся этот ресурс и... чего дальше ? insert не может вызвать конфликт потерянного обновления, а в условиях юзания генератора для ПК - не может также вызвать нарушание этого ПК. Будет ли вообще сабжевая ошибка при таких условиях ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 22:22:20 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидОна дождётся этот ресурс и... чего дальше ? Скорее всего сделает что хочет и пойдёт дальше работать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 22:27:13 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидОна дождётся этот ресурс и... чего дальше ? Скорее всего сделает что хочет и пойдёт дальше работать.ну, и как зарегистрировать тот факт, что перед этим моментом она некоторое время не могла делать insert ? т.е. вот упёрлась она wait-лбом во что-то - и как залогировать это её "затруднение" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 22:30:38 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Таблоидкак залогировать это её "затруднение" ? Никак, это рабочая ситуация. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 23:00:01 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидкак залогировать это её "затруднение" ?Никак, это рабочая ситуация.ну, и в чём профит ? с no_wait хотя бы видно, что проблема существует, а так и не увидим ничего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 23:03:13 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Таблоидс no_wait хотя бы видно, что проблема существует Какая проблема? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 23:05:09 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидс no_wait хотя бы видно, что проблема существуетКакая проблема?Проблема непонятности, см. стартовый вопрос топега... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 23:35:15 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидПроблема непонятности, см. стартовый вопрос топега... :-) Проблема малоинформативности сообщений об ошибках в Firebird видна в любом случае. Но вот отсутствие в твоих логах собственно того statement, который failed, это уже проблема твоих логов, с Firebird не связанная. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2013, 23:59:13 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Нашёл я, где это происходит: к этому приводит во всех имеющихся случаях... запрос show version! Этот запрос сидит в самом начале .sql-скрипта, выполняемого каждой молотилкой. Вот как он выглядит: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Вызов isql идёт с ключиком `-b` (bail on error), поэтому при обломе ЛЮБОЙ из команд скрипта (в т.ч. show-) будет немедленный возврат из скрипта. В итоге, вместо вот такого лога: типичный лог, когда нет ошибок Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. -- в каждом "странном" случае получаю вот такую пустышку: Код: plaintext 1. 2. 3. 4. И сопоставляя выведенный текст (в этой пустышке) с временем возникновения ошибки: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 00:11:26 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Таблоидвижу, что спотыкач случился именно на show version. Правильно. Потому что CONNECT обломился с приведённой ошибкой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 00:15:29 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидвижу, что спотыкач случился именно на show version. Правильно. Потому что CONNECT обломился с приведённой ошибкой.А не обломился ли он именно от того, что первая команда в скрипте есть show version ? PS. Вызов isql'я (на всякий): Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 00:21:49 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Таблоид> Нашёл я, где это происходит: к этому приводит во всех имеющихся случаях... запрос show version! Начал было отвечать на твоё сообщение выше, но вовремя увидел это. Так вот - так тебе и надо! :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 00:22:05 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамТаблоид> Нашёл я, где это происходит: к этому приводит во всех имеющихся случаях... запрос show version! Начал было отвечать на твоё сообщение выше, но вовремя увидел это. Так вот - так тебе и надо! :)а чё не так ? нельзя версию спросить, что ле ?!.. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 00:30:02 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Таблоид> а чё не так ? Подход к тестированию: а) тест синтетически не чистый (у тебя всегда так) б) тест плохо реализован (выводить кривой оператор нужно было сразу, а не с подсказки ДСа). > нельзя версию спросить, что ле ?!.. :-) Да хоть обспрашивайся, мне не жалко. :) Но посягать на святое - бесконфликтность инсертов - не нааадо!... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 01:29:29 |
|
||
|
lock conflict при работе 350 аттачей, делающих только insert'ы. Отчего ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамИначе старый рецепт бесконфликтности insert-ов придётся пересматривать, чего лично мне очень бы не хотелось. Я в оракле недавно наткнулся на блокировку при вставке из-за наличия bitmap индекса. Было больно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2013, 07:53:13 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=109&tid=1564145]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 419ms |

| 0 / 0 |
