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

Делаем быстрый поиск по турам на основе ClickHouse - 1 В этой статье мы рассмотрим способы создания поиска по базе туров (тур из себя представляет набор из отеля и перелета) и рассмотрим две опции — ClickHouse и MySQL (два движка — InnoDB и MyISAM).

В чем сложность поиска по турам

Туроператоры (TezTour, TUI, Natalie Tours, etc) продают свои путевки неочевидным, на первый взгляд, способом:

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

После этого по таким комбинациям (количество которых может исчисляться сотнями миллионов и даже миллиардами) осуществляется поиск. Пример формы поиска можно увидеть у TezTour — пользователь может выбрать только один город вылета, тип размещения и страну, а остальные параметры пользователь может выбирать произвольные.

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

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

Запись при чтении в postgresql: скандалы, интриги, расследования - 1 Я уже рассказывал про мониторинг запросов postgresql, в тот момент мне казалось, что я полностью разобрался, как postgresql работает с различными ресурсами сервера.

При постоянной работе со статистикой по запросам постгреса мы начали замечать некоторые аномалии. Я полез разбираться, заодно очередной раз восхитился понятностью исходного кода постгреса:)

Под катом небольшой рассказ о неочевидном поведении postgresql.

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

hpc

10 лет назад присутствие Интела в HPC ограничивалось, в основном, мощными процессорами и набором математических библиотек.

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

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

IBM Q – разработка квантового компьютера, работающего через облако - 1

В IBM уже давно изучают возможность создания квантовых компьютеров, которые можно было бы использовать в науке и бизнесе. Если ранее речь шла лишь о чисто научных изысканиях, сейчас этот проект уже перешел в стадию реализации. Специалисты компании заявили о намерении создать коммерческий квантовый компьютер, работать с которым можно в облаке. Этот компьютер получил название IBM Q. Сторонние разработчики смогут подключаться к квантовому компьютеру при помощи специального API, открывающего возможность создания интерфейсов между 5-кубитной квантовой системой и обычными компьютерами. Кроме того, IBM создала и симулятор, моделирующий конфигурации вплоть до 20 кубит.

Что касается облака, через которое будет производиться подключение к IBM Q, то это платформа IBM Cloud. Разработчики, получившие доступ к IBM Quantum Experience, смогут запускать алгоритмы, проводить различные исследования и работать с отдельными квантовыми битами. Для пользователей системы будут предоставлены примеры работы с IBM Q. Кстати, сейчас количество пользователей платформы IBM Quantum Experience составляет 40 тысяч.
Читать полностью »

enter image description here

Привет! Меня зовут Евгений Гугучкин, я – разработчик Badoo в команде «Платформа».

Наша команда работает над интересными и нужными задачами. Одна из них – разработка распределённого хранилища временных рядов, в решении которой я принимал непосредственное участие.

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

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

«Сложную архитектуру очень просто сделать» — интервью с Олегом Анастасьевым из Одноклассников - 1

Знакомьтесь, Олег Анастасьев — ведущий разработчик Одноклассников, спикер на конференциях по Java и Cassandra, эксперт в области распределенных и отказоустойчивых систем. С Олегом мы поговорили о следующем:

  • Что не так с термином «архитектор»
  • Зачем Одноклассникам 11 000 серверов
  • Как выглядят учения по ликвидации аварий
  • Что такое «Правило большого З»
  • Как в Одноклассниках используют Cassandra
  • В чём для современной компании сложности с размещением кода в Open Source
  • Как в Одноклассниках работают с Big Data

Как всегда, под катом — полная текстовая расшифровка беседы.
Читать полностью »

Если у вас еще нет планов на выходные – у меня есть предложение: посмотрите доклады с DotNext 2016 Moscow, вчера мы выложили их в общий доступ.

Вообще, мой любимый формат поста про конференции – обзор лучших докладов. Жаль, делать его получается только один раз на конференцию… В любом случае, сегодня у нас есть о чем поговорить: мы открыли доступ к видеозаписям лучших докладов конференции DotNext 2016 Moscow и близимся к завершению программы DotNext 2017 Piter (Питер, 19-20 мая), о которой тоже скажу пару слов.

Видеозаписи лучших докладов DotNext 2016 Moscow: Перфоманс, CLR и функциональное программирование на .NET - 1

Все видео под катом.
Читать полностью »

Команда ученых показала, что ультракороткие настраиваемые световые импульсы длительностью в несколько фемтосекунд позволят в будущем создать компьютеры, которые работают в 100 тыс. раз быстрее современных электронных систем.

«В 100 000 раз быстрее»: ультракороткие световые импульсы в вычислительной технике - 1Читать полностью »

image

Привет! Сегодня поделюсь с вами статьёй, написанной по мотивам моего доклада на Tarantool Meetup. Маленькая история, почему в компании Мамба стали использовать Tarantool. Почему мы занялись репликацией из MySQL в Tarantool? Первая причина в том, что в какой-то момент нужно было начинать переходить на MySQL 5.7, но в нём отсутствует handler socket, который активно используется на наших серверах в MySQL 5.6. Мы даже связались с командой Percona, и они подтвердили, что 5.6 — это последняя версия c handler socket.

Вторая причина — мы начали пробное использование Tarantool, и скорость работы нам понравилась: мы просто сравнили memcache и Tarantool как key/value-хранилище, получив прирост производительности — с 0,6 до 0,3 мс на одинаковом железе. В относительном выражении Tarantool в два раза быстрее, в абсолютном выражении это не так круто, но всё же. И третья причина — желание полностью сохранить текущую структуру: есть MySQL Server Master и его Slave’ы, ничего переписывать не хотелось, хотелось оставить максимально близко к той архитектуре, что есть сейчас. Как бы нам сделать так, чтобы вместо Slave’ов MySQL 5.6, на которых используется handler socket, применить что-то другое и полностью не переписывать всю огромную архитектуру?

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

Как Discord хранит миллиарды сообщений - 1

Discord продолжает расти быстрее, чем мы ожидали, как и пользовательский контент. Чем больше пользователей — тем больше сообщений в чате. В июле мы объявили о 40 млн сообщений в день, в декабре объявили о 100 млн, а в середине января преодолели 120 млн. Мы сразу решили хранить историю чатов вечно, так что пользователи могут вернуться в любой момент и получить доступ к своим данным с любого устройства. Это много данных, поток и объём которых нарастает, и все они должны быть доступными. Как мы это делаем? Cassandra!
Читать полностью »