我不想保留任何數據,但仍然想要使用Neo4j的圖遍歷和算法功能。在嵌入式數據庫中,我配置了cache_type = strong
,並且在將事務設置爲失敗後進行所有寫入。但是我的寫入速度(節點,關係創建速度)很慢,這成爲我的流程中的一個大瓶頸。純粹在內存中運行Neo4j沒有任何持久性
因此,問題是,Neo4j可以在沒有任何持久性方面的情況下運行,並且就像純API一樣?我嘗試了像JGraphT這樣的其他程序,但那些程序沒有像Neo4j提供的那樣的遍歷機制。
我不想保留任何數據,但仍然想要使用Neo4j的圖遍歷和算法功能。在嵌入式數據庫中,我配置了cache_type = strong
,並且在將事務設置爲失敗後進行所有寫入。但是我的寫入速度(節點,關係創建速度)很慢,這成爲我的流程中的一個大瓶頸。純粹在內存中運行Neo4j沒有任何持久性
因此,問題是,Neo4j可以在沒有任何持久性方面的情況下運行,並且就像純API一樣?我嘗試了像JGraphT這樣的其他程序,但那些程序沒有像Neo4j提供的那樣的遍歷機制。
多少改變你組中的每個交易?由於提交事務會強制邏輯日誌到磁盤,因此您應該嘗試在每個事務中將數千個更改分組。
db.tx().unforced().begin();
相反的:
然而,在你的情況,你可以,而不是首先您的交易
db.beginTx();
這使得該交易不會等待邏輯日誌強制到磁盤,使小型交易的速度要快得多,但停電可能會讓您失去最後幾秒的潛在數據。
tx()方法位於GraphDatabaseAPI上,例如EmbeddedGraphDatabase實現的。
現在我切換到了批量插入器,略有改進但不是很多。所以沒有交易擔心。 – chethan
你可以嘗試一個虛擬驅動器。這將使neo4j堅持驅動器,但它會發生在內存中 https://thelinuxexperiment.com/create-a-virtual-hard-drive-volume-within-a-file-in-linux/
您是否找到一個可行的解決方案呢? – jagamot
所以Neo4j不支持這個?我還想在內存中運行Neo4j,而不需要在文件系統中進行任何備份,只是爲了圖形遍歷功能。 – Sergio