
Quet
11.01.2017
17:08:56
там не то что значение — вся строка будет записана еще раз

Mikhail
11.01.2017
17:39:20
?

Google

Darafei
11.01.2017
17:40:12
|entity|{attribute: value, attribute:value, attribute:value} ?

Mikhail
11.01.2017
17:41:42
ну eav посложнее все таки, там тип атрибута есть еще например
ну вообщем я понял, вроде ничего страшного нет в такой схеме

Dmitriy
11.01.2017
18:16:13
Привет постгресоводам и сочувствующим

Марк ☢
11.01.2017
18:16:30
осторожно, тут серьёзные пацаны, могут кикнуть

Dmitriy
11.01.2017
18:16:40
У меня простой вопрос, 9.6.1 уже можно в продакшн тащить или надо подождать?
Я же без набросов, по делу :)

Darafei
11.01.2017
18:20:36

Dmitriy
11.01.2017
18:21:53
у амазона почти бесконечные ресурсы на исправления чего угодно, у меня такого нет :(
я почему спрашиваю - когда-то давно было поверье вида "не переходи на новый мажор до версии минора в 3"
я сейчас не особо в курсе, возможно это уже не так актуально

Dmitry
11.01.2017
18:22:56
https://www.youtube.com/watch?v=QTiCCMGhQoY

Dmitriy
11.01.2017
18:22:59
энивей, здесь наверное должны быть в курсе, есть ли какие-либо родовые болячки в 9.6.1 или уже всё хорошо

Google

Pavel
11.01.2017
18:23:04
Оно и сейчас есть. Но никто не застрахован и в 3 получить косяк
Это я про поверие

Dmitry
11.01.2017
18:24:36

Dmitriy
11.01.2017
18:25:07
Вопрос в вероятности :)

Dmitry
11.01.2017
18:25:44
ну с 9.3 да, надо определенно обновляться

Yevhen
11.01.2017
18:25:54
А сначала на тестовом попробовать?

Dmitriy
11.01.2017
18:26:14
А для меня просто вопрос в том, когда конкретно я вернусь к этому в следующий раз. Годом позже или годом раньше

Dmitry
11.01.2017
18:27:32
вопрос как я понимаю не про работоспособность приложения с конкретной версии pg
вопрос к тому какую версию брать

Yevhen
11.01.2017
18:27:59
Дык, дело как раз в этом, сначала на тестовом проверить чего нибудь внезапное

Dmitriy
11.01.2017
18:28:18
Ну я не услышал хора голосов с "бери 9.6, не думай", поэтому возьму наверное 9.5

Dmitry
11.01.2017
18:28:26
9.3 - вышла достаточно давно и она медленная на современном железе чем 9.4 или 9.6

Dmitriy
11.01.2017
18:28:27
Спасибо :)

Dmitry
11.01.2017
18:29:14
с 9.6 таких багов с репликацией как в 9.2 уже не наблюдаются
вполне можно жить.

Dmitriy
11.01.2017
18:29:48

Dmitry
11.01.2017
18:30:05
у многих моих бывших клиентов ;)
я работал в PostgresPro.

Google

Dmitriy
11.01.2017
18:30:48
Хм. Это же рекомендации лучших собаководов практически
Спасибо

Dmitry
11.01.2017
18:34:39
Спасибо
расклад такой 9.3 - старая: EOL September 2018
9.4 побыстрее, а 9.4 и 9.5 мало чем отличаются (ИМХО), 9.6 уже достаточно стабильная (был эпичный детский баг 9.6.0 -> 9.6.1 в pg_upgrade) лучше сразу на 9.6

Dmitriy
11.01.2017
18:35:09
А что за баг был? Просто интересно

Dmitry
11.01.2017
18:36:07
Fix possible data corruption when pg_upgrade rewrites a relation visibility map into 9.6 format (Tom Lane)

Марк ☢
11.01.2017
18:37:17

Dmitriy
11.01.2017
18:38:59

Dmitry
11.01.2017
18:39:01

Марк ☢
11.01.2017
18:39:45

Dmitry
11.01.2017
18:39:57
а зачем они? pg однопоточный
он синхронизует доступ к шареной памяти

Марк ☢
11.01.2017
18:40:20
ну кабе синхронизировать процессы.
мутекс замечательно делается в шаропамяти — и вперёд — документированный прикол

Dmitry
11.01.2017
18:41:18
скорее всего в libc местами и основано на атомиках

Марк ☢
11.01.2017
18:41:32
ну разумеется. а что есть быстрее ?

Dmitry
11.01.2017
18:41:32
поэтому уверен что атомики быстрее
тогда зачем завязывать на libc, который к томуже и медленнее? :)

Марк ☢
11.01.2017
18:43:47
1. с чего это ради медленнее.
2. с того это что либсишники (ну это те же кто ведро делает) уж наверно больше разбираются в том какая залочка быстрее.

Dmitry
11.01.2017
18:43:52
https://github.com/postgres/postgres/blob/1d25779284fe1ba08ecd57e647292a9deb241376/src/include/storage/s_lock.h#L223

Google

Марк ☢
11.01.2017
18:43:59
если есть конкретика — рад послушать
щас гляну

Dmitry
11.01.2017
18:44:36

Марк ☢
11.01.2017
18:45:06
ну, на винде пусть хоть как делают. в юниксах надо использовать системное.

Dmitry
11.01.2017
18:45:38
про это можно спорить вечно (про стороннюю поддержку)
pg такого масштаба проект, что может себе позволить такой файлец
и не от кого не зависить

Марк ☢
11.01.2017
18:47:01
надо в постгреспро вбросить. может они сделают

Dmitry
11.01.2017
18:47:42
Саша Коротков, Магнус и мои измерения участвовали в этих местах :)
так что вбрасывать безсмысленно :)

Марк ☢
11.01.2017
18:47:53
о

Dmitry
11.01.2017
18:47:55
пошлют :)
зачем умножать на версии дистрибутивов

Марк ☢
11.01.2017
18:48:15
а есть конкретика по результатм бенчмарков ?

Dmitry
11.01.2017
18:48:25
если можно обойтись только этим файлом

Марк ☢
11.01.2017
18:48:27
чтобы я например мог повторить

Dmitry
11.01.2017
18:49:04
про pthread - я пока не знаю как он может помочь синхронить состояние двух процессов :)
а на mutex вы можете сами скомпилять
там есть опция disable-atomic - которая включает системные mutex
разница будет на порядок не в пользу mutex

Google

Марк ☢
11.01.2017
18:51:05
что такое системные мьютекс ?

Roman
11.01.2017
18:51:17

Марк ☢
11.01.2017
18:51:28
щас накатаю сырец
с демонстрацией

Dmitry
11.01.2017
18:56:24
https://github.com/postgres/postgres/blob/1d25779284fe1ba08ecd57e647292a9deb241376/src/include/port/atomics/fallback.h

Марк ☢
11.01.2017
18:56:40
ну.. те-то через ядро на каждую залочку. точно говно.
(видимо, если это не pthread семафоры)

Dmitry
11.01.2017
19:00:22

Марк ☢
11.01.2017
19:09:58
ну. щас он использует потоки в новых версиях, но мы совсем же не об этих потоках говорим

Dmitry
11.01.2017
19:22:16
чтобы перехватить cancel query например и прочее

Марк ☢
11.01.2017
19:27:23
http://pastebin.com/iVptbTVm
вот пример как между процессами лочить. если рилли лок выставить в ноль, то результат — рандомный. если он один — то это показывает что всё работает
тамщемта пример смотреть здесь — https://linux.die.net/man/3/pthread_mutexattr_init, но у меня имхо попроще
@vadvmkn всеравно пошлют ?