|
Версионные субд
|
|||
---|---|---|---|
#18+
День добрый. Возник такой вопрос. В версионной субд происходит так: - Чел1 читает остаток из версии1 - Чел2 читает остаток из версии1 - Чел1 записывает остаток - Чел2 записывает остаток Блокировочник бы не дал прочитать данные чел2 пока не закончит транзакцию чел1. Как в версионнике контролируется недопустимость отрицательного остатка. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 10:21 |
|
Версионные субд
|
|||
---|---|---|---|
#18+
ovleДень добрый. Возник такой вопрос. В версионной субд происходит так: - Чел1 читает остаток из версии1 - Чел2 читает остаток из версии1 - Чел1 записывает остаток - Чел2 записывает остаток Блокировочник бы не дал прочитать данные чел2 пока не закончит транзакцию чел1. Как в версионнике контролируется недопустимость отрицательного остатка. как и в блокировочнике все зависит от уровня изолированности. на уровне RC предполагается, что оба читать будут с помощью SELECT FOR UPDATE, который сериализует транзакции на уровне SERIALIZABLE даже без SELECT FOR UPDATE один из них получит exception can't serialize access for this transaction блокировочник не даст "прочитать данные чел2" только на уровне Repeateble Read и выше, на дефолтном RC вы получите классический lost update. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2015, 10:34 |
|
Версионные субд
|
|||
---|---|---|---|
#18+
Везде по-разному, с Linter Multiversion была приблизительно такая ситуация: Многоверсионность в k-press.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 15:13 |
|
Версионные субд
|
|||
---|---|---|---|
#18+
ovleБлокировочник бы не дал прочитать данные чел2 пока не закончит транзакцию чел1 Это не совсем так. В целом, Вам нужно глубже погрузиться в детали реализации разных уровней изоляции в конкретных разных СУБД. ovleКак в версионнике контролируется недопустимость отрицательного остатка. Ну, самый простой вариант - Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 15:31 |
|
|
start [/forum/topic.php?fid=35&gotonew=1&tid=1552321]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 510ms |
0 / 0 |