@pgsql

Страница 532 из 1062
Anton [Mgn, az09@osm]
24.10.2017
07:53:23
эх, такая теория сорвалась)

Юрий
24.10.2017
07:55:35
Ребят, а у постгри есть асинхронный протокол? Чтобы по одному соединению более 1 запроса можно было гонять одновременно?

или только послал и сиди жди?

Vladislav
24.10.2017
07:56:57
в рамках сокета - жди

Google
Vladislav
24.10.2017
07:57:04
но никто не мешает открыть еще сессии

ну точнее, если никто не запрещает

Yaroslav
24.10.2017
08:00:59
Юрий
24.10.2017
08:01:46
в рамках сокета - жди
В этом в вопрос. Сам протокол не умеет делать асинхронное взаимодействие?

Alexey
24.10.2017
08:02:51
В этом в вопрос. Сам протокол не умеет делать асинхронное взаимодействие?
умеет. но libpq поддерживает только один асинхронный запрос "в полёте". в смысле, можно отправить один запрос, а потом асинхронно получить результат. больше уже не получится

Юрий
24.10.2017
08:03:50
Ок. А может кто знает, есть ли планы сделать настоящий асинхронный протокол? Чтобы по 1 соединению гонять много запросов.

Vladislav
24.10.2017
08:07:01
все таки запросы, это не только селекты...

Юрий
24.10.2017
08:07:16
а у кого такое есть?
Вроде как rethinkdb умеет. Ну и там особой магии нету - добавляешь всем запросам айди, и потом при приеме ответа по айди понимаешь, какому запросу пришел ответ.

Юрий
24.10.2017
08:09:14
точно-точно в один коннект?
Инфа не 100%, но вроде как да. Ну и я не вижу в этом особых проблем - я такое делал на уровне приложения по вебсокету. Это стандартная практика.

Google
Anton [Mgn, az09@osm]
24.10.2017
08:09:23
все таки запросы, это не только селекты...
грязных данных и коллизий можно и в разных коннектах нахватать, тут разницы имхо особой нету

Юрий
24.10.2017
08:10:59
соль в том, чтобы при меньшем количестве соединений обслуживать больше запросов

Anton [Mgn, az09@osm]
24.10.2017
08:11:28
как быть с ворк_мем?

(посолить)

Юрий
24.10.2017
08:12:13
я не настоящий сварщик, я только спросить ?

Yaroslav
24.10.2017
08:13:09
Я не об архитектуре, я об принципе возникновения такой ситуации. Вообще историю можно хранить в той же "таблице", если бить на партиции
Видите ли, я говорю о том, что у каждого, у кого как-то "плохо работает", скажем, EAV, на самом деле есть одна основная проблема, и она вовсе не с индексацией. ;) Но приницип я понял, спасибо.

Юрий
24.10.2017
08:16:33
а зачем?
Меньше соединений - меньше накладных расходов. Плюс у нас есть шареный постгрес, и по требованию выдают только ограниченное количество соединений. Так был бы асинхронный драйвер и буквально парчкой соединений обошелся, и другим бы не мешал.

Vladislav
24.10.2017
08:17:40
что-то вы в этой предметной области не понимаете, либо я вас не понимаю...

Юрий
24.10.2017
08:20:49
что именно непонятно?

Alexey
24.10.2017
08:21:46
Anton [Mgn, az09@osm]
24.10.2017
08:21:50
https://en.wikipedia.org/wiki/RethinkDB (а вернее русский раздел) говорит о цепочках вызовов функций ReQL

Alexey
24.10.2017
08:23:12
а у кого такое есть?
известные мне примеры: Tarantool и MySQL X Protocol поддерживают pipelining

Anton [Mgn, az09@osm]
24.10.2017
08:27:18
если принципиальной разницы нет, грузить db или app сервер, какой вариант лучше?
db. но я бы эти данные в базу скопировал. а там уже селекты, джоины, вот это вот всё

без джанг и питонов

No
24.10.2017
09:32:53
Подскажите, существует ли способ сделать ограничение по сумме строк? http://sqlfiddle.com/#!17/7f8dc/1 CREATE TABLE items ( id serial primary key, value int ); INSERT INTO items (value) VALUES (1), (1), (0), (1), (1); -- Какой-то триггер или constraint, чтобы сумма последних трёх строк не могла быть больше 2 -- не должно срабатать, можно вставить только 0: INSERT INTO items (value) VALUES (1);

Alexander
24.10.2017
09:41:32
без джанг и питонов
ну, там API нужно)

просто надо раз в 10 минут примерно синхронизировать (проверять, не сломалась ли одна панелька относительно другой)

Google
Alexander
24.10.2017
09:42:32
ну, в общем я вроде сделал, оно довольно быстро работает)

No
24.10.2017
09:44:45
Что значит "последних трёх"?
С максимальными тремя id, например. Надо было наверное пример с датами лучше. Строки за последние пять минут должны быть меньше определённого лимита.

No
24.10.2017
09:46:37
Я сделал c constraint trigger, но если в рамках одной транзакции вставить две записи по одтельности проходящие лимит, а в сумме дающие превышение, то триггер не ловит этот момент. Т.е. он не видит другую запись, которая ещё не закоммичена.

No
24.10.2017
09:51:59
С двумя конкурирующими транзакциями SERIALIZABLE меня спасёт? =)

Dasha
24.10.2017
09:53:05
Всем привет! Я Даша и вообще пишу на Python, но сейчас не об этом. Тут ищу SQL разработчика в команду МегаФон. Предстоит участвовать в создании аналитических сервисов, предобрабатывать данные (верификация, селекция и т.д.) и поддерживать документацию по процессу обработки. Нужно: – Отлично знать SQL (само собой); – Уметь в Excel продвинутом уровне; – Опыт с промышленными СУБД (Oracle, PostgreSQL, MySQL тд); – Опыт опыт построения систем хранения данных; – Техническое образование. Помимо зарплаты, ждет классный опыт в телекоме и обработке больших данных, офис в центре Москвы с возможностью гибкого графика, полное оформление, страховка и плюшки в виде компенсации мобильной связи и скидок в спортзале. Не кидайтесь тапками :) Кому интересно, резюме можно отправить тут → https://goo.gl/19eN7F

Yaroslav
24.10.2017
09:56:34
С двумя конкурирующими транзакциями SERIALIZABLE меня спасёт? =)
Да, конечно. Это вообще панацея (я не шучу).

No
24.10.2017
09:57:42
Да, конечно. Это вообще панацея (я не шучу).
Спасибо, в документации как раз примеры на SUM. Почему-то сразу на это не обратил внимания.

Lev
24.10.2017
10:12:20
http://risovach.ru/upload/2017/10/mem/ne-nado-tak_159262837_orig_.jpg

Massimo
24.10.2017
10:19:36
Lev
24.10.2017
10:21:38
Почему, тоже бд.
Программный продукт для которого нужны совсем другие навыки, чем те, которыми обладают DBA

Massimo
24.10.2017
10:21:56
Я шутил)

Anton [Mgn, az09@osm]
24.10.2017
10:55:40
сохранил в #избранное

Курс молодого бойца PostgreSQL https://habrahabr.ru/post/340460/ Tags: Программирование, SQL, PostgreSQL, Postgres, базы данных, СУБД Author postgres on #habrahabr

однако какой себе ник отхватил автор...

Mike Chuguniy
24.10.2017
11:32:53
От скромности не умрёт.

Yury
24.10.2017
12:16:17
Вроде как rethinkdb умеет. Ну и там особой магии нету - добавляешь всем запросам айди, и потом при приеме ответа по айди понимаешь, какому запросу пришел ответ.
постгрес даже не многопоточный, только процессы плодить умеет по этому о асинхронности нечего и думать. Но это нормально, асинхронность нужна когда есть какой либо io а тут всё в цпу упирается (ио есть но уже внутрях пг)

Stas
24.10.2017
12:18:05
постгрес даже не многопоточный, только процессы плодить умеет по этому о асинхронности нечего и думать. Но это нормально, асинхронность нужна когда есть какой либо io а тут всё в цпу упирается (ио есть но уже внутрях пг)
на простом prepared-селекте упирается таки в сетевой io, а конкретнее в контекст свичи. В этом месте вычитать пачку коротких запросов и дать пачку коротких ответов может дать x3-x10

Google
Stas
24.10.2017
12:19:48
последовательные прстые запрос-ответ в один поток это 30-40 ktps, что в постгресе, что в редисе

Stas
24.10.2017
12:20:16
батчинг в протоколе

помогает это вылечить

Yury
24.10.2017
12:21:10
я бы батчингом это неназвал... скорее очередь

вопросс только кто должен крутить эвент луп, сам процесс по идее не может, постмастер?

Stas
24.10.2017
12:24:16
да не нужен ивент луп, клиент собирает 100 запросов в пачку, посылает их сразу в открытое соединение, конкретному процессу, он обрабатывает их и посылает сразу 100 ответов

Yury
24.10.2017
12:25:08
в этом виде это конечно бачинг

Stas
24.10.2017
12:25:08
в итоге посылается не 100 мелких пакетов, а один большой

Yury
24.10.2017
12:25:39
ну это к асинхронщине отношения не имеет

Sherzod
24.10.2017
12:26:08
Всем салам

кто пользуется PostgreSQL 10??

Stas
24.10.2017
12:26:34
ну это к асинхронщине отношения не имеет
режим работы протокола асинхронный при этом

Yury
24.10.2017
12:26:38
11dev

Sherzod
24.10.2017
12:26:40
она стабильна??

Alexey
24.10.2017
12:26:42
ну это к асинхронщине отношения не имеет
вопрос терминологии. batching/pipelining вполне можно рассматривать как частный случай async IO

Yury
24.10.2017
12:27:01
вопрос терминологии. batching/pipelining вполне можно рассматривать как частный случай async IO
это просто оптимизация... асинхроности тут не добавляется

Stas
24.10.2017
12:27:43
он и сейчас такой
сейчас есть синк/асинк режимы. Но асинк ну умеет в пачки.

Google
Yury
24.10.2017
12:27:53
Стас, так вы уже это сделали?

или делаете?

Stas
24.10.2017
12:28:11
https://www.postgresql.org/message-id/flat/CAMsr+YFUjJytRyV4J-16bEoiZyH=4nj+sQ7JP9ajwz=B4dMMZw@mail.gmail.com#CAMsr+YFUjJytRyV4J-16bEoiZyH=4nj+sQ7JP9ajwz=B4dMMZw@mail.gmail.com

Yury
24.10.2017
12:28:17
ок спс

Stas
24.10.2017
12:28:36
вот тредик. Не мы и еще не закоммитили. Но работает)

Alexey
24.10.2017
12:29:22
это просто оптимизация... асинхроности тут не добавляется
в pipeline режиме не нужно синхронно ждать результат каждого отдельного запроса. то, что не синхронное, вполне можно назвать асинхронным для ясности

Yury
24.10.2017
12:29:49
вопросс в обработке ошибок... хех

Sherzod
24.10.2017
12:30:56
Yury
24.10.2017
12:31:39
вот тредик. Не мы и еще не закоммитили. Но работает)
по иронии судьбы сейчас с похожей вещью работаю но не для ПГ

Stas
24.10.2017
12:32:36
https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-1.noarch.rpm

вот остюда можно на правильный линк выйти: https://www.postgresql.org/download/linux/redhat/

Vlad
24.10.2017
13:13:57
Sup, судари Есть таблица attr вида: attr_p1, attr_p2, attr_p3 Задача: сделать INSERT INTO table (..) (select distinct attr_p1) и так для каждого аттрибута Проблема: аттрибутов 30 штук, писать 30 insert'ов не очень хочется. С SQL не очень дружу, поэтому прошу помощи

Vladislav
24.10.2017
13:15:16
справочники делаете? делайте 30 инсертов

и в чем проблема? копипаст на пару минут

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

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