Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / RepServer 3000000 операций в одной транзакции / 19 сообщений из 19, страница 1 из 1
05.03.2009, 18:02
    #35854162
RepServer 3000000 операций в одной транзакции
Здравствуйте. подскажите пожалуйста что можно придумать или настроить при таких условиях:
больше 3 000 000 операций в одной транзакции, проходят очень долго больше 4 часов. С издателя на репликатор быстро заливаются, а с репликатора на подписчик, медленно.
RServer 12.6 ASE 12.5.3
Как можно увеличить скорость?
Ресурсы сервера загружены меньше половины. А репликатора вообще не загружены.
...
Рейтинг: 0 / 0
05.03.2009, 18:16
    #35854203
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Александр123Здравствуйте. подскажите пожалуйста что можно придумать или настроить при таких условиях:
больше 3 000 000 операций в одной транзакции, проходят очень долго больше 4 часов. С издателя на репликатор быстро заливаются, а с репликатора на подписчик, медленно.
RServer 12.6 ASE 12.5.3
Как можно увеличить скорость?
Ресурсы сервера загружены меньше половины. А репликатора вообще не загружены.


Увеличьте параметры
dsi_xact_group_size и dsi_cmd_batch_size
Детальней тут
...
Рейтинг: 0 / 0
05.03.2009, 19:55
    #35854370
RepServer 3000000 операций в одной транзакции
спасибо, но уже эти параметры подкручены.
Мож еще чтото?
...
Рейтинг: 0 / 0
06.03.2009, 09:36
    #35855011
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Александр123 пишет:

> Здравствуйте. подскажите пожалуйста что можно придумать или настроить
> при таких условиях:
> больше 3 000 000 операций в одной транзакции, проходят очень долго
> больше 4 часов. С издателя на репликатор быстро заливаются, а с

Вообще, большие транзакции не для конфигураций с репсервером.
Хорошо, что ещё вообще прошло.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
06.03.2009, 11:15
    #35855298
0rc
0rc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
moris
dsi_xact_group_size и dsi_cmd_batch_size

я еще кеш dsi_sqt_max_cache_size конкретному коннекшену увеличивал и размер сетевого пакета db_packet_size ...
и грозил страшным "джанглкингом" програмисту :)

ЗЫЖ второе помогает больше :)
...
Рейтинг: 0 / 0
06.03.2009, 11:23
    #35855326
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
0rc,

А если избежать таких больших транзакций никак не получается, то посмотрите на RS15.2, там появились классные фичи для оптимизации таких больших транзакций.

Если 3000000 операций - это следствие какой-то одной операции, которая делает update или delete, затрагивающей 3000000 строк, то передается только та команда, которая в оригинале изменила эти строки, вместо 3 млн единичных (см SQL statement replication )

Если же это инсерты 3 млн строк, то Support for DSI bulk copy-in
...
Рейтинг: 0 / 0
06.03.2009, 11:45
    #35855402
Сергей08
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
не ошибаюсь что , для сказаного Moris надо обновить и датасервер до
Adaptive Server Enterprise 15.0.3 ?
...
Рейтинг: 0 / 0
06.03.2009, 14:16
    #35855984
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
нет не ошибаетесь. ASE чтобы поддерживал SQL statement replication должен быть 15.0.3.
...
Рейтинг: 0 / 0
16.04.2009, 17:47
    #35936917
merphy9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Проблема не решена :(
Возможности перейти на 15ую версию реп сервера нету.
Пробовал играться с паралельными дси, но все выполняется в одном потоке;
Заметил что в процессе переливки этой транзакции растет количество локов 1000000 и увеличивается;
Нагрузка на подписчик не увеличивается.
dsi_serialization_method to 'no_wait'
dsi_partitioning_rule to 'none'
dsi_num_threads 10
оно в спокойном режиме переливает себе данные и никуда не торопится.
...
Рейтинг: 0 / 0
16.04.2009, 17:49
    #35936930
merphy9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Идут запросы типа делиты и инсерты
...
Рейтинг: 0 / 0
17.04.2009, 11:08
    #35938042
0rc
0rc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
merphy9,
по моему скромному имхо паралелизм не получится... все от одного пользователя
да и я как-то встречал советы насчет того что больше 5 (реально 2-3) потоков лучше не ставить...
может проще запрос как-то переработать ?
...
Рейтинг: 0 / 0
17.04.2009, 11:46
    #35938182
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
+1 0rc
Да от одного пользователя, и операции по одной таблице, эффективно распаралеллить почти не реально..
Рассмотрите вариант репликации подобных операций через репликацию сохраненных процедур..
...
Рейтинг: 0 / 0
17.04.2009, 12:13
    #35938311
merphy9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Ребята спасибо попробую почитать про репликацию сохраненных процедур. Если не сложно опишите в кратце как это работает.
Еще вопрос по счетчикам как можно посмотреть сколько транзакций проходит в секунду.
Я пытался смотреть в рссд таблице rs_counters там я так понял значения счетчиков для примера стоят.
...
Рейтинг: 0 / 0
17.04.2009, 15:01
    #35938860
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
merphy9,

Как вкратце работает репликация SP

Допустим у вас update/delete большого кол-ва строк.. update some_tab where pk>1000
в результате у вас произойдет много изменений и запишутся в лог как
update some_tab where pk=1001
update some_tab where pk=1002
...
update some_tab where pk=9998
update some_tab where pk=9999

т.е. 8000 подобных строк должны передаваться через RS. и потом эти же 8000 будут применяться DSI, предварительно разбив их еще и на группы и постоянно изменяя rs_lastcommit

Если же вы сделает SP как
create procedure sp_for_update
as
benig
update some_tab where pk>1000
end

и подпишите эту sp на репликацию, то вместо 8000 строк, будет передаваться по репликации только одна - - exec sp_for_update. DSI ее проведет на StbDB и там уже произойдет фактический update..

Детальней см. sp_setrepproc
...
Рейтинг: 0 / 0
17.04.2009, 15:08
    #35938885
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
merphy9Ребята спасибо попробую почитать про репликацию сохраненных процедур. Если не сложно опишите в кратце как это работает.
Еще вопрос по счетчикам как можно посмотреть сколько транзакций проходит в секунду.
Я пытался смотреть в рссд таблице rs_counters там я так понял значения счетчиков для примера стоят.

Транзакций где проходят ?? с PrimaryDB или же применяются на ReplicateDB.. Это разные понятия, так как на ReplicateDB транзакции группируются.. Лучше смотрите счетчики типа кол-ва команд (CmdsRead)
...
Рейтинг: 0 / 0
17.04.2009, 15:11
    #35938896
merphy9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
moris, спасибо, буду так делать и тестировать. Результаты выложу на следующей неделе.
...
Рейтинг: 0 / 0
17.04.2009, 15:42
    #35939032
merphy9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Те что репликейт дб.
Ну я так и смотрел по єтому счетчику, а еще в admin who,sqt тоже можно посмотреть сколько в очереди операций. Думал может есть какойто счетчик как TPS
...
Рейтинг: 0 / 0
24.04.2009, 16:14
    #35952994
merphy9
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Это не Asynchronous Procedures
Чтото у меня не получается.
Я сначала подписываю табличку в репликацию потом подписываю процедуру в репликацию.
Или нужно выбрать только одну из table repdef и function repdef?
...
Рейтинг: 0 / 0
24.04.2009, 16:48
    #35953089
moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RepServer 3000000 операций в одной транзакции
Может быть и таблица отмечена для репликации и SP (которая изменяет эту таблицу), тогда когда выполняется из клиентской сессии стандартная DML, то эта DML передается на RS. Если же выполняется из клиентской сессии вызов SP, которые меняет подписанную таблицу, то передается только вызов SP, изменения, которые делает эта SP - отдельно не передаются

If you have marked the stored procedure for replication with sp_setrepproc, Replication Server copies execution of the procedure to the standby database. It does not copy the effects of the stored procedure to the standby database.

Вам надо выполнять из клиента не update some_tab where pk>1000 ... а exec sp_for_update (см. мой пример выше)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / RepServer 3000000 операций в одной транзакции / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]