One more point of clarification: these are concurrent REST API requests.
One request is deleting a relationship, another request is querying for
a(nother) relationship.

A simple analogy is a user unliking one thing on Facebook then immediately
liking something else.

I wouldn't expect the database to throw an error in this case, right? Am I
wrong in assuming that the requests should be serialized / handled
gracefully? If I'm wrong, should I just be optimistically retrying failed
requests?

Thanks again!

Aseem

On Mon, Nov 21, 2011 at 12:47 AM, Aseem Kishore <aseem.kish...@gmail.com>wrote:

> I'm definitely modifying the graph at the same time; that's why this is
> happening. But my assumption was that that shouldn't be breaking Neo4j -- I
> thought requests are transactional/serialized.
>
> I don't have a repro test at the moment, but the behavior is really
> simple. Here's an example analogy. We have a subgraph like User A [LIKES]
> Object 1 and also [LIKES] Object 2:
>
> (Object 1) <--LIKES-- (User A) --LIKES--> (Object 2)
>
> One operation will delete the [LIKE] to Object 1, while another operation
> queries whether User A [LIKES] Object 2. The query can be a Cypher query,
> e.g.:
>
> START user=(123), obj=(456)
> MATCH (user)-[rel]->(obj)
> WHERE rel~TYPE = 'LIKES'
> RETURN rel
>
> But we've also seen this bug where we used a simple traverse (specifying
> just max depth 1 and the LIKES relationship type).
>
> When you say "looks like a normal case", do you mean that the query should
> indeed fail like this? I wouldn't expect this -- what can I do to prevent
> an error? Should I be retrying?
>
> Thanks Peter!
>
> Aseem
>
>
> On Sun, Nov 20, 2011 at 10:08 PM, Peter Neubauer <
> peter.neuba...@neotechnology.com> wrote:
>
>> Aseem,
>> What query are you running, and are you modifying your graph on any way at
>> the same time? Do you have a small example test reproducing this? Looks
>> like a normal case where this relationship is deleted for some reason, no
>> failure. Maybe a better Cypher error should point that out...
>>
>> /peter
>>
>> Sent from my phone, please excuse typos and autocorrection.
>> On Nov 21, 2011 3:22 AM, "Aseem Kishore" <aseem.kish...@gmail.com> wrote:
>>
>> > Hey guys,
>> >
>> > If we put our app under a bit of load, creating and removing nodes and
>> > relationships concurrently, sometimes we get back a 500 Internal Server
>> > Error from the REST API when we do a traverse or Cypher query. Here's an
>> > example stack trace:
>> >
>> > https://gist.github.com/1381423
>> >
>> > We're running Neo4j. 1.4 still, but does this stack trace provide any
>> > insight/ideas into what might be wrong, what we could do as a
>> workaround,
>> > etc.? Can I provide any other info that would help?
>> >
>> > It goes without saying that our assumption is that Neo4j shouldn't be
>> > failing/crashing on queries; our expectation was that operations are
>> > transactional, etc.
>> >
>> > 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

Reply via email to