LINUX.ORG.RU

История изменений

Исправление a--, (текущая версия) :

Я так понял что A1_in это FIFO из id+payload, A1_out это FIFO из id, AМ это LRU из id+payload в стандарном 2Q? А у тебя что-то другое?

Вроде да. У меня более-менее стандартная имплементация с поправкой на блокирование записей.

А мне кажется что нет, у тебя не 2Q.

A1_in и A1_out должны быть разных типов (A1_out без payload). А у тебя это не видно и статические типы у них одинаковы.

И даже если предположить, что ты там payload отцепляешь в eviction_fn_ (что мне совсем не очевидно, и комментариев про это ноль), то все равно A1_in и A1_out лучше сделать статически разных типов, не?

В Мемории семантика кэша немного неканоническая.

Лично мне семантика примерно в 10 раз интереснее, чем код. Особенно неканоническая (она уже в 100 раз).

Исходная версия a--, :

Я так понял что A1_in это FIFO из id+payload, A1_out это FIFO из id, AМ это LRU из id+payload в стандарном 2Q? А у тебя что-то другое?

Вроде да. У меня более-менее стандартная имплементация с поправкой на блокирование записей.

А мне кажется что нет, у тебя не 2Q.

A1_in и A1_out должны быть разных типов (A1_out без payload). А у тебя это не видно и статические типы у них одинаковы.

И даже если предположить, что ты там payload отцепляешь в eviction_fn_ (что мне совсем не очевидно, и комментариев про это ноль), то все равно A1_in и A1_out лучше их статически разными сделать, не?

В Мемории семантика кэша немного неканоническая.

Лично мне семантика примерно в 10 раз интереснее, чем код. Особенно неканоническая (уже в 100 раз).