Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ? / 15 сообщений из 15, страница 1 из 1
24.10.2013, 20:35:09
    #38440477
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
hi all

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

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

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

А транзакция может как-то знать, был ли "из-под неё" хотя бы 1 вызов gen_id() или нет ?
...
Рейтинг: 0 / 0
24.10.2013, 21:50:14
    #38440522
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
Таблоидтогда получается, что если в некий временнОй зазор (скажем, 100 мс) коммит выдали 50 транзакций, из которых только 5 меняли счетчики генераторов, то команда на запись страницы генераторов будет выдана и от остальных 45 тоже.С чего бы это ? Грязная страница запишется один раз.
...
Рейтинг: 0 / 0
24.10.2013, 22:02:52
    #38440528
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
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
24.10.2013, 22:21:08
    #38440537
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
hvladГрязная страница запишется один раз.
...
Рейтинг: 0 / 0
25.10.2013, 09:40:22
    #38440748
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Careful write: обеспечивает ли он... запись текущих значени генераторов на диск ?
Таблоид,

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

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

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

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

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


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