Одна из крупнейших социальных сетей Facebook выпустила под лицензией Apache 2.0 исходный текст системы агрегации данных Scribe, предназначенной для сбора больших объёмов данных со многих серверов и передачи их между ними. Функционал Scribe - нечто среднее между ведением журналов и системой надёжной передачи сообщений. Роберт Джонсон, ответственный за внутреннее ПО Facebook, говорит, что Scribe оказался чрезвычайно пригодным к использованию, способным выполнять более 100 различных задач и перерабатывать миллиарды сообщений в день.
Компания Facebook ранее уже выпускала приложения для этих задач от случая к случаю, но развитие библиотек Thrift для построения web-сервисов на различных языках программирования, натолкнуло на идею объединения средств для сбора данных и управления ими. Thrift был разработан этой компанией и перемещён в инкубатор Apache ранее в этом году. По словам Джонсона, Facebook составлен преимущественно из ПО с открытым исходным кодом, и компания старается возвращать разработанный код сообществу.
Основные архитектурные решения Scribe:
- Отсутствие привязки к сетевой топологии. Серверы Scribe располагаются в виде направленного графа, где каждый сервер "знает" только следующего;
- Отсутствие требования к абсолютной надёжности хранения данных в системе. Не производится запись в энергонезависимую память каждого сообщения. Этого достаточно для ведения логов, но не рекомендуется для финансовых транзакций;
- Упрощённая модель хранения данных. Содержит всего два поля - категория и сообщение.
|