
Mike Chuguniy
05.03.2018
08:26:46

Alexey
05.03.2018
08:27:54

Mike Chuguniy
05.03.2018
08:29:00
Это для простых смертных звучит просто. А вот для меня это звучит страшно. Именно в плане ничего не сломать и не раскорячить данные в непотребное состояние.

Alexey
05.03.2018
08:29:16
в mysql это начали обсуждать в 2007-м, когда Google сказал "а хорошо бы репликацию в mysql в несколько потоков сделать". первое наивное решение появилось в 2013-м, а по-настоящему эффективное будет в 2018-м

Google

Maksim
05.03.2018
08:45:29
@alexey_kopytov а физическая репликация никак не параллелится?

Alexey
05.03.2018
08:46:04

Denis
05.03.2018
08:48:43

Alexey
05.03.2018
08:48:59
А теорию почитать, как это делают можно?
а вот это наверное. пожалуй, самый крутой спец по этой теме, если брать практиков, а не теоретиков: https://www.percona.com/live/17/sessions/mysql-parallel-replication-logicalclock-all-57-and-some-80-details

Maksim
05.03.2018
08:55:32

Denis
05.03.2018
08:56:25

Konstantin
05.03.2018
08:58:39
PgPro multimaster применяет транзакции параллельно. Т.е. мы используем собственную версию логической репликации, в которой это реализовано. Я сейчас пробую альернативу логической репликации, при которой бэкенд сам и сразу же будет отправлять изменения на реплики минуя WAL. Когда доделаю, напишу про результаты сравнения со стандартной логичекой репликацией.

Alexey
05.03.2018
09:05:34
а, ну то есть, в секретных подвалах работа ведётся, как я и подозревал :)
я даже хотел написать "в секретных подвалах ПгПро", но подумал, что меня опять хейтером назовут :) а оно вон как

Konstantin
05.03.2018
09:08:30
Мультимастер (правда не самая свежая версия) уже год как лежит в открытом гитхабе. Мы до сих пор боремся с багами (с переменным успехом:) Так что подвалы не секретные и вообще мы сидим на 5-ом этаже, а не в подвале.

Alexey
05.03.2018
09:10:06
конечно про подвалы — это такая фигура речи. я в общем и целом всё даже понимаю. чего я не понимаю — это когда мне начинают рассказывать про "более открытую модель разработки Postgres". Люди из ПгПро, в том числе
она в чём-то более открытая, а в чём-то и более закрытая. Вот эти все пустые наезды быстро надоедают

Google

Konstantin
05.03.2018
09:21:15
Мы несколько раз обсуждали с 2ndQuadrant-рм воможность поддержки параллельной применялки в стандартной логической репликации.
Но, насколько я понял, они это не считают high priority task-ом, утверждая, что логическая репликация и так справляется и не сильно тормозит мастера. Что более-менее правда, если не использовать
а) синхронный режим
б) много подписок
в) большие транзакции

Alexey
05.03.2018
09:22:08
г) большие нагрузки со многими соединениями
и д) реплики с меньшими ресурсами, чем мастер
и, собственно, с чего всё началось — е) триггеры на репликах

Ilia
05.03.2018
09:32:17

Evgeniy
05.03.2018
10:03:33

Alexey
05.03.2018
10:04:40
крутая тема
вообще он в феврале обновлённую версию доклада показывал. наверное на slideshare где-то есть

Evgeniy
05.03.2018
10:05:16
ну в 8.0 от его доклада наверное мало что поменяется
странно что на https://mysqlserverteam.com/ не писали об этом

Alexey
05.03.2018
10:07:47
там больше картинок про 8.0 было. на mysqlserverteam.com тоже что-то писали, но быстро не находится. все такие писатели стали, что всего и не упомнишь

Anton [Mgn, az09@osm]
05.03.2018
10:08:49
всем обновлений
Уязвимости в ClamAV, PostgreSQL, ISC DHCP, BIND, Drupal, Dovecot, Apache Xerces-C и Xen
http://www.opennet.ru/opennews/art.shtml?num=48204
Серия новых уязвимостей, информация о которых раскрыта в последние несколько дней. #opennet

Alexey
05.03.2018
10:09:35
а вот ещё интересное по теме параллельной репликации: https://dev.mysql.com/worklog/task/?id=9556

Lucky
05.03.2018
10:41:59
Такой вопрос, есть апдейт вида
set goods = array_to_json(array( select(json_array_elements(goods)::jsonb||jsonb_build_object('gid', nextval('seq_good_id'::regclass)))))
Сиквенс срабатывает дважды, как обойти это?

Alexander
05.03.2018
10:46:24

Lucky
05.03.2018
10:47:48
В том то и дело, что не одинаковый. Функция нормально проставляет gid при нескольких элементах в массиве json, но после отработки в сиквенсе получается число на 1 больше чем надо

Alexander
05.03.2018
10:47:58
Да, вижу.
Вроде как-то так
set goods = array_to_json((select array_agg(el::jsonb||jsonb_build_object('gid', nextval('seq_good_id'::regclass))) from json_array_elements(goods) el))
@LuckyTea, помогает?

Lucky
05.03.2018
10:57:41
сейчас проверю

Google

Lucky
05.03.2018
11:02:18

Alexander
05.03.2018
11:06:28
Не за что :)

Mike Chuguniy
05.03.2018
13:18:17
Добрый день, уважаемые коллеги! А у меня тут очередной дурацкий вопрос нарисовался. Ну или некоторая кучка вопросов, объединённых одной целью - видеть что-нибудь доступное только суперюзеру и/или владельцу. Пока что хочется видеть полный выхлоп pg_stat_activity с телами запросов безо всяких там <insufficient privilege>. Пока что ничего, кроме сотворить ф-ю c SECURITY DEFINER от имени postgres-а, в которой сделать запрос к pg_stat_activity, отобрать у нее EXECUTE у всех, дать ту же самую EXECUTE правильным пацанам, в голову не пирходит. Есть какие-то более другие пути?

Mikhail
05.03.2018
18:05:34
Всем привет! А как хранить в postgresql точки с широтой и долготой и находить ближайшие? Я знаю что есть postgis, хотелось бы видеть пример базы такой
И запросы к ней

Andrew
05.03.2018
18:08:39

Mikhail
05.03.2018
18:09:01

Andrew
05.03.2018
18:09:11
для нахождения ближайшей в радиусе используем сомписную ф-ю
То есть можно взять справочник, и по нему написать необходимые хранимки.
Для загрузки N точек, входящих в заданный квадрат (карта на сайте) используем поиск по quadkey
Все без postgis

Mikhail
05.03.2018
18:11:54
А почему его не используете?

Artem
05.03.2018
18:12:40

Andrew
05.03.2018
18:12:58
Не нашли более сложных случаев для его применения. Карты через яндекс апи рисуем.

Mikhail
05.03.2018
18:13:03

Artem
05.03.2018
18:13:15
это не постгис
ну и это
https://www.postgresql.org/docs/current/static/datatype-geometric.html
https://www.postgresql.org/docs/current/static/functions-geometry.html

Mikhail
05.03.2018
18:20:02
Нужна же точка отсчета какая то

Artem
05.03.2018
18:21:09

Google

Mikhail
05.03.2018
18:21:22

Mike Chuguniy
05.03.2018
18:23:37

Artem
05.03.2018
18:27:10
Ну да
те можно задать в сферических координатах полигон и проверить попадание в него точки задданной в этих же координатах.
это нормально работает пока размер полигона не сильно большой и кривизной поверхности можно пренебречь.

Mikhail
05.03.2018
18:27:53
Звучит так себе! Пожалуй, лучше PostGIS заюзаю :)

Lev
05.03.2018
19:07:56

Mikhail
05.03.2018
19:08:13

Kirill
06.03.2018
05:51:29
Интересует опыт использования CEPH Rados в качестве tablespace Postgres-a. Может кто-нибудь уже пробовал? Или может сразу сказать "фу" или "лайк". Не для горячих таблиц OLTP, а для теплых логов аудита.

Yura
06.03.2018
06:01:21

Kirill
06.03.2018
06:04:24

Yura
06.03.2018
06:07:06
Амазон сильно модифицировали постгресс в правильном направлении для своей Авроры. Жалко, что в сообществе не хотят учесть их опыт.

Alexey
06.03.2018
06:27:41
а разве постгрес не поддерживает raw devices?
ну да, не поддерживает. в общем, постгрес довольно сильно на файловую систему опирается

Artem
06.03.2018
06:30:22
Наверное путём оракла они так и не пойдут

Alexey
06.03.2018
06:31:12
в innodb поддержка raw devices была изначально. но почему-то совсем не пользуется популярностью. скорее всего её скоро выпилят

Ilia
06.03.2018
06:40:12

Vadim
06.03.2018
06:43:33
Хочу файловый кэш отключить

Ilia
06.03.2018
06:44:34
Sync там что-то

Alexey
06.03.2018
06:46:24
нет, оно конечно не только для этого было
когда-то считалось, что для СУБД файловая система — это один сплошной оверхед. потому что каждая СУБД внутри каждого файла делает свой собственный space management

Google

Alexey
06.03.2018
06:48:12
в каком-то смысле правда, но с операционной точки зрения raw devices — тот ещё геморрой. хотя вот в свете облаков идея заиграла новыми красками

Ilia
06.03.2018
06:48:25

Alexey
06.03.2018
06:50:40
это было до хитрых файловых систем

Vadim
06.03.2018
07:00:26
это для С мануал, а в ОС нет опции

Alexey
06.03.2018
07:05:03
на солярке была mount опция

Sergey
06.03.2018
07:07:13

Dmitry
06.03.2018
07:07:31
Да и в мона смонтировать data sync
*В линуксе

Alexey
06.03.2018
07:08:14

Denis
06.03.2018
07:08:22
Кстати, а есть какие-то сравнения производительности (того же inodb у mysql) через фс и напрямую через блочное устройство? То есть выигрыш там чувствуется на современных ос?

Sergey
06.03.2018
07:09:00

Alexey
06.03.2018
07:09:09
я таких не припомню. я даже ни одного живого юзера с innodb + raw devices не видел
возможно в оракловом сообществе есть какие-то бенчмарки

Denis
06.03.2018
07:09:58
Я вот у себя в городе не знаю тоже ни одного ороклоида с raw
И сколь я помню, оракл не разрешает вроде бенчмарки публиковать?

Dmitry
06.03.2018
07:11:58
Да и в мона смонтировать data sync
data=journal All data are committed into the journal prior to being
written into the main file system. Enabling
this mode will disable delayed allocation and
O_DIRECT support.
черт. короче тот же журнал у бд вид сбоку