Infinispan MVCC с «пут» - PullRequest
       13

Infinispan MVCC с «пут»

0 голосов
/ 26 октября 2011

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

Обычная, старая MVCC. Тем не менее, кажется, что Infispan использует 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 содержит «ничто» ... но я хочу получить первая версия "foo" - отсюда "blubber"

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

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

1 Ответ

1 голос
/ 26 октября 2011

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

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

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

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

...