Chris,
your cypher query seems to be wrong:
1. split it up into node creation and relationship creation
2. use bigger transaciton sizes
3. you forgot a colon before :GraphPart so it doesn't use an index for that one
4. you don't have do use the path and foreach a simple match is good enough
> USING PERIODIC COMMIT 10000
> LOAD CSV WITH HEADERS FROM "file://localhost/home/deployer/tblMfr.csv" AS
> csvLine
> FIELDTERMINATOR '\t'
> CREATE (vendor:GraphVendor { vendor_code_id: toInt(csvLine.Mfr_Code_ID),
> vendor_id: toInt(csvLine.Mfr_ID), vendor_name: csvLine.Mfr_Name,
> vendor_abbreviation: csvLine.Mfr_Abbr, vendor_status: csvLine.Mfr_Status });
create index on :GraphVendor(vendor_id);
> USING PERIODIC COMMIT 10000
> LOAD CSV WITH HEADERS FROM "file://localhost/home/deployer/tblMfr.csv" AS
> csvLine
> FIELDTERMINATOR '\t'
WITH toInt(csvLine.Mfr_ID) as vendor_id
>
> MATCH (vendor:GraphVendor { vendor_id: vendor_id})
> MATCH (part:GraphPart {mfr_id: vendor_id})
> MERGE (part)-[:MANUFACTURED_BY]->(vendor);
Am 26.08.2014 um 23:33 schrieb Chris G <[email protected]>:
> Group, I'm trying to wrap me head around the memory configuration for Neo4j.
>
> I've got ~4 million parts that I have loaded and indexed via cypher and have
> these indexes:
>
> Indexes
> ON :GraphPart(mfr_id) ONLINE
> ON :GraphPart(part_id) ONLINE (for uniqueness constraint)
>
> Constraints
> ON (graphpart:GraphPart) ASSERT graphpart.part_id IS UNIQUE
>
>
> Now I want to import my vendors via this cypher:
>
> USING PERIODIC COMMIT 1
> LOAD CSV WITH HEADERS FROM "file://localhost/home/deployer/tblMfr.csv" AS
> csvLine
> FIELDTERMINATOR '\t'
> CREATE (vendor:GraphVendor { vendor_code_id: toInt(csvLine.Mfr_Code_ID),
> vendor_id: toInt(csvLine.Mfr_ID), vendor_name: csvLine.Mfr_Name,
> vendor_abbreviation: csvLine.Mfr_Abbr, vendor_status: csvLine.Mfr_Status })
> WITH vendor
> MATCH p = (GraphPart {mfr_id: vendor.vendor_id})
> FOREACH (n IN nodes(p) | MERGE (n)-[r:MANUFACTURED_BY]->(vendor))
>
>
> I have configured the conf files:
>
> neo4j.properties:
> neostore.nodestore.db.mapped_memory=50M
> neostore.relationshipstore.db.mapped_memory=500M
> neostore.propertystore.db.mapped_memory=100M
> neostore.propertystore.db.strings.mapped_memory=130M
> neostore.propertystore.db.arrays.mapped_memory=0M
>
> neo4j-wrapper.conf:
>
> wrapper.java.initmemory=4096
> wrapper.java.maxmemory=12288
>
>
> even with 12G heap and PERIODIC COMMIT 1 messages.log looks like this:
> 2014-08-26 21:14:08.936+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 719ms [total block time:
> 16.227s]
> 2014-08-26 21:14:10.874+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 1630ms [total block time:
> 17.857s]
> 2014-08-26 21:14:12.377+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 673ms [total block time: 18.53s]
> 2014-08-26 21:14:13.715+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 719ms [total block time:
> 19.249s]
> 2014-08-26 21:14:15.424+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 1400ms [total block time:
> 20.649s]
> 2014-08-26 21:14:16.924+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 754ms [total block time:
> 21.403s]
> 2014-08-26 21:14:18.146+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 908ms [total block time:
> 22.311s]
> 2014-08-26 21:14:19.881+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 1207ms [total block time:
> 23.518s]
> 2014-08-26 21:14:21.551+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 1033ms [total block time:
> 24.551s]
> 2014-08-26 21:14:22.801+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 827ms [total block time:
> 25.378s]
> 2014-08-26 21:14:49.154+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 26040ms [total block time:
> 51.418s]
> 2014-08-26 21:14:49.524+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 270ms [total block time:
> 51.688s]
> 2014-08-26 21:15:24.662+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 32772ms [total block time:
> 84.46s]
> 2014-08-26 21:15:51.122+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 26039ms [total block time:
> 110.499s]
> 2014-08-26 21:16:24.233+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 32902ms [total block time:
> 143.401s]
> 2014-08-26 21:16:50.232+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 25898ms [total block time:
> 169.299s]
> 2014-08-26 21:17:20.085+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 29753ms [total block time:
> 199.052s]
> 2014-08-26 21:17:46.225+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 26040ms [total block time:
> 225.092s]
> 2014-08-26 21:21:04.960+0000 WARN [o.n.k.EmbeddedGraphDatabase]: GC Monitor:
> Application threads blocked for an additional 29433ms [total block time:
> 254.525s]
>
>
> Could anyone suggest what I can try next, or some alternative memory
> settings?
>
> I'm trying to get proof of concept up and running so I can present this to my
> bosses.
>
> I hope I am missing something simple, if not I think it's time for Neo4j to
> invest in some canonical documentation on how to configure neo4j memory
> usage, There are sparse mentions in the user guide, but most of what I find
> related to performance comes from blog posts, stack overflow questions, and
> mailing list posts (most of which Michael Hunger is answering). I also hope
> once I get past these initial memory settings the rest of neo4j will just
> work.
>
> Thanks for reading,
>
> Chris
>
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.