powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
15 сообщений из 15, страница 1 из 1
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440477
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Когда 500 коннектов дёргают gen_id(some_seq, 1) и используют полученные ID'шники для записи в свои таблицы (с обновлением PK-индексов), то с таблицами и индексами всё понятно: дальше не поедем, пока контроллер диска не скажет "записано".

У генераторов значения хранятся не в какой-то там rdb$-таблице, а на отдельной странице
Учитывает ли алгоритм careful write, что новое значение генератора также надо записать на диск и дождаться ответа контроллера "записано", как и в случае с данными таблиц / индексов ?
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440509
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грязные страницы генераторов пишутся по коммиту любой тр-ции, iirc
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440512
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladГрязные страницы генераторов пишутся по коммиту любой тр-ции, iircДаже если в ней не было ни одного gen_id( someSeq, N), где N > 0 ?
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440514
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидhvladГрязные страницы генераторов пишутся по коммиту любой тр-ции, iircДаже если в ней не было ни одного gen_id( someSeq, N), где N > 0 ?Да
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440519
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

тогда получается, что если в некий временнОй зазор (скажем, 100 мс) коммит выдали 50 транзакций, из которых только 5 меняли счетчики генераторов, то команда на запись страницы генераторов будет выдана и от остальных 45 тоже. Что-то не есть гут, КМК.

А транзакция может как-то знать, был ли "из-под неё" хотя бы 1 вызов gen_id() или нет ?
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440522
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидтогда получается, что если в некий временнОй зазор (скажем, 100 мс) коммит выдали 50 транзакций, из которых только 5 меняли счетчики генераторов, то команда на запись страницы генераторов будет выдана и от остальных 45 тоже.С чего бы это ? Грязная страница запишется один раз.
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440528
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

один или пять раз ?
Вот есть пять транзакций (из 50), которые выдают commit в течение интервала 100 мс, и "карта" изменений по генераторам, которые эти транзакции делали:
gen_headergen_detailgen_contragentgen_partsgen_auxgen_miscgen_sometx-1[ + ][ + ]tx-2[ + ][ + ]tx-3[ + ][ + ][ + ]tx-4[ + ]tx-5[ + ][ + ]
Допустим, в рассматриваемом временнОм отрезке самый первый commit получен от tx-4. Вся страница генераторов будет записана на диск (т.е. все 7 счетчиков для данного примера).

Никаких изменений генераторов после этого нет и далее, к примеру, начинает обрабатываться commit от tx-2. Будет ли знать движок (или кто там ?), что страница уже записана и ничего на ней переписывать не нужно ?
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440537
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladГрязная страница запишется один раз.
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440748
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

может, ты имеешь в виду другое? Что при отсутствии общего кэша страница генераторов при изменении конкурирующим коннектом будет записана на диск (иначе как узнать изменения генераторов, сделанных другим коннектом)? В этом случае она и 9 раз будет записана, если каждый коннект будет поочередно какой-либо генератор дергать.
В конце, до чьего-либо commit, на странице генераторов останутся только "дергания" какого-то генератора последним коннектом. И при первом же (любом) коммите эта "грязная страница" запишется. Действительно один раз.
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440761
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

хм... а если коммита не будет?
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38440788
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

страницы пишутся либо по коммиту, либо по требованию других коннектов, либо по вытеснению из кеша. Если коммита не было и генераторы нафиг никому больше не нужны, то страницы останутся грязными в кеше либо до их вытеснения либо до морковкиного заговения.
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38441200
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrстраницы пишутся либо по коммиту, либо по требованию других коннектов я правильно понял, что когда движок видит, что коннект-2 "хочет" получит содержимое страницы генераторов, изменённой коннектом-1, то сбросит её на диск и затем выдаст коннекту-2 ?
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38441209
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

в CS/SC да. В SS писать ничего не надо, он и так увидит измененную страницу.
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38441233
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

ну а как еще? и в фразе "хочет" получит содержимое страницы генераторов, изменённой коннектом-1" слово "генераторов" нужно убрать.
То есть, если коннект 2 хочет изменить страницу, измененную коннектом 1, коннект 1 должен ее сохранить на диск, а потом коннект 2 ее прочитает и поменяет. В CS/SS. Между собой они измененные страницы не передают.
...
Рейтинг: 0 / 0
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
    #38441251
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvВ CS/SS. Между собой они измененные страницы не передают.Да, я это понял.
Но мой вчерашний вопрос был не совсем про это, Влад на него ответил уже.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]