Apache Trafodion

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:15, 30 января 2019.
Apache Trafodion
Trafodion.jpg
Разработчики: ASF (Apache Software Foundation)
Выпущена: 1 Мая 2017 года
Постоянный выпуск: 2.3 / 18 Декабря 2018 года
Предыдущий выпуск: 2.1.0-preview / 1 Мая 2017 года
Состояние разработки: Активное
Написана на: C++, Java
Операционная система: Linux
Тип ПО: RDBMS (Relational Database Management System)
Лицензия: Apache License 2.0
Веб-сайт trafodion.apache.org

Apache Trafodion (валлийск. транзакция, произносится как "Tra-vod-eee-on") - это масштабируемое веб-решениеме SQL-on-Apache Hadoop, позволяющим выполнять транзакции и операции на Apache Hadoop. Trafodion основывается на масштабируемости, эластичности и гибкости Hadoop. Trafodion расширяет Hadoop для обеспечения гарантированной целостности транзакций, что позволяет использовать новые виды больших данных приложений, запускаемых на Hadoop[Источник 1].

Общие сведения

Trafodion предоставляет операционный механизм SQL-on-Hadoop - решение, ориентированное на рабочие нагрузки в среде Hadoop Big Data[Источник 1].

Trafodion предоставляет такие возможности, как:

  • Полная поддержка ACID (Atomicity, Consistency, Isolation, Durability) для запросов на чтение и запись, включая распределенную защиту транзакций для нескольких строк, таблиц и операторов;
  • Доступ к гетерогенному доступу к хранилищу, включая собственный доступ к хранилищам данных;
  • Расширенная поддержка высокой доступности для клиентских приложений;
  • Поддержка больших наборов данных с использованием оптимизированного параллелизма внутри запроса;
  • Повышение производительности для рабочих нагрузок OLTP с помощью компиляции и оптимизации времени выполнения.

Функции управления транзакциями включают:

  • Сериализуемость транзакций с использованием реализации HBase-Trx многоконвертного управления параллелизмом;
  • Восстановление транзакций для достижения согласованности базы данных;
  • Поддержка управления транзакциями с поддержкой потоков для работы с многопоточными SQL-клиентами;
  • Не транзакционный / прямой доступ к таблицам HBase.

Основные особенности и преимущества

Ниже представлены основные особенности и преимущества Apache Trafodion[Источник 1].

  • Полная поддержка функционировала ANSI SQL языка;
  • JDBC / ODBC подключение для клиентов Linux / Windows;
  • Распределенная защита ACID[1] транзакций для нескольких операторов, таблиц и строк;
  • Повышение производительности для рабочих нагрузок OLTP с компиляцией и временем выполнения оптимизации;
  • Поддержка больших наборов данных с использованием параллельно-осведомленного оптимизатора запросов;
  • Повторное использование существующих навыков SQL и повышение производительность труда разработчиков;
  • Раcпределенные ACID транзакции гарантируют целостность данных для нескольких строк и таблиц;
  • Взаимодействие с существующими инструментами и приложениями;
  • Простота добавления к существующей инфраструктуре Hadoop.

Архитектура Apache Trafodion

Рисунок 1 – Архитектура процесса Apache Trafodion

На рисунке 1 показана архитектура процесса Apache Trafodion[Источник 2].

  • Клиентские приложения общаются с Trafodion через JDBC (Java DataBase Connectivity) или ODBC (Open Database Connectivity)интерфейс. Драйверы Trafodion реализовывают эти интерфейсы, используя оптимизированный Trafodion wire протокол, чтобы общаться с процессом Master Executor в SQL слое.
  • Master Executor - это корневой процесс выполнения выражений SQL, представленных с помощью JDBC или ODBC. Он содержит копию кода SQL компилятора. Большинство SQL выражений составляются в рамках этого процесса. Корень любого скомпилированного плана запроса также выполняется в Master Executor;
  • Некоторые выражения SQL (например, DDL и некоторые утилиты) требуют второго экземпляра кода компилятора;
  • Trafodion поддерживает несколько форм параллельности время-выполнение. Когда план запроса требует параллелизм, набор ESP (Executor Server Processes) динамически подключается (если он уже не доступен). Каждый ESP выполняет фрагмент плана запроса;
  • Процесс DTM (Distributed Transaction Management) управляет распределенными транзакциями. Он включает в себя ведение журналов и координации транзакций;
  • Слой Storage Engine состоит из процессовApache HBase и Apache Hadoop. Trafodion позволяет получить SQL доступ к нативным таблицам HBase. Для того чтобы обработать эти таблицы, Trafodion считывает метаданные HBase. Trafodion также предлагает свою собственную реализацию таблицы SQL, которая хранится в виде таблицы HBase для приложений, которым требуется более эффективное представление OLTP. Trafodion генерирует свои собственные метаданные для таких таблиц, а также хранит их в HBase.

Связь приложенений с Apache Trafodion

Структура подключения к базам данных служб (DCS[2]) позволяет приложениям, разработанным для API ODBC (Open Database Connectivity) / ACID (Atomicity, Consistency, Isolation, Durability), обращаться к серверу базы данных Trafodion SQL. DCS использует базовый экземпляр HBase Apache ZooKeeper для определения кластера. Apache ZooKeeper - это централизованный сервис для поддержания информации о конфигурации, присвоения имен, предоставления распределенной синхронизации и предоставления групповых услуг. Все участвующие узлы и клиенты должны иметь доступ к запущенной службе ZooKeeper.

DCS представляет собой набор компонентов:

  • Драйверы ODBC / JDBC: предоставление стандартного API среднего уровня программирования для доступа СУБД.
  • Главный сервер DCS отвечает за мониторинг всех экземпляров сервера в кластере. Он назначает запрос подключения клиента ODBC / JDBC к процессу мастер-исполнителя (MXOSRVR). У него также есть процесс резервного копирования, который во время сбоев берет на себя роль главного исполнителя.
  • Процесс сервера DCS: этот процесс отвечает за запуск и ведение процесса сервера Master Executor (MXOSRVR). На каждом узле кластера есть один процесс сервера DCS.
  • Master Executor Process: это сервер базы данных, обеспечивающий доступ к базе данных клиентам ODBC / JDBC. Между соединением клиента ODBC / JDBC и процессом сервера базы данных существует взаимно однозначное отношение. Мастер-исполнитель выполняет все SQL-запросы от имени запросов своего клиента. Он выполнит все необходимые вызовы SQL для выполнения SQL-запроса через Executor для доступа к таблицам HBase. Главный исполнитель часто упоминается как MXOSRVR [Источник 3] .

Транзакции в Apache Trafodion

Trafodion поддерживает распределенные семантики ACID (Atomicity, Consistency, Isolation, Durability) транзакций с использованием модели Multi-Version Concurrency Control (MVCC). Управление транзакциями построено поверх проекта HBase-trx, реализующего следующие изменения:

  • Управление транзакциями Trafodion модернизировано, чтобы использовать механизм сопроцессора HBase;
  • Добавлена ​​поддержка параллельных рабочих процессов, выполняющих работу от имени одной и той же транзакции;
  • Добавлена ​​поддержка глобальных транзакций, то есть транзакций, которые могут охватывать ресурсы (регионы / таблицы) в кластере HBase;
  • Добавлено восстановление транзакции после сбоя сервера.

На узле кластера, работающего под управлением Trafodion, есть процесс распределенного управления транзакциями (DTM). Процесс DTM владеет и отслеживает все транзакции, которые были запущены на этом узле. (В HBase-trx транзакции отслеживались в коде библиотеки каждого клиента, а это означало, что после сбоя сервера не было возможности перезапустить диспетчер транзакций для сомнительных транзакций.)

Когда клиент Trafodion запускает инструкцию SQL, он проверяет с помощью Transaction Manager (TM), чтобы начать транзакцию. TM возвращает уникальный идентификатор транзакции для кластера. Этот идентификатор транзакции в свою очередь распространяется Trafodion Executor на любые процессы, которые работают с некоторым фрагментом этого оператора SQL. Это распространение идентификатора транзакции происходит с использованием уровня обмена сообщениями Trafodion, который отслеживает, например, произошел ли процесс смерти.

Когда процесс Trafodion Executor выдает вызов HBase, модифицированная клиентская библиотека HBase-trx может вывести, какой ТМ владеет транзакцией из идентификатора транзакции, и регистрируется с этим ТМ, если он еще этого не сделал. Таким образом, в любой момент времени ТМ осознает, какие процессы участвуют в транзакции.

Оригинальная библиотека HBase-trx работала, расширяя некоторые классы Java в этой области. Реализация по большей части была изменена для выполнения этой библиотеки в сопроцессорах. Это позволяет улучшить расширяемость на уровне HBase. С помощью подхода расширения класса только одна функция может расширять код HBase. С сопроцессорами можно разместить несколько расширений. Копроцессоры Endpoint и observer выполняют роль менеджера ресурсов при обработке транзакций[Источник 4].

Установка Apache Trafodion

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

Установка бинарных файлов

Скачать файлы Trafodion со страницы загрузки Trafodion с помощью следующих команд. Необходимо скачать следующие пакеты:

  • Trafodion Installer;
  • Trafodion Server.

Скачивание установщика Trafodion:

$ mkdir $HOME/trafodion-download
$ cd $HOME/trafodion-download
$ wget http://apache.cs.utah.edu/trafodion/trafodion-2.2.0/apache-trafodion-pyinstaller-2.2.0.tar.gz

Скаивание установщика сервера:

$ wget http://apache.cs.utah.edu/trafodion/trafodion-2.2.0/apache-trafodion_server-2.2.0-RH-x86_64.tar.gz

Для просмотра содержимого каталогов:

$ ls -l
-rw-rw-r--. 1 centos centos     74237 Feb 13 14:53 apache-trafodion_pyinstaller-2.2.0.tar.gz
-rw-rw-r--. 1 centos centos 183114066 Feb 10 22:34 apache-trafodion_server-2.2.0-RH-x86_64.tar.gz

Распаковка установщиков серевра и Trafodion

Для распаковка установщика серевра и Trafodion введите команду:

$ mkdir $HOME/trafodion-installer
$ cd $HOME/trafodion-downloads
$ tar -zxf apache-trafodion-pyinstaller-2.2.0.tar.gz -C $HOME/trafodion-installer
$ cp -f apache-trafodion_server-2.2.0-RH-x86_64.tar.gz $HOME/trafodion-installer
$ ls $HOME/trafodion-installer/python-installer
apache-trafodion_server-2.2.0-RH-x86_64.tar.gz  db_install.py    LICENSE  prettytable.py  scripts
configs                                                    db_uninstall.py  discovery.py  NOTICE   README.md

Установка Trafodion и серевра Trafodion

Для установки введите следующие команды:

$ cd $HOME/trafodion-installer/python-installer
$ ./db_install.py

На этом установка Trafodion и серевра Trafodion завершена[3].

Примечания

  1. ACID описывает требования к СУБД, обеспечивающие наиболее надёжную и предсказуемую её работу.
  2. Распределённая система управления (англ. Distributed Control System, DCS) — система управления технологическим процессом, отличающаяся построением распределённой системы ввода-вывода и децентрализацией обработки данных.
  3. Более подробно об установке можно найти здесь install-guided-install

Источники

  1. 1,0 1,1 1,2 About Apache Trafodion // Apache Trafodion [2005—2019] Дата обновления 13.01.19 URL: http://trafodion.incubator.apache.org/ (дата обращения: 30.01.2019).
  2. Apache Trafodion architecture overview // Apache Trafodion [2005—2019].Дата обновления 13.01.19. URL: http://trafodion.apache.org/architecture-overview.html (дата обращения: 22.01.2019).
  3. Apache Trafodion connectivity // Apache Trafodion [2005—2019].Дата обновления 14.01.19. URL: http://trafodion.apache.org/architecture-overview.html#connectivity (дата обращения: 27.01.2019).
  4. Apache Trafodion transactions // Apache Trafodion [2005—2019]. Дата обновления 13.01.19. URL: http://trafodion.apache.org/architecture-overview.html#transactions (дата обращения: 27.01.2019).