Система поиска и букинга артистов

Собираем здесь завершённые проекты, использующие Yii. Один проект — одна тема.
ab_dev
Сообщения: 17
Зарегистрирован: 2014.10.20, 19:19

Система поиска и букинга артистов

Сообщение ab_dev »

Собственно представляю свой проект, Art-Booking
Система для поиска и букинга (заказа) артистов, музыкантов, оборудования, и т. д.
http://art-booking.org

Большое внимание уделено оптимизации: (практически никакого AR, только DAO+SQL), по возможности не используются тяжелые компоненты во вьюхах.
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

А поиск реализован через php?
ab_dev
Сообщения: 17
Зарегистрирован: 2014.10.20, 19:19

Re: Система поиска и букинга артистов

Сообщение ab_dev »

Халявщик писал(а):А поиск реализован через php?
Ну да + SQL.
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

ab_dev писал(а):Ну да + SQL.
Интересно. Тогда получается, что соединение идет через AJAX, так как с Comet'ом PHP вроде как не умеет работать.
А что если будет к примеру 1200 звукорежиссеров? Поиск будет таким же быстрым? Или придется что-то менять?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Система поиска и букинга артистов

Сообщение SiZE »

Халявщик писал(а):соединение идет через AJAX, так как с Comet'ом PHP вроде как не умеет работать
WAT?


ab_dev, в строке поиска необходимо дождаться пока пользователь введет весь запрос целиком, а не слать запрос на нажатие каждой клавиши. ;)
ab_dev
Сообщения: 17
Зарегистрирован: 2014.10.20, 19:19

Re: Система поиска и букинга артистов

Сообщение ab_dev »

Халявщик писал(а):
ab_dev писал(а):Ну да + SQL.
Интересно. Тогда получается, что соединение идет через AJAX, так как с Comet'ом PHP вроде как не умеет работать.
А что если будет к примеру 1200 звукорежиссеров? Поиск будет таким же быстрым? Или придется что-то менять?
Индексы в бд + на всякий случай горизонтальное масштабирование сервера по метрикам загрузки. Из 2.5млн населенных пунктов текстовый LIKE поиск осуществляется за 20-30мсек.

Запросы более 100 мс логгируются.

Уже начал писать бэкенд на go, который будет более масштабируемым и гибким.
SiZE писал(а): ab_dev, в строке поиска необходимо дождаться пока пользователь введет весь запрос целиком, а не слать запрос на нажатие каждой клавиши. ;)
Стоит таймаут ввода, который динамически изменяется в зависимости от загруженности системы.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Система поиска и букинга артистов

Сообщение SiZE »

ab_dev писал(а):Стоит таймаут ввода, который динамически изменяется в зависимости от загруженности системы.
Я ради интереса брякнул по клаве и на каждый ввод символа у меня ушел запрос. Ты думай не только об оптимизации своего сервера, но и о том, что ты клиента трафиком нагружаешь.
ab_dev
Сообщения: 17
Зарегистрирован: 2014.10.20, 19:19

Re: Система поиска и букинга артистов

Сообщение ab_dev »

SiZE писал(а):
ab_dev писал(а):Стоит таймаут ввода, который динамически изменяется в зависимости от загруженности системы.
Я ради интереса брякнул по клаве и на каждый ввод символа у меня ушел запрос. Ты думай не только об оптимизации своего сервера, но и о том, что ты клиента трафиком нагружаешь.
Live поиск сейчас в трендах. Минимальная задержка после ввода - 200мс.
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

ab_dev писал(а):Live поиск сейчас в трендах.
Ну так не через AJAX же.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Система поиска и букинга артистов

Сообщение anton44eg »

а через что?
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

На ajax'е свет клином сошелся что ли ?
Есть и другие технологии. Например, сокеты.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Система поиска и букинга артистов

Сообщение anton44eg »

чем они лучше в данном случае?
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

Более высокая скорость работы, меньший траффик
ab_dev
Сообщения: 17
Зарегистрирован: 2014.10.20, 19:19

Re: Система поиска и букинга артистов

Сообщение ab_dev »

Халявщик писал(а):На ajax'е свет клином сошелся что ли ?
Есть и другие технологии. Например, сокеты.
А зачем, если проще кешируемую вьюху аяксом подгрузить?
Халявщик писал(а):Более высокая скорость работы, меньший траффик
Основная доля трафика - изображения тянущиеся из S3.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Система поиска и букинга артистов

Сообщение anton44eg »

так аяксом можно только json гонять, разница в траффике будет мизерная, а работать с сокетами из php - очень сомнительное удовольствие
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

ab_dev писал(а):А зачем, если проще кешируемую вьюху аяксом подгрузить?
Каждому свое)
anton44eg писал(а):так аяксом можно только json гонять, разница в траффике будет мизерная, а работать с сокетами из php - очень сомнительное удовольствие
По-моему живой поиск и php - вещи несовместимые. Это незаметно сейчас, когда на сайте мало посетителей, а когда их станет много - тогда и всплывет проблема скорости. А насчет траффика - если суммировать все полученные и отправленные HTTP заголовки при печатании какой-нибудь абракадабры, то разница не покажется мизерной по сравнению с постоянным соединением.
ab_dev
Сообщения: 17
Зарегистрирован: 2014.10.20, 19:19

Re: Система поиска и букинга артистов

Сообщение ab_dev »

Халявщик писал(а): По-моему живой поиск и php - вещи несовместимые. Это незаметно сейчас, когда на сайте мало посетителей, а когда их станет много - тогда и всплывет проблема скорости.
Вот поэтому бэкенд переписываем на Go. На первых этапах это можно решить горизонтальным масштабированием (увеличением ресурсов сервера и добавлением хостов через балансировщик)
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Система поиска и букинга артистов

Сообщение anton44eg »

Халявщик писал(а):
ab_dev писал(а):А зачем, если проще кешируемую вьюху аяксом подгрузить?
Каждому свое)
anton44eg писал(а):так аяксом можно только json гонять, разница в траффике будет мизерная, а работать с сокетами из php - очень сомнительное удовольствие
По-моему живой поиск и php - вещи несовместимые. Это незаметно сейчас, когда на сайте мало посетителей, а когда их станет много - тогда и всплывет проблема скорости. А насчет траффика - если суммировать все полученные и отправленные HTTP заголовки при печатании какой-нибудь абракадабры, то разница не покажется мизерной по сравнению с постоянным соединением.
Тут уже никто не спорит. Считаю, что вполне нормальное решение - делать через AJAX и проблемы решать по мере поступления, т.к. пользователей много может и не прийти.
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Система поиска и букинга артистов

Сообщение anton44eg »

ab_dev писал(а):
Халявщик писал(а): По-моему живой поиск и php - вещи несовместимые. Это незаметно сейчас, когда на сайте мало посетителей, а когда их станет много - тогда и всплывет проблема скорости.
Вот поэтому бэкенд переписываем на Go. На первых этапах это можно решить горизонтальным масштабированием (увеличением ресурсов сервера и добавлением хостов через балансировщик)
Почему именно Го? Смотрю в его сторону, но совсем для других задач. Он не выглядит особо подходящим именно для веб-сайта
Халявщик
Сообщения: 33
Зарегистрирован: 2014.04.20, 23:25

Re: Система поиска и букинга артистов

Сообщение Халявщик »

ab_dev писал(а):Вот поэтому бэкенд переписываем на Go. На первых этапах это можно решить горизонтальным масштабированием (увеличением ресурсов сервера и добавлением хостов через балансировщик)
Лучше на сях.
Ответить