История изменений
Исправление 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 раз).