Я использую Clojure / Ogre для взаимодействия с Janusgraph DB из моего приложения clojure api. Так как я очень новичок в этой технологии, я думаю, что я мог что-то упустить. Ниже приведены проблемы, с которыми я сталкиваюсь,
- Когда я добавляю новую вершину через из моего приложения clojure, моя база данных janusgraph показывает вершину, и это ожидается. Но когда я попытался обновить свойства вершин из приложения, БД не показывает обновленный результат. Мне нужно явно открыть файл "janusgraph-cql.properties" из оболочки gremlin, тогда только в нем будет показан обновленный результат в БД.
- Когда я запрашиваю вершину из моего приложения, используя синтаксис clojure / ogre, я получаю старые устаревшие данные даже после обновления значений свойства вершины через синтаксис clojure / ogre из приложения. Кеш хранит ранее запрошенные результаты. Когда я выполняю один и тот же оператор запроса несколько раз (в пятый раз), он показывает обновленный результат.
Я так запутался, как останавливать или обновлять кеш при обновлении любого из свойств вершины.
Пожалуйста, найдите детали ниже,
Приведенный ниже запрос используется для обновления существующей вершины.
(og/traverse g (og/V)
(og/has :name "xyz")
(og/property :age 32)
(og/next!))(.commit (.tx graph))
После выполнения вышеприведенного утверждения, когда я открываю оболочку gremlin, я вижу не обновленную вершину, а только старую. Мне нужно явно открыть файл свойств, используя
graph = JanusGraphFactory.open('config/dev/janusgraph-cql.properties')
и затем, когда я запрашиваю в оболочке gremlin, отображаются новые данные.
Приведенный ниже оператор используется из приложения clojure для извлечения данных,
(og/traverse g (og/V) (og/has :name "xyz")
(og/value-map) (og/into-list!))
Даже после обновления свойств вершин, когда я выполняю вышеприведенный оператор из своего приложения clojure, я получаю только старые данные. Когда я выполняю пятое время, только тогда я получаю новые данные, и если я выполняю снова те же самые результаты, повторяющиеся. Кажется, в кеше хранятся пять ранее запрошенных результатов.
Файл моих свойств,
gremlin.graph=org.janusgraph.core.JanusGraphFactory
storage.backend=cql
storage.hostname=127.0.0.1
storage.cql.keyspace=mygraph
cache.db-cache = true
cache.db-cache-clean-wait = 20
cache.db-cache-time = 180000
cache.db-cache-size = 0.5
index.search.backend=elasticsearch
index.search.hostname=127.0.0.1
Пожалуйста, помогите мне узнать, как преодолеть эту устаревшую проблему извлечения данных, а также как немедленно отразить обновления в janusgraph DB после обновления из приложения clojure без явного открытия экземпляра свойств каждый раз. Большое спасибо за ваше время и помощь.