Открыты исходные тексты БД Aerospike

Компания Aerospike одновременно с объявлением о получении 20 млн долларов инвестиций заявила об открытии исходных текстов своей NoSQL БД Aerospike, обеспечивающей предсказуемое время доступа к данным, что позволяет применять Aerospike для обработки данных в режиме реального времени. По заявлению создателей, на выполнение 99% запросов тратится менее 1 мс, а 99.9% запросов выполняются не дольше 5 мс. Код серверной части БД написан на языке Си и открыт под лицензией APGL. Клиентские библиотеки, которые доступны для Java, C/C++, Lua и Node.js, распространяются под лицензией Apache 2.0.

Использование специально оптимизированного для SSD-накопителей режима работы хранилища в сочетании с размещением индексов в оперативной памяти и обеспечением параллельной обработки данных на разных ядрах CPU, позволило добиться в Aerospike в 5-10 раз более высокой производительности, по сравнению с другими NoSQL БД. Предусмотрено два режима работы: традиционный (хранение всех данных в ОЗУ с синхронизацией на жесткие диски) и гибридный (хранилище разворачивается поверх ОЗУ и SSD-дисков с размещением в ОЗУ индексов и наиболее востребованных данных). На типовом оборудовании при работе в гибридном режиме удалось добиться производительности в примерно 200 тысяч транзакций в секунду в тесте со сбалансированной нагрузкой на чтение и запись, 300 тысяч транзакций в секунду в тесте с преобладанием операций чтения данных и 50 тысяч транзакций в секунду в тесте с преобладанием операций записи.

На базе Aerospike возможно создание кластерных конфигураций с репликацией данных на несколько узлов, которые обеспечивают близкий к линейному рост производительности при добавлении новых узлов в кластер. Размер хранилища может достигать десятка терабайт и обслуживать размещение более сотни миллиардов объектов. Поддерживается несколько схем репликации, нацеленных на обеспечение отказоустойчивости, производительности и территориального разнесения базы по разным центрам обработки данных.

Система надёжно защищена от потери данных в результате сбоя — применяется блокировка на уровне строк и мгновенная фиксация транзакций. При использовании синхронной репликации кластер хранения Aerospike соответствует требованиям ACID (атомарность, согласованность, изолированность, надежность). В случае выхода узла из строя, автоматически выполняется ребалансировка данных и продолжение работы без сбойного узла. Обновление программного обеспечение и резервное копирование производятся без приостановки работы и не оказывая влияния на производительность.

Данные хранятся в строках в форме записей ключ/значение. Записи могут группироваться в наборы и таблицы (раздельное пространство имён). Для обработки данных на стороне сервера поддерживается написание определённых пользователем функций (UDF) на языке Lua. Возможно выполнение сложных аналитических запросов (map-reduce) и использование больших типов данных, при этом выполнение запроса может распараллеливаться на несколько узлов кластера, каждый из которых выполняет свою часть работы по обработке запроса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.