Рубрика «Блог компании Mail.Ru Group» - 93

О языке С и производительности - 1

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

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

Как избежать скачков во времени отклика и потреблении памяти при снятии снимков состояния в СУБД в оперативной памяти - 1

Помните мою недавнюю статью «Что такое СУБД в оперативной памяти и как она эффективно сохраняет данные»? В ней я привел краткий обзор механизмов, используемых в СУБД в оперативной памяти для обеспечения сохранности данных. Речь шла о двух основных механизмах: запись транзакций в журнал и снятие снимков состояния. Я дал общее описание принципов работы с журналом транзакций и лишь затронул тему снимков. Поэтому в этой статье о снимках я расскажу более обстоятельно: начну с простейшего способа делать снимки состояния в СУБД в оперативной памяти, выделю несколько связанных с этим способом проблем и подробно остановлюсь на том, как данный механизм реализован в Tarantool.

Итак, у нас есть СУБД, хранящая все данные в оперативной памяти. Как я уже упоминал в моей предыдущей статье, для снятия снимка состояния необходимо все эти данные записать на диск. Это означает, что нам нужно пройтись по всем таблицам и по всем строкам в каждой таблице и записать все это на диск одним файлом через системный вызов write. Довольно просто на первый взгляд. Однако проблема в том, что данные в базе постоянно изменяются. Даже если замораживать структуры данных при снятии снимка, в итоге на диске можно получить неконсистентное состояние базы данных.
Читать полностью »

Электроовцы съели людей: возможные последствия от развития ИИ для рынка труда - 1

В своей очередной лекции у нас в офисе автор одной из сильнейших российских шахматных программ, специалист по методам машинного обучения и основатель портала 22century.ru Сергей oulenspiegel Марков рассказал о ближайших и отдалённых перспективах автоматизации в различных областях экономики. А мы в свою очередь как всегда подготовили пост по мотивам выступления.

Какие именно технологии создают предпосылки для замены людей в тех или иных профессиях? Какие конкретные проекты последних лет являются важными вехами на пути к полной автоматизации различных видов работ? ConvNet, LSTM, DNC, что дальше? Куда именно мы бежим всё быстрее? Жив ли бионический подход? Ходжкин, Хаксли, гигантские аксоны кальмара — каким он будет дивный новый мир?..
Читать полностью »

Уже шесть лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-октябрь 2016.

Дайджест продуктового дизайна, ноябрь 2016

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

Эффективное хранение: как мы из 50 Пб сделали 32 Пб - 1

Изменения курса рубля два года назад заставили нас задуматься о способах снижения стоимости железа для Почты Mail.Ru. Нам понадобилось уменьшить количество закупаемого железа и цену за хостинг. Чтобы найти, где сэкономить, давайте посмотрим, из чего состоит почта.

Эффективное хранение: как мы из 50 Пб сделали 32 Пб - 2

Индексы и тела писем составляют 15 % объёма, файлы — 85 %. Место для оптимизаций надо искать в файлах (аттачах в письмах). На тот момент у нас не была реализована дедупликация файлов; по нашим оценкам, она может дать экономию в 36 % всего объёма почты: многим пользователям приходят одинаковые письма (рассылки социальных сетей с картинками, магазинов с прайсами и т.д.). В этом посте я расскажу про реализацию такой системы, сделанной под руководством PSIAlt.
Читать полностью »

Мирный атом взламывает льды: наш атомный ледокольный флот - 1

59 лет назад, 5 декабря 1957 года со стапелей сошло первое в мире надводное судно, приводившееся в движение ядерным реактором — атомный ледокол «Ленин». С этого корабля, 30 лет проводившему суда по Северному Ледовитому океану, началась история отечественного атомного ледокольного флота. Россия — единственная страна в мире, строящая и использующая атомные ледоколы.
Читать полностью »

image

Между Лондоном и Франкфуртом протянулась таинственная частная сеть связи, которая работает вдвое быстрее обычного интернета. Соединение обеспечивается цепочкой вышек с СВЧ-приёмопередатчиками (у нас именуемых радиорелейными или РРЛ — примеч. пер.). Когда-то сеть была совершенно секретной: её использовала единственная, очень богатая компания, и никто об этом не знал.

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

Что такое СУБД в оперативной памяти и как она эффективно сохраняет данные - 1

Сальвадор Дали, Дезинтеграция постоянства памяти. 1952—1954. Холст, масло.

Всем привет. Кто-то из вас, возможно, уже знаком с СУБД для данных в оперативной памяти, но на всякий случай — по ссылке можно найти их общее описание. Если вкратце, такие СУБД хранят данные целиком в оперативной памяти. Что это означает? Каждый раз, отправляя запрос на поиск или обновление данных, вы обращаетесь только к оперативной памяти в обход жесткого диска — на нем никакие операции не производятся. И это хорошо, потому что оперативная память работает намного быстрее любого диска. Примером такой СУБД является Memcached.

Секундочку, скажете вы, а как же восстановить данные после перезагрузки или поломки машины с такой СУБД? Если на машине установлена СУБД для хранения данных только в оперативной памяти, о них можно забыть: при отключении питания данные бесследно исчезнут.

Можно ли объединить достоинства хранения данных в оперативной памяти с надежностью проверенных временем СУБД вроде MySQL или Postgres? Конечно! Повлияет ли это на производительность? Вы удивитесь, но нет!
Читать полностью »

Практическое руководство по VR-дизайну - 1

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

Содержание

  1. Памятка для начинающих
  2. Основные принципы
  3. Процесс
  4. Инструменты
  5. Словарь
  6. Платформы
  7. Другие ресурсы

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

DIY на все случаи жизни: робот-осьминог, дроид BB8 в полный рост и лазерный дробовик - 1

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


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