Есть ли какое-либо решение для распределенного кэша, похожее на список пропусков? - PullRequest
1 голос
/ 06 января 2011

Мне было интересно, есть ли какие-либо фреймворки с открытым исходным кодом (или проприетарные), которые бы имитировали параллельную очередь с приоритетами, которая позволяла бы просматривать и удалять из произвольного индекса с хорошей производительностью.

Сейчас я использую ConcurrentSkipList, доступный в JDK, но в основном мне нужно поделиться этим между несколькими JVM.

Самая сложная часть, когда я опрашиваю очередь, я делаю что-то вроде этого:

List<Entry> dequeued = new ArrayList<>(thisManyIwant);
for(Entry entry : queue){
    if(dequeued.size()>=thisManyIwant) break;
    if(predicate.apply(entry)){
        // Entry satisfies criteria
        if(queue.remove(entry){
            // OK, got it
            dequeued.add(entry);
        }else{
            // damn, somebody took it before I could :(
        }
    }else{
        // It's not something I want, move on to the next one.
    }
}
return dequeued;

Некоторый распределенный кеш позволяет запрашивать, но эта операция требует высокой производительности, и я неЯ уверен, что если вы будете часто запрашивать кеш, это будет хорошей идеей.

Кто-нибудь слышал о такой вещи?

1 Ответ

2 голосов
/ 06 января 2011

Вы смотрели на Hazelcast

Боюсь, я использовал только реализацию Map, поэтому не знаю, поддерживает ли она шаблон, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...