О сервисе
Сервис Key-value СУБД (in-memory) (услуга 1.3) – это горизонтально масштабируемая, отказоустойчивая платформа с открытым исходным кодом на базе для хранения и обработки больших объемов данных в оперативной памяти кластера.
Сервис Key-value СУБД (in-memory) должен:
- обеспечивать Пользователю возможность создавать новые базы данных с идентичной логической структурой данных (деление по темам);
- позволять записывать, хранить, находить, редактировать и считывать данные;
- обеспечивать модификацию базы данных;
- позволять осуществлять ввод основной массы данных посредством считывания (записи) массива данных;
- обеспечить контроль достоверности вводимых данных в каждом поле таблиц базы данных (обязательное поле, умолчание, шаблон и т.д.);
- обеспечивать нахождение слов, выделение, просмотр и редактирование таблиц базы данных с удобным графическим интерфейсом;
- обеспечивать резервное копирование всех данных кластера базы данных автоматически и с заданной регулярностью.
Основные операции, выполняемые Сервисом Key-value СУБД (in-memory):
- операции с наборами: объединение, пересечение, различие;
- выбор подмножества записей согласно определенным критериям;
- проецирование – выбор подмножества атрибутов / колонок таблицы;
- сцепление;
- операции для создания, модификации и удаления схем таблиц;
- операции для управления транзакциями и управления Пользователями;
- резервное копирование базы данных.
Сервис Key-value СУБД (in-memory) Платформы «ГосТех» должен соответствовать следующим основным требованиям:
- программное обеспечение, использованное для реализации Сервиса, должно быть включено в Реестр отечественного ПО и/или иметь действующий сертификат ФСТЭК России;
- работать на сертифицированной ОС;
- поддерживать протокол подключения JDBC или REST API;
- обеспечивать не менее 20000 запросов в секунду;
- поддерживать базовый SQL (в рамках одного экземпляра);
- обеспечивать ведение синхронного журнала предзаписи;
- обеспечивать возможность организации синхронной реплики для экземпляра;
- обеспечивать возможность заказа аренды с асинхронной репликации в удалённый ЦОД (катастрофоустойчивость);
- обладать свойствами: персистентности, транзакционности ACID;
- поддерживать ANSI-99 SQL;
- использовать модель ACL для разграничения доступа;
- позволять хранение всех данных в оперативной памяти, с дисковыми снимками данных и логом транзакций;
- поддерживать индексы: TREE;
- поддерживать различные форматы хранения и протоколы передачи данных;
- поддерживать кооперативную многозадачность для одновременного выполнения кода;
- обеспечивать возможность интеграции с NoSQL СУБД, Hadoop, Kafka;
- поддерживать горизонтальную масштабируемость без остановки работы Сервиса;
- иметь встроенные механизмы отказоустойчивости данных;
- иметь встроенный механизм репликации (как минимум, асинхронного типа);
- поддерживать алгоритмы шифрования при передаче данных ГОСТ 34.12 2018;
- иметь средства захвата изменений Change Data Capture (CDC);
- иметь скриптовые средства выполнения логики над данными внутри СУБД;
- иметь средства администрирования с пользовательскими интерфейсами.
Состав Сервиса
«Сервис Key-value СУБД (in-memory) (услуга 1.3)» включает в себя Компонент «Распределенное хранение и обработка данных в памяти Platform V Ignite Sber Edition». Компонент представляет из себя доработанное решение на основе open-source-решения Apache Ignite и являетсяя горизонтально масштабируемой, отказоустойчивой платформой.
Компонент « Распределенное хранение и обработка данных в памяти Platform V Ignite Sber Edition» обеспечивает надежное распределенное хранение данных в оперативной памяти и распределенную обработку этих данных, включая:
- хранение данных в оперативной памяти с возможностью сохранения данных на диск, включающее в себя:
- распределенное хранение данных вида «ключ-значение» в оперативной памяти:
- в режиме, когда на каждом узле кластера хранится полная копия данных;
- в режиме, когда на узле кластера хранится только часть данных (партиция).
- возможность сохранения данных из оперативной памяти на жесткий диск узла кластера;
- отсутствие потери данных при выходе из строя одного узла кластера;
- отсутствие потери данных при полной аварийной остановке кластера, при включенном сохранении данных на диск и достаточном размере диска для сохранения всех данных из оперативной памяти;
- возможность доступа к данным через Java Key Value API и SQL DML, соответствующая стандарту ANSI 99 и включающее в себя:
- операции записи данных в оперативную память с использованием Java Key Value API;
- операции чтения данных из оперативной памяти с использованием Java Key Value API;
- операции записи данных в оперативную память с использованием JDBC SQL;
- операции чтения данных из оперативной памяти с использованием JDBC SQL;
- возможность распределенной обработки данных, включающая в себя запуск на кластере произвольной вычислительной задачи с помощью толстого клиента;
- разделение задачи на подзадачи;
- отправку подзадач на узлы кластера для одновременной параллельной обработки;
- сбор результатов выполнения задачи;
- обобщение результатов;
- передачу обобщенного результата выполнения задачи на толстый клиент;
- возможность шифрования данных на диске, включающая:
- локальное хранение ключей шифрования на узле кластера;
- хранение зашифрованного кеш-ключа в Meta Store;
- хранение зашифрованного мастер-ключа в Java Keystore;
- возможность управления ключами шифрования прозрачного шифрования данных, включая функции:
- смена мастер-ключа;
- шифрование файлов журнала операций (WAL) с помощью алгоритма шифрования AES, длина ключа до 1024;
- шифрование файлов данных, хранящихся на жестком диске на узле кластера с помощью алгоритма шифрования AES, длина ключа до 1024;
- возможность резервного копирования данных кластера, включающая:
- создание целостной резервной копии всех нешифрованных данных кластера, хранящихся на жестких дисках узлов кластера;
- возможность восстановления данных на всех узлах кластера из резервной копии на ту же топологию.
Для работы Компонента используется операционная система Альт Сервер (Альт 8 СП).
Минимальная конфигурация Сервиса обеспечивает:
-
полезный объем памяти для хранения данных Потребителя в минимальной конфигурации - 34 % от объема памяти, выделенного Потребителю;
-
объем диска, требуемый в режиме persistence, равен объему памяти + 20 % на overhead;
-
поддержку стратегий кэширования:
- Cache-aside;
- Read-through;
- Write-through;
- Write behind.