
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.12.2014, 18:38
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
Всем привет, Есть ли библиотека типа guava которая удовлетворяет следующим требованиям для map?: 1. при добавлении элементов можно повесить что-то типа expiration policy: вообще никогда не удалять, удалять через 5 мин, удалять через 10 минут, .. Т.е. полиси определяется при добавлении нового элемента 2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу. Guava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.12.2014, 21:04
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
diverMВсем привет, Есть ли библиотека типа guava которая удовлетворяет следующим требованиям для map?: 1. при добавлении элементов можно повесить что-то типа expiration policy: вообще никогда не удалять, удалять через 5 мин, удалять через 10 минут, .. Т.е. полиси определяется при добавлении нового элемента 2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу. Guava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?В моем понимании, реализация подобного функционала поверх существующих коллекций это порядка 50-100 строк кода. Не проще ли будет реализовать этот тривиальный функционал самому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.12.2014, 21:53
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
DEVcoachВ моем понимании, реализация подобного функционала поверх существующих коллекций это порядка 50-100 строк кода. Не проще ли будет реализовать этот тривиальный функционал самому? А зачем велосипед изобретать если это уже есть? Поэтому и спрашиваю про существующие решения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.12.2014, 00:45
|
|||
|---|---|---|---|
expiring map |
|||
|
#18+
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 будет завершён. Это для тех кто любит скорость. Такую чтоб значить "уши трепыхались от набегающего потока". Запуск - фоновых чистящих потоков предлагаю выносить на обсуждение. В свете вышепредложенного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.12.2014, 05:12
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
diverMGuava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?Добавляйте разные объекты в разные наборы с разными политиками очистки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.12.2014, 17:48
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
Basil A. SidorovdiverMGuava делает одно правило по очистке и поэтому не подходит. Есть ли open source библиотеки удовлетворяющие моим требованиям?Добавляйте разные объекты в разные наборы с разными политиками очистки. Тогда искать надо во всех по очереди. Соответственно, время доступа увеличиться в 5-10 раз если исходить из того, что будет 10 разных полиси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.12.2014, 17:53
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
diverM2. удаление элементов происходит в фоновом потоке периодически, основываясь на expiration policy, а не когда мы обращаемся к элементу. Навесить на коллекцию ScheduledExecutorService и скедулить удаление при добавлении. Доступ только синхронизировать правильно или использовать ConcurrentHashMap. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.12.2014, 20:36
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
diverMТогда искать надо во всех по очередиИщите параллельно. Сделайте отдельную карту, которая укажет набор, хранящий тот или иной объект.Соответственно, время доступа увеличиться в 5-10 раз если исходить из того, что будет 10 разных полисиЛожный посыл. Подумайте немного и сами это поймёте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.12.2014, 00:42
|
|||
|---|---|---|---|
|
|||
expiring map |
|||
|
#18+
Basil A. SidorovdiverMТогда искать надо во всех по очередиИщите параллельно. Сделайте отдельную карту, которая укажет набор, хранящий тот или иной объект.Соответственно, время доступа увеличиться в 5-10 раз если исходить из того, что будет 10 разных полисиЛожный посыл. Подумайте немного и сами это поймёте. Вопрос стоял о существующей библиотеке, а не так как это самому реализовать. Видно такого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.12.2014, 14:54
|
|||
|---|---|---|---|
expiring map |
|||
|
#18+
diverMBasil A. Sidorovпропущено... Ищите параллельно. Сделайте отдельную карту, которая укажет набор, хранящий тот или иной объект.пропущено... Ложный посыл. Подумайте немного и сами это поймёте. Вопрос стоял о существующей библиотеке, а не так как это самому реализовать. Видно такого нет. Это простая задача. И на каждый чих никто не будет создавать библиотеки. Есть пространство имён java.util.collections. Есть механизм Generics. Бери и пиши. Как Delphi никто не будет клепать компоненты на каждый случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2126034]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 423ms |

| 0 / 0 |
