Роберт Ватсон (Robert Watson), известный разработчик FreeBSD, проделавший большую работу по переводу различных подсистем ядра на более эффективный для многопроцессорных систем метод организации блокировок, представил новый высокопроизводительный MPM-модуль для http-сервера Apache - GCD MPM. Модуль реализует многопоточную модель выполнения и базируется на использовании технологии центральной диспетчеризации (GCD, Grand Central Dispatch), исходные коды библиотеки с реализацией которой были выпущены компанией Apple под открытой лицензией Apache.
Технология GCD позволяет автоматизировать разделение хода выполнения монолитной программы на ряд параллельно исполняемых независимых нитей (threads), что позволяет повысить производительность работы программы на многоядерных CPU. При работе модуля GCD MPM каждое соединение к серверу ассоциируется с очередями GCD, в соответствие с которыми осуществляется выбор порядка их обработки.
GCD MPM был создан с целью демонстрации возможности по интеграции технологии GCD в большие многопоточные проекты, значительно упрощая процесс организации работы параллельно выполняемых операций и оптимизируя их работу за счет исключения лишней нагрузки вследствие необходимости организации обмена сообщенями между потоками. В итоге, код модуля GCD MPM содержит примерно в три раза меньше строк кода, чем классический Threaded MPM.
В настоящее время модуль GCD MPM протестирован в работе на платформах FreeBSD 8 и Mac OS X Snow Leopard. В списке-рассылки разработчиков Apache поднят вопрос о включении GCD MPM в число поставляемых в комплекте модулей MPM. Дополнительно развивается инициатива по портированию libdispatch на платформы Solaris и Linux.
|