|
|
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous... V&Nмне вот сразу интересно стало, в каких случаях вы собираетесь использовать SERIALIZABLE и чем не понравился repeatable read? Во всех. Не понравился проблемами с консистентостью. .... приступайте к работе, вы уже определились. и ни в коем случае не понижайте уровень транзакции. SERIALIZABLE - и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 19:27:52 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
V&Nприступайте к работе, вы уже определились. и ни в коем случае не понижайте уровень транзакции. SERIALIZABLE - и всё. А почему бы и нет? Из-за иррациональной боязни низкой производительности? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 20:38:53 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous, > блокировочника я могу делать INSERT в таблицу c SEQUENCE в конце каждой транзакции и получить таблицу с этим порядком, что-то вроде в пг на сиквенсе нету блокировки. вам уже сказали выше, можете явно сами сделать подобное на обычных блокировках. > Sequence_Num Описание транзакции > 1 внесение N руб на счёт A по документу B. > 2 снятие M руб со счёта A по документу C. тут у вас уже есть явная блокировка (да, в версионнике) на счете А. --- вы можете отслеживать порядок транзакций внутри базы только относительно некоторой блокировки. в случае SERIALIZABLE в общем виде они могут идти параллельно, так как могут не разделять ничего общего. тогда вам надо что-то общее им дать (явно или не явно, по предикатам). а если вам надо им дать общую блокировку, и вы это видите явно (сиквенс до этого использовали) -- то тогда зачем использовать сложную изоляцию. у вас, в блокировочнике, почти уверен, изменение сиквенса лочит всё на нём. -- это и есть явный лок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 20:51:12 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymousА почему бы и нет? Из-за иррациональной боязни низкой производительности? ;)Почему иррациональной? Она же очевидно будет ниже, придётся некоторые транзакции по несколько раз повторять из-за конфликтов сериализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 20:53:14 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinв пг на сиквенсе нету блокировки. вам уже сказали выше, можете явно сами сделать подобное на обычных блокировках. В MS SQL тоже нет, например. Misha TyurinВ случае SERIALIZABLE в общем виде они могут идти параллельно, так как могут не разделять ничего общего. Ну да, я про это уже писал. Misha TyurinТогда вам надо что-то общее им дать (явно или не явно, по предикатам). а если вам надо им дать общую блокировку, и вы это видите явно (сиквенс до этого использовали) -- то тогда зачем использовать сложную изоляцию. Незачем, мне хотелось бы узнать эту последовательность, не изменяя её. Misha TyurinУ вас, в блокировочнике, почти уверен, изменение сиквенса лочит всё на нём. -- это и есть явный лок Нет, не лочит. В блокировочнике это работает за счёт того, что последовательность сериализации совпадает с последовательностью COMMIT-ов. Т.е. первым значение получит тот, кто блокирует (и тут же сделает COMMIT), а затем уже тот, кого он блокировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 21:00:11 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
ЁшОна же очевидно будет ниже, придётся некоторые транзакции по несколько раз повторять из-за конфликтов сериализации. Безусловно, будет! Так давайте всё на ассемблере писать! ;) Даёшь READ UNCOMMITTED - главное считать быстро , результат не имеет значения! ;) Если серьёзно, вопрос тут в том, будет ли производительность неприемлемо низкой, и стоит ли повышение производительности отсуствия гарантии консистентности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 21:06:13 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous, > Нет, не лочит. > В блокировочнике это работает за счёт того, что последовательность сериализации совпадает с последовательностью COMMIT-ов. Т.е. первым значение получит тот, кто блокирует (и тут же сделает COMMIT), а затем уже тот, кого он блокировал. кого блокирует то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 21:16:57 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous, > гарантии консистентности. о какой консистентности речь? вы можете хоть как-то её, хоть на пальцах описать? обновление счетов, делается консистентно между конкурируюшими трназкциями в режиме ридкоммитед, как раз за счет блокировок счетов/аккаунтов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 21:23:17 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinкого блокирует то? Другую транзакцию на том ресурсе, за который они конкурируют, конечно. Misha Tyurinо какой консистентности речь? вы можете хоть как-то её, хоть на пальцах описать? О той, которая гарантируется SERIAIZABLE. Я не понимаю, зачем её описывать "на пальцах", когда в стандарте SQL чётко сказано, что это такое. Misha Tyurinобновление счетов, делается консистентно между конкурируюшими трназкциями в режиме ридкоммитед, как раз за счет блокировок счетов/аккаунтов Или не делается, от ситуации и метода изоляции зависит. Вы о каком READ COMMITTED говорите (версионный или блокировочный) и о какой ситуации? И, кстати, обновление счетов я привёл просто как пример, вопрос был общий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 23:01:13 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymousMisha Tyurinо какой консистентности речь? вы можете хоть как-то её, хоть на пальцах описать? О той, которая гарантируется SERIAIZABLE. Я не понимаю, зачем её описывать "на пальцах", когда в стандарте SQL чётко сказано, что это такое.Не существует СУБД полностью поддерживающей стандарт, хотя бы по этому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 23:46:02 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous, чет у вас всё путается. когда я говорю о уровне изоляции, я как раз имею ввиду sql и феномены, и я не вижу разницы в движке базы: версионник или блокировончик, -- это уже ваще не важно. далее. у вас, в сиквелсервере, сиквенс генерится в момент коммита. это ваще к уровням изоляции уже имеет отдаленное отношение, так как это всё вне транзакции. подозреваю, что есть лок на фиксацию транзакции в журнал, вот там вы и лочитетсь. лок есть, но не явный опять. // лично не видел, нагуглил: http://msdn.microsoft.com/ru-ru/library/ff878091.aspx "Порядковые номера создаются вне области текущей транзакции. Они обрабатываются, когда выполняется фиксация или откат транзакции, использующей порядковый номер." далее. по sql стандарту, кстати, постгресовый рипитаблрид как раз есть сикуель-сериалайзебл. в пг рипитрид более строгий как раз (исключает Phantom Read) из-за версионного снепшота. но так как сикуель стандарт декларирует лишь минимальные условия, то далее мы и начинанем играть с предикатными локами в тру-пг-сериалайзебл. вы точно уверены какой уровень именно вам нужен и зачем. каких случаев вы хотите избежать? смотрите еще какой момент. если транзакции шли как (1,2,3), а потом мы их видим как (2,1,3), но при этом результат последовательного применения по обоим порядкам одинаков, то обо порядка удовлетворяют условию сериализации. вам какой из порядков надо? меня не покидает ощущение что вы не туда забрели. еще раз обращаю внимание! в вашем блокировочнике (почти наверняка) есть *лок* на сиквенсе! -- но он не на уровне транзакций, а в движке фиксации коммита. вот и сделайте сиквенсы в двух вариантах: 1) либо явные локи, тогда можно и в уровне ридкоммитед нормально работать, если аккуратно везде локов наставить; 2) либо (не явные локи) ВСЁ надо по дефолту в сериалайзебл, все совсем транзакции сериалайзебл и только такие. но и во втором случае вы НЕ получите порядок физических коммитов, а получите лишь один из "последовательных порядков". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 23:57:20 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
Гость_0Не существует СУБД полностью поддерживающей стандарт, хотя бы по этому. Ну и что? В части обеспечения изоляции существует немало СУБД, полностью поддерживающих стандарт, и PostgreSQL - одна из них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 11:29:53 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous, ну вообще то нет, read uncommitted в postgres нет. Не хотите объяснять - ваше дело, что мне вас заставлять что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 11:38:15 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinчет у вас всё путается. Почему это - у меня? ;) Misha Tyurinкогда я говорю о уровне изоляции, я как раз имею ввиду sql и феномены, и я не вижу разницы в движке базы: версионник или блокировончик, -- это уже ваще не важно. Как это неважно? В PostgreSQL на REPEATABLE READ ни одного из описанных в стандарте феноменов нет вообще, а в блокировочнике есть фантомы, и т.д. Misha Tyurinв сиквелсервере, сиквенс генерится в момент коммита. это ваще к уровням изоляции уже имеет отдаленное отношение, так как это всё вне транзакции. подозреваю, что есть лок на фиксацию транзакции в журнал, вот там вы и лочитетсь. лок есть, но не явный опять. Ещё раз - нет там никакого лока, и SEQUENCE я могу использовать как часть метода отслеживания порядка сериализации. Misha Tyurin // лично не видел, нагуглил: http://msdn.microsoft.com/ru-ru/library/ff878091.aspx "Порядковые номера создаются вне области текущей транзакции. Они обрабатываются, когда выполняется фиксация или откат транзакции, использующей порядковый номер." Просто неправильный перевод. Там написано вот что: Sequence numbers are generated outside the scope of the current transaction. They are consumed whether the transaction using the sequence number is committed or rolled back. То есть это внетранзакционный, неблокирующий механизм. Misha Tyurinпо sql стандарту, кстати, постгресовый рипитаблрид как раз есть сикуель-сериалайзебл. Ничего подобного! Всё это чётко описано как в стандарте, так и в документации: http://www.postgresql.org/docs/9.4/static/transaction-iso.html Misha Tyurinвы точно уверены какой уровень именно вам нужен и зачем. каких случаев вы хотите избежать? Да, уверен. Я хочу избежать всех случаев, не разбираясь с ними. ;) Цитата из той же ссылки: Consistent use of Serializable transactions can simplify development. The guarantee that any set of 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. Misha Tyurinсмотрите еще какой момент. если транзакции шли как (1,2,3), а потом мы их видим как (2,1,3), но при этом результат последовательного применения по обоим порядкам одинаков, то обо порядка удовлетворяют условию сериализации. вам какой из порядков надо? Любой. Misha Tyurinеще раз обращаю внимание! в вашем блокировочнике (почти наверняка) есть *лок* на сиквенсе! -- но он не на уровне транзакций, а в движке фиксации коммита. Ещё раз обращаю Ваше внимание, что лока там нет . Misha Tyurin2) либо (не явные локи) ВСЁ надо по дефолту в сериалайзебл, все совсем транзакции сериалайзебл и только такие. но и во втором случае вы НЕ получите порядок физических коммитов, а получите лишь один из "последовательных порядков". Я знаю это, и хочу знать, какой именно из "последовательных порядков" я получил в каждой ситуации, где это имеет значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 11:44:34 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
Гость_0PgSQLanonymous, ну вообще то нет, read uncommitted в postgres нет. Не хотите объяснять - ваше дело, что мне вас заставлять что ли? Ну вообще-то да, и READ UNCOMMITTED в PostgreSQL формально есть. Вот цитата из документации, кстати (выделение моё): When you select the level Read Uncommitted you really get Read Committed, and phantom reads are not possible in the PostgreSQL implementation of Repeatable Read, so the actual isolation level might be stricter than what you select. This is permitted by the SQL standard: the four isolation levels only define which phenomena must not happen, they do not define which phenomena must happen. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 11:48:40 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymous <> Ещё раз - нет там никакого лока, и SEQUENCE я могу использовать как часть метода отслеживания порядка сериализации. Misha Tyurin // лично не видел, нагуглил: http://msdn.microsoft.com/ru-ru/library/ff878091.aspx "Порядковые номера создаются вне области текущей транзакции. Они обрабатываются, когда выполняется фиксация или откат транзакции, использующей порядковый номер." Просто неправильный перевод. Там написано вот что: Sequence numbers are generated outside the scope of the current transaction. They are consumed whether the transaction using the sequence number is committed or rolled back. какбе праткически то, что миша привел в кач-ве перевода PgSQLanonymous <> То есть это внетранзакционный, неблокирующий механизм. откуда взялось словцо "неблокирующий" PgSQLanonymous <> Misha Tyurinеще раз обращаю внимание! в вашем блокировочнике (почти наверняка) есть *лок* на сиквенсе! -- но он не на уровне транзакций, а в движке фиксации коммита. Ещё раз обращаю Ваше внимание, что лока там нет . <>из того, что ты не видешь толстова суслека - не следует с неизбежностью не только того, что его там нет, но даже и какого-то оправдания завиральным завываниям "ещщщщщё расс", "обрайщаяю" и т.п.. Итак -- русурс -- присвоитель номера-- один, не бесконечно быстрый (по определению) пользователей -- много (транзакции) а где они толкаются -- прямо перед ресурсом, или в кордорчике доступа к оному [или даже реально на однем камешке в затылочек друг-друго ходят, изображая параллельность] -- дело десятое, главное что такое место есть. его не может не быть. вам нужно переписать коммит пж так, чтобы он тоже совался к каокому-нито "неблокирующему" [т.е. короткоблокирующему-- на время доступа] ресурсу. и писал его значение кудыньть в. начать и кончить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 12:52:52 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymousГость_0PgSQLanonymous, ну вообще то нет, read uncommitted в postgres нет. Не хотите объяснять - ваше дело, что мне вас заставлять что ли? Ну вообще-то да, и READ UNCOMMITTED в PostgreSQL формально есть. Вот цитата из документации, кстати (выделение моё): When you select the level Read Uncommitted you really get Read Committed, and phantom reads are not possible in the PostgreSQL implementation of Repeatable Read, so the actual isolation level might be stricter than what you select. This is permitted by the SQL standard: the four isolation levels only define which phenomena must not happen, they do not define which phenomena must happen. ну какбе читателю анкомиттед интересна не буква стандарта, а что другие негодяи в запись-пись успели понаписать. и пж--негодяи вполне могли бы такое под своей какоё-нить уровнёй реализнуть. если им шапка из стандарта не по нутру. поленились, ссуки т.ч. комитеты такие комитеты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 12:57:50 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
кстати, что txid относится к началу а не к концу, не имеет в случае честного бетонного и именно сериалайзебла никакой роли. опять же если порядок требуется любой из возможных. или я вру ? ведь если вона коничла, то другие, позже стартовавшие, явно ей не помешали кончить. и могут щитаццо более позжими. ( и если кончили, и если обломались) и так -- с каждой парой */автор интересуется только конившими/ т.е. попарные сравнения заданы, и заданы непротиворечиво, аддитивно и перестановочно нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 13:16:33 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
, это наоборот в коммитед вы можете прочитать данные, закомиченные позднее стартовавшей[ но раньше закомиченной] и бесчестно их поюзать. уже в дваждыблы-рид возникнет (нет ?) трабла с не репитабельностью. (вернее воно порпобует прочитать из снапшота, если сие не важно, но вот отапдейтит ли , если потребуется, закомиченное после снапшот-txid-а ? кажется ругнётся [давно не брал я в руки всего, кроме commited]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 13:30:31 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
думаеццакакбе праткически то, что миша привел в кач-ве перевода Как бы нет. They are consumed whether the transaction using the sequence number is committed or rolled back. Перевод примерно такой: Они потребляются (используются) независимо от того, выполнена ли фиксация или откат транзакции, использующей порядковый номер. думаеццаоткуда взялось словцо "неблокирующий" Это следует из документации MS SQL, например. думаеццаиз того, что ты не видешь толстова суслека - не следует с неизбежностью не только того, что его там нет, но даже и какого-то оправдания завиральным завываниям "ещщщщщё расс", "обрайщаяю" и т.п.. А ты не хамить не можешь? думаеццаИтак -- русурс -- присвоитель номера-- один, не бесконечно быстрый (по определению) пользователей -- много (транзакции) а где они толкаются -- прямо перед ресурсом, или в кордорчике доступа к оному [или даже реально на однем камешке в затылочек друг-друго ходят, изображая параллельность] -- дело десятое, главное что такое место есть. его не может не быть. Да, синхронизационный примитив (mutex там или ещё что...) там есть, ради того, чтобы каждое получение значения давало следующий номер, а не дубликаты, но это не обычная блокировка, т.к. она тут же снимается по получению значения. думаеццавам нужно переписать коммит пж так, чтобы он тоже совался к каокому-нито "неблокирующему" [т.е. короткоблокирующему-- на время доступа] ресурсу. и писал его значение кудыньть в. начать и кончить Нет, это не поможет, сколько можно повторять? В SSI последовательность сериализации не совпадает с последовательностью COMMIT-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 13:36:03 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
думаеццакстати, что txid относится к началу а не к концу, не имеет в случае честного бетонного и именно сериалайзебла никакой роли. опять же если порядок требуется любой из возможных. или я вру ? ведь если вона коничла, то другие, позже стартовавшие, явно ей не помешали кончить. и могут щитаццо более позжими. ( и если кончили, и если обломались) и так -- с каждой парой */автор интересуется только конившими/ т.е. попарные сравнения заданы, и заданы непротиворечиво, аддитивно и перестановочно нет ? Нет. Прочитай раздел "Apparent Serial Order of Execution" по ссылке из первого сообщения темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 13:44:31 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymousдумаеццакакбе праткически то, что миша привел в кач-ве перевода Как бы нет. They are consumed whether the transaction using the sequence number is committed or rolled back. Перевод примерно такой: Они потребляются (используются) независимо от того, выполнена ли фиксация или откат транзакции, использующей порядковый номер. ну если у вас проблемы с русски, и "или"[-или] в качестве либо-либо вас не устраивает, -- можешьте педалировать "независимость", педалик вы нашЪ PgSQLanonymousдумаеццаоткуда взялось словцо "неблокирующий" Это следует из документации MS SQL, например. я спрашиваю о переводе конкретного предложения, и плыть в сторону океана доки абсолютно бесполезно. фиксирую -- опрашиваемый поплыл. PgSQLanonymousдумаеццаиз того, что ты не видешь толстова суслека - не следует с неизбежностью не только того, что его там нет, но даже и какого-то оправдания завиральным завываниям "ещщщщщё расс", "обрайщаяю" и т.п.. А ты не хамить не можешь? это хорошо, что хоть в зеркале вы увидели хама. теперь осталось совместить отражение с оригиналом. повторяю -"ещё раз" и "обращаю" и т.п. завывания -- суть непрекрытое хамство в свете вашего плавания в переводе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 13:46:10 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
anonymous anonymous а я маленькину какбе читателю анкомиттед интересна не буква стандарта, а что другие негодяи в запись-пись успели понаписать. Пусть найдёт себе другой глобус, я считаю. ;) anonymous anonymous а я маленькии пж--негодяи вполне могли бы такое под своей какоё-нить уровнёй реализнуть. если им шапка из стандарта не по нутру. поленились, ссуки т.ч. комитеты такие комитеты Они как-то это обсуждали, вот, например, мнение Tom Lane по этому поводу: http://www.postgresql.org/message-id/5209.1211760608@sss.pgh.pa.us]http://www.postgresql.org/message-id/5209.1211760608@sss.pgh.pa.us Или вот ещё: http://www.postgresql.org/message-id/AANLkTikLBFk4mE=fg18wLStLPwGJTEbOhS=sY5G9smgQ@mail.gmail.com]http://www.postgresql.org/message-id/AANLkTikLBFk4mE=fg18wLStLPwGJTEbOhS=sY5G9smgQ@mail.gmail.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 14:02:00 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
PgSQLanonymousдумаеццакстати, что txid относится к началу а не к концу, не имеет в случае честного бетонного и именно сериалайзебла никакой роли. опять же если порядок требуется любой из возможных. или я вру ? ведь если вона коничла, то другие, позже стартовавшие, явно ей не помешали кончить. и могут щитаццо более позжими. ( и если кончили, и если обломались) и так -- с каждой парой */автор интересуется только конившими/ т.е. попарные сравнения заданы, и заданы непротиворечиво, аддитивно и перестановочно нет ? Нет. Прочитай раздел "Apparent Serial Order of Execution" по ссылке из первого сообщения темы. не понял, что вас там не устроило. Это ведь изложено некое общее место. осталось понять, имеет ли это общее место отношение к реализации SR в Pg. вот я думаю , что не имеет. если я не прав -- на пальцах, пжалста. (если бы пж сам откатывал снапшот и повторно пытался провернуть транзу [а он пытается ?], то в таком отношении, о котором я писал, были бы не стартовые txid транз, а txid-ы их активных снепшотов, которые было бы уместно в этом случае поюзать в качестве txid-ов транз (т.е. после отката выставить новый txid). но, насколько я помню, пж просто отгружает вам ошибку изоляции -- будьте здраьсте -- и будьте любезны стартуйте новую тразу сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 14:16:28 |
|
||
|
Как узнать порядок, в которым следовали SERIALIZABLE транзакции?
|
|||
|---|---|---|---|
|
#18+
думаеццану если у вас проблемы с русски, и "или"[-или] в качестве либо-либо вас не устраивает, -- можешьте педалировать "независимость", педалик вы нашЪ Понятно, не хамить не можешь. :( И полезного ничего не говоришь. Наше общение, я, пожалуй, закончу на этом: думаецца я спрашиваю о переводе конкретного предложения, и плыть в сторону океана доки абсолютно бесполезно. фиксирую -- опрашиваемый поплыл. Оригинал: They are consumed whether the transaction using the sequence number is committed or rolled back. Перевод 1: Они обрабатываются, когда выполняется фиксация или откат транзакции, использующей порядковый номер. Перевод 2: Они потребляются (используются) независимо от того, выполнена ли фиксация или откат транзакции, использующей порядковый номер. Разница очевидна, IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2014, 14:18:05 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38766872&tid=1998458]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 445ms |

| 0 / 0 |
