2016-05-26 5 views
1

Ich habe einen Cache mit Cache-Speicher, von CacheJdbcPojoStoreFactory gebaut. Das Problem ist: Wenn ich versuche, Cache abzufragen, scheint es, dass es nur über den Speicher läuft (Read-Through wird in diesem Fall nicht angewendet). Ich erwarte, dass es aussieht, wenn Speicher enthält. Wenn nicht, dann sollte es Datenbank abfragen (Aber auch in diesem Fall wird der Cache niemals wissen, ob alle Daten, die er benötigt, auf dem Speicher lokalisiert werden, aber vielleicht kann der Index dies schnell bereitstellen).Sql Abfrage über Ignite CacheStore

Fehle ich etwas oder ist das das Verhalten davon?

Thx

Antwort

1

Dies ist korrektes Verhalten. SQL-Abfragen führen kein Durchlesen durch, da das Durchlesen in einem Schlüssel/Wert-Speicher nur durch Schlüssel möglich ist, was bei SQL unmöglich ist, wenn die Menge der erforderlichen Schlüssel unbekannt ist.

Nachdem Sie das gesagt haben, müssen Sie alle für die Abfrage erforderlichen Daten im Speicher vor ihrer Ausführung haben. Sie können die Methode loadCache() verwenden, um die Daten in den Cache zu laden. Details finden Sie auf dieser Seite: https://apacheignite.readme.io/docs/data-loading#ignitecacheloadcache

Auch GridGain entwickelt eine neue Enterprise-Funktion, die genau das erreichen kann, was Sie beschreiben, aber mit einem proprietären zugrunde liegenden Festplattenspeicher. Dies ist mit einem abstrakten persistenten Speicher wie einer relationalen Datenbank immer noch nicht möglich.