|
|
|
Фиксация записи при commit
|
|||
|---|---|---|---|
|
#18+
Добырй день, Допустим? мы изменили какую либо строку, при этом: 1. Изменяемый блок подкачивается в буферный кэш 2. Блок становится грязный 3. Генерируется инфа в undo сегменте 4. Добавяется инфа в редо кэше(которая сбрасывается на диск в 3 кейсах) При commit-e 1. Генерируется scn который записывается в буфер повторения 2. Буфер повторения сбрасывает на диск 3. Измененные блоки из буферного кэше сбрасываются на диск Вопросы: 1. Правильно ли я понимаю, что из буферного кэша блоки сбрасываются на диск и до commit? 2. Могут ли грязные блоки из буферного кэша извлекаться до коммита? Например если в буферном кэше не хватает места? 3. Как грязные блоки в кэше становятся чистыми? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2017, 17:46 |
|
||
|
Фиксация записи при commit
|
|||
|---|---|---|---|
|
#18+
cobalt_frog, 1. да 2. извлекаться? может, удаляться? да. 3. в кэше - commit cleanout в itl блока. на диске этим займётся первый select этих данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2017, 10:30 |
|
||
|
Фиксация записи при commit
|
|||
|---|---|---|---|
|
#18+
проходил мимо...cobalt_frog, 3. в кэше - commit cleanout в itl блока. на диске этим займётся первый select этих данных Грязный блок - это измененный блок. Никакой cleanout не сделает его чистым. Только сброс на диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2017, 12:05 |
|
||
|
Фиксация записи при commit
|
|||
|---|---|---|---|
|
#18+
cobalt_frogДобырй день, Допустим? мы изменили какую либо строку, при этом: 1. Изменяемый блок подкачивается в буферный кэш 2. Блок становится грязный 3. Генерируется инфа в undo сегменте 4. Добавяется инфа в редо кэше(которая сбрасывается на диск в 3 кейсах) При commit-e 1. Генерируется scn который записывается в буфер повторения 2. Буфер повторения сбрасывает на диск 3. Измененные блоки из буферного кэше сбрасываются на диск Вопросы: 1. Правильно ли я понимаю, что из буферного кэша блоки сбрасываются на диск и до commit? 2. Могут ли грязные блоки из буферного кэша извлекаться до коммита? Например если в буферном кэше не хватает места? 3. Как грязные блоки в кэше становятся чистыми? Процесс сброса грязных буферов на диск называется чекпоинтом и не связан с коммитом. Для лучшего понимания можно представить транзакцию, изменяющую данных в несколько раз больше, чем размер буферного кэша. Пользовательский процесс грузит блоки с диска в буферный кэш, там их меняет, они становятся грязными, подгружает другие, меняет, они тоже становятся грязными. В фоне DBWR сбрасывает грязные буферы на диск, после чего буферы становятся чистыми, т.е. в эти буферы можно уже загружать другие блоки, если понадобится. Вот и всё. А коммит случится где-то в будущем. А может не случится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2017, 16:05 |
|
||
|
|

start [/forum/moderation_log.php?user_name=bespe4naya]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 581ms |
| total: | 828ms |

| 0 / 0 |
