2016-10-10 20 views
1

我目前有一個關係數據庫,我計劃遷移到neo4j。我們有apis公開了把id作爲輸入到像/ entity/{id}/relatedEntities等這些URL的輸入。這些Ids是db生成的自動增量Ids。這些API的多個客戶端可能已經緩存了Ids,以便保持我需要繼續使用這些ID的向後兼容性。我的問題是在我開始添加新實體時遷移到neo4j後,如何在集羣環境中特別繼續生成這些id(我打算爲neo4j擁有多個JVM和主/客戶機節點)?如何使用neo4j獲得自動增量

+0

向後兼容性被高估。 –

回答

1

從Neo4j 3.0.6開始,自動生成的序列不是功能集的一部分。

您可能能夠定義具有指定序列標籤的屬性的序列節點,當您需要新數字時鎖定該節點,然後增加並生成和解鎖後,雖然這可能很尷尬。如果它是一個寫操作,那麼它應該在集羣環境中工作,因爲寫操作應該在集羣的主節點上執行,但其他具有該區域更多經驗的人員可以確認或否認這一點。

一種替代方法是使用UUID而不是序列。您需要將它們作爲字符串而不是整數來處理,並且您將失去基於生成的ID進行比較的能力,但APOC程序支持生成UUID,並且在數學上它們將是唯一的,並且不會有與以前使用的以前的數字ID相沖突。