|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Если идёт асинхронная (или полусинхронная) репликация в несколько БД-приёмников одновременно, как обрабатываются ошибки репликации, случившиеся только на одном из приёмников? Скажем, из пяти slave четыре на commit сказали "ок", а третий (по счёту) вернул "извини, не могу". Что делают умные люди в таких случаях? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 20:31 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я бы добивался, пока все не скажут ок. Разнообразными способами, в зависимости от ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 20:36 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, повторяют попытку, если неудачно - сигналят админу. На автомате врядли можно разрулить корректно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 20:56 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
DarkMaster> повторяют попытку, если неудачно - сигналят админу Это от "не могу" зависит. В некоторых случаях повторять только на сбойном, в некоторых вообще повторять смысла нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:14 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
DarkMasterповторяют попытку, если неудачно - сигналят админу. Попытку чего именно следует повторять в случае когда, например, проблемный сервер ушёл в перезагрузку и вернётся через пару минут? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:19 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Попытку еще раз заслать данные. Насчет 2 минут - не факт. Может на принимающей стороне сбой на пару суток работы - непредсказуемо в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:26 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
DarkMasterПопытку еще раз заслать данные. Это значит, что надо откатить транзакцию на этом конкретном приёмнике и полностью её повторить?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:48 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я вижу так. Тут или все прошло или нет. По идее нельзя делать частичный коммит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:55 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
DarkMasterЯ вижу так. Тут или все прошло или нет. По идее нельзя делать частичный коммит. Это значит, что все данные транзакции надо буферизовать в каком-нибудь логе, что, впрочем, не проблема. Но что когда и повторная попытка провалится? На оставшихся-то четырёх приёмниках транзакция уже закоммичена... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:59 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЧто делают умные люди в таких случаях?Изучают протокол two phase commit ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 22:14 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
DimitryНо что когда и повторная попытка провалится? На оставшихся-то четырёх приёмниках транзакция уже закоммичена... Ну вот, "отключать" проблемный приемник, пока админ не вмешается и не заставит его принять этот пакет вместе со следующими. Я как-то так понимаю репликацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 02:51 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЭто значит, что все данные транзакции надо буферизовать в каком-нибудь логе для асинхронной репликации они и так буферизированы (в журнале), разве нет? Просто не удаляй из него данные, пока не подтвердили все приемники. Т.е. кто-то читает журнал с одной позиции, а кто-то - с другой (retry после сбоя). И предусмотреть возможность вручную (или по таймауту) выкинуть сбойную ноду. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 09:43 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли идёт асинхронная (или полусинхронная) репликация в несколько БД-приёмников одновременно, как обрабатываются ошибки репликации, случившиеся только на одном из приёмников? Скажем, из пяти slave четыре на commit сказали "ок", а третий (по счёту) вернул "извини, не могу". Что делают умные люди в таких случаях? на умность не претендую - у нас есть механизм настраивания промежутка после которого нода уже не пытается подняться самостоятельно, с вычиткой накопившихся изменений . промежуток может выражаться как во времени прошедшем со момента последней транзакции (на самой ноде) так и в количестве не отправленных транзакций (на мастере). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 09:55 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
dimitrкто-то читает журнал с одной позиции, а кто-то - с другой (retry после сбоя). То есть на каждый приёмник работает выделенный парсер? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 13:16 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да. Или даже каждый приемник работает со своей копией журнала и творит с ней что хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2016, 13:21 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Тогда вопрос номер два: предположим, есть синхронная репликация с возможностью fallback в асинхронную при временном выпадении одной ноды (причём только для данной ноды). Есть идеи как можно автоматически производить процедуру обратного перехода этой ноды из асинхронного режима в синхронный? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 19:14 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Если нода вычитала весь журнал с данными и применила изменениями - что мешает ей перейти в синхронный режим? Или это я не в ту сторону смотрю? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 19:27 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
DarkMasterчто мешает ей перейти в синхронный режим? Например, то, что уже работающие на этот момент транзакции её не считают синхронной и незакоммиченные изменения ей не посылают. А если включить эту ноду в список синхронных только для новых транзакций, то нарушится сериализация транзакций, когда данные от текущие активных транзакций (после того, как они завершатся) будут досылаться на эту ноду из лога позже новых, синхронных. Покамест мне видится только вариант ждать момента, когда активных транзакций вообще нет. При высокой нагрузке, я подозреваю, этого можно ждать долго. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2016, 19:40 |
|
бработка ошибок при асинхронной репликации в несколько приём
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Покамест мне видится только вариант ждать момента, когда активных транзакций вообще нет. При высокой нагрузке, я подозреваю, этого можно ждать долго. или организовывать его принудительно - как перед выборами "день тишины" так и здесь - секунда на "определится" кто есть кто, частоту актуализации состояния нод можно отдать на откуп админам. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2016, 09:05 |
|
|
start [/forum/topic.php?fid=40&fpage=65&tid=1562389]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
58ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 437ms |
0 / 0 |