You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2009/05/06 16:59:30 UTC

[jira] Created: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

allow user to specify how many nodes to block for on reads and writes
---------------------------------------------------------------------

                 Key: CASSANDRA-140
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Jonathan Ellis
             Fix For: 0.4


currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene updated CASSANDRA-140:
-------------------------------------

    Component/s: Core

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>         Attachments: CASSANDRA-140-storage.patch
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707118#action_12707118 ] 

Jonathan Ellis commented on CASSANDRA-140:
------------------------------------------

I'd like to wait to apply this until after we do a 0.3 RC and create a maintenance svn branch for that (hopefully tomorrow, but I am still finding fairly obvious bugs).

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>         Attachments: CASSANDRA-140-storage.patch
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706520#action_12706520 ] 

Jonathan Ellis commented on CASSANDRA-140:
------------------------------------------

that's true, but "assuming the client connects to a node that owns the right set of rows" is an assumption that isn't going to hold true in the general case today, fwiw.

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12709540#action_12709540 ] 

Jonathan Ellis commented on CASSANDRA-140:
------------------------------------------

I can't get the 140 patch to apply against trunk now.  Does it apply for you?

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>         Attachments: CASSANDRA-140-storage.patch
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Sandeep Tata (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12709575#action_12709575 ] 

Sandeep Tata commented on CASSANDRA-140:
----------------------------------------

I'll remake the patch against trunk and post in a bit.

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>         Attachments: CASSANDRA-140-storage.patch
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Sandeep Tata (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706484#action_12706484 ] 

Sandeep Tata commented on CASSANDRA-140:
----------------------------------------

A useful special-case of this is CASSANDRA-132, where you block for the local write (assuming the client connects to a node that owns the right set of rows). That should give you session-consistency.

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Sandeep Tata (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706555#action_12706555 ] 

Sandeep Tata commented on CASSANDRA-140:
----------------------------------------

Yes, agreed.

Here are the options we have for writes and reads (assuming replication = 3):

non-blocking write: Send 3 messages, return
blocking write: Send 3 messages, wait for a quorum (2) to respond *after* applying the writes
block-on-k write: Send 3 messages, wait for k to respond *after* applying the writes

Other options:

block-on-1st-endpoint: Send 3 messages, wait for the *first* endpoint to respond *after* applying the writes
block-on-1st-if-local: Send 3 messages, if one of the endpoints is local, wait for local endpoint to respond *after* applying the writes (can be faster than the previous one if client connects appropriately => gets session consistency for cheaper because weak reads will be served locally)

block-on-1st-endpoint won't give you session consistency because the 1st endpoint *may* change between a write and a read if there's been a failure. Since this failure will be transparent to  the client's session, it may read an old value. 

This is, of course, completely uninteresting to an app that doesn't need session-level read-your-writes.






> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>             Fix For: 0.4
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Sandeep Tata (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sandeep Tata updated CASSANDRA-140:
-----------------------------------

    Attachment: CASSANDRA-140-storage.patch

Part1: makes the changes needed in the StorageProxy and the QuorumResponseHandler to admit # of nodes to block on. 

I haven't added any new unit tests -- any ideas?

I'll put the thrift interface related changes in part2 and attach.

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>         Attachments: CASSANDRA-140-storage.patch
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (CASSANDRA-140) allow user to specify how many nodes to block for on reads and writes

Posted by "Sandeep Tata (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sandeep Tata reassigned CASSANDRA-140:
--------------------------------------

    Assignee: Sandeep Tata

> allow user to specify how many nodes to block for on reads and writes
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-140
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-140
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>
> currently you only have block for zero (or one, on reads) or quorum.  block for one (on writes), and all are also useful values.  allow user to specify this as a number.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.