Aerospike Database

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:29, 6 июня 2018.
Aerospike Database
Aerospike logo square1.png
Aerospike-dashboard2-100574038-large.idge.png
Разработчики: Aerospike
Выпущена: 2010
Постоянный выпуск: 4.0.0.4 / 21.03.2018
Состояние разработки: Поддерживается
Написана на: C
Операционная система: Linux / UNIX-подобная
Локализация: Английский язык
Лицензия: AGPL
Веб-сайт aerospike.com

Aerospike – это распределенная база данных NoSQL и хранилище ключевых значений, созданная для удовлетворения потребностей сегодняшних приложений в веб-масштабе, обеспечивая стойкость и сильную согласованность без простоя.

История

База данных Aerospike была впервые известна как Citrusleaf 2.0. В августе 2012 года компания, предоставляющая свою базу данных с 2010 года, провела ребрендинг названия компании и программного обеспечения на Aerospike. Название Aerospike является производным от типа сопла ракеты, которая способна сохранить свой КПД в широком диапазоне высот, и относится к способности программного обеспечения для расширения. В 2012 году Aerospike приобрела AlchemyDB и интегрировала функции двух баз данных, включая добавление реляционной системы управления данными. 24 июня 2014 года компания Aerospike получила лицензию AGPL 3.0 на сервер баз данных Aerospike и лицензию Apache версии 2.0 на разработку клиентского программного обеспечения Aerospike. В феврале 2015 года Aerospike назвал Джона Диллона новым генеральным директором, ранее он работал в Salesforce.com.

Клиент

Клиентские библиотеки предоставляют интерфейс на родном языке, идиоматический для каждого языка, для упрощения программирования и повышения производительности. Клиентский уровень отслеживает состояние кластера в режиме реального времени, обеспечивая минимальное время простоя (менее секунды), когда аппаратные или сетевые изменения приводят к реконфигурации кластера.

Возможности клиента

Часто приложения без сохранения сохраняются на отдельном сервере. Для связи с Aerospike cluster, Aerospike предоставляет набор клиентов-драйверов баз данных. Эти клиенты обеспечивают обнаружение состояния кластера, эффективную маршрутизацию транзакций и пул сетевых подключений, а также защиту от сбоев. Эти возможности Aerospike API клиента обеспечивают высокую производительность и легкую разработку:

  • Отслеживание состояния кластеров
  • Объединение пулов
  • Управление транзакциями, контроль таймаутов и запросов повторной передачи
  • Безопасность потоков

Помимо обычных операций put() get () и delete (), Aerospike поддерживает:

  • CAS (безопасное чтение-изменение-запись).
  • Счетчики в базе данных.
  • Множественная операция get ().
  • Операции сканирования.
  • List и Map, такие как removeByKey () или getByValueRange ().
  • Значения Queries-Bin индексируются, а база данных просматривается с помощью равенства или диапазона.
  • Пользовательские функции (UDF) расширяют обработку базы данных, выполняя код приложения в Aerospike.
  • Агрегация - используйте UDF в коллекции записей для возврата агрегированных значений.

Кластер

В отличие от других баз данных NoSQL, уровень кластеризации использует распределенный консенсус paxos только для формирования кластера, что позволяет выполнять как немедленные, так и конечные транзакции согласованности. Данные распределяются равномерно и случайным образом по всем узлам внутри кластера.

Хранение

Уникальный слой хранения Aerospike включает в себя как DRAM, так и Flash, что дает характеристики памяти по цене SSD. Благодаря постоянному истечению срока действия данных, Aerospike может работать как кэш с минимальным обслуживанием.

Архитектура Aerospike

Архитектура имеет три основные цели:

  • Создать гибкую масштабируемую платформу для веб-приложений.
  • Обеспечить надежность (как в ACID), ожидаемую от традиционных баз данных.
  • Обеспечить эффективность работы при минимальном ручном участии.

Архитектура Aerospike состоит из трех слоев:

  • Клиентский уровень – уровень, поддерживающий кластер, включает в себя клиентские библиотеки с открытым исходным кодом, которые реализуют API-интерфейс Aerospike, отслеживают узлы и знают, где находятся данные в кластере.
  • Кластеризация и уровень распределения данных – уровень управляет связью кластеров и автоматизирует переключение, репликацию, кросс-синхронизацию центра обработки данных и интеллектуальную перебалансировку и миграцию данных.
  • Уровень хранения данных – уровень надежно хранит данные в DRAM и Flash для быстрого извлечения.
Архитектура Aerospike

Управление Aerospike

С помощью Aerospike вы создаете базу данных и управляете ею:

  • Путем настройки исходных параметров базы данных.

База данных Aerospike - это пространство имен. Когда вы устанавливаете Aerospike, каждый узел в кластере должен иметь пространство имен, чтобы указать, как создавать и реплицировать базу данных.

  • Выполняя операции с базой данных через ваше приложение.

Схема базы данных создается, когда ваше приложение сначала ссылается на множества и бины (таблицы и поля). Aerospike Database - это гибкая схема - вам не нужно предопределять схему вашей базы данных. В Aerospike базе данных задачи, которые обычно выполняются администратором базы данных в командной строке, выполняются в приложении.

  • При необходимости обновляя файлы конфигурации.

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

Управление данными

Aerospike поддерживает расширенные операции с ключом. Данные структурированы в бинах(столбцы РСУБД), каждый бин поддерживает определенные типы данных: integer, string, float, list, map, geojson, двоичные объекты или объекты с сериализацией языка. Управление данными включает:

  • Операции с ключевыми значениями, включая операции с базой данных, такие как операции увеличения / уменьшения, а также операции с элементами списка и элементов карты
  • Репликация данных для высокой доступности
  • Автоматическое истечение срока действия и удаление
  • Обновления и изменения размера кластера
  • Оптимизация Flash (SSD)
  • Репликация ретранслятора (XDR)

Модель данных

Модель данных Aerospike не соответствует жесткой схеме. Изменения типов данных не требуют изменения схемы. Вы можете добавлять новые типы бинов на лету. Пространство имен, множество и бин являются тремя основными понятиями в Aerospike, касающимися моделирования данных и хранения данных.

Пространства имен (Namespaces)

Пространства имен представляют собой контейнеры данных верхнего уровня. Пространство имен фактически может быть частью базы данных или группы баз данных, как указано в стандартной СУБД. Способ сбора данных в пространствах имен относится к тому, как данные хранятся и управляются. Пространство имен содержит записи, индексы и политики. Политики диктуют поведение пространства имен, в том числе:

  • Как хранятся данные: на DRAM или диске.
  • Сколько реплик существует для записи.
  • Когда истекает срок действия записей.

В пространствах имен записи относятся к логическим контейнерам, называемым наборами.

Пространства имен

Наборы (Sets)

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

Наборы в пространстве имен

Записи (Records)

База данных Aerospike представляет собой хранилище строк с акцентом на отдельные записи (строки РСУБД). Запись - это базовая единица хранения в базе данных. Записи могут принадлежать пространству имен или набору в пространстве имен. Записи используют ключ как уникальный идентификатор. Записи включают следующее:

  • Ключ - Уникальный идентификатор.

Записи адресуются с помощью хэша своего ключа, называемого дайджестом.Используйте ключи для чтения или записи записей в приложении. Когда ключ отправляется в базу данных, он и его заданная информация хэшируются в 160-битный дайджест, который используется для адресации этой записи для всех операций. Таким образом, вы используете ключ в своем приложении, а дайджест используется для адресации записи в базе данных.

  • Метаданные - Запись информации о версии и настроенного срока действия, называемого временем жизни.
  • Бины – эквивалентны полям в РСУБД.

Внутри записи данные хранятся в одной или нескольких ячейках. Бины состоят из имени и значения. Бины не указывают тип данных. Тип данных определяется значением, содержащимся в бине. Этот динамический набор данных обеспечивает гибкость в модели данных.

Согласованность данных

Aerospike server-client по умолчанию обеспечивает решение для обеспечения согласованности данных:

  • По умолчанию транзакции чтения обрабатываются только одной репликой даже во время реконфигурации кластера.
  • По умолчанию транзакции записи (включая удаленные и UDF-приложения) фиксируют все реплики синхронно, прежде чем успешно вернуться из транзакции.

Эти параметры хорошо сочетаются для обеспечения непосредственной согласованности данных с низкой задержкой, требуемой Aerospike.

XDR

В качестве распределенной базы данных Aerospike поддерживает автоматическую репликацию данных. Функция репликации центров обработки данных (XDR) предназначена для синхронизации кластеров по каналам с более высокой задержкой. XDR является асинхронным, но отставание репликации обычно ниже одной секунды. XDR включает следующие компоненты:

  • Logger, который регистрирует локальные записи в журнале дайджеста локального кластера.
  • Shipper, который реплицирует записи для разделов, для которых узел является ведущим.
  • Node Failure Handler, который берет на себя обязательства репликации другого хозяина, должен ли мастер сбой.
  • Link Failure Handler, который заставляет удаленный кластер восстанавливаться, когда XDR для этого кластера возобновляется после сетевой или удаленной кластерной ошибки.

Конфигурируемые топологии XDR:

  • простой активный пассивный
  • простой активный - активный
  • звездообразная репликация
  • комбинированная топология

XDR управляет следующими сбоями:

  • Сбой локального узла
  • Сбой удаленной связи
  • Комбинации вышеуказанных [Источник 1]

Пример установки и использования

Все действия описаны в титрах на видео:

Ссылки

Источники

  1. High Perfomance NoSQL Technology// Aerospike. [2017 - 2017]. Дата обновления: 01.01.17. URL: https://www.aerospike.com/technologies/#technologies (дата обращения: 28.11.2017).