среда, 29 сентября 2021 г.

среда, 29 сентября 2021 г.

Хранение цен в MongoDB

Одна из важных новинок в ПК САМО-тур - это возможность хранения цен в MongoDB.

MongoDB - это ориентированная на документы база данных NoSQL с открытым исходным кодом. Модель данных MongoDB позволяет представлять иерархические отношения, проще хранить массивы и другие более сложные структуры. И это то, что нужно туристическим компаниям, ведь они используют для формирования туров огромное количество информации, в первую очередь, цены. И собственных серверных мощностей туроператора, к сожалению, может не хватать.

В сегодняшней статье мы подробно расскажем об этом решении.


В текущей реализации БД MongoDB используется нашими пользователями только для хранения цен. Обработка поисковых запросов и расчёт цен по-прежнему происходят на серверах с MS SQL Server.




Перечислим преимущества хранения цен в MongoDB:
  • Поиск осуществляется с "правильной" сортировкой по цене, тогда как при традиционном поиске сначала отбираются 10000 цен, которые уже потом сортируются, что иногда может приводить к выдаче не самых "дешёвых" цен в результатах поиска;
  • Поиск цен осуществляется сразу с учётом остановок продажи. До внедрения новой функции остановки продажи применяются только после первой выборки в 10000 цен, что может привести к менее точным результатам поиска;
  • MongoDB + Linux бесплатны для коммерческого использования, и это позволяет снизить стоимость инфраструктуры туроператора;
  • База данных каталога цен в MongoDB занимает примерно в 10 раз меньше места, чем БД с тем же количеством цен в MS SQL, а значит, снижаются требования к дисковому месту.
Есть, конечно, и недостатки решения, например в MongoDB на текущий момент нельзя хранить цены базовых и дочерних туров, для работы системы онлайн-бронирования всё еще требуется сервер (а для высоконагруженных систем - несколько серверов) с Windows и MS SQL. 

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

Взвесьте плюсы и минусы решения, и если готовы внедрять новый функционал, напишите нам в поддержку для настройки конфигурации с использованием MongoDB.

Удачи)


4 комментария: