Материализуем результаты поиска, или как мы освободили 25 процессорных ядер

Автор: admin от 10-08-2017, 16:15, посмотрело: 51

Материализуем результаты поиска, или как мы освободили 25 процессорных ядер

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

->

Категория: Программирование

 

Как Discord масштабировал Elixir на 5 млн одновременных пользователей

Автор: admin от 9-08-2017, 22:15, посмотрело: 64

С самого начала Discord активно использовал Elixir. Виртуальная машина Erlang стала идеальным кандидатом для создания высокопараллельной системы реального времени, которую мы собирались создать. Первоначальный прототип Discord был разработан на Elixir; сейчас он лежит в основе нашей инфраструктуры. Задача и предназначение Elixir простые: доступ ко всей мощи Erlang VM через гораздо более современный и дружественный язык и набор инструментов.



Прошло два года. Сейчас у нас пять миллионов одновременных пользователей, а через систему проходят миллионы событий в секунду. Хотя мы абсолютно не сожалеем о выборе архитектуры, пришлось проделать массу исследований и экспериментов, чтобы добиться такого результата. Elixir — это новая экосистема, а экосистеме Erlang не хватает информации о её использовании в продакшне (хотя Erlang in Anger — это нечто). По итогу всего пути, пытаясь приспособить Elixir для работы в Discord, мы извлекли некоторые уроки и создали ряд библиотек.
->

Категория: Программирование » Веб-разработка

 

Linux Kernel Extension for Databases

Автор: admin от 9-08-2017, 21:10, посмотрело: 86

Linux Kernel Extension for Databases


Александр Крижановский ( krizhanovsky )



Сегодня буду рассказывать про внутренности базы данных, про внутренности ОС и о том, что происходит на стыке. Когда я говорю про базу данных, я имею в виду в основном ввод/вывод, управление памятью и обработку транзакций. Это совершенно не про SQL, не про индексы, не про блокировки и т.д. Только ввод/вывод, управление памятью и транзакции.



В тех местах, когда я буду упоминать про базы данных, я буду ссылаться на InnoDB, которая мне наиболее знакома.



Linux Kernel Extension for Databases


Если мы посмотрим на движок транзакционной базы, мы увидим примерно такую же картинку. У нас есть буфер pool, в нем живут странички индекса, странички данных. Все эти странички выводятся через транзакционный лог, когда они изменились, проходит это все через планировщик ввода/вывода и в ту, и в другую сторону. Планировщик ввода/вывода, когда он считывает что-то с диска, он делает read ahead. Все это проходит через файловую систему, но это дальше, на диске.
->

Категория: Программирование, Системное администрирование, Linux

 

Надёжность Go в инфраструктуре Dropbox

Автор: admin от 7-08-2017, 19:35, посмотрело: 45

Об авторе: Тэмми Бутов — технический руководитель инфраструктуры для разработчиков в Dropbox. Это управление потоками кода — полный цикл использования Go в Dropbox, от программирования до выпуска. Она выступала на конференции GopherCon 2017 на тему того, как разработчики Dropbox создают и поддерживают работу крупномасштабных сервисов на Go.



Как Dropbox пришёл к использованию Go



Тэмми цитирует статью Роба Пайка «Go в компании Google: языковой дизайн в службе разработки ПО» от 2012 года, поскольку она в целом хорошо передаёт, почему Go хорошо работает и в Dropbox:



«Go — эффективный, масштабируемый и производительный язык. Некоторые программисты получают удовольствие от работы с ним; другие находят его прозаическим, даже скучным. В этой статье мы расскажем, почему все эти позиции не противоречат друг другу. Go спроектирован для решения проблем, возникающих в софтверной разработке в Google, что привело к созданию языка, который не является прорывным с исследовательской точки зрения, тем не менее это прекрасный инструмент для разработки крупных софтверных проектов». — Роб Пайк, 2012


Масштаб Dropbox впечатляет:




  • Более 500 млн пользователей

  • 200 000 бизнес-пользователей

  • 500 петабайт пользовательских данных

  • Многоэкзабайтная система хранения Go

->

Категория: Программирование » Веб-разработка

 

R c H2O на Spark в HDInsight

Автор: admin от 7-08-2017, 14:15, посмотрело: 57

R c H2O на Spark в HDInsightH2O – библиотека машинного обучения, предназначенная как для локальных вычислений, так и с использованием кластеров, создаваемых непосредственно средствами H2O или же работая на кластере Spark. Интеграция H2O в кластеры Spark, создаваемые в Azure HDInsight, была добавлена недавно и в этой публикации (являющейся дополнением моей прошлой статьи: R и Spark) рассмотрим построение моделей машинного обучения используя H2O на таком кластере и сравним (время, метрика) его с моделями предоставляемых sparklyr, действительно ли H2O киллер-приложение для Spark?

да, но это не точно

Категория: Компании » Microsoft

 

Приглашаем на митап «Java и Linux – Борьба за микросекунды»

Автор: admin от 2-08-2017, 21:15, посмотрело: 76

Приглашаем на митап «Java и Linux – Борьба за микросекунды»


Привет, Хабр!



Я, Алексей Рагозин, и мой коллега – Сергей Сорокин приглашаем вас на открытое мероприятие по теме «Java и Linux – Борьба за микросекунды». Мероприятие пройдет во вторник 8 августа в 19.00 в офисе Технологического Центра Дойче Банка. Все подробности и регистрация по ссылке.



Вот о чем мы планируем говорить.
->

Категория: Веб-разработка, Linux

 

Обзор возможностей библиотеки Apache Curator для Apache Zookeeper

Автор: admin от 2-08-2017, 18:20, посмотрело: 88

Обзор возможностей библиотеки Apache Curator для Apache Zookeeper

По долгу работы мне приходится сталкиваться с проектированием и разработкой распределенных приложений. Такие приложения часто используют различные средства межпроцессного взаимодействия для организации взаимодействия компонентов. Особые сложности возникают в процессе реализации алгоритмов, обрабатывающих связанные данные распределенно. Для поддержки таких задач используются специализированные системы распределенной координации. Самым популярным и широко используемым продуктом является Apache Zookeeper.

->

Категория: Программирование

 

IaaS-дайджест: 30 материалов о работе с ПД, новых технологиях, ИБ и высокой производительности

Автор: admin от 31-07-2017, 10:40, посмотрело: 37

Здесь мы найдете самые свежие материалы из нашего IaaS-блога. Мы рассказываем о перспективных разработках в сфере высокой производительности, новых технологиях для ЦОД и делимся практическим опытом настройки виртуальной инфраструктуры.



IaaS-дайджест: 30 материалов о работе с ПД, новых технологиях, ИБ и высокой производительности ->

Категория: Программирование » Веб-разработка

 

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

Автор: admin от 26-07-2017, 11:05, посмотрело: 44

Оригинал статьи: https://github.com/blu/ascii_pruner

Автор: Мартин Кръстев



Один мой друг обратил мое внимание на интересную статью на habrahabr.ru — русский перевод статьи Дэниела Лемира Быстрое удаление пробелов из строк на процессорах ARM. Эта статья заинтриговала меня по двум причинам: во-первых, кто-то на самом деле потратил время и усилия по поиску оптимального решения общей проблемы на не-x86 архитектуре (ура!), а во-вторых, результаты автор дал в конце статьи немного озадачили меня: порядка 6-ти кратное преимущество для Intel? Автор сделал однозначный вывод, что ARM-у ну очень далеко по соотношению «эффективность на такт» до «большого железа» от Интела в этой простой задаче.



Вызов принят!

->

Категория: Программирование

 

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

Автор: admin от 20-07-2017, 18:35, посмотрело: 57

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


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



Предположим, что система хранения состоит из [i]n[/i] узлов. Рассмотрим файл, состоящий из B символов поля [i]GF(q)[/i], который кодируется в n? символов над [i]GF(q)[/i] и распределяется по узлам, так, что каждый узел хранит ? символов. Код построен таким образом, что данные могут быть целиком восстановлены по информации с [i]k[/i] узлов. При этом для восстановления данных одного узла достаточно получить [i]?

Категория: Программирование, Системное администрирование

 
Назад Вперед