Mimer SQL

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 06:54, 22 июня 2020.
Mimer SQL
MimerSQL1.png
Разработчики: Mimer Information Technology
Выпущена: 1970 (1970)
Написана на: COBOL (COmmon Business Oriented Language), Python,Fortran , C/ С++
Операционная система: Кроссплатформенная
Тип ПО: Реляционная СУБД
Лицензия: Proprietary
Веб-сайт www.mimer.com

Mimer SQL — система управления реляционными базами данных на основе SQL (Structured Query Language) от шведской компании Mimer Information Technology AB (ранее Upright Database Technology AB). Она была разработана и выпущена в 1970-х годах, когда была основана в университете Упсала, Швеция.

Название «Mimer» взято из скандинавской мифологии, где Mimer был гигантом, охраняющим колодец мудрости, также известным как «Mímisbrunnr». Метафорически это то, что делает система базы данных - управляет данными.

Mimer SQL является масштабируемым и портативным решением, обеспечивающим серверы баз данных для сред от встроенных и операционных систем реального времени до корпоративных систем. Сюда входят такие платформы, как Windows, MacOS, Linux, Android (Операционные Системы), UNIX, OpenVMS и VxWorks.

Mimer SQL использует систему оптимистического контроля параллелизма (OCC).[Источник 1]

Введение

Механизм, используемый для реализации параллелизма при обработке транзакций SQL, является проблемой, которая затрагивает всех программистов базы данных, независимо от того, осознают они это или нет. Цель этой статьи - представить некоторые проблемы, вызванные системами баз данных, которые используют механизмы блокировки и то, как решение, предоставленное в Mimer SQL, избегает всех этих проблем.

Описание

Mimer SQL обеспечивает поддержку нескольких прикладных программных интерфейсов ( API) баз данных: ODBC , JDBC , ADO.NET , встроенного SQL (C / С++, Cobol и Fortran), а также API-интерфейс Mimer SQL реального времени и API-интерфейс Mimer SQL Micro C ,

Mimer Provider Manager - это диспетчер поставщиков ADO.NET, который использует разные плагины для доступа к различным базовым поставщикам ADO.NET. Mimer Provider Manager позволяет писать независимые от базы данных приложения ADO.NET.

Mimer SQL в основном использует оптимистический контроль параллелизма (OCC) для управления параллельными транзакциями. Это делает блокировку базы данных свободной и обеспечивает предсказуемость в реальном времени.

Mimer SQL назначается порт 1360 в Internet Assigned Numbers Authority (IANA) реестра.

Обзор транзакций

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

С точки зрения других транзакций, запрашивающих базу данных, конкретная транзакция либо была успешно совершена, либо ее нет. Не должно быть промежуточного состояния, в котором некоторые изменения видны; либо все изменения видны, либо как будто транзакция не активна.[Источник 2]

Mimer SQL поддерживает распределенные транзакции на основе интерфейса XA, как это определено Open Group и протоколом DTC (Microsoft Distributed Transaction Coordinator, DTC).

Это означает, что Mimer SQL может участвовать с другими системами с поддержкой XA и DTC для обработки транзакций на разных платформах и между базами данных от разных поставщиков.[Источник 3]

Параллельность

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

Параллелизм - одна из областей, где Mimer SQL имеет преимущество перед другими продуктами RDBMS. Mimer SQL использует метод управления транзакциями под названием Optimistic Concurrency Control; большинство других СУБД (Система Управления Базами Данных) предлагают пессимистический контроль параллелизма.

Влияние на производительность

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

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

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

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

Методы

Решение Mimer SQL

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

Проще говоря, в момент совершения транзакции сервер базы данных Mimer SQL сравнивает строки, которые были прочитаны во время транзакции, с текущими значениями в базе данных. Если строки, которые были прочитаны и на которых зависело решение о выполнении обновлений, все равно имеют одинаковые значения, тогда транзакция может выполнять обновления.

Когда транзакция запускается в Mimer SQL, согласованное представление базы данных замораживается на основе состояния после последней совершенной транзакции. Это означает, что приложение увидит полностью согласованное представление базы данных в течение всей транзакции. Во время создания транзакции система Mimer отслеживает объекты, прочитанные во время транзакции, и строит список намерений, которые необходимо внести, но фактически не применяет ни одно из этих изменений в базе данных.

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

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

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

Проблемы с блокировкой

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

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

Другим распространенным методом является обнаружение на основе графика, где заблокированные ситуации отслеживаются и проверяются на взаимоблокировки. Масштабируемость - проблема с этим методом; затраты, связанные с прохождением графика блокировки, быстро возрастают по мере увеличения количества параллельных транзакций.

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

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

Программирование с помощью Mimer SQL упрощается, поскольку транзакционные прерывания происходят только при фиксации, тогда как в других СУБД взаимоблокировки могут возникать в любой момент транзакции. Кроме того, с Mimer SQL проблемы с внедрением новых приложений в производственную среду сведены к минимуму. В системе блокировки новое приложение может вводить взаимоблокировки, и производительность существующих приложений может пострадать из-за блокировки.

Выгоды при использование Mimer SQL

Оптимизатор SQL

Должно быть очевидно, что в системе блокировки порядок операций в транзакции может влиять на другие параллельные транзакции, что может привести к взаимоблокировке. Однако то, что не так очевидно, заключается в том, что оптимизатор SQL решает порядок оценки в инструкции. Это может привести к возникновению взаимоблокировок в производственной системе, когда оптимизатор изменяет порядок доступа. Программисты могут кодировать вокруг этого, разбивая инструкцию SQL, что может избежать проблемы, но эта практика больше не позволяет оптимизатору SQL вычислять оптимальный порядок соединения.

В случае Mimer SQL порядок доступа к строкам в транзакции не имеет отношения к обработке транзакций. То есть, если оптимизатор Mimer SQL изменяет порядок соединения, он не оказывает никакого влияния на эту транзакцию или любые другие параллельные транзакции.

Хранилище данных

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

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

С помощью Mimer SQL длительные запросы могут выполняться параллельно с обработкой транзакций в режиме реального времени. Этот объект изоляции транзакций (повторяемые чтения) является еще одной областью, где Mimer SQL предлагает преимущества перед конкурентами.

Mimer SQL 11

Новая основная версия Mimer SQL является результатом более чем трехлетней разработки с упором на производительность и масштабируемость. В результате повышается производительность ядра базы данных, компилятора SQL и оптимизатора, производительность интеграции с операционной системой хоста и производительность взаимодействия с клиентом, и это лишь некоторые из них.

Незначительное, но все еще очень заметное изменение на платформе Windows - это новый установщик. Процедура установки была упрощена и теперь может быть выполнена всего за несколько шагов, и она без проблем решает проблему обновления и автоматически удаляет предыдущую версию.

В мае 2019 года была объявлена ​​версия 12.1 Unicode, и этот новый стандарт был реализован в Mimer SQL 11, в результате чего Mimer SQL поддерживает 150 различных языковых сопоставлений, а также поддерживает все 137,929 символов.

Также, с выпуском Mimer SQL 11 мы поддерживаем все основные функции SQL SQL-2016, а также 137 расширенных функций.

Ядро базы данных Mimer SQL 11

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

Результатом этой работы стало то, что записи теперь могут иметь переменную длину, и все типы данных реализованы в форматах, родных для платформы, на которой мы работаем. Больший размер страницы позволяет Mimer SQL 11 лучше использовать улучшения в современной дисковой технологии, а данные хранятся более компактно и более эффективно, чем когда-либо прежде. Кроме того, кэш основной памяти также имеет неограниченный размер, что позволяет Mimer SQL эффективно использовать большую оперативную память, обычно используемую в серверных системах.

Результатом является увеличение производительности, которое является предпосылкой для масштабируемости, расширяемости и является основой для перехода на Mimer SQL на следующий уровень.

Mimer SQL 11 Компилятор

Новый компилятор полностью поддерживает основные функции SQL из стандарта ANSI / ISO SQL-2016. В дополнение к этому Mimer SQL поддерживает новые типы данных, такие как универсальные уникальные идентификаторы (UUID), и они могут автоматически генерироваться на сервере или предоставляться приложением. Новый компилятор также имеет расширенную поддержку домена, а также поддержку предикатов FULL OUTER JOIN, DISTINCT и UNIQUE.

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

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

Mimer SQL 11 Клиентский доступ

В Mimer 11 улучшен диапазон возможностей клиентского доступа с помощью недавно написанного нативного API, называемого Mimer API . Это дает программисту значительно улучшенную обработку доступа к базе данных со всеми современными функциями без необходимости в диспетчере драйверов, а также в накладных расходах и дополнительном администрировании.

Mimer SQL 11 по-прежнему имеет отличную поддержку ODBC, JDBC и ADO.NET, и с этим новым собственным API Mimer SQL 11 добавил еще один собственный метод подключения к уже проверенному и надежному предложению.

Mimer SQL 11 SQL Монитор

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

Язык модулей Mimer SQL

Язык модуля SQL во многом похож на встроенный SQL, но вместо чередования кода с SQL язык модуля SQL дает программисту возможность отделить процедурный код от SQL.

В Mimer SQL 11 есть поддержка языка модулей SQL для C, COBOL, FORTRAN и Pascal.

Mimer SQL для Android 9

В настоящее время Mimer выпускает полный эталонный дизайн сервера базы данных Mimer SQL для Android 9.

Это включает в себя полнофункциональный, высокопроизводительный сервер баз данных в сочетании с полной поддержкой совместимости для всех видов приложений Android, включая загруженные из Google Play. Из коробки Mimer SQL управляет встроенными поставщиками контента для Календаря, Контактов, Электронной почты, Медиа и Телефонии.

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

  • Mimer SQL для Android является «подключи и работай», не требует интеграции и не требует дополнительного времени, связанного с новыми выпусками Google. Mimer SQL интегрируется без влияния на текущий код, а переключатель Mimer позволяет переключаться между SQLite и Mimer SQL во время выполнения. Это означает, что вы можете использовать одно ПЗУ, которое может работать как с Mimer SQL, так и с SQLite.
  • С Mimer SQL, интегрированным в систему Android, вы получите систему управления базами данных корпоративного класса, в которой данные легко и безопасно могут быть разделены между различными частями системы. Эта улучшенная архитектура позволяет легко создавать системы, которые должны объединять данные из разных источников, например, системы искусственного интеллекта .
  • Архитектура общей базы данных , полученная с помощью Mimer SQL, упрощает глобальный поиск на устройстве. Расширенная доступность данных также облегчает голосовое включение устройства.
  • С помощью Mimer SQL устройства Android получат лучшую производительность без какого-либо снижения производительности. Опыт ежедневных операций всегда одинаков, когда устройство новое, а также после месяца использования. Деградация - большая проблема с решением для базы данных по умолчанию в Android, и многие OEM-производители страдают от этого.
  • С Mimer SQL параллелизм обрабатывается с помощью истинной многопользовательской и многоядерной поддержки , что повышает производительность и экономит батарею (более эффективное использование ядер).
  • Mimer SQL улучшит емкость батареи, поскольку задача может быть выполнена на нескольких ядрах.
  • С Mimer SQL устройство получает больше памяти. Mimer SQL повышает производительность устройства, например, низкоуровневое оборудование с Mimer будет работать лучше во многих случаях по сравнению с высокопроизводительным устройством с SQLite.
  • Устройства Android с Mimer SQL внутри получат базу данных уровня предприятия, поддерживающую реальную безопасность.
  • Функциональные возможности сервера базы данных Mimer SQL, включая совместимость API базы данных Android, повышают производительность в поставщиках контента в 3 раза или даже больше на устройстве Android по сравнению с использованием нескольких экземпляров встроенного менеджера баз данных SQLite. , И это без каких-либо изменений в приложениях и поставщиках контента, предоставляемых Google.

В дополнение к API базы данных Android, полнофункциональная функциональность базы данных корпоративного класса в Mimer SQL доступна для разработчиков приложений, использующих стандартные интерфейсы программирования приложений Java и C/C++.

Mimer SQL, встроенный в ОС ROS INTEGRITY программного обеспечения Green Hills

Команда разработчиков Mimer завершила работу над переносом сервера управления базами данных (СУБД) Mimer SQL Embedded на операционную систему реального времени Green Hills Software INTEGRITY. Порт включает в себя все функциональные возможности, доступные в продукте Mimer SQL Embedded, что соответствует всем ожиданиям для современной СУБД.

Порт Mimer SQL Embedded для INTEGRITY использует только нативные примитивы, что означает отсутствие необходимости в компоненте совместимости POSIX. Что касается связи между клиентами и сервером базы данных, Mimer SQL поддерживает как локальные соединения, так и связь TCP/IP. Кроме того, требования к памяти во время выполнения могут быть скорректированы по мере необходимости, а размер кода может быть уменьшен для устройств времени выполнения с ограниченной памятью.

Продукты и платформы Mimer SQL

Mimer SQL доступен на самых разных платформах. Функциональность, как правило, одинакова на каждой платформе, что упрощает миграцию приложений Mimer SQL между этими платформами.

О версиях операционной системы

Версия операционной системы, заявленная для платформы, является самой низкой версией, поддерживаемой для конкретной версии Mimer SQL. Более высокие версии поддерживаются (если не указано иное), если они доказаны, что они совместимы с производителем.[Источник 4] В таблице приведены некоторые сведения о совместимости с операционными системами.

AIX Mimer SQL 9.2.5 Aug 2011
HP Integrity Server, OpenVMS Mimer SQL 11.0.0 Sep 2017
Linux (64-bit) Mimer SQL 10.1.4 Apr 2017
Mac OS X Mimer SQL 10.0.6 Jan 2012
Solaris Mimer SQL 9.2.4 Dec 2005
Tru64 Mimer SQL 8.2.5 Nov 2004
Windows (64-bit) Mimer SQL 10.1.4 Mar 2017

Источники

  1. Mimer SQL // Википедия — свободная энциклопедия. Дата обновления: 04.04.2020. URL: https://en.wikipedia.org/wiki/Mimer_SQL (дата обращения: 08.05.2020).
  2. Mimer SQL – Транзакция // Учебное пособие по SQL. Дата обновления: 06.12.2016. URL: https://andreyex.ru/bazy-dannyx/uchebnoe-posobie-po-sql/sql-tranzakciya/ (дата обращения: 20.10.2017).
  3. What’s new in Mimer SQL 11 // Mimer SQL developer. URL: http://developer.mimer.com/ (дата обращения: 08.05.2020).
  4. Mimer SQL connection strings. URL: https://www.connectionstrings.com/mimer-sql/ (дата обращения: 20.10.2017).