本文介绍了删除百万节点后的 Neostore.* 文件大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是 neo4j 1.9.4,我存储了 28M 节点、267M 属性和 157M 关系.

I use neo4j 1.9.4, i store 28M nodes, 267M properties and 157M relationships.

neostore.* 文件:

the neostore.* files :

-rw-r--r-- 1 个用户轮 10961964959 7 fév 09:58 neostore.propertystore.db
-rw-r--r-- 1 个用户轮 5185764606 7 fév 09:58 neostore.relationshipstore.db
-rw-r--r-- 1 个用户轮 3550760192 7 fév 09:58 neostore.propertystore.db.strings
-rw-r--r-- 1 用户轮 249658236 7 fév 09:58 neostore.nodestore.db

-rw-r--r-- 1 user wheel 10961964959 7 fév 09:58 neostore.propertystore.db
-rw-r--r-- 1 user wheel 5185764606 7 fév 09:58 neostore.relationshipstore.db
-rw-r--r-- 1 user wheel 3550760192 7 fév 09:58 neostore.propertystore.db.strings
-rw-r--r-- 1 user wheel 249658236 7 fév 09:58 neostore.nodestore.db

我删除了 26M 节点,neostore.* 没有减少:

I delete 26M nodes and the neostore.* is not reduce :

-rw-r--r-- 1 个用户轮 10961964979 7 fév 10:20 neostore.propertystore.db
-rw-r--r-- 1 个用户轮 5185764630 7 fév 10:20 neostore.relationshipstore.db
-rw-r--r-- 1 个用户轮 3550760218 7 fév 10:20 neostore.propertystore.db.strings
-rw-r--r-- 1 个用户轮 249658252 7 fév 10:20 neostore.nodestore.db

-rw-r--r-- 1 user wheel 10961964979 7 fév 10:20 neostore.propertystore.db
-rw-r--r-- 1 user wheel 5185764630 7 fév 10:20 neostore.relationshipstore.db
-rw-r--r-- 1 user wheel 3550760218 7 fév 10:20 neostore.propertystore.db.strings
-rw-r--r-- 1 user wheel 249658252 7 fév 10:20 neostore.nodestore.db

我从'ticket'索引中删除了所有节点,lucene索引/index/lucene/node/ticket文件夹是空的当我计算所有票证节点时,我得到 0 -> OK

i remove all nodes from 'ticket' index, the lucene index /index/lucene/node/ticket folder is emptywhen i count all tickets nodes i get 0 -> OK

为什么 neostore.* 文件大小没有减小?

why neostore.* file size is not reduce ?

这里是删除代码=

EndResult<Ticket> tickets = ticketRepository.findByDate(date); // by 1000
Iterator<Ticket> itTicket = tickets.iterator(); 

  while (itTicket.hasNext()) { 

 Ticket t = itTicket.next(); 
 Node n = neo4jTemplate.getGraphDatabase().getNodeById(t.getId()); 
 neo4jTemplate.getIndex("Ticket").remove(n); 

 Iterable<Relationship> relationships = n.getRelationships(); 

  for (Relationship relationship : relationships) { 

    relationship.delete(); 
 }
 n.delete(); 

 }

你能帮我吗?查尔斯问候

Can you help me ?Charlesregards

推荐答案

实际上 nodestore 在删除节点后并不会立即压缩.相反,如果您创建新节点,它们将回收之前删除的节点存储区.

Actually the nodestore is not instantly compacted after you delete nodes. Instead if you create new nodes they will reclaim the previously deleted ares with in nodestore.

这篇关于删除百万节点后的 Neostore.* 文件大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 13:45