|
пичаль
|
|||
---|---|---|---|
#18+
а вот господа гуру, почему, хотя ddl транзакционен, изменение функции не поддерживает уровней изоляции ? т.е. в pg_proc я читаю согласно уровню, а исполняется то, что закоммичено, даже если в вызывающей рипитбл или сериалайзебл. (т.е., на поверку, галимый read commited) на выбор: 1. конь не валялся (по недомыслию) 2. неумный компромисс (10-к -- другой процентов быстродействия) 3. тяжелый компромисс -- иначе потери производительности в разы или порядки 4. больной неоперабелен (архитектурно иное просто невозможно) 5. иное т.е. имеет ли смысл совсем держать поцгресс за оно, наряду с ара--калом, или оно ещё может исправиться ? PS этот косяк обнаружил исследуя другой косяк/фичу -- то же + препаред стейтмент с ф--ей в транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 10:57 |
|
пичаль
|
|||
---|---|---|---|
#18+
qwwq, А какая версия ПЖ? В 9.4 сделали версионным каталог, но мне кажется, что работа эта осталась незаконченной. По крайней мере так сказал разработчик, мол — SnapshotNow заменил на версионный каталог, но надо ещё "доработать" все объекты. Я с функциями ловил ещё такой косяк: в одной из "нижних" функций создавалсь (или пересоздавалсь) таблица, а потом "верхние" функции не видели этих изменений ("верхние" вызывают "нижние"). С тех пор зарёкся мешать DDL в бизнес логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 12:51 |
|
пичаль
|
|||
---|---|---|---|
#18+
vyegorov, кажется на всех. тестировал конкретно на поцгресс-пре поцледней, под вендой. что для тестов не принципиально. изначально была задача поймать, что при юзании jdbc при изменении ф--ии не даёт измениться результатцу сразу -- там таки да -- в план препареда (который jdbc готовит в тёмную от разработчика) новое тело почему--то попадает со второго раза , если этот препаред в транзакции не закрытой. но вот думаю -- чтобы два раза не вставать -- дай на уровни изоляции проверю -- и тут -- бааааатюшки--светы, в рояль то наделато по самое небалуйсо. как ушатом окатило. т.е. ушатало ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 12:58 |
|
пичаль
|
|||
---|---|---|---|
#18+
qwwqа вот господа гуру, почему, хотя ddl транзакционен, изменение функции не поддерживает уровней изоляции ? т.е. в pg_proc я читаю согласно уровню, а исполняется то, что закоммичено, даже если в вызывающей рипитбл или сериалайзебл. (т.е., на поверку, галимый read commited) на выбор: 1. конь не валялся (по недомыслию) 2. неумный компромисс (10-к -- другой процентов быстродействия) 3. тяжелый компромисс -- иначе потери производительности в разы или порядки 4. больной неоперабелен (архитектурно иное просто невозможно) 5. иное т.е. имеет ли смысл совсем держать поцгресс за оно, наряду с ара--калом, или оно ещё может исправиться ? PS этот косяк обнаружил исследуя другой косяк/фичу -- то же + препаред стейтмент с ф--ей в транзакции. скорее 4 в текущей реализации механизма инвалидации уже загруженных функций. и скорее всего 3 при попытке сделать как то по другому. PS: функции все таки не данные и поэтому вопрос уровней изоляции для DDL - он не то чтобы бессмысленный но мин там много. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 16:45 |
|
пичаль
|
|||
---|---|---|---|
#18+
Maxim BogukPS: функции все таки не данные и поэтому вопрос уровней изоляции для DDL - он не то чтобы бессмысленный но мин там много. более, чем спорное утверждение. думаю верно обратное: -- всем транзакционным ддл пж можно подтереться и поставить на оном крест, пока оно вот так -- как оно сейчас. причем -- верно безусловно и без порно. хотя разрабы могли бы расколоться -- ставил ли кто задачу изначально, или по-первости тяп-ляпнули, а теперь уже и не вычистить. все же незакомиченный ддл оно вроде не исполняет -- хоть какие то рамки приличия соблюдены -- т.е. и в более строгой постановке задача вероятно решаема. вопрос -- в цене вопроса. пс. там "фич" как грязи -- если например альтерить иммутабную ф-ю в момент работы кого то с ней -- то у кого--то, хотя тапки его -- будет ай-яй-яй. уже подкоп под транзакционность. и не слабый. "и вот всё у них так" -- как при дропе индекса в 7--ке всё падало -- так только рюшечки пришили поверх -- а внутри труха "из овна и палок" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2016, 17:06 |
|
пичаль
|
|||
---|---|---|---|
#18+
qwwqMaxim BogukPS: функции все таки не данные и поэтому вопрос уровней изоляции для DDL - он не то чтобы бессмысленный но мин там много. более, чем спорное утверждение. думаю верно обратное: -- всем транзакционным ддл пж можно подтереться и поставить на оном крест, пока оно вот так -- как оно сейчас. причем -- верно безусловно и без порно. хотя разрабы могли бы расколоться -- ставил ли кто задачу изначально, или по-первости тяп-ляпнули, а теперь уже и не вычистить. все же незакомиченный ддл оно вроде не исполняет -- хоть какие то рамки приличия соблюдены -- т.е. и в более строгой постановке задача вероятно решаема. вопрос -- в цене вопроса. пс. там "фич" как грязи -- если например альтерить иммутабную ф-ю в момент работы кого то с ней -- то у кого--то, хотя тапки его -- будет ай-яй-яй. уже подкоп под транзакционность. и не слабый. "и вот всё у них так" -- как при дропе индекса в 7--ке всё падало -- так только рюшечки пришили поверх -- а внутри труха "из овна и палок" Будете переходить на оракл? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 10:00 |
|
пичаль
|
|||
---|---|---|---|
#18+
PCContraqwwqпропущено...а внутри труха "из овна и палок" Будете переходить на оракл? ))) в ара-кале "индусы" (преимущественно по имени "том") давно всё из авна и палок слепили истинно великий там только ларри -- продавать индусский помёт за очень зелёные бабки -- это гений, не иначе попутно дебилов, типа <<умолчим>>, набирая в свидетели великого и ужасного, ара 1С--ом на старости лет осталось заняться -- авно такое же , но кормят и лучше и спрос стабильнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2016, 10:27 |
|
пичаль
|
|||
---|---|---|---|
#18+
новая функция -- суть новая версия апи к "базе". выходим на согласование апи с клиентом, а там нет "изоляций": клиент решает (вот как это сделать покрасивше -- тут есть варианты) к какой версии апи идти. если так смотреть, то начальная постановка снимается. это, кстати, выход на проблему деплоя кода в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 00:21 |
|
пичаль
|
|||
---|---|---|---|
#18+
Misha Tyurin, как бы помяхше-то... "ваше мнение очень не важно для нас" кактотаг имеем -- что имеем -- студентики миши--камнедробилки реализовали что--то тяп-ляп, в свои, доисторические, -- так с тех пор эти авгиевы конюшни никто и не разгрёб. и не разгребёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 08:34 |
|
пичаль
|
|||
---|---|---|---|
#18+
qwwqPCContraпропущено... Будете переходить на оракл? ))) в ара-кале "индусы" (преимущественно по имени "том") давно всё из авна и палок слепили истинно великий там только ларри -- продавать индусский помёт за очень зелёные бабки -- это гений, не иначе попутно дебилов, типа <<умолчим>>, набирая в свидетели великого и ужасного, ара 1С--ом на старости лет осталось заняться -- авно такое же , но кормят и лучше и спрос стабильнее. Нет в жизни совершенства ;). За неимением гербовой бумаги приходится писать на простой со всеми связанными недостатками. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 09:25 |
|
пичаль
|
|||
---|---|---|---|
#18+
Maxim Bogukпропущено... Нет в жизни совершенства ;) щасья не то слово. пж, в отличь от ара--кала, хоть внешне на скл--машинку был похож, без всяких этих надуманных ограничений . типа с протаскиванием алиаса на глубину. ну и без суррогатных убожеств типа роунамбера. и прочей рыбы. но внутри -- всё как у людей. такой же бардак. тьху на них. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 10:40 |
|
пичаль
|
|||
---|---|---|---|
#18+
qwwq, PREPARE и EXECUTE для чего придумали? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 15:32 |
|
пичаль
|
|||
---|---|---|---|
#18+
2107tsmqwwq, PREPARE и EXECUTE для чего придумали? увы, qwwq не сможет ответить ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 16:05 |
|
пичаль
|
|||
---|---|---|---|
#18+
За пару лет использования Postgresql и функций на plpgsql пришел к выводу, что нужно просто часть логики выносить из функции на уровень клиента, т.е. например если нам нужно выполнять ddl, а потом использовать эти объекты для dml, то выполнять все на plpgsql не стоит, а лучше написать две функции: первая для ddl, вторая для остальных действий. Из клиента, пусть это будет, например, python с psycopg2 запускаем первую функцию, она завершается и мы уверены, что ddl выполнился и закоммичен, а затем уже запускаем вторую функцию. После перехода на postgresql долго мучали "оракловые" привычки по поводу автономных транзакций и непривычного "транзакционного" ddl. Если в Oracle можно было всё сделать на pl/sql,в котором все ddl-операции атомарны, то к сожалению или к счастью часть работы теперь нужно выносить на уроверь выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2017, 09:55 |
|
пичаль
|
|||
---|---|---|---|
#18+
1. добавлю ссылок: из закрытого топика 19678899 : PgSQLanonymous3Не удержался, проверил. Да, всё так и есть, как ты говоришь. И вообще, похоже на то, что "общепринятое" значение "термина" transactional DDL --- не ACID, а только AD. ;( 2. 2 antonov.impulsm : не могу навскидку повторить ваш результат с пробоем dml (т.е. чтением артефакта) сразу после пробоя ddl в repeatable read -е. или это был неверно поставленный тест ? (там помнится ещё забавные гистерезисы с чтением из системных возникали) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2017, 20:01 |
|
пичаль
|
|||
---|---|---|---|
#18+
qwwq<> 2. 2 antonov.impulsm : не могу навскидку повторить ваш результат с пробоем dml (т.е. чтением артефакта) сразу после пробоя ddl в repeatable read -е. или это был неверно поставленный тест ? (там помнится ещё забавные гистерезисы с чтением из системных возникали) повторить появление "гистерезиса" на чтении из системных и пробоя уровня изоляции уже на уровне данных (в транзакции с пробоем уровня по ддл -- когда параллельно закоммиченные объекты БД сразу доступны из рипитебл или даже сериалайзебл транзакции) не удалось. Вероятно тест , показывающий такие пробои был изначально неверно поставлен (снапшот, вер-но, открывается не на БЕГИН-е, а на первом стейтменте ...). т.е. совсем криминала (по дмл) нет, есть проблема с тем, что если вы из транзакции привыкли читать системные по интересующему вас объекту, то сам объект может быть доступен (выборка или вставка в него), а вот чтение системных вам его не покажет. Т.е. нужен "коммитед" доступ к системным, из "рипитебл" или "сериалайзебл" транзакции -- чтобы системные соответствовали тому, что вы видите как доступные объекты БД. с функциями всё ещё интересней -- там надо долго теоретизировать, нельзя ли через них пробой и в данные пропихнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 11:26 |
|
пичаль
|
|||
---|---|---|---|
#18+
продолжение темы: http://www.sql.ru/forum/1255069/protekaushhiy-repeatable-read ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 10:29 |
|
|
start [/forum/topic.php?fid=53&fpage=76&tid=1996626]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 340ms |
total: | 478ms |
0 / 0 |