RDM Embedded

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:02, 19 февраля 2018.
Raima Database Manager
Raima.png
Разработчики: Raima
Операционная система: Кросс-платформенное приложение
Локализация: Нет
Тип ПО: СУБД
Лицензия: Коммерческая лицензия
Веб-сайт raima.com/raima-database-manager

Raima Database Manager (или RDM) - это встраиваемая система управления базами данных, совместимая с ACID, предназначенная для использования во встроенных системных приложениях. RDM был разработан для использования на многоядерных компьютерах, в сетях (локальных или широкополосных) и для управления данными на диске или в памяти. RDM обеспечивает поддержку нескольких интерфейсов прикладного программирования (API): низкоуровневый C API, C ++ и SQL (собственный, ODBC, JDBC, ADO.NET и LabView). RDM очень портативен и доступен в Windows, Linux, Unix и других операционных системах (обычных и встраиваемых). Также доступна лицензия на исходный код.

RDM Embedded основан на очень эффективной и полной сетевой модели данных. Созданная раньше реляционной модели, сетевая модель доказала свою наилучшую производительность при работе с данными. Для более традиционного представления данных RDM Embedded также поддерживает реляционную модель данных. В RDM Embedded эти две модели можно комбинировать, чтобы использовать лучшие возможности из обеих областей - БД Birdstep являются единственными системами, предлагающими такую возможность. А вместе с высокоуровневыми интерфейсами для SQL и XML СУБД становится очень гибкой для решения самых разных задач. [Источник 1]

Пример организации данных в сетевой модели

RDM предоставляет интерфейсы прикладного программирования, которые позволяют разрабатывать приложения на различных языках программирования:

  • C на основе Cursor API. Облегчает обход записей базы данных для извлечения, вставки, обновления и удаления записей базы данных. С помощью кнопок «Запись», «Ключ» и «Набор» он идеально сочетается с концепциями базы данных RDM. Он похож на современные концепции программирования итераций по коллекции.
  • Комплексный SQL API - доступ к внутреннему интерфейсу с помощью упрощенного ODBC-подобного API, который использует дизайн Raima. Он также поддерживает хранимые процедуры и большинство других стандартных SQL.
  • API языка программирования SQL (PL) API - позволяет программировать логику с помощью чистого SQL. Разработчики могут использовать свои знания SQL и все еще добавлять условные условные обозначения и логику.
  • API ODBC
  • JDBC - стандартный интерфейс JAVA для ядра базы данных RDM 14.0 с двумя режимами работы: первый через TCP / IP и второй прямой канал через JNI.
  • ADO.NET - стандартный интерфейс C #. Поддерживаемый метод подключения - через TCP / IP.
  • Объектно-ориентированный API-интерфейс C ++ Cursor - API C ++ был прост в использовании, предоставляя разработчикам полный доступ и управление как сетью RDM, так и реляционной функциональностью.
  • Legacy Navigational C



Технические характеристики базы данных

  • Количество одновременно открытых баз данных: ограничено только памятью компьютера
  • Количество полей в записи: ограничено только максимальным размером записи и доступной памятью
  • Максимальное число файлов в базе данных: 256
  • Максимальный размер ключа: 242
  • Максимальное число объектов в базе данных: 4,294,967,040
  • Максимальное число объектов в файле: 16,777,215
  • Максимальный размер записи: 32 Kбайт
  • Размер, занимаемый кодом: ~270 Kбайт (зависит от операционной системы и используемых функций).
  • Требования к ОЗУ, не менее: ~50 Kбайт

Основные возможности

  • Активно-пассивная репликация. Отказоустойчивость, избыточность данных и высокий уровень доступности - вот ключевые слова, связанные с репликацией данных. Благодаря улучшенному механизму репликации в RDM Embedded можно реплицировать БД для приложений, обеспечивая отказоустойчивость и высокий уровень доступности.
  • Поддержка двойной модели БД. Продукт RDM Embedded основан на высокопроизводительной и четкой сетевой модели данных. Он также поддерживает традиционную реляционную модель данных. Уникальной для RDM Embedded является его способность комбинировать сетевую и реляционную модели данных, что дает разработчикам преимущества при работе с обеими моделями.
  • Всестороннее моделирование данных. Встроенные БД используются в системах, предназначенных для определенных приложений, где важно точно выражать связи между данными. RDM Embedded использует основанный на С язык определения БД (Database Definition Language, DDL). Он используется для определения всех связей между данными до той степени детализации, которая необходима разработчику.
  • Многопользовательская поддержка. Во многих случаях разработчикам необходимо, чтобы несколько приложений (или экземпляров приложения) получали доступ к БД при сохранении целостности данных. RDM Embedded поддерживает многопользовательскую работу, а также многозадачность, многопоточность и доступ через сеть. Благодаря возможностям блокировки и обработки транзакций RDM Embedded обеспечивает целостность данных путем управляемого контроля и журналирования.
  • Целостность данных. Обработка транзакций, блокировка файлов и зеркалирование БД - вот основные возможности RDM Embedded по обеспечению целостности данных, необходимые для многопользовательской работы и восстановления БД.
  • "Чистый" и гибридный режимы работы в оперативной памяти. Возможности работы БД в оперативной памяти значительно увеличивают гибкость встроенной системы БД. Теперь RDM Embedded можно настроить на режим работы в полностью бездисковом или гибридном режиме. Во втором варианте проектировщик приложения в рамках одной системы размещает часть своей реализации в память, а другие части - на диске.
  • Сервер MicroHTTP Server Данный сервер добавляет возможность вставки, обновления и удаления данных в СУБД RDM Embedded с помощью веб-браузера через стандартный протокол HTTP. Это дает возможность создавать веб-приложения, в которых предусматривается удаленный доступ к ядру базы данных.
  • Реальная поддержка записей переменной длины (типа VARCHAR) В скоростных ядрах баз данных для встраиваемых систем обычно реализуются записи, имеющие фиксированный размер, принося в жертву размер отображения базы данных в угоду быстродействию. Но с введением в RDM Embedded новой функции можно комбинировать записи фиксированного размера (доказавшие свою работоспособность в течение более чем 20 лет эксплуатации) и записи со строкой переменного размера при сохранении высокой производительности.
  • Кольцевые таблицы Разработчикам разрешается определить для таблицы максимальное число используемых строк. После достижения этого предела дополнительные строки добавляются в таблицу путем перезаписи уже существующих строк. Таким образом реализуется концепция очереди типа FIFO (первым пришел – первым обслужен), означающая, что новая запись замещает самую старую запись.
  • Разреженное индексирование Для экономии памяти и ресурсов определите свои индексы как редкие (sparse). В традиционных базах данных, хранящихся на диске, будет происходить дублирование индексируемых данных для повышения эффективности поиска, но при этом нужно иметь много свободного места. В RDM Embedded обычно необходимо проанализировать только несколько первых байтов, чтобы понять, в каком порядке вести поиск. Поэтому, чтобы избежать дополнительных издержек в результате полного дублирования, в RDM Embedded можно задать для строковых данных разные режимы дублирования: полное, частичное или отсутствие дублирования. Это позволяет сэкономить циклы ЦПУ и ввода/вывода.
  • Поддержка различных структур данных: B-Tree, R-Tree, таблицы хешей
  • Поддержка круговых таблиц Тип записи или таблицу можно переопределить как «круговой». Когда такая таблица будет заполнена, RDM все равно позволит создавать новые экземпляры записей. Новые экземпляры записей будут перезаписывать существующие, начиная с самого старого. RDM не позволяет явно удалять экземпляры записей в круглой таблице. Определение круглой таблицы включает ограничение размера. Это обеспечивает полезный способ выделения фиксированного количества пространства для хранения последних экземпляров определенного типа записи. Например, это может быть полезно при хранении данных событий, которые быстро генерируются, когда актуальны только самые последние данные. Циклические таблицы устраняют риск того, что входящие данные могут не сохраниться из-за нехватки места, избегая при этом необходимости удаления устаревших данных.
  • Непрерывное чтение - это функция, которая может обеспечить лучшую производительность, ослабляя некоторые ACID-свойства базы данных. Чтобы полностью соответствовать ACID, блокировки должны устанавливаться всякий раз, когда данные считываются из базы данных, чтобы гарантировать, что считанные данные являются самыми актуальными и правильными. Однако блокировка данных все время оказывает влияние на производительность и, особенно если данные не меняются очень часто, может и не понадобиться. Непрерывное считывание позволяет считывать данные без их фиксации.[Источник 2]

Файловый сервер

TFS-сервер

Транзакционный файловый сервер RDM (TFS) специализируется на обслуживании и управлении файлами базы данных на носителе. TFS представляет собой набор функций, называемых средой исполнения RDM, для управления совместным использованием файлов базы данных между одним или несколькими экземплярами СУБД. В обычной многопользовательской конфигурации функции TFS укомплектованы в серверный процесс, называемый TFServer. Стандартный протокол TCP / IP может использоваться для соединения с сервером, как клиентом и TFServer на одном компьютере так и на разных компьютерах. Один процесс RDM-клиента может иметь соединения с несколькими TFS-серверами, а один TFServer может использоваться несколькими сеансами клиента. Для приложений, использующих среду выполнения RDM и TFServers, местоположения других процессов невидимы, поэтому все процессы могут находиться на одном компьютере или все могут находиться на разных компьютерах. Это обеспечивает возможности для истинной распределенной обработки.

Работа с файловым сервером Raima Database Manager TFServer следует рассматривать как «контроллер базы данных» почти так же, как контроллер диска управляет устройством хранения. TFS инициализируется корневым каталогом, в котором хранятся все файлы, управляемые TFS. Если на одном компьютере имеется несколько дисковых контроллеров, рекомендуется назначить один TFServer для каждого контроллера. Это облегчает параллелизм на одном компьютере, особенно когда присутствуют несколько центральных ядер. Полная система приложений может иметь несколько TFS-серверов, работающих на одном компьютере, и несколько компьютеров в сети. Каждый TFServer сможет работать параллельно с другими, что позволяет масштабировать производительность соответствующим образом.

API и драйверы

Собственный API В RDM Embedded имеется более 150 функций собственного интерфейса API (Native API) на основе языка С, которые могут использоваться в приложении для управления базой данных.

SQL API В RDM Embedded реализован интерфейс SQL API, предназначенный для поддержки приложений, из которых производится управление базой данных через команды SQL.

JAVA API Интерфейс Java API основывается на технологии собственного интерфейса Java JNI (Java Native Interface). Используя расширенный интерфейс C API для доступа к программам на языке Java (через JNI), в RDM Embedded можно организовать и получить эффективный доступ к информации независимо от сложности данных.

XML API Язык XML является развивающимся стандартом, он используется в веб-устройствах и системах для упрощения обмена данными между разнородными системами. На уровне экспорта/импорта языка XML в продукте RDM Embedded есть возможность импортировать и экспортировать хорошо структурированные XML-данные.

Совместимость с:

  • Поставщик данных ADO.Net 4.0
  • Драйвер JDBC 4.2 Type 4
  • Драйвер ODBC 3.51


Дополнительные возможности

Схема процесса распараллеливания

Объединение баз данных Функция объединения базы данных RDM обеспечивает унифицированное представление нескольких одинаково структурированных баз данных. Поскольку RDM обеспечивает высокораспределенное хранение и обработку данных, эта функция обеспечивает механизм для объединения распределенных данных, что дает представление в виде единой большой базы данных.

Разделение и унифицированные запросы также используются для масштабирования производительности. Рассмотрим базу данных, где каждая операция начинается с поиска первичного ключа записи. Если «база данных» состоит из четырех разделов, каждая из которых хранится на одном и том же многоядерном компьютере, но на разных дисках, управляемых разными дисковыми контроллерами, тогда единственным требованием является схема, которая делит первичный ключ между четырьмя разделами. Если эта схема является модулем первичного ключа, приложение быстро определяет, какой раздел хранит запись или считывает запись. Поскольку для запуска нескольких процессов (как приложений, так и TFS) имеется несколько ядер процессора, а четыре раздела доступны параллельно (эти четыре контроллера разрешают это), производительность обработки увеличивается в четыре раза.

Шифрование базы данных RDM позволяет шифровать весь контент базы данных до того, как он будет передан по сети и записан в файлы базы данных. Шифрование RDM поддерживает алгоритм шифрования Rijndael / AES с 128-, 192- или 256-разрядными ключами на основе ключа шифрования приложения.



Зеркалирование базы данных и поддержка HA
Схема процесса партицирования (распределения)

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

RDM обеспечивает синхронное зеркалирование, где каждая транзакция, которая передается на главном TFServer, также надежно фиксируется зеркальным TFServer. RDM также предоставляет набор функций API поддержки HA, которые можно вызывать из HA-монитора приложения для контроля рабочего состояния TFS-серверов.

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

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


Репликация базы данных

Схема процесса репликации[Источник 3]

Репликация похожа на зеркалирование, но она не предназначена для поддержки HA, а для передачи всех или, более вероятно, частей одной базы данных (master) в другую базу данных (slave). Репликация предназначена для работы там, где базы данных не обязательно поддерживаются на одной платформе. Подчиненные базы данных могут быть другими базами данных, управляемыми RDM, или они могут быть сторонними СУБД.

Репликация RDM включает в себя поддержку множественного master- устройства для одиночной подчиненной выборочной репликации данных, которые важны для встроенных компьютеров и устройств на краю сетки данных, где происходит мониторинг состояния. Данные состояния, хранящиеся в круглой таблице каждого master'а, реплицируются в центральную систему управления, поддерживая постоянную историю всех статусов устройства, которая затем может быть доступна для различных временных рядов и других анализов.

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

Примечания

  1. Официальный сайт Raima Database Manager.[2018-2018] Дата обновления: 13.02.2018. URL:http://raima.com/raima-database-manager/ Raima Database Manager (дата обращения 31.01.2018)
  2. Raima Database Manager//Википедия, свободная энциклопедия. [2018-2018] Дата обновления: 13.02.2018 URL:https://en.wikipedia.org/wiki/Raima_Database_Manager Raima Database Manager (дата обращения 31.01.2018)
  3. Документация по архитектуре RDM //Официальный сайт проекта. [2018-2018] Дата обновления 16.02.2018. URL:https://raima.com/wp-content/uploads/RDM-v12-Technical-Whitepaper.pdf (дата обращения 16.02.2018)