Вопрос для программистов:
Предположим, у нас имеется некий кеш, который должен содержать произвольные данные. Данные имеют срок годности, для каждой единицы данных разный, который определяется клиентом. Есть два способа общаться с таким кешем:
1. Когда что-то кладется в кеш, клиент говорит срок годности (возьми А и держи 5 минут)
2. Когда что-то берется из кеша, клиент говорит срок годности (дай мне А не старше 5 минут)
Есть ли какие-то причины предпочитать один из этих способов другому, и если да, то какие?
Tags:
no subject
Если использовать второй вариант, то на поиск данных клиентом уйдет времени больше чем при первом варианте, так как при поиске будет потрачено время на перелопачивание устаревшего материала.
Можно сделать промежуточный вариант где функция очистки не нужна для экономии ресурсов. Когда новые данные поступают в кеш, то он пролистывается с самого начала, находятся первые устаревшие данные и новые данные записываются поверх них. Таким образом каждое новое вхождение данных в кеш освобождает одну устаревшую ячейку. А дальше пользователь просит данные не старше времени икс. Тем самым немного, по сравнению со вторым вариантом, уменьшается время поиска, по сравнению с первым вариантом, немного уменьшается затраты на обслуживание временной-очищающей функции, однако немного повышаются системные затраты на запись данных в кеш. Что лучше - хрен его знает. ;)