Тест изоляции параллельно выполняемых запросов

Назначение теста

Тестирование изоляции модулей проводится с целью проверки надежности механизмов изоляции выполняющихся параллельно запросов в СУБД ЛИНТЕР.

Описание теста

Тестирование состоит из двух этапов:

Первый этап – запуск последовательно двух задач, работающих с непересекающимися данными из БД и фиксирование соответственно двух групп результатов.

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

Тест parall создает таблицу (если указан ключ /CREATE), добавляет в нее записи, затем удаляет их и удаляет саму таблицу. Требуется запуск теста двумя разными пользователями (например, USR1 и USR2). В случае указания ключа /CREATE необходима привилегия RESOURCE, или запуск тестов одним пользователем, но над разными таблицами (например, TABLE1 и TABLE2). Во всех остальных случаях тесты работают с пересекающимися данными.

Запуск теста осуществляется путем выполнения тестового файла parall подкаталога tests рабочего каталога СУБД ЛИНТЕР:

в среде ОС Linux, Unix:

./parall [ключ [ключ …]]

в среде ОС Windows:

parall.exe  [ключ [ключ …]]

Ключи теста

Ключ Описание
/HELP Напечатать «Подсказку»
/LOGFILE Имя лог-файла; необходимо, чтобы имена лог-файлов были разные для параллельно запускаемых утилит
/TABLE Имя таблицы, по умолчанию – ZZ; если в БД была таблица с указанным именем, то она будет уничтожена и создана тестовая таблица
/COLUMNS Количество колонок типа int и типа byte (максимальное значение – 49, по умолчанию – 49)
/USER ID пользователя; по умолчанию – USER1. Имя SYSTEM (или ID администратора безопасности) не допускается, в этом случае ID и пароль будут заменены значениями по умолчанию, то есть USER1/USER1
/PASSWORD Пароль пользователя; по умолчанию – USER1
/CREATE Создание перед запуском теста уровней и групп. Необходимо использовать при первом запуске теста
/IS Уровень изоляции доступа, в котором работает тест (точнее, соединение с ЛИНТЕР администратора безопасности); по умолчанию – autocommit
/ROWS Число записей в таблице, по умолчанию – 100
/CONT Длительность циклов теста, по умолчанию – 1

Механизм тестирования:

  • сначала запустить тест последовательно, например:

    parall /create /logfile log1 /user URS1 /password MANAGER8
    parall /create /logfile log2 /user URS2 /password MANAGER8
  • затем эти 2 теста запускаются параллельно, например, bat-файл, содержащий строки:

    parall /logfile log3 /user URS1 /password MANAGER8
    parall /logfile log4 /user URS2 /password MANAGER8

Сравнить файлы log1 и log3, log2 и log4. Тест считается успешным, если попарно совпадают log1 и log3, log2 и log4.