
Данил
18.11.2016
10:14:29
это ясно, вот и хочу подготовиться=)

Darafei
18.11.2016
10:15:22
прочти оглавление и пойми, что про любую из его строк ты можешь сказать два предложения
хотя, на джуна - одно

Данил
18.11.2016
10:16:30
да по джуну могу много сказать, по разрабу пару скажу по некоторым пунктам

Google

[Anonymous]
18.11.2016
10:17:39
нескромный вопрос - avito?
там было две вакансии, одна джун, другая разраб за 120к, вот мне казалось перепутали

Данил
18.11.2016
10:18:36
может может

Zubarev
18.11.2016
10:20:39
Подскажите плиз, куда в Москве пойти что бы получить реальные и практически применимые знания по DBA ?

[Anonymous]
18.11.2016
10:21:37
изоляции транзакций всякие спрашивали
и практическое их применение
https://www.youtube.com/watch?v=QU2PVSnBGEY&list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH&index=2

Данил
18.11.2016
10:23:40
это все уже вдоль и поперек
https://www.youtube.com/watch?v=QU2PVSnBGEY&list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH&index=2
как и дока на пг про

[Anonymous]
18.11.2016
10:25:55
?
Подскажите плиз, куда в Москве пойти что бы получить реальные и практически применимые знания по DBA ?
в ютюб https://www.youtube.com/channel/UCawnwMqZ6JeoSiEhrS6X69A

Google

Данил
18.11.2016
11:53:04
да, их лекции из твери достаточно информативные, но местами ооочень скучные, если смотреть их просто для познания, а не с конкретным вопросом

[Anonymous]
18.11.2016
11:57:16
кто сказал, что грызть гранит науки - это весело?) извините за флуд

Andrey
18.11.2016
11:57:29
Данил А с конкретным вопросом можно обратиться к препадавателям в комментах к видео в той или иной теме, которая ближе к сути вопроса. Отвечают.

Данил
18.11.2016
11:59:48
возьму на заметку, спасибо=)

Петр
18.11.2016
12:00:39
Добрый день
кто-нибудь знает, что за объект может быть с relid 0 ?

Gonchik
18.11.2016
12:34:43
Добрый день
Подскажите пожалуйста как можно при установке postgres на RHEL, как заранее PG_DATA указать в нужную директорию? Хочется чтобы до инициализации кластера initdb, было указано. Поскольку после инициализации в systemd переписывать место, потом rsync не очень удобно. Хочется еще на шаге initdb определить
initdb -D {PG_DATA} - не взлетело
что я делаю не так?

Dmitry
18.11.2016
12:44:12
Я делаю так: initdb -D ${PGDATA} -E ${PG_ENCODING} —locale=${PG_LC} —lc-collate=${PG_LC} —lc-ctype=${PG_LC}
шел по умолчанию баш?

Gonchik
18.11.2016
12:45:02
да

Dmitry
18.11.2016
12:45:22
Ну тогда должно работать.

dmitriy
18.11.2016
12:46:50

Gonchik
18.11.2016
12:48:05
забыл=(
черт???
Спасибо большое!

raksita
18.11.2016
12:59:59
добрый вечер. если кто юзает pglogical в проде, подскажите как замерять отставание репликации на 9.5

dmitriy
18.11.2016
13:00:32
в секундах?

raksita
18.11.2016
13:00:46
да, по времени

Google

raksita
18.11.2016
13:01:10
аналогов измерения для стриминговой репликации не нашёл

dmitriy
18.11.2016
13:02:32
никак, есть вариант закостылить так: апдейтить таблицу с колонкой timestamp, проставляя туда current_timestamp, реплицировать ее логически через pglogical и там селектить current_timestamp - ts
для стриминговой есть такой костыль https://github.com/dev1ant/repl_mon

Evgeniy
18.11.2016
13:03:14
https://github.com/2ndQuadrant/pglogical/tree/master/pglogical_output
Use pg_logical_slot_peek_changes to examine the change stream without destructively consuming changes. This is extremely helpful when trying to determine why an error occurs in a downstream, since you can examine a transaction in json (rather than binary) format. It's necessary to supply a minimal set of required parameters to the output plugin.
там пример с выводом commit timestamp
или это на мастере только видно?

dmitriy
18.11.2016
13:03:56
last commit timestamp работает только если у вас постоянно идут транзакции в wal
короче в 9.6 вроде добавили вьюху про walreceiver и там можно скомбинировать из last commit timestamp и этой вьюхи нормальный лаг

raksita
18.11.2016
13:06:42
я с мастера и хочу измерять
для стриминговой используется запрос
SELECT CASE WHEN pg_last_xlog_receive_location() = pg_last_xlog_replay_location()
THEN 0
ELSE EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp())
END AS log_delay;

dmitriy
18.11.2016
13:10:57
ну а как быть, если у вас транзакций на мастере пишущих нет, а вакуум, например, идет по таблицам и в вал отгружает записи?

raksita
18.11.2016
13:12:36
показывает отставание, реплика тоже активно в такие моменты работает

dmitriy
18.11.2016
13:13:21
лаг по формуле будет расти, но на самом деле реплика не отстает

raksita
18.11.2016
13:20:59
согласен и в курсе про это, сошлись на том, что это необходимое зло

dmitriy
18.11.2016
13:21:36
кажется, что нормальный гарантированный способ замера только в 9.6 появился

raksita
18.11.2016
13:22:09
можно ссыль на документацию?

dmitriy
18.11.2016
13:25:01
https://www.postgresql.org/docs/9.6/static/monitoring-stats.html#PG-STAT-WAL-RECEIVER-VIEW
там есть поля last_msg_send_time, last_msg_receipt_time, в комбинации с ними можно кажется нагородить что-то работающее
но кажется, что это просто вывели sql-интерфейс к WalRcvData. При желании можно замочить sql-интерфейс к ней в виде функций, обернуть это в extension для версий <9.6
на коленке можно накидать попробовать

raksita
18.11.2016
13:31:31
я думаю, мы на 9.6 быстрее перейдём?

dmitriy
18.11.2016
13:32:52
ну да, похоже на то :)

Google

Nikita
19.11.2016
09:03:03
ничосе

Admin
ERROR: S client not available

Alexander
19.11.2016
13:46:53
это девопсы набежали? ?
интересен вопрос про проектирование СУБД, допустим, есть некий SaaS, пользователь регистрируется, оплачивает, пользуется какими-либо услугами через сайт, при этом услуги могут оказываться как ему лично, так и какой-то группе людей, в которую он входит или которую возглавляет, у нас есть сущности User [тот, кто регистрируется и входит в панель управления], есть Account [тот, кому оказываются услуги, и кто за них платит, это может быть и организация и пользователь], и ещё есть Organization [объединяет группу людей, есть создатель, который может удалить организацию и все остальные], как бы вы представили эти 3 сущности в виде таблиц в СУБД? вариантов тут несколько, интересно, кто как бы сделал?)

Dmitrii
19.11.2016
13:52:15
Как этот вопрос относится к PostgreSQL?

Paul
19.11.2016
13:52:24
ага. Это я рассказал о чате, где народ общается по делу.
подозреваю, что первичные ключи. От организации. Подробно - Дейт

Alexander
19.11.2016
14:05:11

Pavel
19.11.2016
14:07:47
А разве системный каталог нельзя опросить?

Pavel
19.11.2016
14:16:27
это девопсы набежали? ?
интересен вопрос про проектирование СУБД, допустим, есть некий SaaS, пользователь регистрируется, оплачивает, пользуется какими-либо услугами через сайт, при этом услуги могут оказываться как ему лично, так и какой-то группе людей, в которую он входит или которую возглавляет, у нас есть сущности User [тот, кто регистрируется и входит в панель управления], есть Account [тот, кому оказываются услуги, и кто за них платит, это может быть и организация и пользователь], и ещё есть Organization [объединяет группу людей, есть создатель, который может удалить организацию и все остальные], как бы вы представили эти 3 сущности в виде таблиц в СУБД? вариантов тут несколько, интересно, кто как бы сделал?)
В твоем вопросе непонятно причем тут organization вообще. Какая то сбоку штуковина


Alexander
19.11.2016
14:16:39
ага. Это я рассказал о чате, где народ общается по делу.
подозреваю, что первичные ключи. От организации. Подробно - Дейт
есть такие варианты:
1. всё в 1 таблице и флажок "пользователь/организация"
2. все 3 таблицы по-отдельности (нормальная форма)
3. аккаунты и организации в 1 таблице, пользователи в другой (то есть каждый пользователь не в организации будет создать организацию "Home", куда и цеплять свои проекты)
4. аккаунты и пользователи в 1 таблице, организации в другой (хмм, то есть организация будет слабой сущностью, у каждой организации будет привязанный к ней пользователь/аккаунт)
5. пользователи и организации в 1 табличке (с флажком статуса "пользователь/организация") и аккаунты в отдельной таблице. Такой вариант смысла не имеет, так как не имеет преимущетв перед первым вариантом.

Pavel
19.11.2016
14:16:55
Между пользователем и аккаунтом очевидно many2many

Alexander
19.11.2016
14:17:26
или Dockerhub

Pavel
19.11.2016
14:18:36
конечно же пользователь и организация это разные сущности и должны храниться в разных таблицах

Alexander
19.11.2016
14:19:45
на таких сервисах обычно есть кнопка конвертации аккаунта пользователя в аккаунт организации, это может намекать на то, что хранятся они одинаково
(после конвертации зайти уже не получится)

Pavel
19.11.2016
14:20:28
Нет. Это намекает лишь на то что они реализовали возможность конвертации :)


Mike Chuguniy
19.11.2016
14:22:18
это девопсы набежали? ?
интересен вопрос про проектирование СУБД, допустим, есть некий SaaS, пользователь регистрируется, оплачивает, пользуется какими-либо услугами через сайт, при этом услуги могут оказываться как ему лично, так и какой-то группе людей, в которую он входит или которую возглавляет, у нас есть сущности User [тот, кто регистрируется и входит в панель управления], есть Account [тот, кому оказываются услуги, и кто за них платит, это может быть и организация и пользователь], и ещё есть Organization [объединяет группу людей, есть создатель, который может удалить организацию и все остальные], как бы вы представили эти 3 сущности в виде таблиц в СУБД? вариантов тут несколько, интересно, кто как бы сделал?)
А для меня лично тут исходных данных не хватает. Аккаунты и организации - чем они различаются? Пользователь - более-менее понятно, как он соотносится с аккаунтами и организациями?


Alexander
19.11.2016
14:25:54
терминами Debian'а , Account - это некий виртуальный пакет

Mike Chuguniy
19.11.2016
14:29:27
Заказчик услуги - партнер, одна табличка, физическое лиТСо, ака пользователь - другая табличка. СЦылка из партнеров на физиков. И признак партнера - физик или юрик. У меня по очень долгому размышлению никак более другие картины в голове не возникают.

Google

Alexander
19.11.2016
14:54:11
а сейчас я не понял)
ок, возможно, я неясно объяснил)
User это человек, у него есть логин и пароль к сайту, он может создавать организации и покупать услуги, а так же платить за них со своего аккаунта или с аккаунта своих организаций (за услуги, заказыванные на имя этих организаций)
Organization - это организации, там, где работают User'ы или просто какие-то команды людей, друзья по интересам, делающие 1 проект вместе, создатель организации имеет право привязывать способы оплаты, заказывать услуги и платить за них, все остальные члены организации имеют право пользоваться этими услугами
Account - это счёт User'а или Organization'ии, с которого списываются деньги за услуги и на который кладутся деньги со всяких там Bitconin'ов и Сбербанков)


Pavel
19.11.2016
14:59:40
Короче врядли тебе тут дадут хороший ответ, ты пытаешься задачу проектирования переложить на нас. Это сильно зависит от требований заказчика и предметоной области. Просто сказать "ну это типа saas как гитхаб" - недостаточно.

Alexander
19.11.2016
15:00:48
как таковой задачи проектирования нет, есть непонимание того, существуют ли обоснованные причины не использовать нормальную форму для решения таких задач
например, есть ли оправдание ситуации, когда аккаунты не делают вообще, а делают просто юзеров и организации и каждый юзер (даже домашний пользователь) будет владельцем организации "Home"
к которой будут привязаны уже услуги и оплата

Mike Chuguniy
19.11.2016
15:02:15
Мне бы очень хотелось посмотреть на "аргументы" не использовать нормальную форму.

Pavel
19.11.2016
15:05:07

Alexander
19.11.2016
15:06:16
собственно, мне и интересно узнать, в таких вот случаях она применяется?

Evgeniy
19.11.2016
15:06:53
когда ты понимаешь риски апдейт аномалий ради производительности

Pavel
19.11.2016
15:07:17
Вкратце и грубо, если у тебя десятки миллионов пользователей и миллионы организаций и аккаунтов, а масштабироваться вертикально особо нету возможности