nixp.ru v3.0

20 января 2017,
пятница,
04:43:52 MSK

DevOps с компанией «Флант»
Anarchist написал 17 июля 2008 года в 16:55 (409 просмотров) Ведет себя как мужчина; открыл 258 тем в форуме, оставил 4097 комментариев на сайте.

Добрался я таки до полноценного развёртывания dspam.

Почтовых юзверей ~85 штук, использую MySQL 5.0, размер базы (в претендующем на установившееся состоянии) — ~4,2G.

Памяти в сервере — что-то около двух гигов.

Задействовав в качестве конфига /usr/local/share/mysql/my-huge.cnf (изменил только расположение сокета, ибо /tmp/ считаю неправильным и отключил нафиг репликацию) добился практически адекватного времени отработки скрипта зачистки базы (15-20 минут).

Раздражает меня тот факт, что в момент выполнения запросов к СУБД, связанных с изменением таблицы (в том числе отработка скрипта /usr/local/share/examples/dspam/mysql/purge.sql) фактически блокируются, dspam не может работать с базой и как следствие — не производит проверки почтового трафика.

Вопросы: куда нужно пнуть Мускула, чтобы он перестал блокировать таблицы на запись и возможно ли такое (без ещё худших побочных эффектов).

Anarchist

А вот хуй.

To achieve a very high lock speed, MySQL uses table locking (instead of page, row, or column locking) for all storage engines except InnoDB, BDB, and NDBCLUSTER.

Table locking enables many threads to read from a table at the same time, but if a thread wants to write to a table, it must first get exclusive access. During the update, all other threads that want to access this particular table must wait until the update is done.

7.3.2. Table Locking Issues

Anarchist

Отрабатываю первую из альтернатив: таблицы формата InnoDB.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.