Рубрика «mail.ru» - 22

Первыми пользователями «Облака Mail.Ru для бизнеса», который недавно запустил Mail.Ru Group для корпоративных клиентов, стали «АльфаСтрахование» и купонатор Biglion. Об этом сообщается в пресс-релизе холдинга.

В пресс-службе холдинга уточнили «Читать полностью »

Как я побывала на HolyJS Moscow и нужно ли туда ходить - 1

В минувшее воскресенье, 11 декабря, мне представилась возможность поучаствовать в HolyJS Moscow, грандиозном мероприятии, целиком и полностью посвящённом JavaScript. Количество информации на конференции поражало воображение (не обошлось даже без упоминания других технологий, хотя это логично: в мире веб-разработки всё взаимосвязано), однако из всего массива лично мне запомнилось четыре доклада. Сразу оговорюсь: дело не в том, что другие были лучше или хуже, просто именно эти привлекли моё внимание больше остальных. И здесь я поясню подробно, почему это так.
Читать полностью »

Использование паттерна SchedulableObject для выделения бизнес-логики в отдельный поток - 1

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

  1. Оптимизация алгоритмов и структур данных, вовлечённых в исполнение проблемного сценария.
  2. Вынос проблемного сценария из главного потока.
  3. Вынос из главного потока всех функций приложения, за исключением собственно рендеринга пользовательского интерфейса.

Паттерн SchedulableObject позволяет аккуратно реализовать третий сценарий. Под катом рассматриваются его части с примерами реализации на Swift, а также преимущества и недостатки по сравнению с первыми двумя подходами.
Читать полностью »

Асинхронная обработка запросов в СУБД в памяти, или как справиться с миллионом транзакций в секунду на одном ядре - 1

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

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

Накануне дня рождения первой женщины-программиста: моя история - 1
На картинке: Ада Лавлейс, которая не только первая женщина-программист, но и вообще первый программист в истории. Родилась 10 декабря 1815 года.

Вы бы знали, сколько раз мне приходилось слышать фразы вроде «Ты ж девочка, зачем тебе это?» или «У женщин мозг к программированию не приспособлен». Столько раз мне говорили: «Мы тут будем делом заниматься, а ты — украшение команды». Ещё хуже, если «нужна, чтобы доску протереть». В то же самое время были бессонные ночи, месяцы без отрыва от компьютера, тонны сохранённых видео, закладок, курсов, статей, а главное — постоянное сражение с собой и окружающими ради Цели. И вот итог: мне 22 года, я менее года назад окончила университет, но уже успела поработать в главном офисе 2ГИС в Новосибирске, а потом получить работу в Mail.Ru Group. Меня зовут Дарья Пушкарская, и здесь я расскажу о цепи событий, которая привела меня к такому результату.
Читать полностью »

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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