В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
Разработчик(и) | Активные данные Вольта |
---|---|
Первоначальный выпуск | 25 мая 2010 г. (2010-05-25) |
Стабильный релиз | 11.3 / 21 апреля 2022 г. (2022-04-21) |
Репозиторий |
|
Написано в | Java , C++ |
Операционная система | Linux , macOS |
Платформа | Ява |
Тип | СУРБД |
Лицензия | GNU Affero General Public License v3, VoltDB Proprietary License |
Веб-сайт | voltactivedata.com |
Volt Active Data (ранее VoltDB) — это база данных в оперативной памяти, разработанная Майклом Стоунбрейкером , Сэмом Мэдденом и Дэниелом Абади.
Это совместимая с ACID СУРБД , которая использует архитектуру без совместного использования ресурсов и создана на основе работы Стоунбрейкера по производительности и оптимизации систем OLTP [1] . [2]
Он доступен в двух версиях: Enterprise и Community. Community Edition распространяется под лицензией GNU Affero General Public License .
VoltDB — это реляционная база данных NewSQL OLTP [3] , которая поддерживает доступ SQL из предварительно скомпилированных хранимых процедур Java .
Хотя прямой доступ SQL поддерживается, [4] наиболее эффективной формой взаимодействия является использование вызовов хранимых процедур, [5] поскольку это требует меньше сетевых поездок. Хранимые процедуры пишутся на Java путем расширения класса VoltProcedure и реализации метода run(), который включает как операторы SQL, так и поддерживающую логику Java. Внутренне данные управляются ядром C++, чтобы избежать проблем со сборкой мусора. [6]
VoltDB использует горизонтальное разбиение на отдельные аппаратные потоки для масштабирования, k-безопасность ( синхронную репликацию ) для обеспечения высокой доступности и комбинацию непрерывных снимков и регистрации команд для обеспечения надежности (восстановление после сбоев).
VoltDB основан на H-Store . Он использует архитектуру с общим доступом для масштабирования. Данные и связанная с ними обработка распределены по ядрам ЦП на серверах, составляющих единый кластер VoltDB. Расширяя свою основу с общим доступом до уровня каждого ядра, VoltDB масштабируется с увеличением числа ядер на ЦП на многоядерных серверах.
Сделав хранимые процедуры единицей транзакции и выполняя их в разделе, содержащем необходимые данные, можно исключить круговой обмен сообщениями между операторами SQL. Хранимые процедуры выполняются последовательно и до конца в одном потоке без блокировки или защелкивания, аналогично архитектуре LMAX . [7] Поскольку данные находятся в памяти и локальны для раздела, хранимая процедура может быть выполнена за микросекунды. Схема инициирования хранимых процедур VoltDB позволяет всем узлам инициировать хранимые процедуры, избегая при этом единого сериализуемого глобального порядка. [8]
VoltDB соответствует ACID. Данные записываются в долговечное хранилище. Долговечность обеспечивается непрерывными моментальными снимками; асинхронной регистрацией команд, которая создает как моментальные снимки, так и журнал транзакций между моментальными снимками; и синхронной регистрацией команд, которая регистрирует транзакции после завершения транзакции и до ее фиксации в базе данных. Это гарантирует, что не будет зафиксировано ни одной транзакции, которая не была бы зафиксирована, и что ни одна транзакция не будет потеряна.
VoltDB v5.0 представил инструмент мониторинга и управления базой данных, VoltDB Management Center (сокращенно VMC). VMC обеспечивает браузерный единый мониторинг и управление конфигурацией базы данных VoltDB, включая графики пропускной способности и задержки кластера, а также использования ЦП и памяти для текущего сервера.
VoltDB версии 5.1, выпущенная в марте 2015 года, представила функциональность репликации базы данных (DR), устраняющую любую единую точку отказа. DR обеспечивает одновременную параллельную репликацию нескольких разделов и двоичных журналов результатов транзакций, избавляя реплику от необходимости воспроизводить транзакцию.
V6.0 [9] представил геопространственные типы данных
В версии 6.1 [10] добавлены потоки, которые можно вставлять, с поддержкой агрегации в материализованных представлениях потоковых данных.
В версии 6.6 [11] добавлена поддержка кластеров XDCR, работающих между смешанными версиями Volt, а также смешанных размеров и конфигураций.
В версии 7.1 [12] , выпущенной в марте 2017 года, появилась поддержка шифрования TLS для клиентских сетей.
В версии 7.5 [13], выпущенной 28 июля 2017 года, представлен kafkaloader для загрузки потоковых событий из Kafka непосредственно в таблицу базы данных или в хранимую процедуру для обработки.
В версии 7.6 [14] (28 августа 2017 г.) представлены определяемые пользователем функции SQL, позволяющие клиентам писать пользовательские функции на Java и делать их вызываемыми из оператора SQL. В версии 8.0 [15] (6 февраля 2018 г.) представлено шифрование TLS для сетевого взаимодействия между кластерами с использованием DR и XDCR, а также для внутрикластерной связи.
V8.2 [16] (12 июля 2018 г.) представила функцию TTL, которая позволяет приложениям определять «время жизни» в столбце временной метки в таблице. После истечения срока действия внутренний процесс очищает записи из базы данных.
V8.4 [17] (29 декабря 2018 г.) представила версии Long-Term Supported для клиентов Volt. Эта версия увеличивает поддержку с одного года до трех лет, позволяя клиентам оставаться на версии и получать критические обновления для стабильности, безопасности и корректности. V9.0 [18] (11 апреля 2019 г.) представила новые функции потоковой передачи, включая миграцию данных в поток по истечении срока действия и захват измененных данных.
V9.3 [19] (1 мая 2020 г.), выпуск с долгосрочной поддержкой (LTS), представил запланированные задачи — способ автоматизации повторяющихся задач и вызовов процедур из Volt. Schedule Tasks имеет простой в использовании интерфейс для вызова предопределенных процедур, а также может быть полностью настроен в Java для создания более сложных расписаний.
V10.0 [20] (август 2020 г.) представил Volt Operator для Kubernetes и Helm Charts, предлагающий комплексное решение для запуска баз данных VoltDB в облачной среде Kubernetes. Кроме того, V10.0 предоставил агент Prometheus для сбора и построения графиков метрик.
V10.2 [21] (январь 2021 г.) представил VoltDB Topics для предоставления интеллектуальной потоковой передачи существующих возможностей импорта и экспорта VoltDB, но с гибкостью потоков, подобных Kafka. Topics допускает как входящую, так и исходящую потоковую передачу нескольким производителям и потребителям-клиентам. Они допускают интеллектуальную обработку и манипулирование данными по мере их прохождения по конвейеру. V10.2 — это выпуск LTS.
V11.0 [22] (21 апреля 2022 г.) представляет возможность подключения к DataDog , поддержку Java 17, совместимость с Kubernetes 22.0 и приоритетные транзакции.
В феврале 2022 года продукт был переименован в «Volt Active Data». [23]