我目前有一個Java應用程序,每天更新一個neo4j數據庫。neo4j - 獨立服務器還是爲這種情況嵌入?
然後我有另一個應用程序,通過創建一個具有相同存儲路徑的嵌入式數據庫,使用遍歷來查詢數據庫。
我應該如何着手保持服務器運行,並在每次查詢java應用程序運行時將查詢指向正在運行的實例?我不確定如何在不每次創建嵌入式服務器實例的情況下執行此操作。
我可以保持我目前的做法,問題是每次用戶發出查詢請求時都需要加載數據庫,而且這很昂貴。
謝謝!
我目前有一個Java應用程序,每天更新一個neo4j數據庫。neo4j - 獨立服務器還是爲這種情況嵌入?
然後我有另一個應用程序,通過創建一個具有相同存儲路徑的嵌入式數據庫,使用遍歷來查詢數據庫。
我應該如何着手保持服務器運行,並在每次查詢java應用程序運行時將查詢指向正在運行的實例?我不確定如何在不每次創建嵌入式服務器實例的情況下執行此操作。
我可以保持我目前的做法,問題是每次用戶發出查詢請求時都需要加載數據庫,而且這很昂貴。
謝謝!
您可以在嵌入式數據庫上運行的服務器:http://docs.neo4j.org/chunked/milestone/server-embedded.html
所以,你可以用一個定時器任務讓你的嵌入式應用程序的運行並導入數據,並同時提供服務器的Web UI。
不僅價格昂貴,而且如果我正確理解了您的應用程序概念,則可能存在潛在的鎖存儲錯誤。
如果您的更新應用程序正在數據庫中執行某些操作,並且因此嵌入式數據庫的實例正在運行,並且同時您的其他應用程序正試圖使嵌入式數據庫的實例執行查詢, '碰到一家鎖店。
我不知道你是否採取了任何預防措施來防止這種情況發生,或者如果你剛剛運氣好以至於這些行爲沒有同時發生,但我會研究它。
我有一個tomcat上下文變量,其中包含索引到數據庫。我正試圖找出處理更新的最佳方法。我正在考慮在更新運行時簡單地關閉應用程序進行維護,創建一個新的數據庫,然後刪除舊的並替換爲新的,然後再次打開應用程序。創建一個全新的更新數據庫比通過每個節點檢查更改更容易。 – user1277546