High performance
Search engines
Comments 33
0
Спасибо. Очень интересно. Даже какое-то девавю. Работая в смежной индустрии, я однажды столкнулся с точно такой же проблемой. И при первых же серьёзных затыках в подсчёте и цены и доступности (availability), идея самого решения была очень схожней, но от реализации отказались ввиду тогда казавшейся сложности и отсутствия ресурсов (как технических, так и людских). Видимо зря )
+1
booking мигрирует на java, «российские гиганты» мигрируют на go, Perl окончательно маргинализируется, печально это
0
Тоже удивился конечной реализации. Столько всего вручную сделали. Эластик — первое, что я бы в такой ситуации попробовал. География — есть, кластер из коробки и распределение нагрузки — есть, производительность на очень высоком уровне.
Да, он не встраиваемый… но и нафига, если за счёт богатого языка запросов можно уложиться в минимум общения с сервером.
+1
В трансляции доклада есть вопрос про эластик.

Ответ:
1. На тот момент, когда пробовали, продукт был сырой и нестабильный.
2. Они не смогли внедрить поддержку своих экспериментов (я так понимаю — изолировать одни данные от других)
0
Да рассматривали, и была реализация. Тут правда стоит отступить и сказать что всех подробностей я не приведу т.к. занимался не я. Могу сказать, что его пробовали и для автокомплита (о чем я кратко упомянул отвечая на вопрос из зала) и для основного поиска. В основном поиске уперлись в то, что эластик не справлялся с входящим объемом availability апдейтов.

Если интересуют более подробные детали, спрашивайте. Я могу уточнить.

+7

Жаль в статье не рассказано, что будет после вашего заказа, это же самое интересное!
Вы только что вернулись из отпуска в Казани?
Отлично! Тогда мы через два дня пришлем вам письмо с предложением снова туда съездить.
Не хотите? Только чемоданы распаковали?
Может тогда через четыре дня? Снова нет? Странно… Вам же там понравилось, вы 5 звезд поставили?
Что, у вас следующий отпуск только через полгода?
А, ну ничего страшного, за это время найдем для вас и пришлем вам на почту 91 вариант где его можно провести.
Оставайтесь с нами, ваш Booking.

+1
Внизу писем есть ссылка для отписки, а при заказе есть чекбокс «подписаться на спам».
Хотя один косяк я заметил вчера — букинг держит этот чекбокс выбранным даже в Европе, где это запрещено законом.
+1
Было интересно прочитать, НО когда недавно искал отзыва об конкретных отелях во Вьетнаме, то долго плевался от «удобство» поиска. Куча фильтров по которым можно искать, но по названию не получается, либо это так завуалировано, что не попалось на глаза.

Хотелось просто ввести название отеля и получить ссылку на него — не получилось.
А если перейти в рубрику отели, то вообще будет вывален список всего что есть, но уже же без поиска, если там не один десяток вариантов, то поиск нужного доставляет массу удовольствия.
0
Пока они не перестанут искать UX-дизайнеров, которые должны выдавать качественную вёрстку, этот момент вряд ли станет лучше. Но статья не про юзабилити всё-таки, эти притензии надо другим людям адресовывать -)
0
Да я им и на сайте писал, может ту заметят, тем более в тему. Хочется чтобы сервис стал еще удобнее, но порой складывается впечатление что многие разработчики сами не пользуются своим продуктом иначе они бы уже давно поправили кучу неудобных моментов.
+1
Много езжу, постоянно заказываю отели в букинге, являюсь genius путешественником. При всём уважении к огромной проделанной работе, но поиск пока всё еще работает далеко неидеально. Насколько я помню — то нельзя найти отель по названию, и нельзя найти отель поблизости от указанного места (могу ошибаться, так как уже почти год назад последний раз использовал — летом). Опять же — куча пост-спама с предложениями съездить туда же, где я уже был, раздражает.
В любом случае — спасибо за статью, было очень интересно!
0
Отель поблизости от указанного места ищется при помощи карты. Это не очевидно, но в поиске внизу есть карта. Её разворачиваете и скролите. Фишки отелей будут обновляться на карте.
+2
Для меня единственный ресурс, который постоянно на глазах меняется в лучшую сторону- это букинг. Год назад снес ихнее приложение Пульс как бесполезное, сейчас установил обратно — совершеннно другое дело, то что надо, помогает работать.
То же самое с поиском на сайте. Про то что нет поиска по каким-либо параметрам- надо понимать есть тут коммерческие моменты. В моем частном случае айрбнб за прошлый год сильно просел в бронировании, а букинг занял эти дни и добавил очень серьезно, суточно.ру и остальные вообще погоды пока не строят, к сожалению. Думаю весь секрет как раз в волшебных календарях и availability, который только у букинга в адеквате. Модель букинга по монетизации- стоит на стороне клиента. А, допустим, Суточно.ру — тупиковая модель, по сути сайта с обьявлениями.
Что не нравится — отзывы на букинге сплошь восторженные. Если ехать приходится, я на них вообще не смотрю, только по негативу пытаюсь определиться.
0

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

0

Спасибо, пользуюсь booking эпизодически, полезное приложение. И статья интересная.


Честно говоря, часто пользуюсь booking, чтобы оценить, где больше всего отелей и какова средняя цена. Потом приезжаю в нужное место, и беру номер уже на месте. Заранее бронирую редко по двум причинам:


  • когда приезжаю и смотрю на месте, номера могут серьезно отличаться от того, что на картинках. Личное впечатление ничто не заменит
  • если не забронировал номер заранее, то можно торговаться. В Таиланде один раз удалось так снять комнату в три раза дешевле (!), чем цена на booking

Понимаю, что от таких как я, booking'у один лишь вред. :) Но я все же изредка бронирую заранее… Допустим, кто-то, чьему мнению я доверяю, говорит мне: «Приедешь в такое-то место, там есть замечательный отель YYY». Личному отзыву доверяю больше, чем отзывам в Интернете, потому что когда читаешь отзывы на booking о тех отелях, где бывал, возникает только каша в голове.


Кто-то бывал до этого только в 5* отелях, и если ему не меняют ежедневно 4 полотенца, напишет, что это ужасная грязная клоака. А кто-то совершенно неприятязательный, жил до этого в индийских мотелях для дальнобойщиков за 100 рупий в день, и пишет паршивому отелю отличный отзыв. Короче, в отзывы даже перестал смотреть, так как они не сообщают никакой полезной информации.

+1
ну уж и бесполезные. Есть реально объективные отзывы вида — на заднем дворе свалка и воняет, номера с окнами туда -не брать. или вайфай в 3-м корпусе не ловит совсем, надо идти в лобби, а в 1и 2м корпусах — в любом номере отличных. Ну и т.д.
+1
Понятно, что отзывы будут субъективными. Но то, что они 'живые' огромный плюс. В реальности из уже, наверно, 30ти забронированных через букинг отелей, мы 'напоролись' только на одно несоотвествие ожидаемому. И то — нужно было внимательнее смотреть на картинки. Это по Европе, как в других частях мира — сложно сказать.
0
По поводу торга — так Азия :) там торговаться — милое дело. Реально можно цены в разы скинуть, видимо даже на отели :)
+2
https://youtu.be/VdRmsOAvv0A?t=2370

Очень показательный кадр.

Человек 40 минут рассказывает, как они оптимизировали БД, говорит, что разница в производительности составила до 3х порядков… И что в итоге?
Среднее время ответа в поиске было 2 секунды, стало 1.3 секунды…

Они то, вообще, оптимизировали? (Ну или не обманывают ли себя где-то в методике замера результата)

И ещё, какой смысл в InMemory DB, если их координатор вынужден по сети опрашивать N нод и собирать с них ответ?
+3
Коллега, есть такое понятие как «tail latency». Нельзя судить о времени отклика нагруженного сервиса только по среднему, зачастую та же 95-я и 99-я перцентили намного важнее.
0
Само собой. И однозначно видно, что они сделали лучше, чем было.
Но, показывая такой кадр, стоило чётко пояснить, а где остальные ~60% нагрузки оседают.

Даже не так. Хорошим примером было бы:
1. Мы воспользовались профайлером и увидели, что…
2. Мы решили начать оптимизацию с… потому что.

А так выглядит, будто взялись за самое очевидное место, а результат оказался далёк от ожидаемого (зрителем).
0
Справедливое замечание. Поясню. Остальные 60% ответа поисковой страницы это обвязка поиска. Те же самые эксперименты, вытягивание инфы по отелям, ревью и т.д. Там много легаси и все на перле. Брались мы за оптимизацию именно поисковой выборки, а не всей странички.

Смысл in-memory в том, что каждая нода обрабатывая запрос много раз ходит в БД за availability. И ходить в память ближе чем ходить по сети.
0
И снова читаю всю статью и в конце вижу, что можно было посмотреть-послушать %)
0
А почему вы не сделаете такую фичу, чтобы еще больше нивелировать недостаток неконсистентности availability. Фича заключаются в следующем: делаем AJAX Polling/WebSocket канал, создаем специальные кэширующие сервера для обработки последних изменений материализованной очереди availability, и через этот канал с помощь JavaScript динамически меняем состояние кнопки «Забронировать» на «Не доступно».
+1
Здравствуйте. Я редко пишу за хабре по этому представлюсь. Я Ваня. На видео это я вам рассказываю :-). Если есть вопросы по теме я готов ответить.
0
нет, но думаю стоит попробовать в следующей итерации
-1
Вылез еще один минус букинга. Неверно забронировал номер. Получилось, что не на ту дату (бронировал после 24х часов на текущую ночь и ошибся). И всё — единственный вариант — отмена бронирования (с телефона бронировал) — и 45 евриков ушли в отель, причём это в явном виде не указано. Вот такая правда жизни о 'дешевом' букинге. И не знаю даже, есть ли шанс вернуть.
-1
Второй минус, по той же причине. Невозможность отмены брони. Случайно что-то недосмотрел пользователь сервиса, заказал неподходящий вариант. Считай — попал на деньги. Отменить действие, замечу, связанное с деньгами, не представляется возможным!!! Варианта два: либо едь живи. Либо просто заберут деньги. Это просто какая-то жесть.
Only those users with full accounts are able to leave comments. , please.