Search
Write a publication
Pull to refresh
5
5
Владислав Щапов @phprus

Манул

Send message

Быстрое восстановление данных. Схема бабочки для регенерирующих кодов

Reading time7 min
Views4.9K


Для кодов, описанных в предыдущей статье про восстановление данных, предполагалась постановка задачи, при которой минимизируется количество дисков, необходимых при операции восстановления. В [2] обсуждается применение сетевого кодирования к задачам хранения данных, получившее значительное внимание исследователей в последние годы. Здесь рассматривается не оптимизация количества дисков, необходимых для восстановления данных, а минимизация возникающего при этом сетевого трафика.

Предположим, что система хранения состоит из n узлов. Рассмотрим файл, состоящий из B символов поля GF(q), который кодируется в nα символов над GF(q) и распределяется по узлам, так, что каждый узел хранит α символов. Код построен таким образом, что данные могут быть целиком восстановлены по информации с k узлов. При этом для восстановления данных одного узла достаточно получить β ≤ α информации с d узлов [1,2], см. рис. 1. Величина γ = dβ называется диапазоном восстановления (repair bandwidth).
Читать дальше →

«Как это работает»: Классификация ЦОД Tier

Reading time8 min
Views41K
В июне этого года было анонсировано сразу несколько важных событий в индустрии дата-центров. Для начала стало известно, что получено разрешение на строительство первого в Республике Бангладеш и единственного в своем роде в Азии национального ЦОДа категории Tier IV. Следом за этим японский технический гигант Fujitsu объявил о глобальной модернизации своих австралийских дата-центров — тоже до уровня Tier IV. Последние новости дали почву для размышлений об эволюции ЦОДов и сути их классификации, о чем сегодня мы и поговорим.

Читать дальше →

Как мы искали и нашли ошибку в Visual Studio C++

Reading time5 min
Views24K
Это был чудесный летний день. За окном сияли тучки, нежными голосами пели вороны, на автомойке весело пачкали шампунем чью-то машину, за стеной тихо скрёбся перфоратор — в общем, идиллия.

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

Предыстория


Компания у нас существует относительно давно, и основной продукт уже старше некоторых сотрудников компании, так что древнего кода хватает. Тем не менее, мы стараемся держаться в современном русле, Modern C++ активно используется, поэтому около года назад основной проект был переведён на VC2015. Это был отдельный цирк с конями, бубнами, блэкджеком и валерьянкой. Вспомогательный код переводится по мере того, как появляется время и желание. В данном случае, я решил перевести на VC2015 один из таких вспомогательных проектов, который очень активно используется нашей техподдержкой.

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

Процессоры Intel Xeon Scalable — новые имена и новые модели

Reading time1 min
Views25K


Официально представлены процессоры Intel Xeon с новыми наименованиями — Platinum, Gold, Silver и Bronze. Информация о грядущем «ребрендинге» появлялась на страницах информационных ресурсов с начала года, и вот теперь последовал официальный анонс целого семейства — Intel Xeon Scalable. Причем семейства очень большого — почти 60 моделей всех классов.

Xeon Scalable отличаются поддержкой ряда самых современных технологий Intel: Intel AVX-512, Intel Mesh, Intel QuickAssist, Intel Optane SSD, Intel Omni-Path Fabric, что вкупе дает солидный прирост производительности практически для всех вариантов применения. Особо значительный прогресс был достигнут в задачах виртуализации, высокопроизводительных вычислений и хранения данных. Побит и еще один рекорд — максимальной стоимости процессора Intel Xeon. Теперь она составляет $13 000 (у модели Intel Xeon Platinum 8180M).

Под катом — сравнительная табличка характеристик топовых моделей разных классов.
Читать дальше →

AMD объявила спецификации и стоимость процессоров Ryzen Threadripper 1920X и 1950X

Reading time3 min
Views21K

Кристалл AMD Ryzen. Процессоры Threadripper будут «склеены» из двух таких кристаллов в многочиповом модуле

Компания AMD рассекретила свои топовые десктопные процессоры Ryzen Threadripper 1920X и 1950X. Как и предполагалось, они по характеристикам примерно соответствуют лучшим представителям Core i9 X-series, но стоят на 200-1000 долларов дешевле.

По мнению некоторых экспертов, мощность этих CPU уже выходит за пределы класса «топовый десктоп» (HEDT, High-End Desktop). Это некий более высокий класс, который можно назвать «сверхтоповый десктоп». Его предлагается классифицировать как SHED: Super High-End Desktop.
Читать дальше →

Темные моменты SELinux

Reading time4 min
Views23K

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

Читать дальше →

Ограничение скорости обработки запросов в nginx

Reading time8 min
Views72K

Фотография пользователя Wonderlane, Flickr


NGINX великолепен! Вот только его документация по ограничению скорости обработки запросов показалась мне, как бы это сказать, несколько ограниченной. Поэтому я решил написать это руководство по ограничению скорости обработки запросов (rate-liming) и шейпингу трафика (traffic shaping) в NGINX.

Читать дальше →

Исследование устойчивости национальных сегментов сети

Reading time8 min
Views10K

Топ-20 устойчивых регионов за 2017 год на карте мира

Интернет как система сетей, взаимодействующих через узлы операторов связи (автономных систем — АС), тем устойчивее, чем больше альтернативных маршрутов между АС — простой принцип отказоустойчивости. Данное исследование демонстрирует, как отказ единичного, но наиболее значимого в регионе оператора влияет на глобальную доступность национального сегмента.

На глобальную доступность любого оператора связи влияют его пути до Tier-1 операторов. Tier-1 — транснациональные/трансконтинентальные операторы, обеспечивающие глобальную связность между континентами и странами.

Если отсутствуют пути до Tier-1 операторов — оператор не будет иметь глобальную доступность.
Читать дальше →

Linux все еще не торт

Reading time6 min
Views42K
Эта история началась около месяца назад, когда Кирилл Тхай добавил поддержку вложенных пространств имен в CRIU, после чего наша система CI приказала долго жить. В тот момент ничто не предвещало тех увлекательных приключений, в которые мы оказались вовлечены.

image
Читать дальше →

The Machine и экзафлопсные вычисления для эры Big Data

Reading time4 min
Views7.8K
В мае HPE продемонстрировала важный этап своей научно-исследовательской программы The Machine – прототип компьютера со 160 ТБ общей памяти. Программа направлена на разработку новой вычислительной архитектуры, ориентированной на память, а не на процессор (memory-driven computing). А уже в июне было объявлено, что на основе этой архитектуры будет создана эталонная модель экзафлопсного суперкомпьютера для Министерства энергетики США. Рассказываем подробнее об этих революционных новостях.


Быстрое удаление пробелов из строк на процессорах ARM

Reading time3 min
Views18K
Предположим, что я дал вам относительно длинную строку, а вы хотите удалить из неё все пробелы. В ASCII мы можем определить пробелы как знак пробела (‘ ’) и знаки окончания строки (‘\r’ и ‘\n’). Меня больше всего интересуют вопросы алгоритма и производительности, так что мы можем упростить задачу и удалить все байты со значениями меньшими либо равными 32.

В предыдущией статье, где я задавал вопрос об удалении пробелов на скорость, лучшим ответом было использование векторизации с помощью 128-битных регистров (SSE4). Оно оказалось в 5-10 раз быстрее подхода в лоб.

Очень удобно, что во всех процессорах имеются 128-битные векторные регистры, также как в процессорах x64. Неужели процессоры ARM могут работать настолько же быстро, как процессоры x64?
Читать дальше →

Как я нашёл баг в процессорах Intel Skylake

Reading time9 min
Views47K
Инструкторы курсов «Введение в программирование» знают, что студенты находят любые причины для ошибок своих программ. Процедура сортировки отбраковала половину данных? «Это может быть вирус в Windows!» Двоичный поиск ни разу не сработал? «Компилятор Java сегодня странно себя ведёт!» Опытные программисты очень хорошо знают, что баг обычно в их собственном коде, иногда в сторонних библиотеках, очень редко в системных библиотеках, крайне редко в компиляторе и никогда — в процессоре. Я тоже так думал до недавнего времени. Пока не столкнулся с багом в процессорах Intel Skylake, когда занимался отладкой таинственных сбоев OCaml.

Первое проявление


В конце апреля 2016 года вскоре после выпуска OCaml 4.03.0 один Очень Серьёзный Индустриальный Пользователь OCaml (ОСИП) обратился ко мне в частном порядке с плохими новостями: одно из наших приложений, написанное на OCaml и скомпилированное в OCaml 4.03.0, падало случайным образом. Не при каждом запуске, но иногда вылетал segfault, в разных местах кода. Более того, сбои наблюдались только на их самых новых компьютерах, которые работали на процессорах Intel Skylake (Skylake — это кодовое название последнего на тот момент поколения процессоров Intel. Сейчас последним поколением является Kaby Lake).

За последние 25 лет мне сообщали о многих багах OCaml, но это сообщение вызывало особенное беспокойство. Почему только процессоры Skylake? В конце концов, я даже не мог воспроизвести сбои в бинарниках ОСИПа на компьютерах в моей компании Inria, потому что все они работали на более старых процессорах Intel. Почему сбои не воспроизводятся? Однопоточное приложение ОСИПа делает сетевые и дисковые операции I/O, так что его выполнение должно быть строго детерминировано, и любой баг, который вызвал segfault, должен проявлять себя при каждом запуске в том же месте кода.
Читать дальше →

Вещи, которые мне надо было знать прежде, чем создавать систему с очередью

Reading time5 min
Views27K
Фото очереди в мавзолей Мао Цзэдуна —  BrokenSphere / Wikimedia Commons

В проекте, над которым я сейчас работаю, применяется распределённая система обработки данных: сначала несколько десятков машин одновременно производят некоторые сообщения, затем эти сообщения отправляются в очередь, из очереди три потока извлекают сообщения и после финальной обработки выкладывают данные в базу Redis. При этом имеется требование: от «зарождения» события в машине, производящей сообщение, до выкладывания обработанных данных в базу должно проходить не более четырёх секунд в 90% случаев.

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

Доставка миллиардов сообщений строго один раз

Reading time14 min
Views22K
Единственное требование ко всем системам передачи данных состоит в том, что нельзя потерять данные. Данные обычно могут поступить с опозданием или их можно запросить заново, но их никогда нельзя терять.

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

Но как пользователю по крайней мере однократная доставка — это не совсем то, что я хочу. Я хочу, чтобы сообщения доставлялись один раз. И только один раз.
Читать дальше →

Intel Omni-Path. Данным везде у нас дорога

Reading time3 min
Views5.8K
Повальная кластеризация всего и вся требует специфических технологий обмена данными, характеризующихся, прежде всего, низкими задержками и высокой скоростью. Самым известным и используемым в этой области стандартом является Infiniband. Появившись в далеком 1999 году, в процессе своего развития Infiband увеличил свою скорость c 2 до 100 Гбит/с. Компания Intel является участником ассоциации, развивающей Infiband и выпускает Infiband-оборудование. Это, впрочем, не мешает ей своими собственными силами поддерживать еще один стандарт высокоскоростных сетей коммутации — Intel Omni-Path. Это наименование несколько раз появлялось в постах нашего блога, и каждый раз читатели просили подробностей. Теперь у нас есть возможность о них рассказать.


Читать дальше →

Нештатный аккумулятор в APC Smart-UPS SUA 1000I

Reading time3 min
Views102K


Домашний сервер, контроллер умного дома, ONT от МГТС и прочая чувствительная аппаратура у меня уже давно подключены через UPS от APC. Всё бы хорошо, но родные (довольно недешевые) аккумуляторы в нём служат года два-три, а потом необратимо деградируют. Кроме того, даже новых аккумуляторов хватает в лучшем случае минут на 15. Когда подошла пора очередной замены аккумуляторов, я решил найти более долговременное решение.


Не могу сказать, что замена аккумулятора — это какой-то rocket science, но вопросов с неочевидными ответами было несколько:


  • Какие аккумуляторы взять и на какое напряжение?
  • Будут ли аккумуляторы нормально заряжаться?
  • Проработает ли UPS не 15 минут, а несколько часов?
  • Как объяснить UPSу, что у него теперь аккумуляторы другой ёмкости?

За ответами прошу под кат

Читать дальше →

Серьёзная ошибка в многопоточности процессоров Skylake и Kaby Lake

Reading time3 min
Views36K

В течение апреля и мая 2017 года компания Intel обновила документацию к процессорам Skylake и Kaby Lake, добавив одно небольшое примечание (errata KBL095, KBW095 для Kaby Lake, errata SKW144, SKL150, SKX150, SKZ7 для Skylake). Оно звучит следующим образом:

«В сложных микроархитектурных условиях краткие циклы менее чем из 64 инструкций с использованием регистров AH, BH, CH или DH, а также соответствующих более широких регистров (например, RAX, EAX или AX для AH) могут вызвать непредсказуемое поведение системы. Такое может произойти только если активны оба логических процессора на одном физическом процессоре».

Что означает это примечание — 25 июня 2017 года подробно объяснили в почтовом списке рассылки разработчиков Debian. Если вкратце, то процессоры Skylake и Kaby Lake с включенным HyperThreading могут вести себя неадекватно. Разработчики рекомендуют немедленно отключить HyperThreading в BIOS/UEFI, а потом обновить микрокод процессора от Intel или дождаться обновления BIOS/UEFI от своего вендора.
Читать дальше →

Академическое издательство Elsevier требует у Sci-Hub и LibGen миллионы долларов в качестве компенсации за ущерб

Reading time3 min
Views18K


Крупнейшее в мире академическое издательство Elsevier давно борется с ресурсами, которые размещают у себя бесплатно те научные работы, за доступ к которым эта организация требует огромные деньги. На днях издательство добилось от окружного суда США по Восточному судебному округу штата Нью-Йорк положительного решения по своему иску к Sci-Hub и LibGen. Александра Элбакян, основательница Sci-Hub, говорит, что не сможет выплатить требуемую сумму даже в том случае, если бы даже очень хотела это сделать. Сейчас, как она утверждает, «Pirate Bay для науки» будет продолжать работу.

Разбирательства в суде по иску, поданному Elsevier, продолжались два года. Основная претензия издательства состоит в том, что «научные пиратские сайты» выкладывали в общий доступ материалы ученых, не имея на то никакого права. Несмотря на то, что тот же Sci-Hub мало похож на обычный пиратский ресурс с варезом, по мнению юристов Elsevier, сайт этот все же является пиратским.
Читать дальше →

Шесть правил для выбора дата-центра

Reading time6 min
Views9K

Выбрать дата-центр для своего проекта — та еще боль. Найти лучший дата-центр под свои задачи проще, если знать, на что обратить внимание при поиске. В случае облачной игровой платформы Playkey качество стриминга напрямую зависит от дата-центра: его надежности, близости к пользователю, качества сети и других параметров. Поэтому с дата-центрами мы работаем каждый день и знаем основные их главные проблемы.




В этой публикации технический директор Playkey Алексей Лыков расскажет, как выбрать дата-центр, о чем не забыть при поиске, зачем углубляться в особенности электропитания и чем европейские ЦОДы отличаются от российских. Передаем слово Алексею.


1. Изучите стандарт Tier дата-центра


Первый вопрос при выборе дата-центра — надежность, или аптайм. Самая популярная сертификация этого параметра — методология Uptime Institute, которая делит все дата-центры на четыре ранга (Tier). Существует альтернативная система оценки надежности дата-центров по стандарту TIA 942, но нам он не так интересен в силу своего рекомендательного характера. В случае с сертификатом Uptime Institute, они сами проверяют ДЦ на нескольких этапах (от проектирования документации на постройку до регулярной оценки операционного обслуживания центра) и выдают по итогам проверки оценку. Получить себе такой "липовый" сертификат для ДЦ становится практически нереально.

Читать дальше →

Одинарная или двойная точность?

Reading time6 min
Views80K

Введение


В научных вычислениях мы часто используем числа с плавающей запятой (плавающей точкой). Эта статья представляет собой руководство по выбору правильного представления числа с плавающей запятой. В большинстве языков программирования есть два встроенных вида точности: 32-битная (одинарная точность) и 64-битная (двойная точность). В семействе языков C они известны как float и double, и здесь мы будем использовать именно такие термины. Есть и другие виды точности: half, quad и т. д. Я не буду заострять на них внимание, хотя тоже много споров возникает относительно выбора half vs float или double vs quad. Так что сразу проясним: здесь идёт речь только о 32-битных и 64-битных числах IEEE 754.

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

Статья разбита на две отдельные (но связанные) дискуссии: что использовать для хранения ваших данных и что использовать при вычислениях. Иногда лучше хранить данные во float, а вычисления производить в double.
Читать дальше →

Information

Rating
377-th
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity