Методы, механизмы и инструментарий для репликации
Модератор: kdv
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 05 июн 2006, 16:37
Обращался к разработчикам - ни ответа ни привета.
Кто пользовался - помогите! В примере там описано только "TConnectDBProc = function (AConnectParams: PChar; AConnectErrorCallbacFunc: ConnectErrorCallbackFunc): integer; stdcall;"
Никакого примера по коннекту нет. Что передавать в PChar - уже голову сломал

-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 06 июн 2006, 12:39
А разве в DPB указывается база данных?
Каким же ключём, подскажите. Я не нашёл.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 07 июн 2006, 18:43
Отвечу сам на свой вопрос.
Формат такой:
ConnectParams:='db_name="localhost:d\my data\mybase.fdb";
user_name=SYSDBA;
password=masterkey;
clientlib="C:\Program Files\Firebird\bib\fbclient.dll";
lc_ctype=WIN1251;
sql_role_name=ADMIN;
sql_dialect=3'
Это все поддерживаемые функции. Жаль, нельзя отключить сборку мусора

-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 08 июн 2006, 01:34
WildSery писал(а):Это все поддерживаемые функции. Жаль, нельзя отключить сборку мусора

Логично, что сборка устанавливается только на уровне БД. Представьте, что пять пользователей подключается с отключенной GC, пять с интервалом в 100 000, а еще пять с 20 000. Кому верить?
А собственно чем вам Garbage Collect мешает?
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 08 июн 2006, 05:23
Cybermax писал(а):Логично, что сборка устанавливается только на уровне БД
давай не будем путать GC и sweep. Первая устанавливается для коннекта, второй - для базы.
Cybermax писал(а):А собственно чем вам Garbage Collect мешает?
а вот на это и мне интересно услышать ответ...
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 08 июн 2006, 05:57
dimitr писал(а):давай не будем путать GC и sweep. Первая устанавливается для коннекта, второй - для базы.
Порылся в доках - в самом деле, можно отключать сборку мусора в коннекте. Написано, что для ускорения выборок.
Оффтоп: а были ли тесты по производительности с GC и без?
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 08 июн 2006, 09:21
а были ли тесты по производительности с GC и без?
были. без - быстрее, если мусора много.
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 08 июн 2006, 09:38
kdv писал(а):были. без - быстрее, если мусора много.
Ну это и ежу понятно. А проценты есть, хотя бы такие, относительные?
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 08 июн 2006, 10:01
А проценты есть, хотя бы такие, относительные?
я давно мерял, результатов не помню. при 2-3 версиях на записи как будто бы этих версий нет. смоделировать очень просто - стартуешь транзакцию snapshot, потом в других транзакциях делаешь несколько раз update по всей таблице и commit. Дальше еще в одной транзакции запускаешь что-нибудь вроде select count(*). Меряешь. Потом то же самое (count) делаешь с выключенной GC. Потом отпускаешь snapshot и повторяешь count, будет замер по сборке мусора.
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 09 июн 2006, 01:39
Дмитрий, подскажите, как отключить сборку мусора в коннекте?

-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 13 июн 2006, 11:52
Garbage Collect всегда мешает. Я считаю, что он вообще нужен только если серьёзные проблемы с дисковым пространством.
Идёт активная работа с базой, версий записей по таблице документов доходит до 100 000 за полдня работы (это если не собирать мусор).
Если включить сборку - база через несколько часов работы просто встанет, в несколько раз замедлится обмен. До вечера дотянуть было вообще нереально - дохла намертво, простой запрос на сохранение документа, с утра выполнявшийся практически мгновенно, мог длиться минутами. Ночью делаем бэкап-рестор, он и убирает лишнее.
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 13 июн 2006, 11:57
WildSery писал(а):Garbage Collect всегда мешает.
блажен, кто верует (с)
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 13 июн 2006, 12:37
версий записей по таблице документов доходит до 100 000 за полдня работы
а вы не держите долгоживущие транзакции.
Если включить сборку - база через несколько часов работы просто встанет
это я уже проходил. обычно так ведут себя приложения, написанные на BDE, вообще без управления транзакциями.
В данном конкретном случае утверждать о плохом управлении транзакциями в приложении не могу, но симптомы очень похожие.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 13 июн 2006, 12:41
кстати, оговорюсь, что аналогичный эффект (увеличение числа версий) даже при коротких транзакциях может быть из-за "фоновой" сборки мусора.
www.ibase.ru/devinfo/garbage.htm
В хелпе IBAnalyst также описаны ситуации, когда не помогает и sweep.
в FB 2.0 в этом случае можно попробовать включить кооперативную сборку мусора, или комбинированную.
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 13 июн 2006, 12:43
kdv писал(а):в FB 2.0 в этом случае можно попробовать включить кооперативную сборку мусора, или комбинированную.
оно по умолчанию включено
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 13 июн 2006, 16:56
А можно узнать размер БД и конфу сервера?
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 13 июн 2006, 17:59
Именно BDE, заклятая. Основной модуль без исходников.
Размер средний 10 Gb. Версия FB 1.0.3.
dimitr писал(а):
блажен, кто верует (с)
Возможно. Однако контрагрументов не вижу. Мой клинический случай не учитываем. Где про полезность почитать?