That implementation is per default removing the reference node. Do the same code in gremlin as you do in java, and things should work?
Send from mobile.
Hehe,
Equally well one could argue the other way round. If I read the neo4j docs and blueprints removes data magically, is thatore right? I think imposing a unified model onto all underlying ecosystems at this level is going to end up on the danger of partly providing sub-optimal solutions (see for instance the differences in transaction semantics and the resulting performance hits in blueprints) and partly forcing an embedded, java implementation onto all kinds of data stores. I am very skeptical of that approach performance and technology wise.
Just sayin.
Send from mobile.
I agree that is a shortcoming in neoclipse. Could you please raise an issue there?
Send from mobile.
In order to have consistent behavior across all Blueprints implementations the following assumptions are made:1. there is no data in a brand new database.2. the transactional scope is consistent across indices and the graph.Regarding 1., this is something that Neo4j is not going to change as its their style.
Yup,
Regarding reference node there might change coming up :-)
Regarding performance, I think we need to start setting up performance regression tests. Our customers care first about performance, them about compliance, so we need to make sure TinkerPop 2 is not breaking that hopefully I can give that some love next week.
Send from mobile.
Regarding performance, I think we need to start setting up performance regression tests. Our customers care first about performance, them about compliance, so we need to make sure TinkerPop 2 is not breaking that hopefully I can give that some love next week.
Yup,
I hope things are good. Anyway, I think we need to start setting up regression tests so customers caring about performance are not getting surprised. Will report back.
Send from mobile.
Nah Pierre,
It's not about the implementation. We can make that work. Question is what happens if blueprints performance is degrading because of generalizations or standardization. I am just saying that for our customers sake we need to keep a close eye on that since that is the foremost concern for them.
So, I am just saying that, as there are changes coming in, performance needs to be regression tested before I recommend users to adopt new versions, as we do with neo4j and everything else. We are here to solve hard problems that are slow on RDBMSes, so for me performance regression is the number one concern here. We already have standards that in theory can express these use cases - called SQL. NoSQL is about better, pragmatic solutions to me, not more standards, at least not without clear performance benefits.
My 2 cents :-)
Send from mobile.
Mattias,
If you read my last mail, I am saying exactly what you say - SQL is already able to express graphs, so I agree on that. What I don't agree on is that we lock down an API that is java centric, embedded and focused around one particular approach of data processing, take it as a standard and then force e.g. a. NET implementation to implement a java API which is the base for a graph algo in gremlin and groovy which is executed via RexterGraph over the wire (again ). All to be compliant with a blueprints client driver library.
Note that SQL is a declarative language, not a java library.
I am just saying that we run the risk of running down a path that is just wrong technically and locking innovation by mandating an implementation as a standard at the wrong abstraction level.
Wdyt?
Send from mobile.
Agreed on most of it,
Except that blueprints is a java API that is "used to run efficienrly on a bunch of java database implementations that can process data in a stepwise manner"
That doesn't sound like a standard to me, but a library useful for a certain set of tools to build. For neo4j we have never claimed any standard aspirations for exactly that reason. Usefulness! = standardization Imho.
And yes, there are other abstraction points like network protocols and other that might be far more useful to others. So this is the reason I am against a blueprints standard. Far more interesting to me is the pipes dataflow approach as a thought, currently working great with neo4j. Looping back to the original question, the reference node is an implementation details that is manageable. "you are not compliant with the standard " talk (given that Aurelius with Marko and you employed is starting to have own vested interest on that standard implementation while calling out others as vendors) at this level is just wrong wording.
Send from mobile.