2012-04-10 16 views
0

Wir verwenden Infinispan und in unserem System haben wir ein großes Objekt, in dem wir kleine Änderungen pro Transaktion schieben müssen. Ich habe die DeltaAware-Schnittstelle für dieses Objekt und auch das Delta implementiert. Das Problem, mit dem ich konfrontiert bin, besteht darin, dass die Änderungen nicht auf andere Knoten übertragen werden und nur der ursprüngliche Objektstatus auf andere Knoten übertragen wird. Auch die Delta- und Commit-Methoden werden nicht auf dem großen Objekt aufgerufen, das DeltaAware implementiert. Muss ich dieses Objekt irgendwo anders registrieren, als es einfach in den Cache zu stellen?Wie Infinispan wissen, dass es die Änderungen von Delta-Aware-Objekt nehmen muss

Dank

+0

Das war Quer gebucht https://community.jboss.org/message/729328#729328 –

Antwort

0

Es ist wahrscheinlich besser, wenn man einfach eine AtomicHashMap verwenden, die eine Konstruktion innerhalb Infinispan ist. Auf diese Weise können Sie eine Reihe von Schlüssel/Wert-Paaren als einen einzelnen Wert gruppieren. Infinispan kann Änderungen in dieser AtomicHashMap erkennen, da es die DeltaAware-Schnittstelle implementiert. AHM ist ein höheres Konstrukt als DeltaAware, und eines, das Ihnen wahrscheinlich besser steht.

Um ein Beispiel zu geben, in dem AtomicHashMaps verwendet werden, werden sie stark von der JBoss AS7 HTTP-Sitzungsreplikation verwendet, wobei jede Sitzungs-ID einer AtomicHashMap zugeordnet ist. Dies bedeutet, dass wir feststellen können, wann sich einzelne Sitzungsdaten ändern und nur das replizieren.

Cheers, Galder

+0

Vielen Dank für die Antwort. Wir haben versucht, AHM zu verwenden, aber einige, wie die Leistung nicht so gut war, als wir über die Implementierung unseres eigenen DeltaAware-Objekts nachdachten. Ich habe Cache über 2 Maschinen verteilt. Während wir die Daten direkt in den Cache stellen, erhalten wir eine durchschnittliche Zeit von 72 ms pro Transaktion mit 10 Puts in einer einzigen Transaktion, während wir dasselbe taten, außer dass wir AHM im Cache verwendeten, im Durchschnitt 508 ms pro Transaktion mit der gleichen Schlüssel- und Wertgröße (beide Zeichenfolgen) und 10 Eingaben pro Transaktion. Gibt es eine Möglichkeit, die AHM-Leistung zu verbessern? – Ranger

+1

Lassen Sie uns die Diskussion in https://community.jboss.org/message/729328#729328 fortsetzen –