[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-06-22 Thread JIRA

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13053296#comment-13053296
 ] 

Luís Ferreira commented on CASSANDRA-2686:
--

I've taken your advice and used Cages for the Read and Write locks. From this I 
constructed a Transaction system on top of Cassandra. As soon as I have some 
performance test results I'll put them here, as well as the code, if anyone is 
interested. 

It basically implements a write ahead log, taking advantage of the atomicity in 
per row updates, and of  idempotent updates. It also has a pre processing 
mechanism for transactions that do not know à priori the columns they will use 
(when using indexes, for example). 

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread JIRA

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13037965#comment-13037965
 ] 

Luís Ferreira commented on CASSANDRA-2686:
--

Is there any way to do this? Can a consensus be achieved between the nodes 
responsible for a key? Maybe by creating a new kind of column that would have 
write once properties, and by using something like hinted handoff of locks if a 
node is down at the time of locking.

I am going to try to implement this. But it would be really good to get some 
ideas on how to do it.

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
Affects Versions: 0.7.4
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread Stu Hood (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038060#comment-13038060
 ] 

Stu Hood commented on CASSANDRA-2686:
-

The Spinnaker paper described a complete solution to this problem that embedded 
Zookeeper: www.vldb.org/pvldb/vol4/p243-rao.pdf

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread JIRA

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038071#comment-13038071
 ] 

Luís Ferreira commented on CASSANDRA-2686:
--

Yes, but this uses a centralized or semi centralized approach, in which 
zookeeper controls who has the lock. I would like for all (up) the nodes to 
reach an agreement on who has the lock. I don't know if this is possible, and 
if so, at what price...

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread Ryan King (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038070#comment-13038070
 ] 

Ryan King commented on CASSANDRA-2686:
--

You'll likely end up reimplementing something like Paxos (what google's chubby 
uses) or ZAB (what Zookeeper uses).

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread Ryan King (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038078#comment-13038078
 ] 

Ryan King commented on CASSANDRA-2686:
--

Those protocols are methods for reach[ing] agreement. You're basically 
describing how ZK works.

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread JIRA

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038090#comment-13038090
 ] 

Luís Ferreira commented on CASSANDRA-2686:
--

Maybe I misunderstood, but to get locks with ZK, every node has to make it's 
presence known to ZK, and ask ZK to get a certain lock (which I think it's what 
cages does). Can't this be a bottleneck? 

I know consensus can't be achieved with one failing node, therefore the need 
for something like ZK. Still, isn't there a way to do this using something like 
hinted handoff? 

Maybe I haven't explained correctly my idea. I'd like to have locks, but 
maintain the general structure of a cassandra cluster, and change as little as 
possible the kind of messages the nodes send. 

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread JIRA

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038093#comment-13038093
 ] 

Luís Ferreira commented on CASSANDRA-2686:
--

Probably you're right, and the only way to do this is by using some kind of 
protocol as ZAB or Paxos. Still, if other ideas come up it would be great. Or 
even a explanation of why that's the only way... 

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038107#comment-13038107
 ] 

Jonathan Ellis commented on CASSANDRA-2686:
---

Pretty sure Spinnaker only used ZK for leader election, not normal row updates.

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CASSANDRA-2686) Distributed per row locks

2011-05-23 Thread Stu Hood (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-2686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13038139#comment-13038139
 ] 

Stu Hood commented on CASSANDRA-2686:
-

bq. Pretty sure Spinnaker only used ZK for leader election, not normal row 
updates.
If you've done leader election such that one replica is the leader of the 
replica set, then there is no need for locking... although CAS operations must 
speak directly to the leader.

 Distributed per row locks
 -

 Key: CASSANDRA-2686
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2686
 Project: Cassandra
  Issue Type: Wish
  Components: Core
 Environment: any
Reporter: Luís Ferreira
  Labels: api-addition, features

 Instead of using a centralized locking strategy like cages with zookeeper, I 
 would like to have it in a decentralized way. Even if it carries some 
 limitations. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira