> > Архитектурный вопрос такой - запись модифицированных страниц
> > осуществляется _только_ этим потоком?
>
> А нафига усложнять?!

Я так тоже думаю. Каждый отвечает за одну функцию.

Вот еще один вопрос. Пока не актуальный. Но реально интересный.

Как обрабатывать случай взаимоблокировок.

Поток1 блокирует на запись Page1
Поток2 блокирует на запись Page2
Поток1 хочет блокировать на запись Page2. Уходит в ожидание.
Поток2 хочет блокировать на запись Page1 ...

Отследить такое не сложно. Но вопрос - а что делать? Формально это
ведь логическая ошибка в программе и кого-то нужно посылать (понятно
куда) + все страницы, который он успел намодифицировать выкидывать из
кэша. Это если вообще "все по правильному". Если кто еще завязался на
эти "незакомиченные" изменения - сам себе злобный буратино.

Такие вещи возможны, если данные размазаны по нескольким страницам. И
толпы потоков их модифицируют.

У меня пока нет планов реализывать поддержку такого безобразия. И,
сдается мне, это вообще не надо пытаться делать :)

Коваленко Дмитрий.

Ответить