• Используем Apache Ignite в быту

      В продолжение темы «доступным языком про Ignite / GridGain», начатой в предыдущем посте (Для чего нужен Apache Ignite), давайте рассмотрим примеры использования продукта «для простых смертных».


      Терабайты данных, кластеры на сотни машин, big data, high load, machine learning, микросервисы и прочие страшные слова — всё это доступно Ignite. Но это не значит, что он не годится для менее масштабных целей.


      Сегодня мы рассмотрим, как Ignite может легко хранить любые ваши объекты, обмениваться ими по сети и обеспечивать взаимодействие .NET и Java.


      Apache Ignite.NET


      Читать дальше →
    • Apache® Ignite™ + Persistent Data Store — In-Memory проникает на диски. Часть I — Durable Memory



        В Apache Ignite, начиная с версии 2.1 появилась собственная реализация Persistence.

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

        Всё началось с фундаментальных проблем предыдущего механизма, который позволял интегрировать In-Memory Data Grid с внешними постоянными хранилищами, например, Cassandra или Postgres.

        Такой подход накладывал определенные ограничения — например, было невозможно выполнять SQL или распределенные вычисления поверх данных, которые находятся не в памяти, а в таком внешнем хранилище, был невозможен холодный запуск и низкий RTO (Recovery Time Objective) без существенных дополнительных усложнений.

        Если вы используете Apache Ignite Persistence, то оставляете себе все обычные возможности Apache Ignite — ACID, распределенные транзакции, распределенный SQL99, доступ через Java/.NET API или интерфейсы JDBC/ODBC, распределенные вычисления и так далее. Но теперь то, что вы используете, может работать как поверх памяти, так и поверх диска, который расширяет память, на инсталляциях от одного узла до нескольких тысяч узлов.

        Давайте посмотрим, как устроен Apache Ignite Persistence внутри. Сегодня я рассмотрю его основу — Durable Memory, а в следующей публикации — сам дисковый компонент.
        Читать дальше →
        • +22
        • 4,6k
        • 3
      • Apache Ignite 2.1 — теперь со вкусом Persistence

          В конце июля вышла версия Apache Ignite 2.1. Apache Ignite — распределенная свободная HTAP-платформа (HTAP — Hybrid Transactional and Analytical Processing, системы, которые могут обрабатывать как транзакционную, так и аналитическую нагрузку) для хранения данных в оперативной памяти и на диске, а также вычислений в реальном времени. Ignite написан на Java и может быть плотно интегрирован с .NET и C++.

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

          С Apache Ignite 2.1 можно использовать распределенное дисковое хранилище Apache Ignite Persistent Data Store с поддержкой SQL, первые распределенные алгоритмы машинного обучения, новые функции DDL, и кроме того значительно улучшена поддержка платформ .NET и C++.

          Persistent Data Store выводит Apache Ignite в новый сегмент — теперь это не просто in-memory data grid, но полноценная распределенная масштабируемая база данных HTAP с возможностью надежного хранения первичных данных, с поддержкой SQL и обработкой информации в реальном времени.
          Читать дальше →
          • +17
          • 3,7k
          • 5
        • ML Grid — библиотека машинного обучения в Apache Ignite

            Возможности новой библиотеки машинного обучения Apache ML Grid


            В релиз Apache Ignite 2.0 вошла бета-версия библиотеки машинного обучения Apache Ignite Machine Learning Grid (ML Grid), основанная на высокооптимизированном и масштабируемом API Apache Ignite Memory-Centric Platform.

            как работает машинное обучение

            Источник: xkcd

            О том, на что способна новая библиотека и как с ней работать, наш рассказ под катом.
            Читать дальше →
            • +19
            • 4,6k
            • 5
          • Apache Cassandra + Apache Ignite — как совместить лучшее

              Apache Cassandra — это одна из популярных распределенных дисковых NoSQL баз данных с открытым исходным кодом. Она применяется в ключевых частях инфраструктуры такими гигантами как Netflix, eBay, Expedia, и снискала популярность за свою скорость, способность линейно масштабироваться на тысячи узлов и “best-in-class” репликацию между различными центрами обработки данных.

              Apache Ignite — это In-Memory Computing Platform, платформа для распределенного хранения данных в оперативной памяти и распределенных вычислений по ним в реальном времени с поддержкой JCache, SQL99, ACID-транзакциями и базовой алгеброй машинного обучения.

              Apache Cassandra является классическим решением в своей области. Как и в случае с любым специализированным решением, её преимущества достигнуты благодаря ряду компромиссов, значительная часть которых вызвана ограничениями дисковых хранилищ данных. Cassandra оптимизирована под максимально быструю работу с ними в ущерб остальному. Примеры компромиссов: отсутствие ACID-транзакций и поддержки SQL, невозможность произвольных транзакционных и аналитических транзакций, если под них заранее не адаптированы данные. Эти компромиссы, в свою очередь, вызывают закономерные затруднения у пользователей, приводя к некорректному использованию продукта и негативному опыту, либо вынуждая разделять данные между различными видами хранилищ, фрагментируя инфраструктуру и усложняя логику сохранения данных в приложениях.

              Возможное решение проблемы — использование Cassandra в связке с Apache Ignite. Это позволит сохранить ключевые преимущества Cassandra, при этом скомпенсировав ее недостатки за счет симбиоза двух систем.

              Как? Читайте дальше, и смотрите пример кода.

              Читать дальше →
            • Распределенные структуры данных (часть 2, как это сделано)

                В предыдущей статье — часть 1, обзорная — я рассказал о том, зачем нужны распределенные структуры данных (далее — РСД) и разобрал несколько вариантов, предлагаемых распределенным кешем Apache Ignite.


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


                Итак:



                Читать дальше →
                • +25
                • 8,7k
                • 1
              • Бесплатные билеты на In-Memory Computing Summit 2017 – Europe

                  Всем привет! Возможно, вы знаете, что 20-21 июня в Амстердаме пройдет In-Memory Computing Summit 2017 – Europe. Все детали тут.



                  Мероприятие, ставшее уже традиционным в США, с этого года также будет ежегодно собирать экспертов из Европы и Азии на новой европейской площадке. На различных секциях конференции выступят представители компаний ING, Intel, Tata Consultancy Services, The Glue, Redis Labs, ScaleOut Software и WSO2.

                  У меня есть несколько бесплатных билетов, которыми я с удовольствием поделюсь с вами.
                  Напишите мне на почту mkuznetsov@gridgain.com или в личные сообщения на Хабре. От вас — ФИО и название компании на английском языке, адрес электронной почты и мобильный телефон.

                  Приезжайте, будет круто!
                • Apache Ignite 2.0 — Machine Learning, новая модель хранения данных, DDL

                    В мае вышла новая мажорная версия Apache Ignite — распределенной платформы, оптимизированной для работы с оперативной памятью, которая объединяет в себе хранилище вида ключ-значение с SQL99-совместимой базой данных, предлагая полную ACID-совместимость, высокую доступность, а также близкое к линейному масштабирование с нескольких узлов до тысяч, которые могут размещаться на собственном оборудовании либо в облаке. Ядро Apache Ignite написано на Java, но платформа, помимо экосистемы Java, поддерживает нативную интеграцию с приложениями на .NET и C++.

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

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

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


                    Читать дальше →
                    • +20
                    • 7,5k
                    • 5
                  • Распределенные структуры данных [часть 1, обзорная]

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


                      Современные же приложения стремятся использовать все имеющиеся ресурсы, в частности, все доступные CPU.


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


                      Про Vector...

                      На самом деле, потокобезопасные, но неэффективные, структуры данных, как, например, Vector и Hashtable, появились еще в Java 1.0.
                      В настоящий момент, они не рекомендуются к использованию.


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


                      А что если нужно, в реальном времени, обрабатывать информацию о 100 миллионах клиентов,
                      когда датасет занимает 100Тб, а каждую секунду нужно совершить 100+ тысяч операций?
                      Вряд ли это возможно, даже на самом крутом современном железе, а если и возможно — только представьте себе его стоимость!


                      Намного дешевле добиться такой же вычислительной мощности объединив множество обычных компьютеров в кластер.



                      Остается лишь вопрос межкомпьютерного взаимодействия привычными средствами, схожими по API с потокобезопасными коллекциями из пакета java.util.concurrent и дающими те же гарантии, но не на одном компьютере, а на всем кластере.


                      Читать дальше →
                    • Для чего нужен Apache Ignite / GridGain, на примере .NET & C#

                        В последнее время имена GridGain и Apache Ignite нередко мелькают в интернетах. Однако, судя по комментариям (например, здесь), мало кто понимает, что же это за продукт и с чем его едят.


                        В этой статье я попытаюсь доступным языком объяснить, и на примерах кода показать, что умеет Apache Ignite.


                        Apache Ignite Logo


                        Читать дальше →
                      Самое читаемое