
Dinar
26.04.2017
11:39:21
Я думал ты имеешь ввиду использование только эластика и все
Просто там где зпрос тот, который быстрее сделать в мускле - делаешь в мускле
Там же у тебя актуальные данные

Sergey
26.04.2017
11:57:09
плохо тем что нужно дублировать кучу данных, которые не нужны

Google

Sergey
26.04.2017
11:57:22
проще выгребать с эластика айдихи и потом по ним идти к мускулю

Dinar
26.04.2017
11:57:40
Вообще да. Наилучший юзкейс когда Эластик возвращает только Айдишки

.avolver
26.04.2017
11:59:46
А если elastic возвращает 25 тысяч ID-шников на запрос — хорошо ли брать потом столько строк из mysql?. WHERE id IN (1,..n=25k).

Sergey
26.04.2017
12:01:59
с доктриной вообще не лучшая идея выбирать столько
и в мускуле будешь ограничен только максимальным пакетом в 1мб по-дефолту вроде

.avolver
26.04.2017
12:04:16
У нас сейчас так сделано. elastic выдаёт кучу ID + mysql их сортирует и лимитит. И я вот думаю, как бы это рефакторнуть.
Правда с 25к я погорячился.
11 тысяч выбирается, в максимальном случае.

Sergey
26.04.2017
12:05:46
ну в целом ок) у нас так монга с мускулем общаются
и эластиком
на эластике правда 5к ограничение поставили, но из-за наших кейсов, а не потому что он не тянет

Dinar
26.04.2017
12:10:06
Как данные структурируете?

Google

Ivan
26.04.2017
12:10:54

Sergey
26.04.2017
12:14:47

Dinar
26.04.2017
12:15:18
Я просто вообще не понимаю, как ее юзать, чтобы было удобно

Sergey
26.04.2017
12:16:24
запчасти, каким машинам подходят эти запчасти, какие дистрибьюторы продают эти запчасти. из основного

Dinar
26.04.2017
12:16:51
А связи как организовываете?

Sergey
26.04.2017
12:17:01
по айдихам

Dinar
26.04.2017
12:17:03
Я знаю как реляционно хранить, чтобы не дублировать.
Ну так это ж реляционная модель
В чем профит монги?

Sergey
26.04.2017
12:17:15
и че?)

Dinar
26.04.2017
12:17:20
Больше проблем только? :)
Ты читал статью про монгу?

Sergey
26.04.2017
12:17:34
ну на мускуле шардинг делать такая себе затея
и терабайты данных он хреново тянет
по сравнению с монгой

Dinar
26.04.2017
12:18:01
Я давно давно вот эту статью читал.
Еще раньше работал немного с монгой
https://habrahabr.ru/post/231213/

Google

Dinar
26.04.2017
12:18:21
Но прочитал статью, и понял, что мне кажется, плюсов-то немного
А неужели нет реляционных БД, которые шардятся нормально, но при этом нормально поддерживают джойны и т.п.?

Sergey
26.04.2017
12:18:55
а зачем тебе джоины?)

.avolver
26.04.2017
12:19:45
Мы вот сейчас переносим все mysql-данные в mongo.
И хотим вообще отказаться от doctrine dbal-зависимости
Оставить только odm.

Sergey
26.04.2017
12:20:07
щас вообще в сторону кассандры смотрим

Dinar
26.04.2017
12:20:09

Sergey
26.04.2017
12:20:11
odm не юзай. гавно

Dinar
26.04.2017
12:20:18
Либо ты данные все равно связываешь в коде своем

.avolver
26.04.2017
12:20:22
А как юзать?
чистый mongodb экстеншн?

Sergey
26.04.2017
12:21:08
odm еще не поддерживает нативный новый экстеншен, только через адаптер. а из-за него производительность падает

.avolver
26.04.2017
12:21:17

Sergey
26.04.2017
12:21:22
ну и плюс odm просто неудобен по сравнению с прямым экстеншеном

Dinar
26.04.2017
12:21:37
А сущности
Которые имеют перекрестные связи

Sergey
26.04.2017
12:21:53

Dinar
26.04.2017
12:22:08

Google

Sergey
26.04.2017
12:22:25
отож. от сложных джоинов некоторые даже в мускуле отказываются

.avolver
26.04.2017
12:22:33
Ну конкретно в нашей задаче документы были бы лучше, так как сейчас есть несколько god-entity, к которым прицеплено по 20-30 разных подсущностей.

Sergey
26.04.2017
12:22:59
особенно когда делают джоин миллионной таблицы к другой такой же. типа юзеров к логам
ну, сфера приложения какая)

.avolver
26.04.2017
12:23:51
https://www.medkompas.ru/doctor/599/

Dinar
26.04.2017
12:23:53
По крайней мере на средних рзмерах

Admin
ERROR: S client not available

Dinar
26.04.2017
12:24:14
Я к сожалению не имею опыта работы с очень большим массивом данных

Sergey
26.04.2017
12:25:36
если нужен джоин 2х огромных таблиц, чтобы по ним сделать поиск, то тут уже надо думать не о том что без джоинов это неудобно, а о том что это ппц как тяжко будет для мускуля
когда всего одна база юзается это конечно круто, но не всегда это реально и вообще необходимо

Dmitry
26.04.2017
12:26:19
а зачем доставать 11 тыс элементов впринципе? они все в рамках одной бизнес-транзакции как-то задействованы?
нуу юзкейс понять бы

Sergey
26.04.2017
12:26:36
map-reduce может для аналитики)

Dinar
26.04.2017
12:28:16

Sergey
26.04.2017
12:28:42
и еще редис поверх)

Dinar
26.04.2017
12:28:45
Ну опять же, от ситуации зависит.
Может и редис для кеширования
или любой другой кэш

Google

.avolver
26.04.2017
12:28:57
Доставать не достаём, но сортируем и лимитим. У нас поисковая параметрика реализована через elastic. Дефолтный поиск (без параметров) ищет по определённому городу (cityId) и с определённой сортировкой. Сначала elastic выдаёт все ID из определённого города, потом mysql сортирует их и обрубает для пагинации.

Dinar
26.04.2017
12:29:02
Вариантов-то масса :)

.avolver
26.04.2017
12:34:04
Здесь я уже не про монгу. А просто пояснил своё сообщение: "У нас сейчас так сделано. elastic выдаёт кучу ID + mysql их сортирует и лимитит. И я вот думаю, как бы это рефакторнуть."

Dmitry
26.04.2017
12:35:47
у эластика достаточно данных чтобы сделать нужную сортировку?

.avolver
26.04.2017
12:38:00
Пока нет, после рефакторинга — будет.
И mysql можно будет отрезать.

Dmitry
26.04.2017
12:39:01
да, будет норм
можно и сразу эластиком резать

.avolver
26.04.2017
12:39:36
Я имел ввиду выбросить mysql из этой цепочки. Да, лимитировать эластиком.

Evegniy
26.04.2017
12:43:38
Всем добрый день. Подскажите, а как докидывать в профайлер perfomance события?
http://shot.ruzarh.ru/2017-04-26-15-42-36-l3dta.png

Sergey
26.04.2017
12:43:59

Evegniy
26.04.2017
12:46:55

Евгений
27.04.2017
06:55:48
Добрый день всем! Подскажите пожалуйста, добавил в default коннект для доктрины секцию slaves со слейвом, но почему-то возникают ситуации что не все запросы которые изменяют состояния обьектов попадают на мастер, в чем может быть проблема? Ввлетает ошибка с read-only транзакциями ... как вообще это по уму реализовать master-slave?

Sergey
27.04.2017
07:10:48
покажи конфиг

Евгений
27.04.2017
07:30:16
# Doctrine Configuration
doctrine:
dbal:
types:
tsvector: Core\HelperBundle\DBAL\TsvectorType
default_connection: default
connections:
# default Postgres connection
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
mapping_types:
tsvector: tsvector
slaves:
# a collection of named slave connections (e.g. slave1, slave2)
slave:
host: "%slave_database_host%"
port: "%slave_database_port%"
dbname: "%slave_database_name%"
user: "%slave_database_user%"
password: "%slave_database_password%"

Sergey
27.04.2017
07:33:41
вроде все ок. запросы случаем не вида INSERT ON SELECT?
а погодь. я не вижу тут мастера в конфиге
master:
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
slaves:
...
и еще keepSlave: true поставь, а то он после запроса на запись не будет делать выборки со слейвов

Евгений
27.04.2017
08:16:23
Спасибо большое, сейчас буду править .... !)

Evegniy
27.04.2017
10:13:13
Всем привет. Скажите, а как при multyKernel чистить кеш не для основного ядра?