Jump to content

Апач Игнит

Апач Игнит
Оригинальный автор(ы) Системы GridGain
Разработчик(и) Фонд программного обеспечения Apache
Первоначальный выпуск 24 марта 2015 г .; 9 лет назад ( 24 марта 2015 )
Стабильная версия
2.16.0 / 25 декабря 2023 г .; 7 месяцев назад ( 25.12.2023 ) [1]
Предварительный выпуск
3.0.0 (альфа 5) / 15 июня 2022 г .; 2 года назад ( 15.06.2022 ) [1]
Репозиторий Зажечь репозиторий
Написано в Java , С# , С++ , SQL
Операционная система Кросс-платформенный
Платформа IA-32 , x86-64 , PowerPC , SPARC , платформа Java , .NET Framework
Тип База данных , вычислительная платформа
Лицензия Лицензия Апач 2.0
Веб-сайт зажечь .apache .org

Apache Ignite — это распределенная система управления базами данных для высокопроизводительных вычислений.

База данных Apache Ignite использует ОЗУ в качестве уровня хранения и обработки по умолчанию, таким образом, относясь к классу вычислительных платформ в памяти . [2] Уровень диска не является обязательным, но после его включения будет храниться полный набор данных, тогда как уровень памяти [3] будет кэшировать полный или частичный набор данных в зависимости от его емкости.

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

Кластер Apache Ignite можно развернуть локально на стандартном оборудовании, в облаке (например, Microsoft Azure , AWS , Google Compute Engine ) или в контейнерных средах и средах подготовки, таких как Kubernetes , Docker , Apache Mesos , VMware . [4] [5]

Apache Ignite был разработан компанией GridGain Systems, Inc. и стал открытым исходным кодом в 2014 году. GridGain продолжает вносить основной вклад в исходный код и предлагает как коммерческую версию, так и профессиональные услуги для Apache Ignite.

После передачи исходного кода с открытым исходным кодом Ignite был принят в программу Apache Incubator в октябре 2014 года. [6] [7] Проект Ignite вышел из программы инкубатора и стал проектом Apache высшего уровня 18 сентября 2015 года. [7]

За последние годы Apache Ignite вошел в топ-5 самых активных проектов. [8] по некоторым показателям, включая активность пользовательской базы и размер репозитория.

GridGain была основана в 2010 году Никитой Ивановым и Дмитрием Сетракяном в Плезантоне, штат Калифорния . В ноябре 2011 года было объявлено о раунде финансирования от 2 до 3 миллионов долларов. [9] К 2013 году он располагался в Фостер-Сити, штат Калифорния, когда объявил о финансировании в размере 10 миллионов долларов. [10]

Кластеризация

[ редактировать ]

Компонент кластеризации Apache Ignite использует архитектуру без общего доступа . Серверные узлы — это хранилища и вычислительные единицы кластера, которые хранят как данные, так и индексы и обрабатывают входящие запросы вместе с вычислениями. Серверные узлы также известны как узлы данных. [11]

Клиентские узлы — это точки подключения приложений и сервисов к распределенной базе данных в кластере серверных узлов. Клиентские узлы обычно встроены в код приложения, написанный на Java , C# или C++ , для которого разработаны специальные библиотеки.Помимо своей распределенной основы, Apache Ignite поддерживает интерфейсы, включая JCache-совместимые API-интерфейсы «ключ-значение», ANSI-99 SQL с объединениями, транзакции ACID , а также вычисления, подобные MapReduce .Ignite предоставляет ODBC , [12] JDBC [13] и драйверы REST как способ работы с базой данных из других языков программирования или инструментов. Драйверы используют либо клиентские узлы, либо внутренние сокетные соединения низкого уровня для связи с кластером.

Разделение и репликация

[ редактировать ]

База данных Ignite организует данные в виде пар ключ-значение в распределенных «кэшах» (понятие кэша используется по историческим причинам, поскольку изначально база данных поддерживала уровень памяти). Обычно каждый кэш представляет один тип объекта, например сотрудника или организацию.

Каждый кеш разделен на фиксированный набор «разделов», которые равномерно распределяются между узлами кластера с использованием алгоритма рандеву-хеширования . Всегда существует одна основная и ноль или несколько резервных копий раздела. Количество копий настраивается с помощью параметра коэффициента репликации. [14] Если настроен режим полной репликации, то на каждом узле кластера будет храниться копия раздела. Разделы перебалансированы [15] автоматически, если узел добавляется в кластер или удаляется из него, чтобы добиться равномерного распределения данных и распределения рабочей нагрузки.

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

Архитектура памяти

[ редактировать ]

Архитектура памяти в Apache Ignite состоит из двух уровней хранения и называется «долговременной памятью». Внутри он использует подкачку для управления пространством памяти и ссылки на данные. [16] аналогично виртуальной памяти таких систем, как Unix . Однако одно существенное различие между архитектурами устойчивой и виртуальной памяти заключается в том, что первая всегда хранит весь набор данных с индексами на диске (при условии, что дисковый уровень включен), тогда как виртуальная память использует диск, когда ей не хватает оперативной памяти. только в целях обмена.

Первый уровень архитектуры памяти, уровень памяти, хранит данные и индексы в оперативной памяти вне кучи Java в так называемых «областях вне кучи». Области предварительно выделяются и управляются самой базой данных, что предотвращает использование кучи Java для нужд хранения и, как следствие, помогает избежать длительных пауз при сборке мусора. Регионы разделены на страницы фиксированного размера, на которых хранятся данные, индексы и системные метаданные. [17]

всегда можно использовать второй уровень, уровень диска Apache Ignite полностью работоспособен на уровне памяти, но для обеспечения надежности . База данных имеет собственное хранилище данных и, кроме того, может использовать базы данных RDBMS , NoSQL или Hadoop в качестве дискового уровня.

Родная настойчивость

[ редактировать ]

Собственная персистентность Apache Ignite — это распределенное и строго согласованное дисковое хранилище, которое всегда хранит на диске расширенный набор данных и индексов. Уровень памяти [3] будет кэшировать столько данных, сколько возможно, в зависимости от его емкости. Например, если имеется 1000 записей и уровень памяти может поместить только 300 из них, то все 1000 будут храниться на диске и только 300 будут кэшироваться в оперативной памяти.

Постоянство использует метод упреждающей записи (WAL) для сохранения немедленных изменений данных на диске. [18] В фоновом режиме хранилище запускает «процесс контрольных точек», целью которого является копирование грязных страниц с уровня памяти в файлы разделов. Грязная страница — это страница, измененная в памяти, причем изменения записаны в WAL, но не записаны в соответствующий файл раздела. Чекпоинтинг позволяет со временем удалять устаревшие сегменты WAL и сокращает время перезапуска кластера, воспроизводя только ту часть WAL, которая не была применена к файлам разделов. [19]

Стороннее сохранение

[ редактировать ]

Собственная персистентность стала доступна начиная с версии 2.1. [20] До этого Apache Ignite поддерживал на своем дисковом уровне только сторонние базы данных.

Apache Ignite можно настроить как уровень в памяти поверх баз данных RDBMS , NoSQL или Hadoop, ускоряя последние. [21] Однако существуют некоторые ограничения по сравнению с нативным сохранением. Например, SQL-запросы будут выполняться только к данным, которые находятся в оперативной памяти, поэтому потребуется предварительная загрузка всего набора данных с диска в память.

Обмен местами

[ редактировать ]

При использовании хранилища в чистой памяти размер данных может превысить размер физического ОЗУ, что приведет к ошибкам нехватки памяти (OOME). Чтобы избежать этого, идеальным подходом было бы включить встроенную персистентность Ignite или использовать стороннюю персистентность. Однако, если вы не хотите использовать собственное или стороннее хранилище, вы можете включить подкачку, и в этом случае данные Ignite в памяти будут перемещены в пространство подкачки, расположенное на диске. Обратите внимание, что Ignite не предоставляет собственную реализацию пространства подкачки. Вместо этого он использует преимущества функции подкачки, предоставляемой операционной системой (ОС). Когда пространство подкачки включено, Ignites сохраняет данные в файлах с отображением в памяти (MMF), содержимое которых будет перенесено на диск операционной системой в зависимости от текущего потребления оперативной памяти.

Последовательность

[ редактировать ]

Apache Ignite — это строго согласованная платформа, реализующая протокол двухфазной фиксации . [22] Гарантии согласованности соблюдаются как для уровней памяти, так и для дисков. Транзакции в Apache Ignite совместимы с ACID и могут охватывать несколько узлов кластера и кэшей. База данных поддерживает пессимистический и оптимистический режимы параллелизма, транзакции без взаимоблокировок и методы обнаружения взаимоблокировок.

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

Распределенный SQL

[ редактировать ]

Доступ к Apache Ignite можно получить с помощью API-интерфейсов SQL, предоставляемых через драйверы JDBC и ODBC, а также собственные библиотеки, разработанные для Java , C# , C++ языков программирования . Синтаксис языков манипулирования данными и языка определения данных соответствует спецификации ANSI-99 .

Будучи распределенной базой данных, Apache Ignite поддерживает как распределенные совмещенные, так и несовмещенные соединения . [23] При совместном размещении данных соединения выполняются с локальными данными узлов кластера, избегая перемещения данных по сети. Несовмещенные соединения могут перемещать наборы данных по сети для подготовки согласованного набора результатов.

Машинное обучение

[ редактировать ]

Apache Ignite обеспечивает обучение машинному обучению и функции вывода, а также предварительную обработку данных и оценку качества модели. [24] Он изначально поддерживает классические алгоритмы обучения, такие как линейная регрессия , деревья решений , случайный лес , повышение градиента , SVM , K-Means и другие. В дополнение к этому Apache Ignite имеет глубокую интеграцию с TensorFlow . [25] Эта интеграция позволяет обучать нейронные сети на данных, хранящихся в Apache Ignite, в одном узле или распределенно.

Ключевая идея набора инструментов машинного обучения Apache Ignite — это возможность мгновенно выполнять распределенное обучение и логический вывод без массовой передачи данных. Он основан на подходе MapReduce , устойчив к сбоям узлов и перебалансировке данных, позволяет избежать передачи данных и тем самым ускорить предварительную обработку и обучение модели. [26]

  1. ^ Перейти обратно: а б «Загрузки — Apache Ignite» . ignite.apache.org . Проверено 9 апреля 2024 г.
  2. ^ «Никита Иванов о платформе вычислений в памяти Apache Ignite» . ИнфоQ . Проверено 11 октября 2017 г.
  3. ^ Перейти обратно: а б «Apache Ignite Native Persistence, краткий обзор — большие данные DZone» . dzone.com . Проверено 11 октября 2017 г.
  4. ^ «Развертывание Apache Ignite в Kubernetes в Microsoft Azure — DZone Cloud» . dzone.com . Проверено 11 октября 2017 г.
  5. ^ «Выполнение OLTP в памяти в реальном времени и аналитика с помощью Apache Ignite на AWS | Amazon Web Services» . Веб-сервисы Amazon . 14 мая 2016 г. Проверено 11 октября 2017 г.
  6. ^ «Никита Иванов о платформе вычислений в памяти Apache Ignite» . ИнфоQ . Проверено 2 ноября 2017 г.
  7. ^ Перейти обратно: а б «Статус Ignite — инкубатор Apache» . incubator.apache.org . Проверено 2 ноября 2017 г.
  8. ^ «Импульс Apache Ignite: основные события 2020–2021 годов: Apache Ignite» . блоги.apache.org . Проверено 13 июня 2022 г.
  9. ^ «Форма D – Уведомление об освобождении от уплаты налогов» . Комиссия США по ценным бумагам и биржам. 8 ноября 2011 года . Проверено 16 февраля 2022 г.
  10. ^ «Форма D – Уведомление об освобождении от уплаты налогов» . Комиссия США по ценным бумагам и биржам. 7 мая 2013 года . Проверено 16 февраля 2022 г.
  11. ^ «Клиенты и серверы» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  12. ^ «Драйвер ODBC» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  13. ^ «Драйвер JDBC» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  14. ^ «Основные и резервные копии» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  15. ^ «Ребалансировка данных» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  16. ^ «Apache Ignite 2.0: переработанная память вне кучи, DDL и машинное обучение: Apache Ignite» . блоги.apache.org . Проверено 11 октября 2017 г.
  17. ^ «Архитектура памяти» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  18. ^ «Зажгите настойчивость» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  19. ^ «Зажгите настойчивость» . apacheignite.readme.io . Проверено 11 октября 2017 г.
  20. ^ «Apache Ignite 2.1 — переход от In-Memory к архитектуре, ориентированной на память: Apache Ignite» . блоги.apache.org . Проверено 11 октября 2017 г.
  21. ^ «Apache Ignite для кэширования базы данных — база данных DZone» . dzone.com . Проверено 11 октября 2017 г.
  22. ^ «Распределенные мысли» . Проверено 11 октября 2017 г.
  23. ^ «Apache Ignite 1.7: Добро пожаловать несовмещенные распределенные объединения! — База данных DZone» . dzone.com . Проверено 11 октября 2017 г.
  24. ^ «Машинное обучение» . apacheignite.readme.io . Проверено 27 декабря 2018 г.
  25. ^ «TensorFlow: интеграция Apache Ignite» . github.com . Проверено 27 декабря 2018 г.
  26. ^ «Набор данных на основе разделов» . apacheignite.readme.io . Проверено 27 декабря 2018 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 27f263fdcbaa5e754e8e6a40616abcd2__1712688660
URL1:https://arc.ask3.ru/arc/aa/27/d2/27f263fdcbaa5e754e8e6a40616abcd2.html
Заголовок, (Title) документа по адресу, URL1:
Apache Ignite - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)