Установка конфигурации блокировки
Установка конфигурации блокировки
Значения по умолчанию Менеджера блокировок должны подойти для большинства вычислительных сред. При работе, особенно в Классическом сервере, имеет смысл подрегулировать эти установки для улучшения производительности или для устранения дефицита ресурсов блокировки.
Файлы конфигурации
Файлы конфигурации размещены в корневом каталоге Firebird. Для сервера Firebird 1.5 и более поздних файл конфигурации называется firebird.conf. Для версии 1.0.x он называется ibconfig в Windows и-isc config в POSIX. Используйте текстовый редактор для открытия и редактирования этого файла.
LockAcquireSpins
Версия 1.5 и выше, файл firebird.conf.
lock_acquire_spins
Версии, предшествующие Firebird 1.5, файл iscconfig/ibconfig.
Эта установка используется только для машин SMP при выполнении Классического сервера.
В Классическом сервере в любой момент времени к таблице блокировок может иметь доступ только один клиентский процесс. Флаг управляет доступом к таблице блокировок. Клиентские процессы могут обращаться к флагу условно или безусловно. Если запрос условный, то он будет ошибочным и должен быть повторен. Если запрос безусловный, то он будет ожидать, пока не будет удовлетворен. LockAcquirespins устанавливает количество возможных попыток, если запрос к флагу условный.
Требуется целое число. Значение по умолчанию 0 (безусловный). Не существует рекомендованного минимума или максимума.
LockHashSlots
Версия 1.5 и выше, файл firebird.conf.
lock_hash_slots
Версии, предшествующие Firebird 1.5, файл iscconfig/ibconfig.
Используйте этот параметр для настройки списка хэша блокировок. При повышенной нагрузке производительность может быть улучшена увеличением области памяти под хэш для распределения списка на более короткие цепи хэша. Значением является целое число. Рекомендуется использовать простое число. Значение по умолчанию 101.
Этот параметр и LockMemSize (см. следующий раздел) должны вычисляться одновременно с использованием инструмента Lock Print. Если цепи хэш блокировок более чем в среднем 20, значит объем памяти под хэш слишком мал. Если вам надо увеличить память под хэш, вам нужно увеличить размер таблицы блокировок на тот же процент.
LockMemSize
Версия 1.5 и выше, файл firebird.conf.
any_lock_mem_size
Версии, предшествующие Firebird 1.5, файл isc_config/ibconfig.
Этот целочисленный параметр представляет количество байтов для совместно используемой памяти для таблицы Менеджера блокировок. Для Классического сервера LockMemSize задает начальное распределение, которое будет динамически увеличиваться, пока не будет исчерпана память. ("Lock manager is out of room", "Исчерпана память для Менеджера блокировок" не означает, что можно отправляться пить кофе!) Значение этого параметра связано с размером кэша базы данных, поскольку каждая страница потребует отдельной блокировки в таблице. Если количество страниц базы данных в кэше установлено в большое значение, это может привести к проблемам памяти для таблицы блокировок.
В Суперсервере объем памяти, выделенный для Менеджера блокировок, не увеличивается.
Размером по умолчанию в Linux и в Solaris является 98 304 байта (96 Кбайт). В Windows это 262 144 (256 Кбайт).
LockGrantOrder
Версия 1.5 и выше, файл firebird.conf.
lock_grant_ order
Версии, предшествующие Firebird 1.5, файл isc config/ibconfig.
Когда соединению требуется блокировка некоторого объекта, оно получает группу запроса блокировки, которая определяет объект и требуемый уровень блокировки. Группы запросов соединяются с группами блокировок в виде удовлетворенных запросов или в виде запросов, ожидающих разрешения.
Параметр LockGrantOrder является Логическим. Значение по умолчанию (1 = True) указывает, что блокировки должны предоставляться по принципу "первым пришел - первым обслужен".
Установка False (0) эмулирует поведение InterBase 3.3, когда блокировка предоставляется, как только она станет возможной. Результатом этого может оказаться то, что запросы будут "замороженными". Рассматривайте это как запрещенную установку и не пытайтесь ее использовать, если только это не требуется для тестирования некоторой модификации сервера базы данных.
LockSemCount
Версия 1.5 и выше, файл firebird.conf.
any_lock_sem_count
Версии, предшествующие Firebird 1.5, файл isc_config/ibconfig.
Это целочисленный параметр, задающий количество доступных семафоров для межпроцессной коммуникации (Inter-Process Communication, IPC) Классического сервера. Значение по умолчанию 32. Устанавливайте этот параметр для Классического сервера для увеличения или уменьшения количества доступных семафоров.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
14.2.2.1. Описание блокировки
14.2.2.1. Описание блокировки Прежде чем рассмотреть осуществление блокировки, давайте исследуем описание блокировки в операционной системе. Это делается при помощи структуры struct flock, которая описывает диапазон блокируемых байтов и вид нужной блокировки. Стандарт POSIX
Блокировки
Блокировки Теперь давайте рассмотрим более сложный пример конкуренции за ресурсы, который требует более сложного решения. Допустим, что у нас есть очередь запросов, которые должны быть обработаны. Как реализована очередь — не существенно, но мы будем считать, что это —
Спин-блокировки
Спин-блокировки Было бы очень хорошо, если бы все критические участки были такие же простые, как инкремент или декремент переменной, однако в жизни все более серьезно. В реальной жизни критические участки могут включать в себя несколько вызовов функций. Например, очень
Секвентные блокировки
Секвентные блокировки Секвентная блокировка (seq lock) — это новый тип блокировки, который появился в ядрах серии 2.6. Эти блокировки предоставляют очень простой механизм чтения и записи совместно используемых данных. Работа таких блокировок основана на счетчике
Ждущие блокировки
Ждущие блокировки Другая типовая ситуация в многопоточных программах — это потребность заставить поток «ждать чего-либо». Этим «чем- либо» может являться фактически что угодно! Например, когда доступны данные от устройства, или когда конвейерная лента находится в
Операции блокировки
Операции блокировки Для семафора определены три модификации операции блокировки:int sem_wait(sem_t* sem);int sem_trywait(sem_t* sem);#include <time.h>int sem_timedwait(sem_t* sem, const struct timespec * abs_timeout);Все эти функции опираются на функцию (native QNX API):int SyncSemWait(sync_t* sync, int try);Функция простого ожидания sem_wait() пытается
Инициализация объекта блокировки
Инициализация объекта блокировки int pthread_rwlock_init(pthread_rwlock_t* rwl, const pthread_rwlockattr_t* attr);int pthread_rwlock_destroy(pthread_rwlock_t* rwl);Вызов функций инициализирует/разрушает блокировку чтения/записи. При инициализации блокировки ей передается структура параметров блокировки pthread_rwlockattr_t, в которой
Освобождение блокировки
Освобождение блокировки int pthread_rwlock_unlock(pthread_rwlock_t* rwl);Функция освобождает захваченный любым образом объект блокировки чтения/записи. Если объект был захвачен в режиме множественного использования (блокировки по чтению), то количество его освобождений должно равняться
13.3.3. Обязательные блокировки
13.3.3. Обязательные блокировки И Linux, и System V поддерживают как обычные, так и обязательные блокировки. Обязательные блокировки устанавливаются и реализуются с помощью того же механизма fcntl(), который используется для рекомендательной блокировки записей. Блокировки
Установка конфигурации сервера PoPToP
Установка конфигурации сервера PoPToP После инсталляции пакета PoPToP вам надо активизировать его. Для этого выполните следующие действия.1. Отредактируйте файл /etc/ppp/options. Этот файл управляет работой программы pppd, которая поддерживает соединение между VPN-маршрутизатором и
7.2. Взаимные исключения: установка и снятие блокировки
7.2. Взаимные исключения: установка и снятие блокировки Взаимное исключение (mutex) является простейшей формой синхронизации. Оно используется для защиты критической области (critical region), предотвращая одновременное выполнение участка кода несколькими потоками (если взаимное
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации Раздел "4.5.2. Функции Geometry" обсуждает несколько функций, которые создают новые конфигурации из
7.5.4. Блокировки
7.5.4. Блокировки В файле /proc/locks перечислены все блокировки файлов, установленные в настоящий момент в системе. Каждая строка соответствует одной блокировке.Для блокировок, созданных функцией fcntl() (описана в разделе 8.3. "Функция fcntl(): блокировки и другие операции над
Конфликты блокировки
Конфликты блокировки Конфликт блокировки появляется, когда конкурирующие транзакции пытаются изменить или удалить одну и ту же строку в то время, когда вид состояния базы данных для этих транзакций частично перекрывается. Конфликты блокировок являются запланированным
Установка параметров конфигурации: файл CONFIG.ТХТ
Установка параметров конфигурации: файл CONFIG.ТХТ PGP имеет ряд параметров, устанавливаемых пользователем, которые могут быть определены в специальном текстовом файле конфигурации с именем "config.txt", в каталоге, на который указывает системная переменная PGPРАТН. Наличие файла