Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Riak и Erlang/OTP

Глава 15 из книги "Архитектура приложений с открытым исходным кодом", том 1.

Оригинал: "Riak and Erlang/OTP", глава из книги "The Architecture of Open Source Applications"
Авторы: Francesco Cesarini, Andy Gross, and Justin Sheehy
Дата публикации: 2012 г.
Перевод: Н.Ромоданов
Дата перевода: апрель 2013 г.

Creative Commons: Перевод был сделан в соответствие с лицензией Creative Commons. С русским вариантом лицензии можно ознакомиться здесь.

Riak является распределенной отказоустойчивой СУБД с открытым исходным кодом, на которой проиллюстрировано, как с помощью среды Erlang/OTP создавать крупномасштабные системы. Во многом благодаря тому, что в языке Erlang поддерживается работа с масштабируемыми распределенными системами, в Riak предлагаются функции, которые весьма редки в базах данных, например, высокая готовность и линейная масштабируемость, причем как по емкости базы, так и по ее пропускной способности.

Erlang/OTP является идеальной платформой для разработки таких систем, как Riak, поскольку в ней сразу «из коробки» предлагаются средства взаимодействия между узлами, очереди сообщений, детекторы отказов и клиент-серверные абстракции. Более того, наиболее часто используемые в языке Erlang шаблоны реализованы в виде библиотечных модулей, которые обычно имеют в виду, когда говорят о поведениях среды OTP (OTP behaviors). В них содержится основной фреймворк кода, предназначенный для параллельной работы и обработки ошибок, что упрощает параллельное программирование и защищает разработчика от многих распространенных ошибок. Поведения контролируются супервизорами, самим поведением, и все они сгруппированы в виде дерева мониторинга. Дерево мониторинга упаковывается в приложение, представляющее собой строительный блок программы на языке Erlang.

Полная система Erlang, например, Riak представляет собой набор слабо связанных приложений, которые взаимодействуют друг с другом. Некоторые из этих приложений пишутся разработчиком, некоторые из них являются частью стандартного дистрибутива Erlang/OTP, а некоторые могут быть другими компонентами, имеющими открытый исходный код. Они последовательно загружаются и запускаются с помощью загрузочного скрипта, созданного из списка приложений и версий.

Системы различаются своими приложениями, которые являются частью запускаемого релиза. В стандартном дистрибутиве Erlang загрузочные файлы будут запускать ядро Kernel и StdLib (стандартная библиотека). В некоторых инсталляциях также запускается приложение SASL (Systems Architecture Support Library — Библиотека поддержки архитектуры систем). В SASL содержится релиз и инструментарий обновления программ, а также средства регистрации событий. Riak ничем не отличается, кроме запуска конкретных для Riak приложений, а также их зависимостей времени выполнения, к числу которых относятся Kernel, StdLib и SASL. Эти стандартные элементы дистрибутива Erlang/OTP входят, на самом деле, в состав полной и готовой для запуска сборки Riak, и, когда из командной строки вызывается команда riak start, они все запускаются в унисон. Riak состоит из многих сложных приложений, поэтому эту главу не нужно рассматривать в качестве полного руководства. Ее следует рассматривать как введение в OTP, в котором в качестве примеров используется исходный код Riak. Для удобства демонстрации рисунки и примеры кода были упрощены и сокращены.


Продолжение статьи: Краткое введение в язык Erlang.