powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / expiring map
10 сообщений из 10, страница 1 из 1
expiring map
    #38836323
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,
Есть ли библиотека типа guava которая удовлетворяет следующим требованиям для map?:
1. при добавлении элементов можно повесить что-то типа expiration policy: вообще никогда не удалять, удалять через 5 мин, удалять через 10 минут, .. Т.е. полиси определяется при добавлении нового элемента
2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу.

Guava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?
...
Рейтинг: 0 / 0
expiring map
    #38836450
DEVcoach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
diverMВсем привет,
Есть ли библиотека типа guava которая удовлетворяет следующим требованиям для map?:
1. при добавлении элементов можно повесить что-то типа expiration policy: вообще никогда не удалять, удалять через 5 мин, удалять через 10 минут, .. Т.е. полиси определяется при добавлении нового элемента
2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу.

Guava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?В моем понимании, реализация подобного функционала поверх существующих коллекций это порядка 50-100 строк кода.
Не проще ли будет реализовать этот тривиальный функционал самому?
...
Рейтинг: 0 / 0
expiring map
    #38836474
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DEVcoachВ моем понимании, реализация подобного функционала поверх существующих коллекций это порядка 50-100 строк кода.
Не проще ли будет реализовать этот тривиальный функционал самому?
А зачем велосипед изобретать если это уже есть? Поэтому и спрашиваю про существующие решения
...
Рейтинг: 0 / 0
expiring map
    #38836529
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverMВсем привет,
Есть ли библиотека типа guava которая удовлетворяет следующим требованиям для map?:
1. при добавлении элементов можно повесить что-то типа expiration policy: вообще никогда не удалять, удалять через 5 мин, удалять через 10 минут, .. Т.е. полиси определяется при добавлении нового элемента
Я-бы предложил небольшое изменение (дополнение). Вряд-ли кто-то будет ставить OVER 9000 отдельных
policy. Скорее всего их будет немного. 5-10 штук. От 5 минут до бесконечности. С экспоненциальным
шагом.... ну да бох с ним. Неважно.
2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу.
Всегда лучше разработать и исследовать однопоточную реализацию и если не хватит возможностей
то тогда запускать фоновые задачи. В данном конкретном случае задача хорошо решается через
список 5-10 штук коллекций типа LRU. Ясен пень - каждая коллекция имеет свой Exp Policy и
внутри LRU будет упорядоченный по чистке список. Добавление и чистка - синхронны. 1 элемент добавил
и тут-же почистил от 0 до N устаревших ключиков. Фоновые потоки - не нужны.

Для batch-варинта можно предусмотреть: добавление пачки и ручная (управляемая) очистка
когда batch будет завершён. Это для тех кто любит скорость. Такую чтоб значить "уши
трепыхались от набегающего потока".

Запуск - фоновых чистящих потоков предлагаю выносить на обсуждение. В свете вышепредложенного.
...
Рейтинг: 0 / 0
expiring map
    #38836562
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverMGuava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?Добавляйте разные объекты в разные наборы с разными политиками очистки.
...
Рейтинг: 0 / 0
expiring map
    #38837438
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovdiverMGuava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?Добавляйте разные объекты в разные наборы с разными политиками очистки.
Тогда искать надо во всех по очереди. Соответственно, время доступа увеличиться в 5-10 раз если исходить из того, что будет 10 разных полиси
...
Рейтинг: 0 / 0
expiring map
    #38837453
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverM2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу.

Навесить на коллекцию ScheduledExecutorService и скедулить удаление при добавлении. Доступ только синхронизировать правильно или использовать ConcurrentHashMap.
...
Рейтинг: 0 / 0
expiring map
    #38837568
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverMТогда искать надо во всех по очередиИщите параллельно. Сделайте отдельную карту, которая укажет набор, хранящий тот или иной объект.Соответственно, время доступа увеличиться в 5-10 раз если исходить из того, что будет 10 разных полисиЛожный посыл. Подумайте немного и сами это поймёте.
...
Рейтинг: 0 / 0
expiring map
    #38840132
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovdiverMТогда искать надо во всех по очередиИщите параллельно. Сделайте отдельную карту, которая укажет набор, хранящий тот или иной объект.Соответственно, время доступа увеличиться в 5-10 раз если исходить из того, что будет 10 разных полисиЛожный посыл. Подумайте немного и сами это поймёте.
Вопрос стоял о существующей библиотеке, а не так как это самому реализовать.
Видно такого нет.
...
Рейтинг: 0 / 0
expiring map
    #38840649
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverMBasil A. Sidorovпропущено...
Ищите параллельно. Сделайте отдельную карту, которая укажет набор, хранящий тот или иной объект.пропущено...
Ложный посыл. Подумайте немного и сами это поймёте.
Вопрос стоял о существующей библиотеке, а не так как это самому реализовать.
Видно такого нет.
Это простая задача. И на каждый чих никто не будет создавать библиотеки.
Есть пространство имён java.util.collections. Есть механизм Generics.
Бери и пиши.

Как Delphi никто не будет клепать компоненты на каждый случай.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / expiring map
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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