Re: [Neo4j] Unique constraint and transaction over REST

2011-12-05 Thread Marko Rodriguez
Hey,

Matt: This isn't related to this thread, but I noticed you are from Scholar.ly. 
I thought you might like this:

http://arxiv.org/abs/0905.1594

Go Canucks!,
Marko.

http://markorodriguez.com

On Dec 4, 2011, at 12:58 AM, Matt Luongo wrote:

 Well, I had already started writing this before I saw your response- so, if
 you do decide down the road that you care more about immediate performance
 than keeping DRY... ;)
 
g.setMaxBufferSize(0) //turn on tx handlings
g.startTransaction()
 
found = g.idx('node_auto_index')[[name:'uni...@example.com']].count()
if (found == 0) {
//other custom create code could go here, and/or have vars passed
 through json
results = g.addVertex([:])
} else {
results = g.idx('node_auto_index')[[name:'uni...@example.com
 ']].count().next()
}
 
g.stopTransaction(TransactionalGraph.Conclusion.SUCCESS)
g.setMaxBufferSize(1)
 
results
 
 would be something like the Groovy you'd use.
 
 I don't blame you for wanting to avoid the many choices available right now
 - I'm already generating Javascript for traversal pruning and templating
 Gremlin, all in the name of performance...
 
 --
 Matt Luongo
 Co-Founder, Scholr.ly
 
 
 
 On Sun, Dec 4, 2011 at 2:38 AM, dnagir dna...@gmail.com wrote:
 
 Thanks Matt.
 
 Yeah. I think the transaction API is in making. Would be great addition.
 
 The server-side plugin will definitely work, but I personally prefer to
 use one way of doing things. At least until I will start speaking neo4j
 natively :)
 
 Cheers,
 Dmytrii
 http://www.ApproachE.com
 
 
 On 04/12/2011, at 6:35 PM, mhluongo [via Neo4j Community Discussions]
 wrote:
 
 I've run into this problem, and resorted to using the Gremlin/Groovy over
 REST (via the server-included plugin).
 
 There really isn't a way to transactionally express a conditional (or
 get-or-create) like that over the vanilla REST API, though I'm sure it's
 in
 the works.
 
 --
 Matt Luongo
 Co-Founder, Scholr.ly
 
 
 
 On Thu, Dec 1, 2011 at 5:45 PM, dnagir [hidden email] wrote:
 
 Hi,
 
 I wonder what's the best way to do something similar to unique
 constraints
 in RDBMS.
 
 For example, user registration requires that the user's email to be
 unique.
 
 Working over in Ruby over REST API, how do you achieve this?
 
 I assume I need an auto-index on email property of User nodes. Then
 query
 it
 to check the property.
 
 But how can I make it transactional? So that I am sure that between
 querying
 and inserting the node, no similar has been inserted.
 
 The transactional part better applies to reservation instead of user
 creation. But you get the point.
 
 Cheers.
 
 --
 View this message in context:
 
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3553148.html
 Sent from the Neo4j Community Discussions mailing list archive at
 Nabble.com.
 ___
 Neo4j mailing list
 [hidden email]
 https://lists.neo4j.org/mailman/listinfo/user
 
 ___
 Neo4j mailing list
 [hidden email]
 https://lists.neo4j.org/mailman/listinfo/user
 
 
 If you reply to this email, your message will be added to the discussion
 below:
 
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3558628.html
 To unsubscribe from Unique constraint and transaction over REST, click
 here.
 NAML
 
 
 
 --
 View this message in context:
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3558630.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 mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Unique constraint and transaction over REST

2011-12-05 Thread Matt Luongo
Marko,

Thanks for the link, it's obviously very relevant to what we're doing!
We've talked a ton about trying to solve some of the problems it looks like
k-reef was designed to, but weren't quite ambitious enough :)

We have an alpha release coming up- would you be interested in seeing what
we have?

--
Matt Luongo
Co-Founder, Scholr.ly


On Mon, Dec 5, 2011 at 12:30 PM, Marko Rodriguez okramma...@gmail.comwrote:

 Hey,

 Matt: This isn't related to this thread, but I noticed you are from
 Scholar.ly. I thought you might like this:

http://arxiv.org/abs/0905.1594

 Go Canucks!,
 Marko.

 http://markorodriguez.com

 On Dec 4, 2011, at 12:58 AM, Matt Luongo wrote:

  Well, I had already started writing this before I saw your response- so,
 if
  you do decide down the road that you care more about immediate
 performance
  than keeping DRY... ;)
 
 g.setMaxBufferSize(0) //turn on tx handlings
 g.startTransaction()
 
 found = g.idx('node_auto_index')[[name:'uni...@example.com']].count()
 if (found == 0) {
 //other custom create code could go here, and/or have vars passed
  through json
 results = g.addVertex([:])
 } else {
 results = g.idx('node_auto_index')[[name:'uni...@example.com
  ']].count().next()
 }
 
 g.stopTransaction(TransactionalGraph.Conclusion.SUCCESS)
 g.setMaxBufferSize(1)
 
 results
 
  would be something like the Groovy you'd use.
 
  I don't blame you for wanting to avoid the many choices available right
 now
  - I'm already generating Javascript for traversal pruning and templating
  Gremlin, all in the name of performance...
 
  --
  Matt Luongo
  Co-Founder, Scholr.ly
 
 
 
  On Sun, Dec 4, 2011 at 2:38 AM, dnagir dna...@gmail.com wrote:
 
  Thanks Matt.
 
  Yeah. I think the transaction API is in making. Would be great addition.
 
  The server-side plugin will definitely work, but I personally prefer to
  use one way of doing things. At least until I will start speaking neo4j
  natively :)
 
  Cheers,
  Dmytrii
  http://www.ApproachE.com
 
 
  On 04/12/2011, at 6:35 PM, mhluongo [via Neo4j Community Discussions]
  wrote:
 
  I've run into this problem, and resorted to using the Gremlin/Groovy
 over
  REST (via the server-included plugin).
 
  There really isn't a way to transactionally express a conditional (or
  get-or-create) like that over the vanilla REST API, though I'm sure
 it's
  in
  the works.
 
  --
  Matt Luongo
  Co-Founder, Scholr.ly
 
 
 
  On Thu, Dec 1, 2011 at 5:45 PM, dnagir [hidden email] wrote:
 
  Hi,
 
  I wonder what's the best way to do something similar to unique
  constraints
  in RDBMS.
 
  For example, user registration requires that the user's email to be
  unique.
 
  Working over in Ruby over REST API, how do you achieve this?
 
  I assume I need an auto-index on email property of User nodes. Then
  query
  it
  to check the property.
 
  But how can I make it transactional? So that I am sure that between
  querying
  and inserting the node, no similar has been inserted.
 
  The transactional part better applies to reservation instead of user
  creation. But you get the point.
 
  Cheers.
 
  --
  View this message in context:
 
 
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3553148.html
  Sent from the Neo4j Community Discussions mailing list archive at
  Nabble.com.
  ___
  Neo4j mailing list
  [hidden email]
  https://lists.neo4j.org/mailman/listinfo/user
 
  ___
  Neo4j mailing list
  [hidden email]
  https://lists.neo4j.org/mailman/listinfo/user
 
 
  If you reply to this email, your message will be added to the
 discussion
  below:
 
 
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3558628.html
  To unsubscribe from Unique constraint and transaction over REST, click
  here.
  NAML
 
 
 
  --
  View this message in context:
 
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3558630.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 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] Unique constraint and transaction over REST

2011-12-03 Thread Matt Luongo
I've run into this problem, and resorted to using the Gremlin/Groovy over
REST (via the server-included plugin).

There really isn't a way to transactionally express a conditional (or
get-or-create) like that over the vanilla REST API, though I'm sure it's in
the works.

--
Matt Luongo
Co-Founder, Scholr.ly



On Thu, Dec 1, 2011 at 5:45 PM, dnagir dna...@gmail.com wrote:

 Hi,

 I wonder what's the best way to do something similar to unique constraints
 in RDBMS.

 For example, user registration requires that the user's email to be unique.

 Working over in Ruby over REST API, how do you achieve this?

 I assume I need an auto-index on email property of User nodes. Then query
 it
 to check the property.

 But how can I make it transactional? So that I am sure that between
 querying
 and inserting the node, no similar has been inserted.

 The transactional part better applies to reservation instead of user
 creation. But you get the point.

 Cheers.

 --
 View this message in context:
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3553148.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] Unique constraint and transaction over REST

2011-12-03 Thread Matt Luongo
Well, I had already started writing this before I saw your response- so, if
you do decide down the road that you care more about immediate performance
than keeping DRY... ;)

g.setMaxBufferSize(0) //turn on tx handlings
g.startTransaction()

found = g.idx('node_auto_index')[[name:'uni...@example.com']].count()
if (found == 0) {
//other custom create code could go here, and/or have vars passed
through json
results = g.addVertex([:])
} else {
results = g.idx('node_auto_index')[[name:'uni...@example.com
']].count().next()
}

g.stopTransaction(TransactionalGraph.Conclusion.SUCCESS)
g.setMaxBufferSize(1)

results

would be something like the Groovy you'd use.

I don't blame you for wanting to avoid the many choices available right now
- I'm already generating Javascript for traversal pruning and templating
Gremlin, all in the name of performance...

--
Matt Luongo
Co-Founder, Scholr.ly



On Sun, Dec 4, 2011 at 2:38 AM, dnagir dna...@gmail.com wrote:

 Thanks Matt.

 Yeah. I think the transaction API is in making. Would be great addition.

 The server-side plugin will definitely work, but I personally prefer to
 use one way of doing things. At least until I will start speaking neo4j
 natively :)

 Cheers,
 Dmytrii
 http://www.ApproachE.com


 On 04/12/2011, at 6:35 PM, mhluongo [via Neo4j Community Discussions]
 wrote:

  I've run into this problem, and resorted to using the Gremlin/Groovy over
  REST (via the server-included plugin).
 
  There really isn't a way to transactionally express a conditional (or
  get-or-create) like that over the vanilla REST API, though I'm sure it's
 in
  the works.
 
  --
  Matt Luongo
  Co-Founder, Scholr.ly
 
 
 
  On Thu, Dec 1, 2011 at 5:45 PM, dnagir [hidden email] wrote:
 
   Hi,
  
   I wonder what's the best way to do something similar to unique
 constraints
   in RDBMS.
  
   For example, user registration requires that the user's email to be
 unique.
  
   Working over in Ruby over REST API, how do you achieve this?
  
   I assume I need an auto-index on email property of User nodes. Then
 query
   it
   to check the property.
  
   But how can I make it transactional? So that I am sure that between
   querying
   and inserting the node, no similar has been inserted.
  
   The transactional part better applies to reservation instead of user
   creation. But you get the point.
  
   Cheers.
  
   --
   View this message in context:
  
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3553148.html
   Sent from the Neo4j Community Discussions mailing list archive at
   Nabble.com.
   ___
   Neo4j mailing list
   [hidden email]
   https://lists.neo4j.org/mailman/listinfo/user
  
  ___
  Neo4j mailing list
  [hidden email]
  https://lists.neo4j.org/mailman/listinfo/user
 
 
  If you reply to this email, your message will be added to the discussion
 below:
 
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3558628.html
  To unsubscribe from Unique constraint and transaction over REST, click
 here.
  NAML



 --
 View this message in context:
 http://neo4j-community-discussions.438527.n3.nabble.com/Unique-constraint-and-transaction-over-REST-tp3553148p3558630.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