
Сергей
04.08.2017
15:49:12
и как бы я не на SO пришел чтобы за меня задачу решили

Fike
04.08.2017
15:49:32
одновременного обновления данных, по которым строится отчет?

Сергей
04.08.2017
15:49:51
поясни плиз

Mike Chuguniy
04.08.2017
15:53:16
Ребят, нужен ваш совет по постгресу(9.6)
Есть веб-сервис ненагруженный и из него периодически делается большой отчет, который минут 10 генерится. Отчет не на sql, а в питоне сделан. много запросов. И есть такая проблема - за то время, пока он генерится что-то меняется в базе и отчет становится неверным. Все транзакции сейчас read commited. Есть иде обернуть генерацию отчета в serialisable. Отчет это readonly операция.
Судя по документации, это норм. 2 вопроса -
1)могут ли обычные транзакции или сам отчет упасть с serialization anomaly? (вроде нет, но не уверен)
2) видити ли вы какие-то подводные камни в этом рещении?
1. скорее всего не могут, но будут падать;
2. сначала выгрести из БД все данные, потом развлекаться с ними, как уже сказали, если невозможно свести кучу запросов к одному. Если свести в один - это проблематично, то сократить количество запросов, я думаю, возможность есть.

Google

Fike
04.08.2017
15:53:25
Я беспокоюсь за следующий случай:
- Отчет начинает транзакцию
- Юзер обновляет запись А
- Отчет запрашивает запись А
Или наоборот:
- Отчет начинает транзакцию
- Отчет запрашивает запись А
- Юзер обновляет запись А, но транзакция отчета еще не закончилась
Serializable - это уровень, которые предполагает, что транзакции работают с одними и те же данные строго последовательно, не допуская одновременного доступа. Следовательно, здесь возникает возможность для движка закрашить транзакции, описанные выше. В то же время параграф из доки выше утверждает, что все работает немного не так, как я думаю, поэтому здесь есть неопределенность.

Andrey
04.08.2017
15:53:58
Кстати, если вы действительно только читаете данные, используйте read only транзакции.

Anton
04.08.2017
15:54:09
Ленин защищает пусек: diak_kuraev
http://diak-kuraev.livejournal.com/1684319.html

Nikolay
04.08.2017
16:25:32

Mikhail
04.08.2017
17:02:17
Ребята, в чем может быть проблема. Из pgsql по логину и паролю могу зайти на базу, из pgadmin по логину и паролю - нет

Darafei
04.08.2017
17:02:50
а порт наружу слушает? а то заходишь, небось, по локальному сокету

Mikhail
04.08.2017
17:03:06
нет, не по локальному
удаленный сервер, не на моем компе
а, все, зашел :)

Vova
04.08.2017
17:11:52

Mikhail
04.08.2017
17:12:18

Vova
04.08.2017
17:13:33
а вот зачем указывать бд, если он все равно и в другие может смотреть?


Yura
04.08.2017
18:48:10
Ребят, нужен ваш совет по постгресу(9.6)
Есть веб-сервис ненагруженный и из него периодически делается большой отчет, который минут 10 генерится. Отчет не на sql, а в питоне сделан. много запросов. И есть такая проблема - за то время, пока он генерится что-то меняется в базе и отчет становится неверным. Все транзакции сейчас read commited. Есть иде обернуть генерацию отчета в serialisable. Отчет это readonly операция.
Судя по документации, это норм. 2 вопроса -
1)могут ли обычные транзакции или сам отчет упасть с serialization anomaly? (вроде нет, но не уверен)
2) видити ли вы какие-то подводные камни в этом рещении?
Repeatable Read в постгрессе - это на самом деле Snapshot Isolation (SI). Он видит снимок базы данных на момент начала транзакции.
Serializable в постгрессе - это Serializable SI - тот же Snapshot Isolation, но с детектом "возожных аномалий".
Просто readonly Serializable может привести к откату какой-нибудь транзакции, т.к. снимок, взятый этой транзакцией, может быть не вполне serializable.
Есть специальный Serializable Read Only Deferrable - он дожидается возможности взять гарантированно сериализуемый снапшот. Т.о. это специальный режим для аналитических read-only транзакций.

Google

Yura
04.08.2017
18:54:46
С другой стороны, если у вас везде read committed, то скорее всего, вам не важна строгая сериализуемость. И тогда repeatable read удовлетворит простому требованию "даннвые не должны менятся"

Сергей
04.08.2017
20:59:22
спасибо всем за советы

Mike Chuguniy
05.08.2017
03:51:52
@Komzpa, @pasha_golub хулиганы зрения лишают!

Pavel
05.08.2017
04:24:25

Mike Chuguniy
05.08.2017
04:34:14
Спасибо, добрый человек!

Darafei
06.08.2017
07:31:22
в слаке gisdevs ребята нарисовали стейт карты "всё тормозит из-за автовакуума"

Mikhail
06.08.2017
07:44:51
Жаль всех на карте
@Komzpa
Дай ссылку на чат
Я щас тоже занимаюсь гисами в том числе
Ты в Москве кстати ?
Давай митап сделаем по postgis
В этом чата 1234 человека!!! Прямо от сюда аудитория скорее всего наберется

Darafei
06.08.2017
07:58:41
я в Минске, и мы тут делаем митап по гисам :)

Mikhail
06.08.2017
08:17:19

Anton [Mgn, az09@osm]
06.08.2017
08:22:32

Darafei
06.08.2017
08:29:16
Давай митап сделаем по postgis
16 сентября будет Схемотехника, можно туда вписаться
http://shtosm.ru/all/bolshaya-shemotehnika/
как раз суббота, удобно из других городов подтягиваться :)

Google

Mike Chuguniy
06.08.2017
09:06:49
Схемотехника. Мылорушникам надо популярно объяснить, что слова "схемотехника" и "географические карты" вводят в заблуждение и последующий ступор. А так - я бы послушал про постгис.

Darafei
06.08.2017
09:13:36
послушать да погнобить название много кто может. кто рассказать хочет? :)

Mike Chuguniy
06.08.2017
09:19:19
:)

Lev
06.08.2017
09:19:30
А кто готов доехать до Минска ради митапа по postgis? =)

Alex
06.08.2017
09:24:57
добрый день, есть бекап сделанный usr/pgsql-9.2/bin/pg_dump -Fc —username "postgres" —role "openerp" —no-password —blobs —encoding UTF8 —verbose —file "/home/backupscript/dbbackup-$date.backup" "cito"
при восстановлении выдает ошибку : pg_restore -d cito_2017_06_05 /home/backupscript/dbbackup-20170806.backup
pg_restore: [archiver] unsupported version (1.12) in file header
версии
[root@OpenERP-CITO ~]# pg_dump —version
pg_dump (PostgreSQL) 8.4.20
[root@OpenERP-CITO ~]# pg_restore —version
pg_restore (PostgreSQL) 8.4.20

Darafei
06.08.2017
09:25:56
pgsql-9.2
kom@junocat ~ % pg_dump --version
pg_dump (PostgreSQL) 9.6.3

Alex
06.08.2017
09:26:28
psql (8.4.20, server 9.2.7) понятно
а как исправить? ?

Darafei
06.08.2017
09:26:52
ты пытаешься пользоваться софтом 2009 года :)
обнови стандартным для своего дистрибутива способом

Admin
ERROR: S client not available

Darafei
06.08.2017
09:28:22
если ты разворачиваешь с нуля, убей целиком и возьми дистрибутив ОС менее пыльных годов

Alex
06.08.2017
09:28:59
мне базу дали пару дней назад и сегодня попросили тестовую базу поднять временно
пока все обоновлю нужно решение сейчас возобновить
и потом только перенести все на новую версию
@Komzpa можно только pg_dump и pg_restore обновить? и как ?

Google

Alex
06.08.2017
09:31:56
чтоб сервер пока не трогать

Darafei
06.08.2017
09:32:17
мы даже не знаем, что у тебя за система, кроме того, что она из ~2009 года

Dmitry
06.08.2017
09:33:03
centos 5
наверно

Alex
06.08.2017
09:33:15
centos 6.2
postgresql 9.2

Dmitry
06.08.2017
09:34:48

Darafei
06.08.2017
09:36:13

Dmitry
06.08.2017
09:37:54
мало того что пакетный меджер накладывает свои особености (после обновления пакета - рестарт СЕРВЕРА) так еще и подсовывают свои перлоговяхи

Alex
06.08.2017
09:41:10
хм интересно ...
попробовал : /usr/pgsql-9.2/bin/pg_restore -d db_2017_06_07 /home/backupscript/dbbackup-20170806.backup
начал возобновление

Darafei
06.08.2017
09:42:24
значит, у тебя полтора постгреса в системе и неплохо бы старый вычистить

Alex
06.08.2017
09:43:06
понятно спасибо , обновлю и базу и систему как дойдут руки
можно как-то уднать чем занимается pg_restore в данный момент ? просто он у меня востонавливает базу и уже 15 минут как замерз на 8187 MB, база должна возобновиться до 16GB, проверяю размер :
select t1.datname AS db_name, pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;

Darafei
06.08.2017
11:06:09
htop / iotop / poor man's profiler?

Alex
06.08.2017
11:17:10
1 процесс postgres : postgres db_test [local] CREATE INDEX
2 процесс сам pg_restore
значит он ставит так долго индексы,спасибо
уже 43 минуты

Lev
06.08.2017
16:22:46
crosstab?

Рома
07.08.2017
09:25:35
Привет всем, я довольно долго мучаюсь-придумываю как лучше всего расписание по дням недели хранить, сталкивались с такой задачей? Мозг уже совсем сломался, главная проблема - расписание может перешагивать за полночь и оставаться тем же днем, к тому же нужна возможность хранить перерывы работы, к тому же временные зоны учитывать каким-то образом, заведение в реальности работает в определенное время в определенный день, а в другой стране сейчас может быть другой день недели и другое время, а заведение по-любому работает или нет.