@jvmchat

Страница 635 из 2890
Oleksandr
18.10.2016
10:11:01
оно-то простое, но не хочу велосипедить и писать кучу ненужных тестов

guga
18.10.2016
10:13:28
В гуаве не смотрел?

Oleksandr
18.10.2016
10:14:37
EvictingQueue не умеет последнее (двигать элемент в начало)

Антон
18.10.2016
10:15:30
так а кейс какой?

Google
guga
18.10.2016
10:17:32
Первое что в голову пришло какая-то очередь с приоритетом minMaxPriorityQueue

Но проще же унаследоваться от абстрактной очереди и сделать как тебе нужно

Oleksandr
18.10.2016
10:18:23
добавлять элементы, фиксированное число, если элемент уже есть, то двигать в начало ?

конкретно -- список последних действий

но не забывать про "имеющийся элемент в начало"

Но проще же унаследоваться от абстрактной очереди и сделать как тебе нужно
унаследоваться не совсем ок, для композиции надо кучу тестов

Антон
18.10.2016
10:20:21
ну тогда да https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/MinMaxPriorityQueue.html

guga
18.10.2016
10:20:36
А тащить либу ради одной очереди ок?

Oleksandr
18.10.2016
10:21:00
гуава уже в проекте

сейчас гляну на maxmin, спасибо

guga
18.10.2016
10:22:15
Ну тогда норм.

Oleksandr
18.10.2016
10:25:59
ну тогда да https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/MinMaxPriorityQueue.html
походу это overkill, мне производительность не настолько не важна, чтобы зазря тратиться на priority queue

похоже, придется велосипедить

Google
guga
18.10.2016
10:28:34
Посмотри какие у тебя есть имлементации Queue в проекте, может найдешь чего-то

Антон
18.10.2016
10:31:24
так у тебя вставка уже отсортирована по времени, на сколько часто у тебя будет обращение к этой очереди последних действий

?

Sergey
18.10.2016
10:31:52
A special constructor is provided to create a linked hash map whose order of iteration is the order in which its entries were last accessed, from least-recently accessed to most-recently (access-order).

http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html

Подойдёт?

Антон
18.10.2016
10:32:14
тут на вставку

а не LRU нужен

Oleksandr
18.10.2016
10:33:14
думаю, велосипед на массивах будет самым шустрым

guga
18.10.2016
10:34:18
канкаррент доступ будет?

Антон
18.10.2016
10:34:26
да на хипе тоже не особо медленным будет

Oleksandr
18.10.2016
10:34:31
да -- этих очередей будет много, и желательно по минимуму памяти юзать

канкаррент доступ будет?
не, все в акторе живет

Антон
18.10.2016
10:35:12
ну а зачем их хранить все в памяти?

я бы поднимал в кеш при запросе

и обновлял бы его если он живой

Oleksandr
18.10.2016
10:36:17
это само собой

просто для многих юзеров оно будет в оперативн, пока они онлайн

Sergey
18.10.2016
10:36:53
Ты всё-таки посмотри на LinkedHashMap

Google
Sergey
18.10.2016
10:37:05
Я так и не понял, чем он не подходит

Антон
18.10.2016
10:37:09
можно сделать проекцию в редисе http://redis.io/commands/zadd

Oleksandr
18.10.2016
10:37:20
и это гораздо быстрее запроса к бд

ключей-то нет

Антон
18.10.2016
10:38:02
мы слоями делали БД -> REDIS -> JAVA

в памяти хранили в среднем по 3-5 минут

для более специфичных вещей могли дольше или сильно меньше

Sergey
18.10.2016
10:39:37
ключей-то нет
Collections.newSetFromMap

Ключи всегда есть

Антон
18.10.2016
10:40:06
было примерно так действие - обновление БД -> обновление редис -> обновление в памяти

на запрос идет обратная размотка, если в памяти - возвращаем, если в памяти нет лезем в редис, восстанавливаем кеш в памяти, если и там нет лезем в базу, восстанавливаем в редиске и в оперативке.

Антон
18.10.2016
10:41:57
у ключей в редиске выставляешь ТТЛ чтобы не хранить для долго не активных пользователей

Oleksandr
18.10.2016
10:41:59
Collections.newSetFromMap
интересно, гляну, спасибо

Oleksandr
18.10.2016
10:45:27
ага

Антон
18.10.2016
10:46:34
а вы как плодите акторы? к каждой сессии?

или есть что-то вроде сервис-актор для всех сессий?

Oleksandr
18.10.2016
10:48:14
что такое "сессия" ? если в контексте сессии пользователя, то некоторые к ней привязаны, но большинство нет

Google
Антон
18.10.2016
10:48:40
ну сессия да - я имел ввиду пользователя

Roman
18.10.2016
10:48:49
Антон Величко: в памяти хранили в среднем по 3-5 минут Это в памяти Java процесса? А как именно удаляете по таймауту?

Антон
18.10.2016
10:49:07
евиктим

обычный LRU

Roman
18.10.2016
10:49:45
Самописный или из какой то библиотеки?

Антон
18.10.2016
10:50:11
сейчас на кафеине

https://github.com/ben-manes/caffeine

Roman
18.10.2016
10:51:37
Ясно. Caffeine очень интересно выглядит, особенно с возможностью асинхронной загрузки объектов

И там кстати не LRU а другой алгоритм

Admin
ERROR: S client not available

Roman
18.10.2016
10:54:18
Window TinyLfu

Антон
18.10.2016
10:54:28
У меня у знакомых есть проблемы с Аккой, при каких-то условиях акторы не убиваются и продятся с безумной скоростью.

раз в неделю / две

Oleksandr
18.10.2016
10:58:43
ELK

ну и разные visualvm / heap analysers / ...

Антон
18.10.2016
10:59:21
да да

Oleksandr
18.10.2016
11:00:06
есть платные мониторилки, но ничего про них не скажу

(от тайпсейфа)

Google
Митко Соловец?
18.10.2016
11:00:54
Ребята, а какие есть библиотеки для кэширования off-heap?

Желательно опен-сорс

guga
18.10.2016
11:01:27
hz

Митко Соловец?
18.10.2016
11:01:52
нет такой библиотеки

guga
18.10.2016
11:02:28
hazelcast

Митко Соловец?
18.10.2016
11:03:16
ммм, ин мемори дата

Apache Ignite из той же серии?

guga
18.10.2016
11:04:34
не знаю используют ли они оффхип.

Митко Соловец?
18.10.2016
11:05:13
в hazelcast есть IMap

ну ты понял, не нужно

Alexander
18.10.2016
11:05:28
Chronical map

https://github.com/OpenHFT/Chronicle-Map

Степан
18.10.2016
11:11:33
Парни есть в телеге конфа по линуксам?

Митко Соловец?
18.10.2016
11:12:28
есть по убунте

Степан
18.10.2016
11:12:48
О, гуд, поделишься?

Митко Соловец?
18.10.2016
11:13:15
https://telegram.me/ru_ubuntu

Степан
18.10.2016
11:13:24
Спс.

Антон
18.10.2016
12:12:40
http://doc.akka.io/docs/akka/2.4.4/java/logging.html#Auxiliary_logging_options

Страница 635 из 2890