Infinispan MVCC с пут

Я хотел использовать Infinispan сегодня в каком-то, вероятно, незнакомом деле. Я хочу сохранить переменную, давайте назовем ее x пару раз в кеше, при этом имея возможность адресовать ее как 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 содержит ключ, но я не смог указать значение «жира» этого ключа — когда я выше числовое значение «ничего», foo не содержит «ничего» … но я хочу получить первую версию от "foo" - отсюда "толстый жир"

Я хочу иметь возможность обращаться к различным версиям test. Я думаю, что могу создавать разные версии "теста" с разными параметрами в операции put, однако у eclipse нет абсолютно никакой документации по этому вопросу...

Может ли кто-нибудь помочь мне?


person theXs    schedule 25.10.2011    source источник


Ответы (1)


Infinispan использует MVCC в своем контейнере для внутренних целей, в настоящее время эта функция не доступна через пользовательский API, кроме как через writeSkewCheck.

В версии 5.1 API будет предоставлять оптимистическую блокировку, которая может быть полезна для некоторых случаев использования, требующих использования возможностей MVCC, но вы по-прежнему не сможете извлечь предыдущее значение.

Вы можете использовать AtomicMap для хранения нескольких значений или использовать пользовательские ключевые объекты, содержащие версию, создавая то, что вам нужно, поверх API Infinispan.

DeltaAware — еще один вариант, но это низкоуровневый интерфейс, предназначенный для экспертов.

person Sanne    schedule 26.10.2011