Перейти до вмісту

MemSQL

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 16:46, 27 квітня 2018, створена LomAlex2594 (обговорення | внесок) (Створена сторінка: {{Карточка программы |name = MemSQL |title = MemSQL |logo = |screenshot =...)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)

Шаблон:Карточка программы MemSQLNewSQL реляционная система управления базами данных в оперативной памяти, допускающая распределение баз данных по нескольким узлам. Поддерживает принципы ACID, язык SQL, примечательна тем, что для выполнения SQL-запросов осуществляет кодогенерацию в C++.

Базовая технология

Шаблон:Грубый перевод MemSQL сочетает неблокируемую структуру данных и JIT(Точно вовремя) компилятор, чтобы обрабатывать очень энергозависимые нагрузки. В частности, MemSQL реализует неблокируемые хэш таблицы и неблокируемые списки с пропусками в памяти для быстрого и произвольного доступа к данным. Запросы, отправленные на сервер MemSQL преобразуются в C++ и компилируются через GCC. Запросы лишены их параметров и шаблон запроса хранится в качестве совместно используемого объекта, который затем сравнивается с поступающими запросами к системе. Генерация кода и выполнение предварительно скомпилированных запросов помогает избежать интерпретацию длинных путей кода, обеспечивая высокоэффективные пути, которые минимизируют необходимое количество инструкций процессора.

MemSQL совместима с MySQL. Приложения могут подключаться к MemSQL через стандарты ODBC / JDBC, а также через драйвера и пользователей MySQL.

Надежность

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

Репликация

Шаблон:Грубый перевод MemSQL поддерживает собственный протокол репликации, который поставляет его транзакционный журнал в устройства. MemSQL в настоящее время поддерживает репликацию «главный-подчиненный».

Распределенная архитектура

Шаблон:Грубый перевод MemSQL — распределенная база данных, которая работает по концепции накопителей и вершин. Накопитель ответственен за то, что разбил запрос через соответствующие вершины и агрегировал результаты назад клиенту. Вершина — база данных MemSQL. MemSQL использует разделение хеша, чтобы распределить данные равномерно по числу вершин. MemSQL сделали распределенную версию своей системы общедоступной 23 апреля 2013, с пробным выпуском, доступным для скачивания на их веб-сайте.

Версии

  • MemSQL 1b — выпущена в свободный доступ в июне 2012.
  • MemSQL 1c — незначительное обновление предыдущей версии, выпущена в июле 2012.
  • MemSQL 1.8 — репликация и расширенные возможности SQL, выпущена в декабре 2012.
  • MemSQL 2.0 — свободный доступ распределенной системы. Первый релиз операционной панели MemSQL Watch.

Компания

Продукт разрабатывается одноимённым стартапом, основанным в 2011 году бывшими инженерами Facebook Эриком Френкелем (Eric Frenkiel) и Никитой Шамгуновым (Nikita Shamgunov) при поддержке проекта Y Combinator. На первом раунде фирма получила финансирование более $5 млн от фондов First Round Capital, IA Ventures, NEA, а также от частных лиц: Шаблон:Нп2, Макса Левчина, Шаблон:Нп2 и Эштона Кутчера. 18 июня 2012 года вышла первая версия продукта. Сообщается об использовании СУБД такими заказчиками, как Comcast, Zynga, Verisign, Shutterstock. В начале 2014 года в рамках второго раунда фирма получила инвестиции в размере $35 млн[1].

Примечания

  1. Jack Clark (23 січня 2014). MemSQL bods develop new transaction: $35m now in-pocket. The Register (англ.). Процитовано 23 січня 2014.

Ссылки