0

我今天想在某种可能不熟悉的事情上使用 Infinispan。我想保存一个变量,让我们在缓存中多次调用它 - 同时能够将它作为 X 寻址。

普通的,旧的 MVCC。但是,似乎 infinispan 在后端使用了 MVCC——但我无法在我的小测试应用程序中使用它。

这是对应的代码:

    acTest.put("test", "blubber", 0, TimeUnit.MILLISECONDS );
    acTest.put("test", "nothing", 0, TimeUnit.MILLISECONDS );

    if( acTest.containsKey("test") )
    {
        Object foo = acTest.get("test"); // don't know how to get the "blubber" out of that
        String name = (String) test2.get("name");
        System.out.println(name);
    }

果然, acTest 包含密钥 - 但我无法处理该密钥的值“blubber” - 当我提高“nothing”的数值时 foo 持有“nothing”......但我想获得第一个版本“foo” - 因此是“鲸脂”

我希望能够解决不同版本的test。我认为我可以在put操作中使用不同的参数创建不同版本的“测试” - 但是 eclipse 绝对没有关于这件事的文档......

有人可以帮我吗?

4

1 回答 1

1

Infinispan 在其容器中使用 MVCC 用于内部目的,这目前不是通过用户 API 公开的功能,除了通过writeSkewCheck

在 5.1 版本中,API 将公开乐观锁定,这对于需要利用 MVCC 功能的某些用例可能很有用,但您仍然无法提取以前的值。

您可以使用 AtomicMap 存储多个值,或使用包含版本的自定义键对象,在 Infinispan 的 API 之上构建您需要的内容。

DeltaAware 是另一种选择,但它是专为专家设计的低级界面。

于 2011-10-26T16:45:05.190 回答