@pgsql

Страница 622 из 1062
Petr
05.01.2018
17:57:22
почему find за O(N) написано?)

Evgeniy
05.01.2018
17:57:52
хз, думал там бинари серч и будет логарифм

но ты почитай

может там уровни учли

Google
Evgeniy
05.01.2018
17:59:29
но ты можешь пглоадером поставить в мускуль перекладываться на выхи

сам всё проверишь

Petr
05.01.2018
18:02:24
сейчас погуглю на счёт time complexity поподробнее

Evgeniy
05.01.2018
18:04:10
https://www.slideshare.net/matsunobu/myrocks-deep-dive йошинори почитай еще

или погугли видос еще

заодно про блумфильтр узнаешь гг

Petr
05.01.2018
18:06:06
спасибо!



судя по этой штуке просадка по чтению где-то в три раза

ну значит не O(N) и то хорошо

Evgeniy
05.01.2018
18:09:07
если чо, на этом говне фейсбук сидит там хорошие инженеры

Petr
05.01.2018
18:10:14
https://github.com/wiredtiger/wiredtiger/wiki/Btree-vs-LSM вот собственно

Evgeniy
05.01.2018
18:14:01
wiredtiger тоже кстати классные ребята делают

Google
Petr
05.01.2018
18:16:20
ага)

Gin с его fastupdate многоколоночные не поддерживает кстати, насколько я понял

Evgeniy
05.01.2018
18:33:40
ты на джине вообще охуеешь скорее всего

я вообще не знаю почему там фастапдейт включен подефолту

Petr
05.01.2018
18:38:28
:)

хм, а REFRESH MATERIALIZED VIEW CONCURRENTLY удаляет индекс старый сразу же?

Evgeniy
05.01.2018
18:44:20
Gin с его fastupdate многоколоночные не поддерживает кстати, насколько я понял
джин умеет многоколоночные, если ты пишешь именно про фаст апдейт в этом случае, то это вновинку для меня будет

хм, а REFRESH MATERIALIZED VIEW CONCURRENTLY удаляет индекс старый сразу же?
нет, ничего не удаляется, всё можно запрашивать тебе даже это подойдет если места не жалко и индексы строятся удовлетворительно

Petr
05.01.2018
18:45:40
А как он переходит от старого состояния к новому?

Evgeniy
05.01.2018
18:45:58
магия mvcc каталога

Petr
05.01.2018
18:46:23
звучит как будто то что нужно

Evgeniy
05.01.2018
18:46:47
ну это лучше чем копировать табличку, менять местами, вот это всё

но это такое решение которое я не рассматриваю впринципе

Petr
05.01.2018
18:49:08
почему? если родительскую хранить без индексов и туда вставлять новые пачки потом обновлять вью если в этот момент правда доступны старые индексы — это же круто

при условии, что вью не займет места более чем в ≈2 раза больше чем родительская (не учитывая индексы)

Evgeniy
05.01.2018
18:49:46
потому что места x2 и индексы строить долго и дорого

ах да, с рефрешом уже x3

и пока все это рефрешится, ничего сделать нельзя хорошо что тебе ночь позволяет видимо

но это пока что

Petr
05.01.2018
18:51:07
"копирование таблички" занимает х2 :(

Google
Petr
05.01.2018
18:51:46
Evgeniy
05.01.2018
18:52:00
ты вот опять же думаешь про сейчас, а с темпом твоих вставок, ты подумай что ты скажешь бизнесу через полгода, когда они придут на работу а у тебя там чтото еще ребилдится

Petr
05.01.2018
18:52:14
важен только select остальных операций юзер не вызывает самостоятельно

Evgeniy
05.01.2018
18:52:18
ты не учитываешь загрузку диска. вымывание кеша

возможно ты реально экономишь там, где не надо

спроси как нибудь у дира сколько стоит час простоя людей и бизнеса, которые смотрят в этот каталог

я серьезно

Petr
05.01.2018
18:53:58
всё катится в сторону myrocks?)

Evgeniy
05.01.2018
18:54:06
возможно это будет стоить дороже семи серверов

во-первых на майрокс я бы посмотрел очень внимательно, пока у тебя пок и выхи, это бесплатно

Petr
05.01.2018
18:54:59
спроси как нибудь у дира сколько стоит час простоя людей и бизнеса, которые смотрят в этот каталог
ну вот я пытаюсь добиться того чтобы он не вис) то что данные не актуальны это не страшно

если оно совсем остановится и не ночью — будет правда дорого стоить

Evgeniy
05.01.2018
18:57:12
значит вариант с бесконтрольным ребилдом тебе не подходит

если только ночь не будет удлиняться

Petr
05.01.2018
18:58:57
уговорил на счет потестить myrocks, спасибо! мне самое главное чтобы решение еще не содержало костылей каких-то а копирование таблиц к этому относится

она ещё якобы мало весит аля кликхаус

Сергей
05.01.2018
19:01:04
попробуй кассандру

Evgeniy
05.01.2018
19:02:10
ну нет, кликхаус жмет колоночки, тут никакие строковые не обгонят

Сергей
05.01.2018
19:03:36
не понял

Evgeniy
05.01.2018
19:03:52
я про "она ещё якобы мало весит аля кликхаус"

Google
Сергей
05.01.2018
19:04:03
ааааа ну ок

Evgeniy
05.01.2018
19:04:24
против касандры тут особо не против, главное рид кворум не включать но у человека и сервер один

Сергей
05.01.2018
19:04:37
грустно когда сервер один ?

Petr
05.01.2018
19:04:51
а что там такого приятного в кассандре с индексами для такой задачи?

Evgeniy
05.01.2018
19:04:56
ничего

еще и тормозить будет

Petr
05.01.2018
19:05:30
допустим через два месяца дадут второй, но это не точно?

Evgeniy
05.01.2018
19:07:04
из плюсов касанды или хбезйа или еще чего-нибудь такого будет одна вещь можно построить сегмент с индексами отдельно и подложить под базку в теории

но это совсем другой пайплайн работы, как с копированием таблички, только побигдачному

Petr
05.01.2018
19:08:44
кстати, в myrocks обязательно наличие примарикей? в основной родительской таблице сейчас его нет, как и ничего остального, что могло было бы быть точно уникальным

Сергей
05.01.2018
19:10:30
ну да для использования касандры надо очень грамотно подойти к проектированию модели данных, по сути идея следующая "под каждый запрос своя таблица, денормализуй все что можно"

ну и да все это шардировано

Petr
05.01.2018
19:11:47
слишком сложно :(

Evgeniy
05.01.2018
19:12:06
без PK lsm не работают, заводи сиквенс если лень но скорее всего у тебя batch id + entity найдется

кстати, чото я не вижу https://github.com/facebook/mysql-5.6/wiki/MyRocks-limitations требования

Petr
05.01.2018
19:16:36
еще думаю все-таки над тем чтобы сделать две таблички: первая со старыми данными вторая горячая куда лить новые пачки если вторая привысит например 40млн, то залить её в основную, а отсюда эти данные очистить бред?)

Evgeniy
05.01.2018
19:17:14
чего именно?
требования пк

Petr
05.01.2018
19:17:26
скорее всего 40млн новых данных у меня будет накапливаться максимум раз в месяц или даже реже

Google
Petr
05.01.2018
19:17:59
только один хрен вставка что туда что туда времени занимает почти одинаково

логарифм там 30 против 25

прирост будет в скорости 20% :(

вопрос: в транзакцию постгреса умещаются 40млн строк?)

и пока транзакция не commit, индексы же не перестраиваются?

Evgeniy
05.01.2018
19:22:43
на коммит - уже все перестроено

Petr
05.01.2018
19:22:50
а, бред, толку не шибко

на коммит - уже все перестроено
как тогда откат работает?

Evgeniy
05.01.2018
19:23:24
mvcc

Petr
05.01.2018
19:23:40
и почему бы юзеру не использовать этот откат пока грузится что следует...

Evgeniy
05.01.2018
19:24:04
поясни

Petr
05.01.2018
19:24:19
ну допустим

Evgeniy
05.01.2018
19:24:46
допустим ты нажал коммит после инсерта и только тогда вставляются данные в индексы?

Petr
05.01.2018
19:24:53
в транзакции: 1. удалить индексы 2. залить 40млн 3. построить индексы 4. commit

сможет ли до commit юзер использовать предыдущий индекс?

Evgeniy
05.01.2018
19:25:52
я не понимаю почему ты не понимаешь что перестраивать индексы это бред

Petr
05.01.2018
19:26:20
вопрос скорее к понимаю mvcc был

Evgeniy
05.01.2018
19:27:05
а, так зайди проверь из двух сессий

Petr
05.01.2018
19:27:45
я не понимаю почему ты не понимаешь что перестраивать индексы это бред
кстати в доке постгреса такой метод в частности описан при bulk insert

Evgeniy
05.01.2018
19:28:13
ну вот я нажал в одной сессии postgres=# drop index test_v_idx; DROP INDEX во второй postgres=# explain analyze select * from test where v = 1; ждет

Страница 622 из 1062