
Alexander
14.07.2017
09:24:50
если у тебя такой биллинг, то увы - у меня для тебя плохие новости
называется - говнокод/архитектура/etc.

Fike
14.07.2017
09:25:21
Ой, давайте не будем апеллировать к тому, что у меня. Я просто показываю примеры, где проблемы будут на поверхности

Alexey
14.07.2017
09:25:32
а отправлять запросы на разные сервера в асинхронной репликации — это вообще что? и мастер-мастер тут причём

Google

Alexey
14.07.2017
09:25:47
сейчас нам тут расскажут всё за эти ваши распределённые системы

lost
14.07.2017
09:25:54
https://www.percona.com/blog/2015/01/29/multi-threaded-replication-with-mysql-5-6-use-gtids/

Fike
14.07.2017
09:26:00
Если у тебя мастер-мастер, то, наоборот, какой смысл слать все на один сервер?

lost
14.07.2017
09:26:02
Вот вам проблема с бекапами

Alexey
14.07.2017
09:26:07
про CAP ещё никто не вспомнил. странно даже

lost
14.07.2017
09:26:23
Теоремочки вход пошли

Fike
14.07.2017
09:27:02
Если бы кто-то еще читал, что в CAP подразумевается под C и A

Alexey
14.07.2017
09:27:18
а оно в итоге оказалось всё не так плохо. в итоге сошлись на том, что баг в документации скорее, а не в коде

Dmitry
14.07.2017
09:28:00
короче, если у вас работает мультимастер
1) проверьте что все работает
2) вам везет до поры до времени

lost
14.07.2017
09:28:54
Мы делали архитектуру под юзкейс

Google

Dmitry
14.07.2017
09:29:08
ну какбы я верю что можно так
можно на уровне приложения делать мультимастер так то

lost
14.07.2017
09:29:45
Конфликты есть конечно, но они разрешаются

Dmitry
14.07.2017
09:30:01
ну, вы наверное большие молодцы
без сарказма

Alexey
14.07.2017
09:30:26
я вообще не понимаю, как люди рассуждают про эйсид и CAP, не спросив про use case

Fike
14.07.2017
09:30:43
ох уж эти люди

lost
14.07.2017
09:30:48

Fike
14.07.2017
09:30:59
тут единственный возможный юзкейс - аппенд-онли, который очень странно делать на мускуле

Dmitry
14.07.2017
09:31:03

Alexey
14.07.2017
09:31:10
там кстати более модный баззворд есть, чем CAP. забыл, но CAP уже не в тренде!

Fike
14.07.2017
09:31:19
FLP что ли?

Dmitry
14.07.2017
09:31:23
все офсеты и прочее - костыли

Fike
14.07.2017
09:31:35
BASE?

lost
14.07.2017
09:32:01

Dmitry
14.07.2017
09:32:28
ну просто говорить что ЭТО РАБОТАЕТ и говорить МЫ НАКОСТЫЛИЛИ И ПОТОМУ ЭТО РАБОТАЕТ
есть разница же
хотя это все придирки, собсна

Fike
14.07.2017
09:33:09
ну есть еще забавная штука, проявляющаяся в "мы думаем, что оно работает, потому что пока не видели свидетельств обратного"

Google

Dmitry
14.07.2017
09:33:21

lost
14.07.2017
09:35:41
ну когда ты кактусов поднаелся уже знаешь что можно, а что нежелательно)

Alexey
14.07.2017
09:38:03
есть такая забавная шизофрения, поправив очки начинать с умным видом рассуждать про распределённую consistency не спросив, нужна ли она в конкретном приложении. cuz, you know, account, billing and shit. не каждое приложение — это обновление баланса на банковском счёте. и далеко не каждому приложению эта распределённая consistency нужна

Fike
14.07.2017
09:38:38
оп, вот и до шизофрении добрались

Alexey
14.07.2017
09:38:39
этим и зарубежный IT страдает, но особенно сильно заметно у нас. "мы забивали гвозди молотком и отбили себе пальцы. никогда не забивайте гвозди молотком"

Fike
14.07.2017
09:39:18
да нет, впиливать ACID в виде распределенного eventual consistency-инструмента - это нормальная практика, все в порядке

Alexander
14.07.2017
09:40:18
хех, чтобы дышать - рассуждения не требуются. видимо, давно уже на автомате такие вещи учитываю :)

Fike
14.07.2017
09:40:43
В том и дело, что должно быть понимание, что и зачем используется. И что уровни изоляции не транзитируются автоматом в распределенку.

Dmitry
14.07.2017
10:12:23
вы берете рбд
но вам пох на р

Alexey
14.07.2017
10:13:56
а как R соотносится c distributed consistency?

Dmitry
14.07.2017
10:16:20
да я не только про distributed consistency

Alexey
14.07.2017
10:18:13
я могу придумать много примеров, где нужна R, но не нужна C в распределённом смысле
и мульти-мастер вполне себе имеет смысл

Fike
14.07.2017
10:19:15
в смысле реляции есть, но данных для этих реляций нет?
Все равно нужен будет порядок в создании родитель -> дочерняя запись. А это таки C в распределенном смысле, "после каждой записи последующие чтения видят либо эту запись, либо более новые значения".

Valijon
14.07.2017
15:20:22
Можете помочь разобраться, в чем проблема?

Google

Mikhail
14.07.2017
15:23:57
Не по сабжу, но всё же. Сколько по времени выполняется такой запрос?

Valijon
14.07.2017
15:26:40

lost
14.07.2017
15:54:10
перепиши этот ужас на UNION

Alexey
14.07.2017
15:55:14
прочитай про delimiter и сделай как там делают: https://dev.mysql.com/doc/refman/5.6/en/stored-programs-defining.html

lost
14.07.2017
16:03:22
кстати, DATEDIFF(deadline, now()) внутри COUNT ничего не изменит
да и по-хорошему можно переписать, упаковав всю логику внутрь count() и сделать вместо 10 запросов 1

Pavel
15.07.2017
01:43:45
друзья, вот скажите мне, в чем разница между
UNION и FULL OUTER JOIN
INTERSECT и INNER JOIN
EXCEPT и LEFT JOIN
гугл говорит, что это все принципиально разное, но я вот вижу почему-то одно и то же

Fike
15.07.2017
02:48:20
как union может быть похож на full outer join?

Pavel
15.07.2017
02:50:59
ну, судил больше по паре картинок с описанием этого
так или иначе, у UNION и JOIN довольно много, как по мне, общего

Аггей
15.07.2017
05:44:02
Нет же
Union intersect... Описано объединение записей одного "вида". Итоговая таблица имеет тот же состав полей, что и исходные данные - это как операции над одним отношением. В join - объединение нескольких таблиц...

Pavel
15.07.2017
05:52:54
вроде понял, спасибо

Valijon
16.07.2017
06:37:28

Kallianatia
17.07.2017
06:34:18
https://t.me/folderarchive — канал, где сливают платный полезный образовательный контент и курсы.

Ринат
17.07.2017
11:28:38
SELECT p.name FROM post p
WHERE p.forum_number = 36
AND (SELECT count(*) FROM link WHERE post_id = p.post_id AND author_id = p.author_id) > 10
ORDER BY p.updated_at DESC
LIMIT 80;
Норм запрос? или как то лучше можно написать
хочу выбрать посты

Google

Ринат
17.07.2017
11:29:12
в которых ссылок от автора больше 10 на пост

Fike
17.07.2017
11:42:05
group by, having

Ринат
17.07.2017
11:42:34
не понял
там в select не только name, там в целом всё выбирается

Fike
17.07.2017
11:43:23
выбрать все ссылки, сджойнить по постам, сгруппировать по постам, отсечь неподходящие

Ринат
17.07.2017
11:53:18
всё понял кроме последнего
а
having ом отсечь > 10
так?

lost
17.07.2017
11:53:45
типа того

Ринат
17.07.2017
11:53:51
но тогда я получу выборку ссылок
а я во фреймворке хочу получить массив обхетов постов
ссылки я потом вытащу уже через связи, тут нужно выборку постов сначало