юникс, программирование, всячина
Sep. 10th, 2003 06:21 am1. Увидев в документации "For FMTYEWTK about this", расшифровал примерно через секунду. Аж самому страшно стало.
2. Залезь достаточно глубоко в любую хорошую и красивую программу, и обнаружишь внутри море спрятанного уродства. Сейчас копаюсь во внутренностях apache, а конкретно scoreboard (большая структура, в которую главный процесс пишет информацию для детей, а дети (процессы, которые собственно обрабатывают запросы) информацию для папы). Нам нужем модуль, который бы гулял по scoreboard, смотрел на статус детей, узнавал, сколько есть свободных детей на данной машине, и посылал эту информацию на центральный сервер. Это поможет нам сделать более эффективный load balancing запросов, чем есть сейчас.
scoreboard, по сути дела - два массива структур, в каждом по одной структуре per child. В одном массиве структуры для отца (он туда пишет информацию), в другом для сыновей (они пишут статус, время работы над запросом итп.). Каждая из этих структур определяется с несколькими #ifdef'ами внутри: если OS поддерживает такую-то функцию, внесём такое-то дополнительное поле итп. Как дети малые: неужели не понимают, что для структуры, к-ю использует не только код сервера, но и модули всякие нередко, неплохо бы иметь одинаковое устройство независимо от compile-time опций? Ну так внесите туда эти несчастные 8 байт в любом случае, жалко что ли? - вся структура в 20 раз больше всё равно, это ничего не изменит. Нет, они всё сделали с правильными #define'ами, зато теперь берём, скажем, binary distribution сервера, а модуль к нему компилируем сами, и у них выходит несовместимость этой структуры и гитлер капут. Бред какой-то.
3. Вода камень точит. Это насчёт моего исправления бага в mutt, на которое не обратил внимание никто на рассылке, и мейнтейнер моё личное письмо проигнорировал. Я подождал и опять послал на рассылку с ехидным предисловием; на этот раз его довольно быстро всунули в CVS, так что в следующей версии будет.
2. Залезь достаточно глубоко в любую хорошую и красивую программу, и обнаружишь внутри море спрятанного уродства. Сейчас копаюсь во внутренностях apache, а конкретно scoreboard (большая структура, в которую главный процесс пишет информацию для детей, а дети (процессы, которые собственно обрабатывают запросы) информацию для папы). Нам нужем модуль, который бы гулял по scoreboard, смотрел на статус детей, узнавал, сколько есть свободных детей на данной машине, и посылал эту информацию на центральный сервер. Это поможет нам сделать более эффективный load balancing запросов, чем есть сейчас.
scoreboard, по сути дела - два массива структур, в каждом по одной структуре per child. В одном массиве структуры для отца (он туда пишет информацию), в другом для сыновей (они пишут статус, время работы над запросом итп.). Каждая из этих структур определяется с несколькими #ifdef'ами внутри: если OS поддерживает такую-то функцию, внесём такое-то дополнительное поле итп. Как дети малые: неужели не понимают, что для структуры, к-ю использует не только код сервера, но и модули всякие нередко, неплохо бы иметь одинаковое устройство независимо от compile-time опций? Ну так внесите туда эти несчастные 8 байт в любом случае, жалко что ли? - вся структура в 20 раз больше всё равно, это ничего не изменит. Нет, они всё сделали с правильными #define'ами, зато теперь берём, скажем, binary distribution сервера, а модуль к нему компилируем сами, и у них выходит несовместимость этой структуры и гитлер капут. Бред какой-то.
3. Вода камень точит. Это насчёт моего исправления бага в mutt, на которое не обратил внимание никто на рассылке, и мейнтейнер моё личное письмо проигнорировал. Я подождал и опять послал на рассылку с ехидным предисловием; на этот раз его довольно быстро всунули в CVS, так что в следующей версии будет.