[Neo4j] All simple paths algorithm

2011-08-25 Thread Piotr Stąpor
Dear Sir / Madam,

Let me introduce myself. I'm an IT engineer and currently working for
an university project related to development of knowledge discovery
and semantic associations evaluation system.

Due to that I'm interested in principle of your algorithm's design
(eo4j::Algo.shortest_paths - finds all shortest paths between two
nodes.) Please let me know whether it is possible to get from you this
algorithm's description (eventually pseudo-code).

This knowledge and information will only be used for scientific purposes.

Thank you in advance for prompt answer from your side.

Best regards,
   Piotr Stapor
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] setProperty Exception

2011-08-25 Thread Chris Gioran
Hi John,

maybe you are trying to add a property that has a value of String[]
with at least one of the array members being null?. That would cause
the first exception. The second exception is most probably because you
try to success() and finish() your transaction even after the
exception.

For the first issue, always make sure that you are not adding null
values, not even as members of an array.
For the second issue, make sure that you have a try/catch block around
your transactional code that does tx.success() only when everything is
in place, with the catch block doing the tx.failure(). At the finally
block, just do tx.finish() - that should do it.

In code:

Transaction tx = db.beginTx();
try {
  // do tx stuff here
  tx.success();
}
catch (Exception e) {
  tx.failure();
}
finally {
  tx.finish();
}

Hope the above help. If your code does not conform to my assumptions
please share some more details.

cheers,
CG

On Thu, Aug 25, 2011 at 5:43 AM, John Howard johnyho...@gmail.com wrote:
 I am using embedded 1.4.1

 I get these 2 strange exceptions almost simultaneously when try to create a
 new property.

 java.lang.NullPointerException
 at
 org.neo4j.kernel.impl.nioneo.store.DynamicArrayStore.allocateFromString(DynamicArrayStore.java:142)
 at
 org.neo4j.kernel.impl.nioneo.store.DynamicArrayStore.allocateRecords(DynamicArrayStore.java:369)
 at
 org.neo4j.kernel.impl.nioneo.store.PropertyStore.allocateArrayRecords(PropertyStore.java:466)
 at
 org.neo4j.kernel.impl.nioneo.store.PropertyStore.encodeValue(PropertyStore.java:535)
 at
 org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeAddProperty(WriteTransaction.java:1314)
 at
 org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeAddProperty(WriteTransaction.java:1741)
 at
 org.neo4j.kernel.impl.persistence.PersistenceManager.nodeAddProperty(PersistenceManager.java:140)
 at
 org.neo4j.kernel.impl.core.NodeManager.nodeAddProperty(NodeManager.java:849)
 at org.neo4j.kernel.impl.core.NodeImpl.addProperty(NodeImpl.java:101)
 at org.neo4j.kernel.impl.core.Primitive.setProperty(Primitive.java:411)
 at org.neo4j.kernel.impl.core.NodeProxy.setProperty(NodeProxy.java:120)
 at graph.createProperty(graph.java:232)

 and then
 org.neo4j.graphdb.TransactionFailureException: Unable to commit transaction
 at org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:98)
 Caused by: javax.transaction.RollbackException: Failed to commit,
 transaction rolledback
 at
 org.neo4j.kernel.impl.transaction.TxManager.rollbackCommit(TxManager.java:811)
 at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:645)
 at
 org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:109)
 at org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:85)
 ... 40 more


 TIA

 John
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] All simple paths algorithm

2011-08-25 Thread Jim Webber
Hi Piotr,

Neo4j is an open source product. This means you're quite welcome to read the 
source of the algorithm and see how it works directly.

The implementation for all of our shortest path algorithms can be found here:

https://github.com/neo4j/community/tree/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath

Enjoy!

Jim
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] IMDB Error 503 in setup.html

2011-08-25 Thread elfranco
thank you!
it works :)

franz

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/IMDB-Error-503-in-setup-html-tp3281457p3283655.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] IMDB Error 503 in setup.html

2011-08-25 Thread Peter Neubauer
Glad to help!

/peter

On Thu, Aug 25, 2011 at 1:38 PM, elfranco f.ruff...@gmail.com wrote:

 thank you!
 it works :)

 franz

 --
 View this message in context:
 http://neo4j-community-discussions.438527.n3.nabble.com/IMDB-Error-503-in-setup-html-tp3281457p3283655.html
 Sent from the Neo4j Community Discussions mailing list archive at
 Nabble.com.
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] All simple paths algorithm

2011-08-25 Thread Mattias Persson
2011/8/25 Jim Webber j...@neotechnology.com

 Hi Piotr,

 Neo4j is an open source product. This means you're quite welcome to read
 the source of the algorithm and see how it works directly.

 The implementation for all of our shortest path algorithms can be found
 here:


 https://github.com/neo4j/community/tree/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath


Our shortest path algorithm currently used by default is really here:
https://github.com/neo4j/community/blob/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/path/ShortestPath.java


 Enjoy!

 Jim
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user




-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4jPHP batch insert benchmarks

2011-08-25 Thread Peter Neubauer
Josh,
it might be that the parsing of the JSON load is taking up increasingly much
time when you get big batches. At least that is my suspicion. Also, that
might be the reason for the heap problems - basically the String parsing is
taking over :/

Do you have any means of verifying that?

Cheers,

/peter neubauer

GTalk:  neubauer.peter
Skype   peter.neubauer
Phone   +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter  http://twitter.com/peterneubauer

http://www.neo4j.org   - Your high performance graph database.
http://startupbootcamp.org/- Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


On Thu, Aug 25, 2011 at 6:15 AM, jadell josh.ad...@gmail.com wrote:

 Hey all,

 I've been working on adding batch support to
 http://github.com/jadell/Neo4jPHP Neo4jPHP .  Here are the results of my
 latest benchmarks.  First column is the number of nodes being inserted,
 second column is the average in seconds over 5 runs to insert that many
 nodes in a single batch, third column is the average in seconds over 5 runs
 to insert that many nodes one at a time:

 #nodes  batchsingle
 100  0
 100  0.2   0.4
 250  0  1
 500  0.8   2
 10001.4   4
 25006  10.6
 500023.2 21.2
 1  91.6 40.4

 It seems like batches win out until right around 5000 nodes at a time.
  I've
 profiled my code, and it seems like the time spent in PHP is roughly
 equivalent for batch vs. single.  All the time difference is spent in a
 curl_exec call, talking to or waiting to hear back from the server.

 I tried going up to 10 nodes.  Single insert handled this just fine,
 but
 the server kept returning a 500 Java Heap space error on the batch, even
 with 512M max heap.

 Benchmark script can be found here:  http://gist.github.com/1169394
 http://gist.github.com/1169394
 Benchmarks were run on an 4 x 2.3GHz core Intel i7, 4G RAM, running Ubuntu
 10.10.  Neo4j server was run with out-of-the-box settings in a VM runnning
 Ubuntu 10.10 with 1 dedicated core and 1G RAM.

 I hope this is of interest to anyone.  I'd love to get some feedback from
 anyone using Neo4j from PHP, with Neo4jPHP or any other library.

 -- Josh Adell


 --
 View this message in context:
 http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3282984.html
 Sent from the Neo4j Community Discussions mailing list archive at
 Nabble.com.
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Performance Benchmarks Available

2011-08-25 Thread Basmajian, Raffi
We are looking for neo4j performance benchmarks vs rdbms and nosql data stores; 
are there any available?

Thanks
raffi

--
This e-mail transmission may contain information that is proprietary, 
privileged and/or confidential and is intended exclusively for the person(s) to 
whom it is addressed. Any use, copying, retention or disclosure by any person 
other than the intended recipient or the intended recipient's designees is 
strictly prohibited. If you are not the intended recipient or their designee, 
please notify the sender immediately by return e-mail and delete all copies. 
OppenheimerFunds may, at its sole discretion, monitor, review, retain and/or 
disclose the content of all email communications. 
==

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Performance Benchmarks Available

2011-08-25 Thread Anders Nawroth
Hi!

Here's articles which make some kind of comparison:
http://www.delicious.com/neo4j/articles+comparison

If anyone else know about other articles on this topic, please tell me!

/anders

On 08/25/2011 03:15 PM, Basmajian, Raffi wrote:
 We are looking for neo4j performance benchmarks vs rdbms and nosql data 
 stores; are there any available?

 Thanks
 raffi

 --
 This e-mail transmission may contain information that is proprietary, 
 privileged and/or confidential and is intended exclusively for the person(s) 
 to whom it is addressed. Any use, copying, retention or disclosure by any 
 person other than the intended recipient or the intended recipient's 
 designees is strictly prohibited. If you are not the intended recipient or 
 their designee, please notify the sender immediately by return e-mail and 
 delete all copies. OppenheimerFunds may, at its sole discretion, monitor, 
 review, retain and/or disclose the content of all email communications.
 ==

 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4jPHP batch insert benchmarks

2011-08-25 Thread jadell
Hey Peter,

I don't have any way of verifying on the server side, other than measuring
the time it takes for curl_exec to return a response. On the client side I
can see that PHP's json_encode/json_decode functions are taking less than
.5% of the total run time, even with a batch size of 1. During one of my
10 node attempts, I printed out the server response of the 500 Heap
space error. It seemed like the last method in the stack trace was dealing
with a Deserializer class or method.  I will try again and capture the
stack trace output to post here.

Thanks,

-- Josh Adell



--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3283926.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Performance Benchmarks Available

2011-08-25 Thread Basmajian, Raffi
Hi, I did not find any useful performance benchmarks at that link, just 
articles about how and why graph-style data bases perform better than SQL-based 
data stores.

-Original Message-
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On 
Behalf Of Anders Nawroth
Sent: Thursday, August 25, 2011 9:29 AM
To: Neo4j user discussions
Subject: Re: [Neo4j] Performance Benchmarks Available

Hi!

Here's articles which make some kind of comparison:
http://www.delicious.com/neo4j/articles+comparison

If anyone else know about other articles on this topic, please tell me!

/anders

On 08/25/2011 03:15 PM, Basmajian, Raffi wrote:
 We are looking for neo4j performance benchmarks vs rdbms and nosql data 
 stores; are there any available?

 Thanks
 raffi

 --
  This e-mail transmission may contain information that is 
 proprietary, privileged and/or confidential and is intended exclusively for 
 the person(s) to whom it is addressed. Any use, copying, retention or 
 disclosure by any person other than the intended recipient or the intended 
 recipient's designees is strictly prohibited. If you are not the intended 
 recipient or their designee, please notify the sender immediately by return 
 e-mail and delete all copies. OppenheimerFunds may, at its sole discretion, 
 monitor, review, retain and/or disclose the content of all email 
 communications.
 ==
 

 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


--
This e-mail transmission may contain information that is proprietary, 
privileged and/or confidential and is intended exclusively for the person(s) to 
whom it is addressed. Any use, copying, retention or disclosure by any person 
other than the intended recipient or the intended recipient's designees is 
strictly prohibited. If you are not the intended recipient or their designee, 
please notify the sender immediately by return e-mail and delete all copies. 
OppenheimerFunds may, at its sole discretion, monitor, review, retain and/or 
disclose the content of all email communications. 
==

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Test and try/catch block

2011-08-25 Thread Jim Webber
If you're using the standard try/catch/finally idiom in Neo4j then consider 
using Nat Pryce/Steve Freeman's transactor pattern.

We have an example of this in the neo4j server code here:

https://github.com/neo4j/community/blob/master/server/src/functionaltest/java/org/neo4j/server/helpers/Transactor.java

It's not always appropriate, but it the general case it can keep your code a 
bit terser and more intent-ful.

Jim

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Performance Benchmarks Available

2011-08-25 Thread Jim Webber
Hi Raffi,

There are no standard TPC-like benchmarks for Neo4j. However, for even modest 
data sets, Neo4j can be orders of magnitude faster than some SQL-oriented 
databases primarily because it avoids join pain (no sets) for connected data.

There are a few slides in the tutorial deck about this here (warning, large 
file):

https://github.com/jimwebber/neo4j-tutorial/blob/master/presentation/A%20Programmatic%20Introduction%20to%20Neo4j.pptx

And there's a video of me talking about this stuff here (see around 25:40):

http://skillsmatter.com/podcast/java-jee/cypher

HTH,

Jim
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4jPHP batch insert benchmarks

2011-08-25 Thread Jacob Hansson
The heap space stuff would make sense I think, because we currently
deserialize and serialize in-place, keeping the whole thing in memory. Would
be interesting to see if we could implement a setup that can stream the
deserialization/serialization, getting rid of the memory overhead..

You said you are using out-of-the-box settings for the server, I don't
remember off the top of my head what the default heap size is, but you might
want to try giving it more RAM. I'm gonna guess that's where performance
dies..

I'll have to look at what is proper HTTP behavior, but there should be a way
we could start streaming back the response as it is being calculated, as
long as we can come up with a good way of aborting if something fails..
Doing that would mean we don't have to keep a hundred thousand requests and
responses in memory, which would completely change the performance
situation.


Big thanks for taking the time to put this together!

/jake

On Thu, Aug 25, 2011 at 3:52 PM, jadell josh.ad...@gmail.com wrote:

 Hey Peter,

 I don't have any way of verifying on the server side, other than measuring
 the time it takes for curl_exec to return a response. On the client side I
 can see that PHP's json_encode/json_decode functions are taking less than
 .5% of the total run time, even with a batch size of 1. During one of
 my
 10 node attempts, I printed out the server response of the 500 Heap
 space error. It seemed like the last method in the stack trace was dealing
 with a Deserializer class or method.  I will try again and capture the
 stack trace output to post here.

 Thanks,

 -- Josh Adell



 --
 View this message in context:
 http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3283926.html
 Sent from the Neo4j Community Discussions mailing list archive at
 Nabble.com.
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user




-- 
Jacob Hansson
Phone: +46 (0) 763503395
Twitter: @jakewins
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4jPHP batch insert benchmarks

2011-08-25 Thread Jim Webber
Hey Josh,

You can validate what Peter's suggesting by setting a small heap when you run 
the server.

If you edit conf/neo4j-wrapper.conf you can override the property for heap size 
with something like this:

wrapper.java.maxmemory=1

Then you should (in theory) be able to see the batch operation fail much 
earlier if it is the JSON components barfing.

Jim
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Executing arbitrary code through REST (was: Specifying best first order of traverse over REST API)

2011-08-25 Thread Peter Neubauer
Guys,
with the custom sorting in Lucene and this thread coming up all the time, I
took the time to document the execution of arbitrary Groovy and thus, Java
calls through REST. In the example below, there are calls to Neo4j APIs,
Gremlin stuff and custom sorting using Lucene classes, and return of a Neo4j
search hit object.

You can do all this in a Neo4j Server plugin, but if you need to, this is an
example on how to do it with only REST.

http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-send-an-arbitrary-groovy-script---lucene-sorting

Hope that helps for future reference!

Cheers,

/peter neubauer

GTalk:  neubauer.peter
Skype   peter.neubauer
Phone   +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter  http://twitter.com/peterneubauer

http://www.neo4j.org   - Your high performance graph database.
http://startupbootcamp.org/- Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


On Thu, Aug 25, 2011 at 1:00 AM, Matt Luongo m...@scholr.ly wrote:

 +1, we could really use that. Client-side sorting sucks.

 --
 Matt Luongo
 Co-Founder, Scholr.ly



 On Wed, Aug 24, 2011 at 4:43 PM, Aseem Kishore aseem.kish...@gmail.com
 wrote:

  I've just spent a bunch of time reading into how one can control the
  ordering of a traverse beyond simple breadth first or depth first.
 More
  precisely, even when breadth first, how one can control *which* neighbors
  are traversed first.
 
  (It matters less in which order they're traversed vs. which order they're
  returned if you're returning all results, since you can just sort on the
  client. But it matters a lot if you want to use the paged traverser,
 since
  you're then only returning the first results.)
 
  I've learned that this is doable from Java by writing your own
  BranchSelector implementation:
 
  http://components.neo4j.org/neo4j/1.4.1/apidocs/
 
  I've found the built-in implementations, e.g. the pre-order breadth-first
  and depth-first:
 
 
 
 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderBreadthFirstSelector.java
 
 
 
 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.java
 
  To achieve a custom best first, Igor Dovgiy for example shared that he
  modeled his implementation of the breadth-first selector, except just
 using
  a PriorityQueue instead of a regular Queue.
 
  My question is: is there any way to specify this sort of thing over the
  REST
  API instead of having to write a plugin? If not, does that sound like a
  reasonable feature request?
 
  I really just want something simple: nodes ordered by some timestamp
  property. It's killing us that we can't do this today. We might just have
  to
  look into writing this as a plugin...
 
  Thanks!
 
  Aseem
  ___
  Neo4j mailing list
  User@lists.neo4j.org
  https://lists.neo4j.org/mailman/listinfo/user
 
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Specifying best first order of traverse over REST API

2011-08-25 Thread Peter Neubauer
See the other mail for a pointer :)

Cheers,

/peter neubauer

GTalk:  neubauer.peter
Skype   peter.neubauer
Phone   +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter  http://twitter.com/peterneubauer

http://www.neo4j.org   - Your high performance graph database.
http://startupbootcamp.org/- Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


On Thu, Aug 25, 2011 at 1:00 AM, Matt Luongo m...@scholr.ly wrote:

 +1, we could really use that. Client-side sorting sucks.

 --
 Matt Luongo
 Co-Founder, Scholr.ly



 On Wed, Aug 24, 2011 at 4:43 PM, Aseem Kishore aseem.kish...@gmail.com
 wrote:

  I've just spent a bunch of time reading into how one can control the
  ordering of a traverse beyond simple breadth first or depth first.
 More
  precisely, even when breadth first, how one can control *which* neighbors
  are traversed first.
 
  (It matters less in which order they're traversed vs. which order they're
  returned if you're returning all results, since you can just sort on the
  client. But it matters a lot if you want to use the paged traverser,
 since
  you're then only returning the first results.)
 
  I've learned that this is doable from Java by writing your own
  BranchSelector implementation:
 
  http://components.neo4j.org/neo4j/1.4.1/apidocs/
 
  I've found the built-in implementations, e.g. the pre-order breadth-first
  and depth-first:
 
 
 
 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderBreadthFirstSelector.java
 
 
 
 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.java
 
  To achieve a custom best first, Igor Dovgiy for example shared that he
  modeled his implementation of the breadth-first selector, except just
 using
  a PriorityQueue instead of a regular Queue.
 
  My question is: is there any way to specify this sort of thing over the
  REST
  API instead of having to write a plugin? If not, does that sound like a
  reasonable feature request?
 
  I really just want something simple: nodes ordered by some timestamp
  property. It's killing us that we can't do this today. We might just have
  to
  look into writing this as a plugin...
 
  Thanks!
 
  Aseem
  ___
  Neo4j mailing list
  User@lists.neo4j.org
  https://lists.neo4j.org/mailman/listinfo/user
 
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4jPHP batch insert benchmarks

2011-08-25 Thread jadell
Jim,

When I was running into the issue, I set the maxmemory=256 and can confirm
that it took much longer to fail, but it did fail in the same way.  I didn't
think of setting it smaller than the default, but I suspect you are correct. 
I'll try it that way when I attempt to generate the stack trace later so
that I don't have to wait several minutes for it to fail.

-- Josh

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3284382.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Specifying best first order of traverse over REST API

2011-08-25 Thread Aseem Kishore
Thanks Peter, we'll look into Gremlin. =)

But I'll push back a bit and say it would still ask for a feature like this
to be a first-class feature of the REST API. If my app is e.g. in Python,
it's not super API-friendly for me to have to write Java-ish code to achieve
what I want.

I'd get it if what I was asking for was an uncommon edge case request. But
for quite a while, this has been the one biggest pain point of Neo4j for us:
how to return a meaningful subset of traverse results instead of all
results. Having a paged traverser doesn't help at all if you can neither
specify the order nor know what the default ordering is based on (I asked a
while back and was told it's unspecified). (And again, by order here I
mean beyond just breadth first.)

I'm all for simple, minimalistic and elegant APIs. I'm also all for being
scenario-driven, and solving problems rather than building arbitrary
features. So perhaps one solution here would be to introduce a new built-in
best first order that's just like Djikstra's shortest-path API: you just
specify a cost property (or function) for nodes and/or relationships. This
would definitely solve our problem, and, I suspect, most people's problems
in this regard. It wouldn't be a bulky feature that doesn't fit in (it would
compliment Djikstra's very nicely), and it wouldn't require writing a
complex Gremlin script to achieve this (I would think) common requirement.

I'll get off the soapbox now. ;) Thanks for your consideration!

Aseem

On Thu, Aug 25, 2011 at 9:01 AM, Peter Neubauer 
peter.neuba...@neotechnology.com wrote:

 See the other mail for a pointer :)

 Cheers,

 /peter neubauer

 GTalk:  neubauer.peter
 Skype   peter.neubauer
 Phone   +46 704 106975
 LinkedIn   http://www.linkedin.com/in/neubauer
 Twitter  http://twitter.com/peterneubauer

 http://www.neo4j.org   - Your high performance graph database.
 http://startupbootcamp.org/- Öresund - Innovation happens HERE.
 http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


 On Thu, Aug 25, 2011 at 1:00 AM, Matt Luongo m...@scholr.ly wrote:

  +1, we could really use that. Client-side sorting sucks.
 
  --
  Matt Luongo
  Co-Founder, Scholr.ly
 
 
 
  On Wed, Aug 24, 2011 at 4:43 PM, Aseem Kishore aseem.kish...@gmail.com
  wrote:
 
   I've just spent a bunch of time reading into how one can control the
   ordering of a traverse beyond simple breadth first or depth first.
  More
   precisely, even when breadth first, how one can control *which*
 neighbors
   are traversed first.
  
   (It matters less in which order they're traversed vs. which order
 they're
   returned if you're returning all results, since you can just sort on
 the
   client. But it matters a lot if you want to use the paged traverser,
  since
   you're then only returning the first results.)
  
   I've learned that this is doable from Java by writing your own
   BranchSelector implementation:
  
   http://components.neo4j.org/neo4j/1.4.1/apidocs/
  
   I've found the built-in implementations, e.g. the pre-order
 breadth-first
   and depth-first:
  
  
  
 
 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderBreadthFirstSelector.java
  
  
  
 
 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.java
  
   To achieve a custom best first, Igor Dovgiy for example shared that
 he
   modeled his implementation of the breadth-first selector, except just
  using
   a PriorityQueue instead of a regular Queue.
  
   My question is: is there any way to specify this sort of thing over the
   REST
   API instead of having to write a plugin? If not, does that sound like a
   reasonable feature request?
  
   I really just want something simple: nodes ordered by some timestamp
   property. It's killing us that we can't do this today. We might just
 have
   to
   look into writing this as a plugin...
  
   Thanks!
  
   Aseem
   ___
   Neo4j mailing list
   User@lists.neo4j.org
   https://lists.neo4j.org/mailman/listinfo/user
  
  ___
  Neo4j mailing list
  User@lists.neo4j.org
  https://lists.neo4j.org/mailman/listinfo/user
 
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Specifying best first order of traverse over REST API

2011-08-25 Thread Peter Neubauer
Aseem,
If you can provide a nice suggestion on how exactly it would look, maybe I
can implement it if the others agree?

/peter

Sent from my phone.
On Aug 25, 2011 7:19 PM, Aseem Kishore aseem.kish...@gmail.com wrote:
 Thanks Peter, we'll look into Gremlin. =)

 But I'll push back a bit and say it would still ask for a feature like
this
 to be a first-class feature of the REST API. If my app is e.g. in Python,
 it's not super API-friendly for me to have to write Java-ish code to
achieve
 what I want.

 I'd get it if what I was asking for was an uncommon edge case request. But
 for quite a while, this has been the one biggest pain point of Neo4j for
us:
 how to return a meaningful subset of traverse results instead of all
 results. Having a paged traverser doesn't help at all if you can neither
 specify the order nor know what the default ordering is based on (I asked
a
 while back and was told it's unspecified). (And again, by order here I
 mean beyond just breadth first.)

 I'm all for simple, minimalistic and elegant APIs. I'm also all for being
 scenario-driven, and solving problems rather than building arbitrary
 features. So perhaps one solution here would be to introduce a new
built-in
 best first order that's just like Djikstra's shortest-path API: you just
 specify a cost property (or function) for nodes and/or relationships.
This
 would definitely solve our problem, and, I suspect, most people's problems
 in this regard. It wouldn't be a bulky feature that doesn't fit in (it
would
 compliment Djikstra's very nicely), and it wouldn't require writing a
 complex Gremlin script to achieve this (I would think) common requirement.

 I'll get off the soapbox now. ;) Thanks for your consideration!

 Aseem

 On Thu, Aug 25, 2011 at 9:01 AM, Peter Neubauer 
 peter.neuba...@neotechnology.com wrote:

 See the other mail for a pointer :)

 Cheers,

 /peter neubauer

 GTalk: neubauer.peter
 Skype peter.neubauer
 Phone +46 704 106975
 LinkedIn http://www.linkedin.com/in/neubauer
 Twitter http://twitter.com/peterneubauer

 http://www.neo4j.org - Your high performance graph database.
 http://startupbootcamp.org/ - Öresund - Innovation happens HERE.
 http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.


 On Thu, Aug 25, 2011 at 1:00 AM, Matt Luongo m...@scholr.ly wrote:

  +1, we could really use that. Client-side sorting sucks.
 
  --
  Matt Luongo
  Co-Founder, Scholr.ly
 
 
 
  On Wed, Aug 24, 2011 at 4:43 PM, Aseem Kishore aseem.kish...@gmail.com
  wrote:
 
   I've just spent a bunch of time reading into how one can control the
   ordering of a traverse beyond simple breadth first or depth
first.
  More
   precisely, even when breadth first, how one can control *which*
 neighbors
   are traversed first.
  
   (It matters less in which order they're traversed vs. which order
 they're
   returned if you're returning all results, since you can just sort on
 the
   client. But it matters a lot if you want to use the paged traverser,
  since
   you're then only returning the first results.)
  
   I've learned that this is doable from Java by writing your own
   BranchSelector implementation:
  
   http://components.neo4j.org/neo4j/1.4.1/apidocs/
  
   I've found the built-in implementations, e.g. the pre-order
 breadth-first
   and depth-first:
  
  
  
 

https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderBreadthFirstSelector.java
  
  
  
 

https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.java
  
   To achieve a custom best first, Igor Dovgiy for example shared that
 he
   modeled his implementation of the breadth-first selector, except just
  using
   a PriorityQueue instead of a regular Queue.
  
   My question is: is there any way to specify this sort of thing over
the
   REST
   API instead of having to write a plugin? If not, does that sound like
a
   reasonable feature request?
  
   I really just want something simple: nodes ordered by some
timestamp
   property. It's killing us that we can't do this today. We might just
 have
   to
   look into writing this as a plugin...
  
   Thanks!
  
   Aseem
   ___
   Neo4j mailing list
   User@lists.neo4j.org
   https://lists.neo4j.org/mailman/listinfo/user
  
  ___
  Neo4j mailing list
  User@lists.neo4j.org
  https://lists.neo4j.org/mailman/listinfo/user
 
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Specifying best first order of traverse over REST API

2011-08-25 Thread Aseem Kishore
Okay! Will think about this and get back to you soon.

Peter, I gotta say -- your open-mindedness and willingness to help
developers like me is awesome and much appreciated. Customer satisfaction,
etc. =)

Cheers,
Aseem

On Thu, Aug 25, 2011 at 11:12 AM, Peter Neubauer 
peter.neuba...@neotechnology.com wrote:

 Aseem,
 If you can provide a nice suggestion on how exactly it would look, maybe I
 can implement it if the others agree?

 /peter

 Sent from my phone.
 On Aug 25, 2011 7:19 PM, Aseem Kishore aseem.kish...@gmail.com wrote:
  Thanks Peter, we'll look into Gremlin. =)
 
  But I'll push back a bit and say it would still ask for a feature like
 this
  to be a first-class feature of the REST API. If my app is e.g. in Python,
  it's not super API-friendly for me to have to write Java-ish code to
 achieve
  what I want.
 
  I'd get it if what I was asking for was an uncommon edge case request.
 But
  for quite a while, this has been the one biggest pain point of Neo4j for
 us:
  how to return a meaningful subset of traverse results instead of all
  results. Having a paged traverser doesn't help at all if you can neither
  specify the order nor know what the default ordering is based on (I asked
 a
  while back and was told it's unspecified). (And again, by order here I
  mean beyond just breadth first.)
 
  I'm all for simple, minimalistic and elegant APIs. I'm also all for being
  scenario-driven, and solving problems rather than building arbitrary
  features. So perhaps one solution here would be to introduce a new
 built-in
  best first order that's just like Djikstra's shortest-path API: you
 just
  specify a cost property (or function) for nodes and/or relationships.
 This
  would definitely solve our problem, and, I suspect, most people's
 problems
  in this regard. It wouldn't be a bulky feature that doesn't fit in (it
 would
  compliment Djikstra's very nicely), and it wouldn't require writing a
  complex Gremlin script to achieve this (I would think) common
 requirement.
 
  I'll get off the soapbox now. ;) Thanks for your consideration!
 
  Aseem
 
  On Thu, Aug 25, 2011 at 9:01 AM, Peter Neubauer 
  peter.neuba...@neotechnology.com wrote:
 
  See the other mail for a pointer :)
 
  Cheers,
 
  /peter neubauer
 
  GTalk: neubauer.peter
  Skype peter.neubauer
  Phone +46 704 106975
  LinkedIn http://www.linkedin.com/in/neubauer
  Twitter http://twitter.com/peterneubauer
 
  http://www.neo4j.org - Your high performance graph database.
  http://startupbootcamp.org/ - Öresund - Innovation happens HERE.
  http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
 
 
  On Thu, Aug 25, 2011 at 1:00 AM, Matt Luongo m...@scholr.ly wrote:
 
   +1, we could really use that. Client-side sorting sucks.
  
   --
   Matt Luongo
   Co-Founder, Scholr.ly
  
  
  
   On Wed, Aug 24, 2011 at 4:43 PM, Aseem Kishore 
 aseem.kish...@gmail.com
   wrote:
  
I've just spent a bunch of time reading into how one can control the
ordering of a traverse beyond simple breadth first or depth
 first.
   More
precisely, even when breadth first, how one can control *which*
  neighbors
are traversed first.
   
(It matters less in which order they're traversed vs. which order
  they're
returned if you're returning all results, since you can just sort on
  the
client. But it matters a lot if you want to use the paged traverser,
   since
you're then only returning the first results.)
   
I've learned that this is doable from Java by writing your own
BranchSelector implementation:
   
http://components.neo4j.org/neo4j/1.4.1/apidocs/
   
I've found the built-in implementations, e.g. the pre-order
  breadth-first
and depth-first:
   
   
   
  
 

 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderBreadthFirstSelector.java
   
   
   
  
 

 https://github.com/neo4j/community/blob/master/kernel/src/main/java/org/neo4j/kernel/PreorderDepthFirstSelector.java
   
To achieve a custom best first, Igor Dovgiy for example shared
 that
  he
modeled his implementation of the breadth-first selector, except
 just
   using
a PriorityQueue instead of a regular Queue.
   
My question is: is there any way to specify this sort of thing over
 the
REST
API instead of having to write a plugin? If not, does that sound
 like
 a
reasonable feature request?
   
I really just want something simple: nodes ordered by some
 timestamp
property. It's killing us that we can't do this today. We might just
  have
to
look into writing this as a plugin...
   
Thanks!
   
Aseem
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user
   
   ___
   Neo4j mailing list
   User@lists.neo4j.org
   https://lists.neo4j.org/mailman/listinfo/user
  
  

[Neo4j] Cypher: how would you query first- and second-degree friends?

2011-08-25 Thread Aseem Kishore
Man, I am loving Cypher. Thanks so much guys for introducing it. I'm a bit
stuck on one query, though, and I wanted to ask for help. I think the
reasons I'm stuck are related to the two feature requests I made yesterday
(optional matches, and returning IDs).

I want to fetch first- and second-degree friends in one query, in a way that
preserves the first-degree friend(s) for each second-degree friends. Assume
an asymmetrical friendship model, like Twitter's following, because that
makes things a bit easier.

Here's a simple transitive example:

- Alice follows Bob and Carol.
- Bob follows Carol and Dave.
- Carol follows Dave and Alice.


I want to fetch Alice's first-degree friends (Bob and Carol) and each of
their first-degree friends ((Carol and Dave) for Bob, and (Dave and Alice)
for Carol). This example is easy enough:

START zero=(Alice)
MATCH (zero) -[:FOLLOWS]- (first) -[:FOLLOWS]- (second)
RETURN first, second


I expect to get back results like:

- Bob, Carol
- Bob, Dave
- Carol, Dave
- Carol, Alice


This is great because I can get Alice's first-degree friends by unique()'ing
the first column, for each person, I know their second-degree friends via
the second column.

But this doesn't work if any of my first-degree friends don't follow anyone.
For that, it would be great if I could specify that the second part of that
match was optional, and I'd get back a row like this in that case:

- Elizabeth, null

If I'm returning nodes, it also duplicates a ton of info: each first-degree
friend's info is returned in full for each of their friends. Maybe there's
no way around that, but this is also where I would find it convenient to be
able to return IDs somehow for all but one of the results.

Just thinking out loud here, but I'd greatly appreciate any feedback or
ideas for this scenario. Thanks much!

Aseem
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Cypher: how would you query first- and second-degree friends?

2011-08-25 Thread Andres Taylor
Good and valid requests, Aseem.

Consider them heard. We'll see how soon we can get it to you.

Andrés

On Thu, Aug 25, 2011 at 12:57 PM, Aseem Kishore aseem.kish...@gmail.comwrote:

 Man, I am loving Cypher. Thanks so much guys for introducing it. I'm a bit
 stuck on one query, though, and I wanted to ask for help. I think the
 reasons I'm stuck are related to the two feature requests I made yesterday
 (optional matches, and returning IDs).

 I want to fetch first- and second-degree friends in one query, in a way
 that
 preserves the first-degree friend(s) for each second-degree friends. Assume
 an asymmetrical friendship model, like Twitter's following, because that
 makes things a bit easier.

 Here's a simple transitive example:

 - Alice follows Bob and Carol.
 - Bob follows Carol and Dave.
 - Carol follows Dave and Alice.


 I want to fetch Alice's first-degree friends (Bob and Carol) and each of
 their first-degree friends ((Carol and Dave) for Bob, and (Dave and Alice)
 for Carol). This example is easy enough:

 START zero=(Alice)
 MATCH (zero) -[:FOLLOWS]- (first) -[:FOLLOWS]- (second)
 RETURN first, second


 I expect to get back results like:

 - Bob, Carol
 - Bob, Dave
 - Carol, Dave
 - Carol, Alice


 This is great because I can get Alice's first-degree friends by
 unique()'ing
 the first column, for each person, I know their second-degree friends via
 the second column.

 But this doesn't work if any of my first-degree friends don't follow
 anyone.
 For that, it would be great if I could specify that the second part of that
 match was optional, and I'd get back a row like this in that case:

 - Elizabeth, null

 If I'm returning nodes, it also duplicates a ton of info: each first-degree
 friend's info is returned in full for each of their friends. Maybe there's
 no way around that, but this is also where I would find it convenient to be
 able to return IDs somehow for all but one of the results.

 Just thinking out loud here, but I'd greatly appreciate any feedback or
 ideas for this scenario. Thanks much!

 Aseem
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Wishlist: subgraphs over REST API

2011-08-25 Thread Aseem Kishore
Sorry if I'm inundating the list w/ too many emails. =D

I've been loving Cypher -- way more user-friendly and powerful than the REST
API's traverse method -- but I'm finding even Cypher isn't optimized for
queries where I really want to fetch a *subgraph*, not tabular data.

I can give plenty of scenarios if that helps (I've even drawn diagrams!),
but the theme in my queries is repeatedly that I need to understand the
relationships between nodes in our graph, which means I want subgraphs.

I understand that the traverse method in the REST API gives you the option
of returning nodes, relationships, or paths. I'd like to propose a new
return type: subgraph (or graph).

Here's what I'm envisioning: the JSON contains an adjacency matrix of nodes
and relationships -- referenced entirely by URLs -- and an additional map
from URL to data (properties) for each referenced node and relationship.

Here's an example format: https://gist.github.com/1171908

I'd *love* to be able to query and fetch subgraphs from the graph like this.
That would be so awesome. I'd love thoughts and feedback.

Cheers,
Aseem
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Cypher: how would you query first- and second-degree friends?

2011-08-25 Thread Aseem Kishore
Thanks Andrés!

Couple of random extensions to the thoughts above:

- To be consistent, perhaps for optional matches, the results could always
include a row where that optional match was ignored. That way, Elizabeth,
null wouldn't be an inconsistency; *every* first-degree friend would have
an [friend], null row.

- And perhaps *that* row could be the one that has the full node data, and
every subsequent row for the second optional match would just reference the
URL/ID of the first-degree node.

After chewing on this a lot more, though, I've realized that what I really
want in this scenario is not tabular data, but a real subgraph. Hence my
email just now. =)

Aseem

On Thu, Aug 25, 2011 at 1:34 PM, Andres Taylor 
andres.tay...@neotechnology.com wrote:

 Good and valid requests, Aseem.

 Consider them heard. We'll see how soon we can get it to you.

 Andrés

 On Thu, Aug 25, 2011 at 12:57 PM, Aseem Kishore aseem.kish...@gmail.com
 wrote:

  Man, I am loving Cypher. Thanks so much guys for introducing it. I'm a
 bit
  stuck on one query, though, and I wanted to ask for help. I think the
  reasons I'm stuck are related to the two feature requests I made
 yesterday
  (optional matches, and returning IDs).
 
  I want to fetch first- and second-degree friends in one query, in a way
  that
  preserves the first-degree friend(s) for each second-degree friends.
 Assume
  an asymmetrical friendship model, like Twitter's following, because that
  makes things a bit easier.
 
  Here's a simple transitive example:
 
  - Alice follows Bob and Carol.
  - Bob follows Carol and Dave.
  - Carol follows Dave and Alice.
 
 
  I want to fetch Alice's first-degree friends (Bob and Carol) and each of
  their first-degree friends ((Carol and Dave) for Bob, and (Dave and
 Alice)
  for Carol). This example is easy enough:
 
  START zero=(Alice)
  MATCH (zero) -[:FOLLOWS]- (first) -[:FOLLOWS]- (second)
  RETURN first, second
 
 
  I expect to get back results like:
 
  - Bob, Carol
  - Bob, Dave
  - Carol, Dave
  - Carol, Alice
 
 
  This is great because I can get Alice's first-degree friends by
  unique()'ing
  the first column, for each person, I know their second-degree friends via
  the second column.
 
  But this doesn't work if any of my first-degree friends don't follow
  anyone.
  For that, it would be great if I could specify that the second part of
 that
  match was optional, and I'd get back a row like this in that case:
 
  - Elizabeth, null
 
  If I'm returning nodes, it also duplicates a ton of info: each
 first-degree
  friend's info is returned in full for each of their friends. Maybe
 there's
  no way around that, but this is also where I would find it convenient to
 be
  able to return IDs somehow for all but one of the results.
 
  Just thinking out loud here, but I'd greatly appreciate any feedback or
  ideas for this scenario. Thanks much!
 
  Aseem
  ___
  Neo4j mailing list
  User@lists.neo4j.org
  https://lists.neo4j.org/mailman/listinfo/user
 
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Server couldn't start after java.lang.OutOfMemoryError

2011-08-25 Thread Nuo Yan
Hey Jim,

It happened again and I'm pretty sure there was no other server process
running.

Also this time when it crashed I saw this line in the console log (not
seeing this previously):

  Could not load hsdis-.jnilib; library not loadable; PrintAssembly is
disabled

When I tried to restart, data/graph.db/message.log shows a lot of lines like
the following and fail with the error message in my last email:

Thu Aug 25 15:18:15 PDT 2011: Injected one phase commit, txId=11611
Thu Aug 25 15:18:15 PDT 2011: Injected one phase commit, txId=11612
Thu Aug 25 15:18:15 PDT 2011: Injected one phase commit, txId=11613


On Tue, Aug 23, 2011 at 6:23 PM, Jim Webber j...@neotechnology.com wrote:

 Hi Nuo,

  process [26266]... waiting for server to be
 
 ready.
  BAD.
  another server-process is running with []

 Just to check before we dig deeper, are you certain you don't have another
 server process running?

 Jim
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4jPHP batch insert benchmarks

2011-08-25 Thread jadell
I bumped the maxmemory up to 512 and ran a batch to create 10 nodes
(repeated 10 times).  After an average of 20 seconds, I always received the
following response:


HTTP/1.1 100 Continue

HTTP/1.1 500 Java heap space
Content-Type: text/html; charset=iso-8859-1
Cache-Control: must-revalidate,no-cache,no-store
Content-Length: 4389
Server: Jetty(6.1.25)

html
head
meta http-equiv=Content-Type content=text/html; charset=ISO-8859-1/
titleError 500 Java heap space/title
/head
body
HTTP ERROR 500

pProblem accessing /db/data/batch. Reason:
preJava heap space/pre/p
Caused by:
prejava.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.lt;initgt;(HashMap.java:209)
at java.util.LinkedHashMap.lt;initgt;(LinkedHashMap.java:181)
at
org.codehaus.jackson.map.deser.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:199)
at
org.codehaus.jackson.map.deser.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:77)
at
org.codehaus.jackson.map.deser.UntypedObjectDeserializer.mapArray(UntypedObjectDeserializer.java:155)
at
org.codehaus.jackson.map.deser.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:73)
at
org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1980)
at 
org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1271)
at org.neo4j.server.rest.domain.JsonHelper.readJson(JsonHelper.java:54)
at
org.neo4j.server.rest.repr.formats.JsonFormat.readList(JsonFormat.java:101)
at
org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:184)
at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:276)
at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83)
at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)
at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71)
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1171)
at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1103)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043)
at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:406)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:477)
at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
/pre
hr //smallPowered by Jetty:///small/br/ 
   
br/
br/
br/
/body
/html


So it seems to be an issue with deserializing the JSON.  Unfortunately, I am
not familiar enough with Java's dev environment or tools to diagnose any
further.

Any ideas?

-- Josh


--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jPHP-batch-insert-benchmarks-tp3282984p3285635.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user