上下文
我有一個使用JAX-RS,tomcat8和Neo4j嵌入式與格鬥遊戲的RESTful API。單身人士或連接池爲高perfs?
今天我發現很多查詢將在有限的時間內完成,我使用嵌入式查詢來加快查詢速度,但我仍想盡可能快地查詢。
問題
事實上,問題有點不同,但沒有那麼多。
其實,我正在使用一個單身人士與getDabatase()
方法返回當前GraphDatabaseService
實例開始一個事務,一旦完成,事務關閉......就這些了。
我不知道最佳perf的最佳解決方案是單例模式還是池模式(如創建數據庫連接的XX實例,並在數據庫操作完成時重用它們)。
我實際上不能測試它,因爲我沒有足夠的連接來知道哪一個是最快的(並且是最好的總體)。
另外,我想知道我是否創建了一個GraphDatabaseService
實例池,它們是否都能夠訪問相同的數據而不會被鎖鎖住?
好吧,比方說,我們有兩個球員在同一時間編輯他們的信息(很難做,但仍然有可能)。我的兩筆交易是否正確完成?我的意思是,你說你不能在同一個線程中運行多個事務,但是如果兩個POST查詢同時發生,我會得到異常嗎? – Supamiu
沒有。如果使用Jersey(作爲JAX-RS實現),則每個POST請求都在單獨的線程中處理。 Jersey有內部線程池(可配置)。一切都應該順利。即使出現死鎖,Neo4j也有內置機制來解決它們(在這種情況下,您將收到'DeadlockException')。 – FylmTM