|
|
|
Фиксация записи при 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/topic.php?fid=52&gotonew=1&tid=1884935]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 439ms |

| 0 / 0 |
