Looks nice and simple and it's probably completely alright to have the store fail on non-clean shutdowns and stuff like that.
I'm wondering about this method though. void createNode( long id, Map<String, Object> properties ); What do we need that for? Couldn't that encourage an erroneous behavior where you could have f.ex. public static final int MY_REFERENCE_NODE_ID_1 = 1000001 public static final int MY_REFERENCE_NODE_ID_2 = 1000002 public static final int MY_REFERENCE_NODE_ID_3 = 1000003 and using those ids to create reference nodes and hence depending on those ids? 2009/5/6 Emil Eifrem <e...@neotechnology.com>: > Hi, > > As you may or may not know, the Neo4j kernel is heavily optimized for > reads and transactional updates, which in a typical transactional > system probably constitute 95+% of the operations. So far, we haven't > focused on raw batch insert velocity, since that's typically a > one-time operation that you execute when you're bootstrapping a > project and then never again. > > However, having said that, when you DO import your initial data it's > kinda nice if that import is a reasonably performant operation. So > we've decided to develop a specific batch insert API that is optimized > for insertion. See API outlined in the ticket below. > > Do you have any input on this API? Is it a convenient API for that > first importer that parses your CSVs or XML or SQL dumps and injects > the data into Neo4j? > > Please give input either in this thread or in ticket comments. > > Cheers, > > -EE > > > ---------- Forwarded message ---------- > From: neo4j.org <nore...@neo4j.org> > Date: Wed, May 6, 2009 at 01:03 > Subject: [Neo tickets] #167: Create a batch insert API > To: > Cc: tick...@lists.neo4j.org > > > #167: Create a batch insert API > ---------------------------------+------------------------------------------ > Reporter: johans | Owner: johans > Type: enhancement request | Status: new > Priority: major | Milestone: neo-1.0-b9 > Component: neo | Keywords: > ---------------------------------+------------------------------------------ > Create a batch insert {{{API}}} that drops support for transactions and > the like in favor of speed. This is useful to get already existing data > (existing in some form) injected into a Neo4j store. > > Here is the the suggested API: > {{{ > long createNode( Map<String,Object> properties ) > void createNode( long id, Map<String,Object> properties ) > long createRelationship( long startNode, long endNode, > RelationshipType type, Map<String,Object> properties ) > void setNodeProperties( long node, Map<String,Object> properties ) > void setRelationshipProperties( long rel, Map<String,Object> properties ) > Map<String,Object> getNodeProperties( long nodeId ) > Map<String,Object> getRelationshipProperties( long relId ) > Iterable<Long> getRelationshipIds( long nodeId ) > Iterable<SimpleRelationship> getRelationships( long nodeId ) > SimpleRelationship getRelatoinshipById( long relId ) > }}} > > Implementation is in progress and here are some details: > > * Everything will be optimized for insert only. > * Use create methods and supply properties for nodes and relationships > right away. The setProperties methods approach is slower. > * Get operations may be slow. > * Delete operation has been left out completely for now. > * If anything breaks (you get a exception from an API call) your store is > garbage and you have start over with a fresh new one. > > -- > Ticket URL: <https://trac.neo4j.org/ticket/167> > neo4j.org <http://trac.neo4j.org/> > The Neo4J.org Issue Tracker > _______________________________________________ > Tickets mailing list > tick...@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/tickets > > > > -- > Emil Eifrém, CEO [e...@neotechnology.com] > Neo Technology, www.neotechnology.com > Cell: +46 733 462 271 | US: 206 403 8808 > http://twitter.com/emileifrem > _______________________________________________ > Neo mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Mattias Persson, [matt...@neotechnology.com] Neo Technology, www.neotechnology.com _______________________________________________ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user