@pgsql

Страница 621 из 1062
Petr
05.01.2018
16:59:40
то бишь пока новый строится -- юзать старый, в котором хранятся строки до новой пачки insert иными словами индексы с ручным рефрешем

при аксиоме что delete не будет

и update

:)

Google
Evgeniy
05.01.2018
17:01:20
тут есть проблема с инвариантом "индекс всегда смотрит на живой tid" проект с ним уже 30 лет живет

книжник предлагал решить проблему через частичный индекс

поэтому я тебя к нему отправлял

Petr
05.01.2018
17:02:26
книжник предлагал решить проблему через частичный индекс
я тоже об этом думал... но практически не придумал как это сделать

Evgeniy
05.01.2018
17:02:56
запрос придется чутка править

чтобы where на батч айди добавить

Petr
05.01.2018
17:03:47
на самом деле у меня ещё возникла "гениальная идея" сделать две партиции, т.к. основной массив данных загружен будет изначально и вставка новых пачек -- достаточно редкое явление: может раз в неделю или даже месяц

Evgeniy
05.01.2018
17:03:55
ну и тут жопа что каждый раз придется всю таблицу сканить чтобы найти эти штуки

Evgeniy
05.01.2018
17:04:11
там был патчик чтобы новый индекс искать по существующему индексу

короче, если тебе реально важно, тебе надо идти в постгреспро

а если нет, то никто ничего не будет делать

Google
Evgeniy
05.01.2018
17:05:00
ну или в enterprisedb

заказывать патчи

Petr
05.01.2018
17:05:58
мои руки не настолько длинные к сожалению

Evgeniy
05.01.2018
17:07:26
ну хз, если есть 1ккк данных, обычно есть бабки на патчик

там ценник гуманный

главное понять что ты хочешь

Petr
05.01.2018
17:08:38
сейчас сроки поджимают и ресурсов на такие процедуры мне не выделено и не предвидится до запуска самой системы через пару месяцев после релиза -- мб

проект только заводится заново если вкратце

Evgeniy
05.01.2018
17:09:50
ок ок

Ivan
05.01.2018
17:10:09
Надо как следует объяснить, в чем идея. Можно даже рассказать её в блицдокладе на pgconf.ru. Если (если) хорошая вещь, можно сделать.

Petr
05.01.2018
17:12:24
Надо как следует объяснить, в чем идея. Можно даже рассказать её в блицдокладе на pgconf.ru. Если (если) хорошая вещь, можно сделать.
загвоздка в том, что у меня не идея -- у меня проблема, для которой оптимальная идея решения собственно и ищется :)

Evgeniy
05.01.2018
17:16:11
Ivan, проблема примерно как в треде Книжника [HACKERS] Batch update of indexes он в нем предлагает делать частичные индексы, которые достраиваются после заливки данных одна из проблем с частичными индексами - куча доработок для оптимизатора чтобы он их брал но можно было бы сделать аналог alter index set invalid, но наоборот: чтобы использовался для запросов, но не обновлялся на лету например alter index set freeze после заливки данных сказать ему анфриз, чтобы как в патче выше влить в него свежие батч

ну или ждать колу, кажется так называлось lsm от Насти

Petr
05.01.2018
17:17:47
@netneladno 20:16 начались билдиться индексы с мемом 4гб

Ivan
05.01.2018
17:19:11
Ок, обсудим это с Книжником и другими. Кола пока приостановилась.

Evgeniy
05.01.2018
17:21:21
кола ждет плагабл стореджа?

или просто нафиг

Ivan
05.01.2018
17:24:21
Нет,плагбл ей не нужно. Настя сейчас занимается инкрементальным бэкапом.

Petr
05.01.2018
17:26:26
у меня складывается ощущение, что аля "alter index set freeze" сделать не такая катастрофическая задача но самому менять что-то в коде постгреса -- боюсь костылей

Evgeniy
05.01.2018
17:30:28
задача нормальная вообще, нюансов с не забыть тюплю после анфриза море + такого никогда не было, типа влил данные но через часть индексов они недоступны

Google
Petr
05.01.2018
17:30:46
с другой стороны -- "заморозить" индекс мало, нужно ещё чтобы была возможность собирать новый индекс, а пока он собирается -- использовать тот "замороженны", т.е. что-то типа кешированного индекса

Evgeniy
05.01.2018
17:30:47
срача будет море

Petr
05.01.2018
17:32:00
отчего же? насколько я знаю, сейчас многие ради этого не брезгуют дубликатом таблицы (и последующим переключением), а это неплохой % времени и лишней памяти

Evgeniy
05.01.2018
17:32:53
ну потому что дубликат таблицы говорит что ты вгружал в А, а читал из Б потом поменял а тут вгружал в А, читал из А, но не видел

причем от плана к плану это меняется

используешь такой индекс - видишь батч, другой - не видишь

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

иначе вообще конфуз

Petr
05.01.2018
17:34:30
когда индекс отправляем в "кеш" -- никакой заморозки вроде не просится а вот когда началось построение нового - разумеется табличку надо заморозить на всё кроме select

Darafei
05.01.2018
17:34:41
Это на fastupdate похоже

Evgeniy
05.01.2018
17:35:01
похоже

такой вариант тоже обсуждался в треде

типа инсерт буфер для бтрии

Petr
05.01.2018
17:36:07
это что за штука такая? не видел

Evgeniy
05.01.2018
17:36:21
в gin индексе

или в мускуле)

но как по мне такое лучше всего решается лсм

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

Petr
05.01.2018
17:38:48
LSM-tree ?

Evgeniy
05.01.2018
17:38:52
еп

Google
Evgeniy
05.01.2018
17:39:27
myrocks возьми и не парься

Petr
05.01.2018
17:39:29
ну там же тоже несколько деревьев насколько я понимаю

итого просадка на K

Evgeniy
05.01.2018
17:39:46
там несколько уровней деревьев да

которые мержатся

и которые в фоне сливаются

все как ты хочешь

сперва чтение медленно как с партициями - надо сходить в кучку файлов

Petr
05.01.2018
17:40:24
myrocks возьми и не парься
это же какая-то mysql'овщина

Evgeniy
05.01.2018
17:40:28
а потом быстрее

Petr
05.01.2018
17:40:38
у меня мультиколоночные индексы

Evgeniy
05.01.2018
17:40:52
вот ты зря, mysql за последние 4 года вырос так, что ппц

Petr
05.01.2018
17:41:05
у меня мультиколоночные индексы
когда я последний раз юзал мускуль их там не было

Evgeniy
05.01.2018
17:41:10
а где написано что майрокс не может мультиколумн?

Petr
05.01.2018
17:42:16
хм :)

а потом быстрее
а когда это -- потом?)

Evgeniy
05.01.2018
17:45:00
когда вольются слои

надо глянуть можно ли форсить мажор компакшон

вообще если у тебя поинт селекты, то не вижу проблемы с использованием мускуля

там конечно свои нюансы бывают

Google
Evgeniy
05.01.2018
17:46:48
но где их нет

Petr
05.01.2018
17:47:18
Так, а если на примере: в пзу уровне у нас допустим 700кк записей в озу уровень я вставил пачку 30кк (и она туда поместилась) 1. данные из озу ещё не скочевали в пзу -- какая асимптотика поиска по такому "индексу"? 2. все данные перекочевали в пзу -- будет ли тут чистый логарифм?

Evgeniy
05.01.2018
17:47:18
с версии 3.8 уже думаю монгу всем советовать

Petr
05.01.2018
17:48:54
напомню также, что у меня по меньшей мере 7 индексов, среди которых 2 -- мультиколумн

Evgeniy
05.01.2018
17:51:25
блин, пытаюсь нагуглить рид паф

ничего сходу хорочего не нашел

Petr
05.01.2018
17:51:43
к тому же сервер может бабахнуть и всё из оперативки полетит как из редиса( и фиг что потом разберешь

Evgeniy
05.01.2018
17:51:58
надо прочитать N уровней, там сортированые данные - логарифм будет

но не "чистый"

Petr
05.01.2018
17:52:13
тогда вопрос на сколько "грязный" :)

Evgeniy
05.01.2018
17:52:23
когда пишешь - и л0 компакшн не успел, читаешь еще больше

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

Petr
05.01.2018
17:53:11
пока очень нравится что там данные вставляются сортированными пачками, звучит хорошо

Evgeniy
05.01.2018
17:53:14
но на линк бенче (поинт лукапы) майрокс ебет иннодб

извини, но сегодня тебе уже придется самому искать презенташки и вики

Petr
05.01.2018
17:54:30
ещё немаловажный момент: выборка иногда может возвращаться где-то по сотне строк

Evgeniy
05.01.2018
17:55:10
ну и ренж сканы там ок - сортировка ж

Petr
05.01.2018
17:57:11


хм

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