Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
04-18-2019 12:15 AM
Hi,
We are indexing a property of a node and the server is doing something (I see increments in the physical disk size of the index) but it is running for several days (more than a week) and it doesn't seem near completion. For me several days of indexing in a powerful machine denotes that something is wrong but I don't know what, so asking help here in order to diagnose the problem.
dbms.memory.heap.iniitial_size=30600m
dbms.memory.heap.max_size=30600m
dbms.memory.pagecache.size=74800m
as was recommended by neo4j-admin memrec
neo4j-enterprise-causal-cluster-1-core-vm-1:/var/lib/neo4j/data/databases/graph.db$ while true; do echo "$(date -Iseconds) $(du -ck schema/index/native-btree-1.0/* | grep total)" ; sleep 60; done
2019-04-18T07:06:07+00:00 145382404 total
2019-04-18T07:07:07+00:00 145384212 total
2019-04-18T07:08:07+00:00 145386312 total
2019-04-18T07:09:07+00:00 145388496 total
2019-04-18T07:10:07+00:00 145390420 total
2019-04-18T07:11:07+00:00 145392748 total
I don't know if these numbers are "normal" for the problem's size, but I would appreciate any help on trying to diagnose if this is expected or if I should tweak some parameter or check any log to discover who us causing this slow down.
Solved! Go to Solution.
07-07-2019 09:13 PM
This was happening to my database as well, with 488 GB RAM on AWS i3.16xlarge, after 45 min the entire db was being killed. We are moving to 3.5.7 now to see if it fixes the issue.
Update - 3.5.7 has fixed it, the machine no longer dies on index creation.
04-18-2019 01:14 AM
Hello Toni,
no this definitely not normal.
Which Neo4j version is this running?
What kind of disk setup, do you have info about the disk performance.
How did you create the index?
04-18-2019 02:02 AM
How is the I/O load? What kind of disk did you provision?
How big is that store on disk?
Can you add this to your config.
dbms.jvm.additional=-Dorg.neo4j.kernel.impl.index.schema.GenericNativeIndexPopulator.blockBasedPopulation=true
04-18-2019 02:19 AM
Hi Michael,
neo4j-enterprise-causal-cluster-1-core-vm-1:/var/lib/neo4j/data/databases$ du -h *
8.0K graph.db/schema/index/native-btree-1.0/1/profiles
41G graph.db/schema/index/native-btree-1.0/1
1.6M graph.db/schema/index/native-btree-1.0/3/profiles
99G graph.db/schema/index/native-btree-1.0/3
139G graph.db/schema/index/native-btree-1.0
139G graph.db/schema/index
139G graph.db/schema
156K graph.db/profiles
4.0K graph.db/index
736G graph.db
0 store_lock
The DB was created using neo4j-import
tool and after that I launched index creation.
How could I check I/O load for the DB?
I'll add that config to the DB and I will report back.
04-19-2019 12:33 AM
Ok, yesterday I restarted the DB with
dbms.jvm.additional=-Dorg.neo4j.kernel.impl.index.schema.GenericNativeIndexPopulator.blockBasedPopulation=true
at the beginning it was very fast when I was checking call db.indexes
but now it is stuck. I have two cluster to test ideas about how to solve this, one has a leader with 128Gb RAM and the other with 64Gb.
They both were launched during same hour, and index creation status seems to follow memory ratios. Does that ring any bell on you? I'm running out of ideas. I don't know if it has something to do here, but this machine hasn't any swap memory just RAM
06-26-2019 03:37 AM
Sorry for the delay, answer from our team:
Took a quick look - looks like they're on 3.5.3? I think they need to be on 3.5.5 or higher to get all the index population fixes.
(and will still need dbms.jvm.additional=-Dorg.neo4j.kernel.impl.index.schema.GenericNativeIndexPopulator.blockBasedPopulation=true
)
06-27-2019 04:55 PM
Hi Michael. I'm running into a similar problem where my index building is taking a prohibitively long time (~7 hours to index a node property on 200M nodes). I've tried using this blockBasedPopulation
but building the index with this setting enabled causes an out of memory crash. The index builds for a while (around an hour) with low memory usage. Then memory usage spikes, and the DB gets OOM-killed.
Any ideas on how this could be resolved? I'm using 3.5.6
07-03-2019 08:35 AM
It looks like this commit in 3.5.7 might fix my issue: https://github.com/neo4j/neo4j/commit/2095b378bcb4653e54a4855c804159f6206ff7c6
Giving it a try now.
07-03-2019 09:43 AM
It works! Index that was taking 7 hours to build now takes 45 minutes, and uses pretty much constant memory.
07-03-2019 02:39 PM
Also affecting this is the type of disk, OS and Drivers/Firmware.
Data imported on Ubuntu and then indexed took a few hours.
Same data and database imported onto AWS Linux or CentOS 7.4 to less than 10 minutes.
Same SSD and IO provisioning on both OS's
Better drivers on some than others.
07-07-2019 09:13 PM
This was happening to my database as well, with 488 GB RAM on AWS i3.16xlarge, after 45 min the entire db was being killed. We are moving to 3.5.7 now to see if it fixes the issue.
Update - 3.5.7 has fixed it, the machine no longer dies on index creation.
All the sessions of the conference are now available online