четверг, 17 декабря 2015 г.

[prog.c++] Аптайм в семь месяцев...

Коллеги с прошлой работы вчера рассказали маленькую историю. В ноябре из-за bad_alloc-а завершил работу один из компонентов, написанных на C++ и SObjectizer. Когда стали разбираться что к чему, выяснилось, что этот компонент работал безостановочно с февраля, обслуживая по сотне миллионов запросов ежемесячно. В конце-концов, в 32-х битовом приложении из-за фрагментации памяти не удалось выделить непрерывный блок в 150MiB для in-memory обработки файла с новой управляющей информацией (эта информация обновляется каждый день). Выскочил bad_alloc, приложение завершилось, было автоматически рестартовано и продолжило свою работу.

Сейчас не хочется задаваться вопросами о том, что было с апдейтами для сервера, на котором крутился компонент. И о том, почему обработка больших управляющих файлов осуществлялась in-memory. Просто приятно получить очередное подтверждение тому, какой солидный фундамент был заложен много лет назад. При моем непосредственном участии ;)

Комментариев нет: