是否存在类似于跳过列表的分布式缓存解决方案?

时间:2011-01-06 12:21:14

标签: java distributed-cache

我想知道是否有任何开源(或专有)框架可以模拟并发优先级队列,该队列允许窥视,并从具有良好性能的任意索引中删除。

现在我正在使用JDK中提供的ConcurrentSkipList,但基本上我需要在多个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 个答案:

答案 0 :(得分:2)

你看过Hazelcast

吗?

我担心我只使用了Map实现,所以我不知道它是否支持你需要的模式。