Большое тестирование и 2GB транзакций

Привет всем.

Второго мая, в качестве предварительного забега, было запущено выполнение всех тестов. Последний раз такое делалось пару лет назад. С тех пор количество тестов увеличилось почти в семь раз (в основном за счет добавления комбинаций с использование UTF8), тестовая система стала более производительной, IBProvider — навороченным. В забеге использовался Firebird.

Скажу сразу — до финиша добежать не удалось, потому что тесты выжрали двух-гигабайтный лимит на количество транзакций. Проехало всего ~253 тысячи тестов.

[LCPI.IBProvider.3]: Ошибка старта транзакции.
Implementation limit exceeded
Transactions count exceeded. Perform backup and restore to make database operable again

Причина — наличие тестов с огромным количеством автоматических транзакций.

Однако общий результат — вполне удовлетворительный (в хорошем смысле этого слова).

Конфигурация

  • IBProvider 3.16.0.15007 x64
  • Firebird 2.5.3.26640 SuperClassic x64. Откомпилирован в VS2010 с полной оптимизацией кода. Модифицировано только ICU.
  • OS: Vista x64
  • Q6600 / 8GB / выделенный массив 4x1TB WD RE3 в RAID0 на RS2BL040

Тесты работали в 4 потока. Там где имело смысл, использовалась асинхронная загрузка результирующих множеств.

Состояние базы данных

Database "d:\database\IBP_TEST_FB25_D3_2.GDB"

Database header page information:
        Flags                   0
        Checksum                12345
        Generation              2147541412
        Page size               8192
        ODS version             11.2
        Oldest transaction      2147483636
        Oldest active           2147483637
        Oldest snapshot         2147483550
        Next transaction        2147483646
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      57764
        Implementation ID       26
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           May 2, 2013 22:44:45
        Attributes

    Variable header data:
        *END*

Наработка часов

ПроцессUser TimeKernel TimeTotal Time
Firebird619:48:421214:53:121834:41:54
Test System226:42:0490:47:41317:29:45

Скриншоты с подробным состоянием процессов

Информация о процессе fb_inet_server.exe
Информация о серверном процессе.

Информация о ресурсах fb_inet_server.exe
Ресурсы серверного процесса.

Информация о тестовом процессе
Информация о тестовом процессе.

Информация о ресурсах тестового процесса
Ресурсы тестового процесса.

Как видно из картинок — утечек нет. Что не может не радовать.

Хотя моя циничная сущность не может не напомнить, что сервер работал в «щадящем» режиме. Без пула подключений — серверная картинка будет другой.

Так что, если сравнивать с тем что было два года назад и у сервера и у провайдера (по гуманным соображениям, я не буду приводить здесь screenshot-ы предыдущего забега) — все очень и очень не плохо.

Тесты я уже поправил, так что в ближайшее время еще раз попробуем добежать до финиша. Хотя боюсь, что в этот раз сервер выжрет все место на разделе с тестовой базой и снова будет fail 🙂

4 комментария

Симонов Денис  on 14 июня, 2013

Интересно много ли пройдёт interbase и firebird3

Kovalenko  on 14 июня, 2013

Interbase, я гоняю очень редко и на очень ограниченном наборе прямолинейных тестов. Основную массу тестов провайдера он не пройдет из-за проблем с кодовыми страницами. И что-то мне подсказывает — это навсегда…

А FB3 … Да рано его еще в таком режиме гонять. Месяц назад (или около того) у него были достаточно критичные дефекты как на стороне сервера, так и клиента.

Kovalenko  on 9 октября, 2013

Насчет Interbase.

Его «Developer Edition» очень плохо переваривает штатный пул подключений OLEDB, который используется в моей тестовой системе. В результате, очень часто вылетает ошибка вида: «Maximum user count exceeded. Contact your database administrator.»

А без пула подключений работать по сети очень тоскливо.

Большое тестирование #3.  on 3 декабря, 2013

[…] «большое тестирование» IBProvider-а. Второе было весной текущего […]

Leave a Comment