
Bogdan
22.10.2018
08:57:52
или в пределах дня униклаьные должны быть?

Yaroslav
22.10.2018
09:01:02

Dmitry
22.10.2018
09:02:33

Google

Yaroslav
22.10.2018
09:03:50

Dmitry
22.10.2018
09:06:57

many-faced
22.10.2018
09:08:58
Ребята, есть ли возможность в постгресе заблокировать строку на чтение до конца транзакции?

Yaroslav
22.10.2018
09:08:59
Вы не причитайте, а обоснуйте свое мнение. В доку ткните к конце концов
Я не "причитаю", а задаю Вам вопрос. Можете ответить?
По доке:
https://www.postgresql.org/docs/current/static/hot-standby.html (в конце)
"The Serializable transaction isolation level is not yet available in hot standby. (See Section 13.2.3 and Section 13.4.1 for details.) An attempt to set a transaction to the serializable isolation level in hot standby mode will generate an error."
Ну и см. по ссылкам.

Dmitry
22.10.2018
09:10:57
Прекрасно. Т.е. БД с уровнем изоляции меньше Serializable вы считаете не консистентной?

Sergey
22.10.2018
09:12:53

Andrei
22.10.2018
09:13:24
что есть ЕФ?

Yaroslav
22.10.2018
09:13:31

Sergey
22.10.2018
09:13:48
Значит точно не он
Была в каком-то чате такая трабла

Google

Andrei
22.10.2018
09:14:37
у меня подозрение, что это как-то связано с логической репликацией

Yaroslav
22.10.2018
09:14:41

Andrei
22.10.2018
09:14:47
я посмотрел историю внедрения фич

many-faced
22.10.2018
09:15:00

Andrei
22.10.2018
09:15:01
и это появилось после внедрения логической репликации

Vladimir
22.10.2018
09:15:14

Terminator
22.10.2018
09:16:09
@researcher_kot будет жить. Поприветствуем!

Yaroslav
22.10.2018
09:16:19

Sergey
22.10.2018
09:16:57

many-faced
22.10.2018
09:21:06

Yaroslav
22.10.2018
09:22:06

Dmitry
22.10.2018
09:23:15
Для особох случаев Repeatable read. Serializable нужен прямо вот совсем редко и это явно не High Load

many-faced
22.10.2018
09:25:32


Yaroslav
22.10.2018
09:29:02
Нет. Уровень изоляции Read Commited вполне себе консистентен для 99% задач
А эту статистику Вы где прочитали?
Проблема тут в том, что почти все неспособны им правильно пользоваться в нетривиальных случаях. Поэтому и трудно определить, входит ли конкретная задача в "99%" или нет. :(
> Serializable нужен прямо вот совсем редко
А некоторые используют вот прямо всегда. ;)
> это явно не High Load
Почему? И, кстати, High Load что, автоматически подразумевает, что получение/сохранение некорректных данных иногда — это Ok?

Dmitry
22.10.2018
09:30:06
Давайте договоримся о терминах. Вы что понимаете под согласованностью?

Yaroslav
22.10.2018
09:30:50


Dmitry
22.10.2018
09:31:04
Формулировка из Дейта (сорри, на английском): Consistency in database systems refers to the requirement that any given database transaction must change affected data only in allowed ways. Any data written to the database must be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof. This does not guarantee correctness of the transaction in all ways the application programmer might have wanted (that is the responsibility of application-level code) but merely that any programming errors cannot result in the violation of any defined database constraints.
Вот я не вижу, как Read commited противоречит этому определению.

many-faced
22.10.2018
09:32:04

Google

Yaroslav
22.10.2018
09:33:42

Dmitry
22.10.2018
09:39:16
Ну вот как-то жили прекрасно в том числе на Оракл с Read Commited и ничего героического в этом не было. И БД была консистентна. Как раз сериализация - это боль и кровь. В том числе для программеров. Если вы включите сериализацию, большинство приложений просто рухнет.

Demuz
22.10.2018
09:40:00

Dmitry
22.10.2018
09:40:58
Какой мониторинг?
Кто здесь? ))))) Извините ))) У вас нет мониторинга? Или вы спрашиваете, каким я пользуюсь?

Yaroslav
22.10.2018
09:40:59

many-faced
22.10.2018
09:44:01
вот да, пойду прочту про Serializable


Yaroslav
22.10.2018
09:45:28
Ну вот как-то жили прекрасно в том числе на Оракл с Read Commited и ничего героического в этом не было. И БД была консистентна. Как раз сериализация - это боль и кровь. В том числе для программеров. Если вы включите сериализацию, большинство приложений просто рухнет.
> Ну вот как-то жили прекрасно в том числе на Оракл с Read Commited и ничего героического в этом не было.
А, понятно. Т.е. есть люди, которые "прекрасно" жили на не-ACID СУБД, и до сих пор считают, что это нормально.
Это вообще ровно то же самое, что "настоящий программист может писать на ассемблере... в любом языке программирования!"
> И БД была консистентна.
Вы знаете, у меня был большой личный опыт разбора некорретных данных в БД, вызванных этим "замечательным" подходом, и я в это просто больше не верю.
> Как раз сериализация - это боль и кровь.
В чём боль-то?
> Если вы включите сериализацию, большинство приложений просто рухнет.
И не удивительно. Это просто значит, что они не на неё рассчитаны, нет?


Dmitry
22.10.2018
09:46:44
> Ну вот как-то жили прекрасно в том числе на Оракл с Read Commited и ничего героического в этом не было.
А, понятно. Т.е. есть люди, которые "прекрасно" жили на не-ACID СУБД, и до сих пор считают, что это нормально.
Это вообще ровно то же самое, что "настоящий программист может писать на ассемблере... в любом языке программирования!"
> И БД была консистентна.
Вы знаете, у меня был большой личный опыт разбора некорретных данных в БД, вызванных этим "замечательным" подходом, и я в это просто больше не верю.
> Как раз сериализация - это боль и кровь.
В чём боль-то?
> Если вы включите сериализацию, большинство приложений просто рухнет.
И не удивительно. Это просто значит, что они не на неё рассчитаны, нет?
Оракл не ACID???

Yaroslav
22.10.2018
09:46:57

Dmitry
22.10.2018
09:47:17

Сергей
22.10.2018
09:47:49
вчера статью про оракл се 18 читал, прооорал че-то с нее.

Yaroslav
22.10.2018
09:48:12

Сергей
22.10.2018
09:48:45
Одновременно с этим, новый Product Manager по направлению Express Edition пообещал, что теперь и впредь мы будем наслаждаться новой версией XE практически одновременно с выпуском остальных редакций, т.е. также раз в год. Единственная разница будет состоять в том, что для XE не будет выпускаться патчей и исправлений безопасности, в отличие от SE и EE. Однакое, каждый следующий мажорный релиз XE будет включать в себя все исправления и изменения, сделанные в редакциях SE и EE за весь предыдущий год, что, конечно, не может не радовать. Особенно если учесть, что на протяжении 7 лет 11-ая версия XE также не получала никаких патчей и исправлений, но всё равно была сильно востребована у комьюнити.
вот на этом абзаце можно было закончить
7 лет без патчей, но мы готовы дальше жрать дерьмо и рады


Yaroslav
22.10.2018
09:53:44
Вообще, способность Oracle бессовестно лгать, что их СУБД "ACID / ISO SQL сompliant", весьма радует. ;)
Ещё веселее читать их "обоснования" (мы не умеем читать^H^H^H понимаем стандарт альтернативно, и, поэтому...).

Dmitry
22.10.2018
09:57:37


Yaroslav
22.10.2018
10:03:57
Я выше привел определение (не своё :) консистентности, в котором
1) нет ни слова об уровнях изоляции
2) четко определено понятие корректных данных
3) четко сказано, что все аномалии - половые сложности программистов.
Если в ISO SQL есть определение консистентности через уровни изоляций, то прошу его предъявить с указанием четко пункта, где оно живет
> 3) четко сказано, что все аномалии - половые сложности программистов.
Не сказано. Вы внимательно его прочитали?
> Если в ISO SQL есть определение консистентности через уровни изоляций, то прошу его предъявить с указанием четко пункта, где оно живет
Там есть определение поведения уровней изоляции.
Соотношение их с консистеностью, как мне кажется, "вне" того, что должен определять стандарт (ожидается, что у читателей есть образование в соответствующей области... в которой это одно из базовых понятий).

Google

Aleksander
22.10.2018
10:05:56
А в pgAdmin4 можно как то посмотреть зависшие сесии? или в любой другой среде разработки?

Bogdan
22.10.2018
10:09:48

Aleksander
22.10.2018
10:10:41
У меня просто 2 Бд а сессии показываются только из одной

Bogdan
22.10.2018
10:12:42
ну так выбери вторую БД в меню слева
(или весь сервер)

Aleksander
22.10.2018
10:18:48
А как установить отладчик в pgAdmin4 а то ругается на создайте расширение pldbgapi

Dmitry
22.10.2018
10:36:19

Yaroslav
22.10.2018
10:44:18

Sab0
22.10.2018
10:48:37
кто-нибудь пробовал накатить на ubuntu 18 phpPgAdmin?
в целом, это штука работает?))

Alex
22.10.2018
10:49:20
в целом работает

Sab0
22.10.2018
10:52:50
ща просто вместо pgadmin4 буду ставить
не зашла че-т

Stanislav
22.10.2018
11:08:26

Sab0
22.10.2018
11:09:11

Stanislav
22.10.2018
11:10:16
я так глубоко её не копал, она с ISP консолью ставилась автоматом.

Dmitry
22.10.2018
11:32:54
> Вот у меня стандарт 2013 года.
2011, в смысле?
> В документе over 1500 страниц ни одного упомининия слова consistency.
Стандарт и не должен определять такие понятия.
> То что вы consistency притягиваете к isolation - это ваше личное изобретение
Вообще нет.
И, кстати, чем больше я смотрю на это "определение" Дейта, тем меньше оно мне нравится.
Наверное, оно вырвано из какого-то контекста, с корнем. ;)
Вот вам ещё аргумент. Аббревиатура ACID, которой вы тут щеголяете, расшифровывается:
Atomicity
Consistency
Isolation
Durability
Как видно, согласованность - отдельная от изоляции характеристика. Балее того, CAP-базы, которые
Consistency
Availability
Partition tolerance
обеспечивают согласованность (О, УЖАС!!!) без уровней изоляции.


Yaroslav
22.10.2018
11:38:49
Вот вам ещё аргумент. Аббревиатура ACID, которой вы тут щеголяете, расшифровывается:
Atomicity
Consistency
Isolation
Durability
Как видно, согласованность - отдельная от изоляции характеристика. Балее того, CAP-базы, которые
Consistency
Availability
Partition tolerance
обеспечивают согласованность (О, УЖАС!!!) без уровней изоляции.
Эээ... аргумент в пользу чего?
> Аббревиатура ACID, которой вы тут щеголяете, расшифровывается:
Я уже как-то запутался, что именно Вы пытаетесь обосновать. Аббревиатуры ACID тоже нет в стандарте, кстати. ;)
> Как видно, согласованность - отдельная от изоляции характеристика. Балее того, CAP-базы, которые
Да, отдельная, и это правильно. Т.к. можно нарушать constistency, не нарушая isolation.
Например, тупо игнорируя некоторые constraints (или игнорируя их в некоторых случаях). (Я слышал, что MySQL когда-то поступал именно так.)
> обеспечивают согласованность (О, УЖАС!!!) без уровней изоляции.
В CAP этот термин имеет совершенно другое значение, "О, УЖАС!!". :)

Google

bebebe
22.10.2018
11:39:37
встретились два DBA в баре...

Artyem
22.10.2018
11:40:00

Roman
22.10.2018
11:40:18

Anatoly
22.10.2018
11:41:50
ну хоть разнополые, раз уж без изоляции?


Dmitry
22.10.2018
11:42:47
Эээ... аргумент в пользу чего?
> Аббревиатура ACID, которой вы тут щеголяете, расшифровывается:
Я уже как-то запутался, что именно Вы пытаетесь обосновать. Аббревиатуры ACID тоже нет в стандарте, кстати. ;)
> Как видно, согласованность - отдельная от изоляции характеристика. Балее того, CAP-базы, которые
Да, отдельная, и это правильно. Т.к. можно нарушать constistency, не нарушая isolation.
Например, тупо игнорируя некоторые constraints (или игнорируя их в некоторых случаях). (Я слышал, что MySQL когда-то поступал именно так.)
> обеспечивают согласованность (О, УЖАС!!!) без уровней изоляции.
В CAP этот термин имеет совершенно другое значение, "О, УЖАС!!". :)
Аргумент в пользу того, что изоляция и согласованность друг друга не обуславливают. Это независимые характеристики БД. Они про разное. А вы пытаетесь их связать, причем через наивысший приоритет изоляции, что на мой взляд неправильно.
Про стандарт и наличие в стандарте - это вы начали. Я в дядюшку Дейта тыкал изначально.


Ололо
22.10.2018
11:51:06
подскажите есть текстовое поле как из него поудалять тэги начинающиеся с #слово #слово2 ?


Yaroslav
22.10.2018
11:57:12
Аргумент в пользу того, что изоляция и согласованность друг друга не обуславливают. Это независимые характеристики БД. Они про разное. А вы пытаетесь их связать, причем через наивысший приоритет изоляции, что на мой взляд неправильно.
Про стандарт и наличие в стандарте - это вы начали. Я в дядюшку Дейта тыкал изначально.
> Аргумент в пользу того, что изоляция и согласованность друг друга не обуславливают.
Да, не обуславливают. Но все компоненты ACID перекрываются.
К примеру, попробуйте представить не атомарную, но консистентную БД. Ну и так далее.
Связь изоляции и консистентности состоит вот в этом:
"The guarantee that any set of successfully committed concurrent Serializable transactions will have the same effect as if they were run one at a time means that if you can demonstrate that a single transaction, as written, will do the right thing when run by itself, you can have confidence that it will do the right thing in any mix of Serializable transactions, even without any information about what those other transactions might do, or it will not successfully commit."
Т.е. в этом и есть большой практический смысл. Т.е. если программист обеспечил "correctness of the transaction in all ways the application programmer might have wanted", считая, что он в базе работает один... то, при использовании SERIALIZABLE, на этом его проблемы и закончились.
> Я в дядюшку Дейта тыкал изначально.
Это "определение" consistency далеко от хорошего (мягко говоря).
Его можно прочитать так, что ему будут соответствовать совершенно неконсистентые вещи. :(


Dmitry
22.10.2018
11:59:49
Хорошо, как вы в вашей прекрасной системе объясните пользователям, что у них ошибки сериализации при конкурентном доступе к данным?

bebebe
22.10.2018
12:00:08

Yaroslav
22.10.2018
12:05:14

Dmitry
22.10.2018
12:07:15
протокол обработки подобных исключительных ситуаций .... Название у протокола-то есть? ))


Yaroslav
22.10.2018
12:14:36
Вы сейчас про savepoint вы мне пытаетесь рассказать? Или про всякие мулечки в питоне и прочих?
> Вы сейчас про savepoint вы мне пытаетесь рассказать?
Нет. Я говорю о том, как приложения обязаны обращаться с данными и реагировать на SQL states, возвращаемые СУБД, чтобы сохранять ACID-свойства. В данном случае, транзакции, которые получили serialization failure (и подобные states), должны автоматически повторяться.
> Или про всякие мулечки в питоне и прочих?
Какие "мулечки"? Это базовые требования работы с любой ACID (SQL) СУБД. ;)
Если кто-то не работает с ними так, как положено, никакого ACID у Вас не будет в любой, и это уже только его проблемы.
> протокол обработки подобных исключительных ситуаций .... Название у протокола-то есть? ))
Под "протоколом" я имел в виду ряд основных принципов. Не знаю, есть ли у них название...


Dmitry
22.10.2018
12:17:39
> Вы сейчас про savepoint вы мне пытаетесь рассказать?
Нет. Я говорю о том, как приложения обязаны обращаться с данными и реагировать на SQL states, возвращаемые СУБД, чтобы сохранять ACID-свойства. В данном случае, транзакции, которые получили serialization failure (и подобные states), должны автоматически повторяться.
> Или про всякие мулечки в питоне и прочих?
Какие "мулечки"? Это базовые требования работы с любой ACID (SQL) СУБД. ;)
Если кто-то не работает с ними так, как положено, никакого ACID у Вас не будет в любой, и это уже только его проблемы.
> протокол обработки подобных исключительных ситуаций .... Название у протокола-то есть? ))
Под "протоколом" я имел в виду ряд основных принципов. Не знаю, есть ли у них название...
Т.е. вместо того, чтобы честно показать ошибку, ваше приложение будет бесконечно долбиться к занятым данным и "висеть"? Это вы называете бест прэктис в архитектуре БД? Это уж точно антитребования какие-то

Сергей
22.10.2018
12:18:24

Dmitry
22.10.2018
12:18:55
Ну если там очередь на 20 минут, то для пользователя это равно бесконечно