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

Привет, я занимаюсь созданием приложений для СУБД Tarantool — это разработанная в Mail.ru Group платформа, совмещающая в себе высокопроизводительную СУБД и сервер приложений на языке Lua. Высокая скорость работы решений, основанных на Tarantool, достигается в частности за счет поддержки in-memory режима СУБД и возможности выполнения бизнес-логики приложения в едином адресном пространстве с данными. При этом обеспечивается персистентность данных с использованием ACID-транзакций (на диске ведется WAL-журнал). В Tarantool имеется встроенная поддержка репликации и шардирования. Начиная с версии 2.1, поддерживаются запросы на языке SQL. Tarantool имеет открытый исходный код и распространяется под лицензией Simplified BSD. Также имеется коммерческая Enterprise-версия.

Высокоуровневая репликация в СУБД Tarantool - 1
Feel the power! (...aka enjoy the performance)

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

Веб-приложения ныне используются повсеместно, а среди всех транспортных протоколов львиную долю занимает HTTP. Изучая нюансы разработки веб-приложений, большинство уделяет очень мало внимания операционной системе, где эти приложения реально запускаются. Разделение разработки (Dev) и эксплуатации (Ops) лишь ухудшало ситуацию. Но с распространением культуры DevOps разработчики начинают нести ответственность за запуск своих приложений в облаке, поэтому для них очень полезно досконально познакомиться с бэкендом операционной системы. Это особенно полезно, если вы пытаетесь развернуть систему для тысяч или десятков тысяч одновременных подключений.

Ограничения в веб-службах очень похожи на ограничения в других приложениях. Будь то балансировщики нагрузки или серверы БД, у всех этих приложений аналогичные проблемы в высокопроизводительной среде. Понимание этих фундаментальных ограничений и способов их преодоления в целом позволит оценить производительность и масштабируемость ваших веб-приложений.

Я пишу эту серию статей в ответ на вопросы молодых разработчиков, которые хотят стать хорошо информированными системными архитекторами. Невозможно чётко понять методы оптимизации приложений Linux, не погрузившись в основы, как они работают на уровне операционной системы. Хотя есть много типов приложений, в этом цикле я хочу исследовать сетевые приложения, а не десктопные, такие как браузер или текстовый редактор. Этот материал рассчитан на разработчиков и архитекторов, которые хотят понять, как работают программы Linux или Unix и как их структурировать для высокой производительности.
Читать полностью »

11-12 июля в Санкт-Петербурге состоится конференция Hydra, посвященная разработке параллельных и распределенных систем. Фишка Гидры в том, что она объединяет крутых учёных (которых обычно можно найти только на зарубежных научных конференциях) и известных практикующих инженеров, в одну большую программу на стыке науки и практики.

Hydra — одна из самых важных наших конференций за последние несколько лет. Ей предшествовала очень серьёзная подготовка, отбор спикеров и докладов. На прошлой неделе об этом вышло хаброинтервью с директором компании JUG.ru Group, Алексеем Федоровым (23derevo).

Мы уже рассказывали о трёх важных участниках, основоположниках теории распределенных систем — Лесли Лэмпорте, Морисе Херлихи и Майкле Скотте. Настало время более подробно поговорить о всей программе!

19 голов гидры. Большой обзор программы - 1

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

Если честно, это одна из самых жестоких статей, что я читал за последнее время: тут много про смерть в молодом возрасте, про гонения из одной области памяти в другую и про ожесточённую борьбу за производительность. В общем, добро пожаловать под кат — там перевод отличной статьи Питера Маршалла о том, как сегодня работает сборка мусора в V8.

Сборка мусора в V8: как работает новый Orinoco GC - 1Читать полностью »

Производительность фронтенда: разбираем важные метрики - 1

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

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

Программирование — больше, чем кодинг - 1

Это статья-перевод Стэнфордского семинара. Но перед ней небольшое вступление. Как образуются зомби? Каждый попадал в ситуацию, когда хочется подтянуть друга или коллегу до своего уровня, а не получается. Причём «не получается» не столько у тебя, сколько у него: на одной чаше весов находится нормальная зарплата, задачи и так далее, а на другой — необходимость думать. Думать неприятно и больно. Он быстро сдаётся и продолжает писать код, совершенно не включая мозг. Ты представляешь, насколько много сил нужно потратить, чтобы преодолеть барьер выученной беспомощности, и просто не делаешь этого. Так образуются зомби, которых вроде бы можно вылечить, но вроде бы и никто этим заниматься не станет.

Когда я увидел, что Лесли Лэмпорт (да-да, тот самый товарищ из учебников) приезжает в Россию и делает не доклад, а сессию вопросов-ответов, я немного насторожился. На всякий случай, Лесли — всемирно известный учёный, автор основополагающих работ в распределённых вычислениях, а ещё вы его можете знать по буквам La в слове LaTeX — «Lamport TeX». Вторым настораживающим фактором является его требование: каждый, кто придёт, должен (совершенно бесплатно) заранее прослушать пару его докладов, придумать по ним минимум один вопрос и только тогда уже приходить. Решил посмотреть, что там Лэмпорт вещает — и это великолепно! Это в точности та штука, волшебная ссылка-таблетка для лечения зомбятины. Предупреждаю: от текста может знатно подгореть у любителей сверхгибких методологий и нелюбителей тестировать написанное.

После хаброката, собственно, начинается перевод семинара. Приятного чтения!Читать полностью »

Все хорошие стартапы либо быстро умирают, либо дорастают до необходимости масштабироваться. Мы смоделируем такой стартап, который сначала про фичи, а потом про перфоманс. Перфоманс будем улучшать с MongoDB — это популярное NoSQL-решение для хранения данных. С MongoDB легко стартовать, и многие проблемы имеют решения «из коробки». Однако, когда нагрузка растет, вылезают грабли, о которых вас заранее никто не предупреждал… до сегодняшнего дня!

image

Моделирование проводит Сергей Загурский, который отвечает за инфраструктуру бэкенда вообще, и MongoDB в частности, в Joom. Также был замечен в серверной части разработки MMORPG Skyforge. Как сам себя описывает Сергей — «профессиональный набиватель шишек собственным лбом и граблями». Под микроскопом — проект, который использует стратегию накопления для управления техническими долгом. В этой текстовой версии доклада на HighLoad++ будем двигаться в хронологическом порядке от возникновения проблемы до решения с помощью MongoDB.
Читать полностью »

Идиоматичное программирование GPU на Rust: Библиотека Emu - 1

Введение

Emu — это высокоуровневый язык программирования видеокарт, способный встраиваться в обычный код на системном языке программирования Rust.

В данной статье речь пойдёт о синтаксисе Emu, его особенностях, а также будут показаны несколько наглядных примеров его использования в реальном коде.

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

Доброго дня! Продолжу свою историю сборку «суперкомпьютера в деревне».

Ссылка на 1 часть истории: habr.com/ru/post/454282
Ссылка на 2 часть истории: habr.com/ru/post/454448

Третью часть я начну с выражения искренней благодарности своим друзьям, которые поддерживали меня в трудную минуту, мотивировали, помогали деньгами спонсируя это достаточно дорогое дело на протяжении длительного времени и даже помогали с покупкой комплектующих из-за границы в случаях когда я не мог купить их на прямую сам. Например если фирма торгующая серверными запчастями в США или Канаде просто не слала в Россию. Без их долгой и регулярной помощи мои успехи были бы намного скромнее.
Так-же благодаря их просьбам я решился и завел аккаунт на Youtube, купил старый смартфон Lumia 640 который я использую исключительно как видеокамеру и начал снимать познавательные видео, как про сборку «деревенского суперкомпьютера» так и про другие аспекты и проекты своей деревенской жизни.
Плейлист «Деревенский суперкомпьютер»: www.youtube.com/playlist?list=PL3zeXynsAkrnywl1nXQeHzKNdw09V4D7E
Желающие спойлеров могут ознакомиться, хотя конечно делать это лучше в процессе прочтения моей истории или вовсе после.
Читать полностью »

Доброго времени суток, дорогие Хабровчане!

Хочу продолжить свое повествование о сборке «деревенского суперкомпьютера». И поясню почему он так назван — причина простая. Я сам живу в деревне. И название — легкий троллинг над теми кто кричит в интернете «За МКАД жизни нет!», «Русская деревня спилась и вымирает!» Так вот, где-то это может быть и так, а я буду исключением из правил. Не пью, не курю, делаю вещи которые не всякому «городскому креаклу(с)» по уму и карману. Но вернемся к нашим баранам, точнее — серверу, который в конце первой части статьи уже «подавал признаки жизни».
Плата лежала на столе, я полазил по BIOS настраивая его по своему вкусу, накатал Ubuntu 16.04 Desktop для простоты и решил подключить к «супер-машине» видеокарту. Но под рукой была только GTS 250 с приклеенным здоровенным не родным вентилятором. Которую я и установил в PCI-E 16x слот около кнопки питания.
Читать полностью »


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