Рубрика «высокая производительность» - 70

Грузим терабайты бочками или SparkStreaming vs Spring+YARN+Java - 1

В рамках проекта интеграции GridGain и хранилища на базе Hadoop (HDFS + HBASE) мы столкнулись с задачей получения и обработки существенного объема данных, примерно до 80 Тб в день. Это необходимо для построения витрин и для восстановления удаленных в GridGain данных после их выгрузки в наше долговременное хранилище. В общем виде, можно сказать, что мы передаём данные между двумя распределёнными системами обработки данных при помощи распределённой системы передачи данных. Соответственно, мы хотим рассказать о тех проблемах, с которыми столкнулась наша команда при реализации данной задачи и как они были решены.

Так как инструментом интеграции является кафка (весьма подробно об этом инструменте описано в статье Михаила Голованова), естественным и легким решением тут выглядит использование SparkStreaming. Легким, потому что не нужно особо беспокоиться о падениях, переподключениях, коммитах и т.д. Spark известен, как быстрая альтернатива классическому MapReduce, благодаря многочисленным оптимизациям. Нужно лишь настроиться на топик, обработать батч и сохранить в файл, что и было реализовано. Однако в ходе разработки и тестирования была замечена нестабильность работы модуля приема данных. Для того чтобы исключить влияние потенциальных ошибок в коде, был произведен следующий эксперимент. Был выпилен весь функционал обработки сообщений и оставлено только прямое сохранение сразу в avro:
Читать полностью »

Добрый вечер, коллеги.

Перевод статьи, который мы вам предложим сегодня, призван помочь ответить на вопрос: а назрела ли необходимость целой книги по оптимизации кода на Java? Надеемся, что материал не только покажется вам интересным, но и пригодится на практике. Пожалуйста, не забудьте проголосовать.
Читать полностью »

Обзор и тестирование СХД Infortrend EonStor DS2024 2-го поколения - 1В статье «СХД Infortrend — альтернатива А-брендам. Обзор и тестирование» мы описали функционал и производительность одной из самых популярных на тот момент SAN Infortrend — DS 3012T. К преимуществам СХД Infortrend, по итогам прошлой статьи, мы отнесли поддержку классических Enterprise-дисков (не брендированных) и обеспечение работы SATA-дисков в 2-контроллерных системах. Эти факты делают данные системы хранения уникальными, т.к. используя SATA SSD Enterprise, можно построить бюджетную систему хранения с высокими показателями производительности и отказоустойчивости.

В этой статье мы рассмотрим 24-дисковую модель SAN 2000-ой серии, и уделим больше внимания интерфейсу управления Infortrend SANWatch.
Читать полностью »

OpenVINO Toolkit — чтобы смотреть на мир незатуманенным взглядом - 1

Буквально вчера увидела свет новая версия Open Visual Inference & Neural Network Optimization (OpenVINO) toolkit (ранее Intel Computer Vision SDK) — набора библиотек, средств оптимизации и информационных ресурсов для разработки софта, использующего машинное зрение и Deep Learning. Цель OpenVINO — ускорить процесс создания систем компьютерного зрения, предоставляя программистам интегрированную среду разработки, а также оптимизировать код этих продуктов, требующий больших вычислительных затрат, под разнообразные аппаратные платформы (CPU, GPU, FPGA) Intel.

Под катом — полный список компонентов OpenVINO Toolkit, перечень совместимого железа и полезные ссылки.
Читать полностью »

«Мегафон» заказал комплекс СХД «Купол» для хранения трафика по закону Яровой - 1

Один из ведущих производителей оборудования для СОРМ компания «Национальные технологии» разместила на портале госзакупок документацию по системе хранения данных «Купол», которая разработана при её участии.

Как следует из документации, до 30 мая 2018 года компания обязуется поставить оборудование на восемь площадок «Мегафона» и три площадки «Скартел» («дочка» «Мегафона», работает под брендом Yota). Площадки «Мегафона» располагаются в Москве, Санкт-Петербурге, Нижнем Новгороде, Самаре, Екатеринбурге, Саранске, Пскове и Смоленске, площадки Yota — в Москве, Санкт-Петербурге и Самаре.

С помощью этой системы «Мегафон» может хранить около 100 петабайт данных (62,6 ПБ в московском дата-центре). Комплексы для Yota рассчитаны на 7,6 ПБ. Эксперты поясняют, что суммарный трафик «Мегафона» в несколько десятков раз превышает объём поставки, так что это тестовая закупка всего лишь на 1 миллиард рублей.
Читать полностью »

Java — очень распространённая платформа, на ней пишут очень разные вещи, начиная от Big Data, заканчивая микросервисами, монолитами, enterprise и прочим. И, как правило, всё это развёртывают на Linux серверах. При этом, соответственно, те люди, которые пишут на Java, зачастую делают это совсем на других операционных системах. Там они:

  • пишут код;
  • отлаживают, тестируют;
  • после этого упаковывают в jar;
  • отправляют на Linux, и оно работает.

В том, что оно работает, нет особой магии. Но это приводит к тому, что такие разработчики немножечко «засахариваются» в своём мире кроссплатформенности и не очень хотят разбираться, а как оно на самом деле работает в реальной операционной системе.

Java и Linux — особенности эксплуатации - 1

С другой стороны, есть те, кто занимается администрированием серверов, на их сервера устанавливают JVM, отправляют jar и war-файлы, а с точки зрения мира Linux все это:

  • чужеродное;
  • проприетарное;
  • собирается не из исходников;
  • поставляется какими-то jar-архивами;
  • «отъедает» всю память на сервере;
  • вообще, ведёт себя не по-человечески.

Цель доклада Алексея Рагозина на Highload++, расшифровка которого идет далее, была в том, чтобы рассказать особенности Java для «линуксоидов» и, соответственно, Linux — Java-разработчикам.
Читать полностью »

В эту пятницу, 18 мая, состоится профессиональная конференция веб-разработчиков DevConf 2018. Приглашаем принять участие. Очень кратко про программу:

DevConf::BackEnd: Агрегатное мышление, переписывание проекта с Drupal 8 на Yii 2, Yii 2.1, PHP и фреймворки, Service Oriented Architecture, отправка уведомлений, sample profiling, open tracing, Business Intelligence.

DevConf::FrontEnd: HOC в React, WebRTC: видеозвонки из браузера, Headless Chrome, архитектура большого легаси проекта, JSON API, Фреймворк для индивидуального дизайна, Тестируй это, Node.js и бесплатный митап LuaInMoscow.

DevConf::Storage: MySQL/MariaDB/Percona Server: что нового, логическая репликация в PostgreSQL, SphinxSearch, ClickHouse, ProxySQL для отказоустойчивости MySQL, обзорный доклад про разные механизмы сжатия данных от Андрея Аксенова.
Читать полностью »

Лучшие методики проектирования производительных мобильных API - 1

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

Я использую Go для написания рекламной сети вот уже почти год. Разработку веду на сервере Intel i7-7700, 16Gb RAM, 256Gb SSD. И в скрипте который выполняется раз в сутки появилась задача выбрать все показы за прошедшие сутки и пересчитать на этой основе статистику за день сразу по нескольким объектам (сайт, кампания, баннер).

По идиомам Go делается всё достаточно тривиально:
Читать полностью »

Здравствуйте, коллеги.

Сегодня хотим обсудить с вами такую нетривиальную тему как архитектура IoT для больших предприятий. Популяризация IoT на русском языке идет полным ходом, однако на английском языке уже выходят первые серьезные книги об архитектуре таких решений в масштабе (больших) предприятий. Нас изрядно заинтересовала следующая книга Перри Ли (Perry Lea):

Промышленный IoT: изучение спроса - 1

Просим вас активно высказываться насчет актуальности этой книги. Если кто-то хочет поделиться реальным опытом реализации промышленного IoT в России и/или отрецензировать перевод книги — также пишите.

Под катом предлагаем перевод публикации Red Hat, где рассмотрены вопросы грамотного и безопасного проектирования API для IoT-систем
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js