Открыты исходные тексты БД Aerospike
Использование специально оптимизированного для SSD-накопителей режима работы хранилища в сочетании с размещением индексов в оперативной памяти и обеспечением параллельной обработки данных на разных ядрах CPU, позволило добиться в Aerospike в 5-10 раз более высокой производительности, по сравнению с другими NoSQL БД. Предусмотрено два режима работы: традиционный (хранение всех данных в ОЗУ с синхронизацией на жесткие диски) и гибридный (хранилище разворачивается поверх ОЗУ и SSD-дисков с размещением в ОЗУ индексов и наиболее востребованных данных). На типовом оборудовании при работе в гибридном режиме удалось добиться производительности в примерно 200 тысяч транзакций в секунду в тесте со сбалансированной нагрузкой на чтение и запись, 300 тысяч транзакций в секунду в тесте с преобладанием операций чтения данных и 50 тысяч транзакций в секунду в тесте с преобладанием операций записи.
На базе Aerospike возможно создание кластерных конфигураций с репликацией данных на несколько узлов, которые обеспечивают близкий к линейному рост производительности при добавлении новых узлов в кластер. Размер хранилища может достигать десятка терабайт и обслуживать размещение более сотни миллиардов объектов. Поддерживается несколько схем репликации, нацеленных на обеспечение отказоустойчивости, производительности и территориального разнесения базы по разным центрам обработки данных.
Система надёжно защищена от потери данных в результате сбоя - применяется блокировка на уровне строк и мгновенная фиксация транзакций. При использовании синхронной репликации кластер хранения Aerospike соответствует требованиям ACID (атомарность, согласованность, изолированность, надежность). В случае выхода узла из строя, автоматически выполняется ребалансировка данных и продолжение работы без сбойного узла. Обновление программного обеспечение и резервное копирование производятся без приостановки работы и не оказывая влияния на производительность.
Данные хранятся в строках в форме записей ключ/значение. Записи могут группироваться в наборы и таблицы (раздельное пространство имён). Для обработки данных на стороне сервера поддерживается написание определённых пользователем функций (UDF) на языке Lua. Возможно выполнение сложных аналитических запросов (map-reduce) и использование больших типов данных, при этом выполнение запроса может распараллеливаться на несколько узлов кластера, каждый из которых выполняет свою часть работы по обработке запроса.
Источник: http://www.opennet.ru/opennews/art.shtml?num=40082
|
0 | Tweet | Нравится |
|