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

Зачем нужны дженерики в Go? - 1

Эта статья о том, что будет означать добавление дженериков в Go, и почему я считаю, что нам это следует сделать. Также я коснусь возможного изменения архитектуры языка ради добавления дженериков.

Go вышел 10 ноября 2009-го. Меньше чем через сутки появился первый комментарий про дженерики. В нём также упомянуты исключения, которые мы добавили в язык в виде паники и восстановления (panic and recover) в начале 2010-го.

За три года наблюдений отсутствие дженериков всегда входило список трёх главных проблем, которые необходимо исправить в языке.
Читать полностью »

Новый подход может помочь нам избавиться от вычислений с плавающей запятой - 1

В 1985 году Институт инженеров электротехники и электроники (IEEE) установил стандарт IEEE 754, отвечающий за форматы чисел с плавающей запятой и арифметики, которому суждено будет стать образцом для всего железа и ПО на следующие 30 лет.

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

Приветствуем вас!

В свое время мы первыми вывели на российский рынок тему Kafka и продолжаем следить за ее развитием. В частности, нам показалась интересной тема взаимодействия Kafka и Kubernetes. Обзорная (и довольно осторожная) статья на эту тему выходила в блоге компании Confluent еще в октябре прошлого года под авторством Гвен Шапиры. Сегодня же мы хотим обратить ваше внимание на более свежую, апрельскую статью Йоханна Гайгера (Johann Gyger), который, хотя и не обошелся без вопросительного знака в названии, рассматривает тему в более предметном ключе, сопровождая текст интересными ссылками. Простите нам пожалуйста вольный перевод «chaos monkey», если сможете!

image


Читать полностью »

Вселенная отчётности на SAP - 1

Примерно 4 года назад мы перенесли нашу систему отчётности с Oracle на SAP Hana. Сегодня в ней хранится около 10 000 таблиц, ею пользуется 38 000 человек и в ней ежедневно происходят более 5000 процессов загрузки. На текущий момент наш комплекс, на котором работает система, представляет собой 8 серверов с 14 Тб памяти. Каждый день в системе отчётности обрабатывается 1,5 Пб данных. При этом Hana оказалась примерно в 20 раз производительнее Oracle, DB2 и MySQL. И сегодня я хочу рассказать, как мы в рамках интеграции «М.Видео» и «Эльдорадо» дополнительно повышали производительность системы отчётности, какие оптимизации вносили.
Читать полностью »

Классическое PHP-приложение — однопоточность, тяжелая загрузка (если вы конечно не пишите на микрофреймворках) и неизбежная смерть процесса после каждого запроса… Такое приложение тяжелое и медленное, но мы можем дать ему вторую жизнь гибридизацией. Чтобы ускорить — демонизируем и оптимизируем утечки памяти, чтобы добиться большей производительности — внедрим собственный сервер РНР-приложений RoadRunner на Golang, чтобы добавить гибкости — упростим PHP-код, расширим стек и разделим ответственность между сервером и приложением. По сути, заставим наше приложение работать, как если бы мы писали его на Java или другом языке.

Благодаря гибридизации ранее медленное приложение перестало страдать 502 ошибками под нагрузками, уменьшилось среднее время ответа на запросы, производительность увеличилась, а деплой и сборка стали проще за счет унификации приложения и избавления от лишней обвязки в виде nginx + php-fpm.

Антон Титов (Lachezis) — технический директор и соучредитель SpiralScout LLC с опытом активной коммерческой разработки на PHP в 12 лет. Последние несколько лет активно внедряет Golang в стек разработки компании. Об одном из примеров Антон рассказал на PHP Russia 2019.
Читать полностью »

InterSystems IRIS and transactionСУБД InterSystems IRIS поддерживает любопытные структуры для хранения данных — глобалы. По сути это многоуровневые ключи с различными дополнительными плюшками в виде транзакций, быстрых функций для обхода деревьев данных, блокировок и своего языка ObjectScript.

Подробнее о глобалах в цикле статей «Глобалы — мечи-кладенцы для хранения данных»:

Деревья. Часть 1.
Деревья. Часть 2.
Разреженные массивы. Часть 3.

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

Язык Go набирает популярность. Настолько уверенно, что появляется все больше конференций, например, GolangConf, а язык входит в десятку самых высокооплачиваемых технологий. Поэтому уже имеет смысл разговаривать о его специфических проблемах, например, производительности. Кроме общих для всех компилируемых языков проблем, у Go есть и свои собственные. Они связаны с оптимизатором, стеком, системой типов и моделью многозадачности. Способы их решения и обхода иногда бывают весьма специфическими.

Даниил Подольский, хоть и евангелист Go, тоже встречает в нем много странного. Все странное и, главное, интересное собирает и тестирует, а потом рассказывает об этом на HighLoad++. В расшифровке доклада будут цифры, графики, примеры кода, результаты работы профайлера, сравнение производительности одних и тех же алгоритмов на разных языках — и все остальное, за что мы так ненавидим слово «оптимизация». В&nbsp расшифровке не будет откровений — откуда они в таком простом языке, — и всего, о чем можно прочесть в газетах.

Читать полностью »

Привет! Каждый SRE в нашей команде когда-то мечтал спокойно спать по ночам. Мечты имеют свойство сбываться. В этой статье я расскажу про это и про то, как мы достигаем производительности и устойчивости своей системы Dodo IS.

День, когда Dodo IS остановилась. Асинхронный сценарий - 1Читать полностью »

Всем привет! В июне в Новосибирске прошла конференция по разработке высоконагруженных приложений HighLoad++ Siberia 2019. Ранее в статьях на Хабре мы упоминали, что мы в компании Plesk проводим ретроспективу конференций и докладов, которые посещаем, чтобы не потерять полученные знания и впоследствии применить их. Мы расскажем, какие доклады для себя отметили, а также поделимся с вами рецептом ретроспективы. Организаторы постепенно выкладывают видео сюда: youtube-канал. Часть из того, что мы описываем, уже можно посмотреть.
Читать полностью »

Три лауреата премии Дейкстры: как прошли Hydra 2019 и SPTDC 2019 - 1

Совсем недавно, с 8 по 12 июля, одновременно проходило два знаковых события — конференция Hydra и школа SPTDC. В этом посте хочется отметить несколько особенностей, которые мы заметили по ходу проведения конференции.

Самая большая гордость Гидры и Школы — это докладчики.

  • Три лауреата премии Дейкстры: Leslie Lamport, Maurice Herlihy и Michael Scott. Причём Морис получил её целых два раза. Лесли Лэмпорт получил еще и премию Тьюринга — самую престижную премию ACM в информатике;
  • Создатель JIT-компилятора Java — Cliff Click;
  • Разработчики корутин — Роман Елизаров (elizarov) и Никита Коваль (ndkoval) для Kotlin, и Дмитрий Вьюков для Go;
  • Контрибьюторы в Cassandra (Алекс Петров), CosmosDB (Денис Рысцов), Yandex Database (Семен Чечеринда и Владислав Кузнецов);
  • И множество других известных людей: Martin Kleppmann (CRDT), Heidi Howard (Paxos), Ori Lahav (C++ memory model), Pedro Ramalhete (wait-free data structures), Алексей Зиновьев (ML), Дмитрий Бугайченко (анализ графов).

Здесь все спикеры — самые лучшие. Любого из них хватило бы, чтобы сделать отдельную небольшую конференцию, а все вместе они — Гидра (существо с 17 головами-докладами, экспертно разбирающееся в распределенных системах).

Читать полностью »


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