neo4j原始碼分析3 LifeCycle檢視

2021-08-27 11:37:30 字數 1423 閱讀 2440

platformmodule platform = createplatform( storedir, config, dependencies, graphdatabasefacade );

final datasourcemodule datasource = createdatasource( platform, edition, queryengine::get );

platform.life.start();

這四段**,前三段主要是新建 lifecycle,最後乙個是start是和我們整個neo4j的集群聯絡最緊密的。為了提高效率,我們可以將上面22個lifecycle乙個乙個看。方法很簡單,以第乙個0 = "org.neo4j.io.fs.filesystemlifecycleadapter@353d0772: started"為例,我們只需要找到新建和新增到lifecycle的地方,打斷點,然後在他的init和start方法上面打斷點。

我們找到新建的呼叫棧,應該是 lifecyclemanagingdatabase.start() -> … -> new platformmodule(),然後找到對應的**:

filesystem = dependencies.

satisfydependency

(createfilesystemabstraction()

);life.

add(

newfilesystemlifecycleadapter

( filesystem )

);

然後找到 filesystemlifecycleadapter 的 init和start方法,好像都是空的,然後打上斷點進行除錯。

另外對於我們關心的每一部分,實際上都是在這一塊進行初始化和啟動,一共就三個地方:platformmodule,editionmodule,datasourcemodule。

例如我們要找neo4j的儲存,可以在這三個類中尋找,我大概感覺是:platformmodule 中新建的 datasourcemanager,在 communityeditionmodule 中add到life中取得,

以及在 datasourcemodule 中的 new neostoredatasource() ,然後 datasourcemanager.register(neostoredatasource)。仔細研究發現 datasourcemanager 也是乙個lifecycle,也有start方法,而他的instances包括了 neostoredatasource,而 neostoredatasource 也是乙個lifecycle,它的 instances是 start 方法中新增的。

從上面的分析我們看出,一共22個lifecycle,datasourcemanager 是最複雜的,我們就從它開始。

Neo4j學習(2) Win系統安裝Neo4j

neo4j 是目前最流行的圖形資料庫,支援完整的事務,在屬性圖中,圖是由頂點 vertex 邊 edge 和屬性 property 組成的,頂點和邊都可以設定屬性,頂點也稱作節點,邊也稱作關係,每個節點和關係都可以由乙個或多個屬性。neo4j建立的圖是用頂點和邊構建乙個有向圖,其查詢語言cypher...

Neo4j檔案說明

neo4j作為資料庫式的nosql工具,檔案儲存也有其獨特方面。neostore neostore.id 儲存版本資訊 neostore.nodestore.db neostore.nodestore.db.id 儲存節點資料與節點序列id neostore.propertystore.db neo...

Neo4j學習筆記

neo4j學習筆記 一.基本知識 1.1 node syntax 節點語法 matrix movie matrix movie matrix movie matrix movie 1 代表乙個節點uncharacterized node 2 matrix 新增了乙個變數為matrix的節點。3 mo...