You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vijay (JIRA)" <ji...@apache.org> on 2009/10/15 07:20:33 UTC

[jira] Created: (CASSANDRA-492) Data Center Quorum

Data Center Quorum
------------------

                 Key: CASSANDRA-492
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
             Project: Cassandra
          Issue Type: New Feature
          Components: Core
    Affects Versions: 0.5
         Environment: Cassandra Core Code
            Reporter: Vijay
            Priority: Minor
             Fix For: 0.5


Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.

Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.

Changes will be in RackAware, storage, read and write classes.

Thanks
Vijay

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


[jira] Assigned: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis reassigned CASSANDRA-492:
----------------------------------------

    Assignee: Vijay

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCAWARE.patch

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

it is hard to see what is going on in the dcaware patch since there is so much reformatting going on.  please resubmit without touching existing lines that doesn't actually need to be changed.  (also, be aware of http://wiki.apache.org/cassandra/CodeStyle.)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

EndPointSnitch, IEndPointSnitch, and CassandraServer hunks do not apply to trunk

we shouldn't need getMapReplicationFactor in IEndPointSnitch, and shouldn't need insertDCBlocking, this is too much abstraction leakage.  i suggest moving determineBlockFor into AbstractReplicationStrategy, then the DC strategy version can use the configuration to determine blockFor w/o making EndPointSnitch/StorageProxy have to know about it.  actually we probably need more than that, maybe a getQuorumResponseHandler(consistency_level) method and you can subclass QRH to know about the details of the DC layouts.  Bottom line, StorageProxy shouldn't need to care about the details of the replicationstrategy.

don't include boilerplate like this

+     * @param rm
+     * @param blockFor
+     * @param endpointMap
+     * @param primaryNodes
+     * @throws InvalidRequestException
+     * @throws UnavailableException
+     * @throws IOException
+     * @throws DigestMismatchException
+     * @throws TimeoutException

real docstrings are fine but this doesn't add anything to what the method signature tells us

there is still a lot of whitespace/formatting getting changed unnecessarily e.g. in StorageProxy.

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Issue Comment Edited: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis edited comment on CASSANDRA-492 at 10/22/09 5:17 PM:
--------------------------------------------------------------------

it is hard to see what is going on in the dcaware patch since there is so much reformatting of existing code going on.  please resubmit without touching existing lines that doesn't actually need to be changed.  (also, be aware of http://wiki.apache.org/cassandra/CodeStyle.)

      was (Author: jbellis):
    it is hard to see what is going on in the dcaware patch since there is so much reformatting going on.  please resubmit without touching existing lines that doesn't actually need to be changed.  (also, be aware of http://wiki.apache.org/cassandra/CodeStyle.)
  
> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

Still seeing patch failures to EndPointSnitch, IEndPointSnitch, StorageProxy.  can you update for trunk?

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

Posted by "Chris Goffinet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12770085#action_12770085 ] 

Chris Goffinet commented on CASSANDRA-492:
------------------------------------------

My only question was going to be the implementation for Endpoint Snitch. At Digg we wrote a custom snitch that reads from a properties file called rack.properties. Might we want to do the same thing for this? 

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCAWARE

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE, cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCAWARE.patch

Ok fixed....

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCAWARE.patch)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCAWARE)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCAWARE.patch)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

Much better!  The basic foundation is right now, just a little cleanup to do:

the code in DataCenterShardSingleton belongs in DatacenterShardStategy

DatacenterShardStategy should extend ARS and implement the abstract method, rather than overriding a non-abstract method for RUS.  (otherwise, you break bootstrap.)

DSS/DCSS shouldn't care about the bootstrap tokens, only the write methods in ARS need that and you shouldn't have to mess with those

rename DCQuorumResponseHandlerSync to DCQuorumSyncResponseHandler for consistency

change getNewQuorumRespone to
public ResponseHandler getQuorumResponseHandler(IResponseResolver<Boolean> responseResolver, int consistency_level)

"This Class has the dependency of DataCenterEndpointSnitch.class to be used." you should verify that with an assert

use a 120 column width in formatting, not 80, and read through the code and fix obvious ugliness like
+     * @param endPoint
+     *            the endPoint to process
or
+		InetAddress endPointOfIntrest = tokenToEndPointMap.get(tokens
+			.get(i));

goffinet, I think you had some comments about reloadConfiguration using properties files instead of xml?

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCAWARE.patch)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCAWARE.patch

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Resolved: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis resolved CASSANDRA-492.
--------------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 0.5)
                   0.4

Committed, with some changes:

fixed use of generics in the new classes, especially wrt response handlers
replaced tabs with spaces
added new consistency levels to thrift
made class naming more consistent

There is one problem still to resolve; blockFor from StorageProxy is a problem.  It needs to be determined by the replicationstrategy responsehandler only when it's useful, rather than being computed in StorageProxy (which doesn't have all the right information anyway, in the dc cases) and passed to getResponseHandler (where it's ignored except for one case).

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCAWARE.patch

Updated and this uses QRH to achieve the functionality...

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCQuorum.patch

Sorry about it... was trying it in the eclipse way, saw some conflicts and resolved it... Can you try this one?

viparthaMacPro:cassandra vipartha$ svn up
At revision 829621.
viparthaMacPro:cassandra vipartha$ 


> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCQuorum.patch

I did use the trunk..... Renamed the file name...... Can you try this?

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis updated CASSANDRA-492:
-------------------------------------

        Fix Version/s:     (was: 0.4)
                       0.5
    Affects Version/s:     (was: 0.5)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCAWARE.patch)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Hudson commented on CASSANDRA-492:
----------------------------------

Integrated in Cassandra #240 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/240/])
    add dcquorum/dcquorumsync consistency levels, representing "a quorum of the replicas in the current dc" and "a quorum of the replicas in each dc," respectively.
patch by Vijay Parthasarathy; reviewed by jbellis for 


> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

committed with minor fixes (stop using tabs for indentation pls)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Hudson commented on CASSANDRA-492:
----------------------------------

Integrated in Cassandra #244 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/244/])
    fixes for DQ quorum code.  patch by Vijay Parthasarathy; reviewed by jbellis for 


> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

i'd rather see something properties based than xml too

are you referring to the code in contrib/, Chris?

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: DC-Config.xml

Configuration file to be placed @ /etc/cassandra/

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCQuorum.patch)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis commented on CASSANDRA-492:
------------------------------------------

same thing.  did you svn up to resolve conflicts?

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment: cassandra-DCAWARE.patch

Added the fix as DC quorum in the trunk doesnt work... there is also a performance improvement along with this.

Thanks

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Issue Comment Edited: (CASSANDRA-492) Data Center Quorum

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

Jonathan Ellis edited comment on CASSANDRA-492 at 10/22/09 6:38 PM:
--------------------------------------------------------------------

this looks pretty good overall.  quick work!

some problems/feedback:

EndPointSnitch, IEndPointSnitch, and CassandraServer hunks do not apply to trunk with patch -p0.

we shouldn't need getMapReplicationFactor in IEndPointSnitch, and shouldn't need insertDCBlocking, this is too much abstraction leakage.  i suggest moving determineBlockFor into AbstractReplicationStrategy, then the DC strategy version can use the configuration to determine blockFor w/o making EndPointSnitch/StorageProxy have to know about it.  actually we probably need more than that, maybe a getQuorumResponseHandler(consistency_level) method and you can subclass QRH to know about the details of the DC layouts.  Bottom line, StorageProxy shouldn't need to care about the details of the replicationstrategy.

don't include boilerplate like this

+     * @param rm
+     * @param blockFor
+     * @param endpointMap
+     * @param primaryNodes
+     * @throws InvalidRequestException
+     * @throws UnavailableException
+     * @throws IOException
+     * @throws DigestMismatchException
+     * @throws TimeoutException

real docstrings are fine but this doesn't add anything to what the method signature tells us

there is still a lot of whitespace/formatting getting changed unnecessarily e.g. in StorageProxy.

      was (Author: jbellis):
    EndPointSnitch, IEndPointSnitch, and CassandraServer hunks do not apply to trunk

we shouldn't need getMapReplicationFactor in IEndPointSnitch, and shouldn't need insertDCBlocking, this is too much abstraction leakage.  i suggest moving determineBlockFor into AbstractReplicationStrategy, then the DC strategy version can use the configuration to determine blockFor w/o making EndPointSnitch/StorageProxy have to know about it.  actually we probably need more than that, maybe a getQuorumResponseHandler(consistency_level) method and you can subclass QRH to know about the details of the DC layouts.  Bottom line, StorageProxy shouldn't need to care about the details of the replicationstrategy.

don't include boilerplate like this

+     * @param rm
+     * @param blockFor
+     * @param endpointMap
+     * @param primaryNodes
+     * @throws InvalidRequestException
+     * @throws UnavailableException
+     * @throws IOException
+     * @throws DigestMismatchException
+     * @throws TimeoutException

real docstrings are fine but this doesn't add anything to what the method signature tells us

there is still a lot of whitespace/formatting getting changed unnecessarily e.g. in StorageProxy.
  
> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Updated: (CASSANDRA-492) Data Center Quorum

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

Vijay updated CASSANDRA-492:
----------------------------

    Attachment:     (was: cassandra-DCAWARE.patch)

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.5
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCAWARE.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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


[jira] Commented: (CASSANDRA-492) Data Center Quorum

Posted by "Chris Goffinet (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12770183#action_12770183 ] 

Chris Goffinet commented on CASSANDRA-492:
------------------------------------------

Yes

> Data Center Quorum
> ------------------
>
>                 Key: CASSANDRA-492
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-492
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra Core Code
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: cassandra-DCQuorum.patch, DC-Config.xml
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Need a Cassandra Datacenter Quorum Read and Datacenter Quorum Write.
> Add 1 new enum DC_Quorum. basically reads with this will not span across the datacenter it will use the existing nodes in the Datacenter which has this data and read from it.
> For writes - All the data centers need to get this data, (datac enters will be configured in the storage-config.xml and number of replicas in it). Once configured write will basically write to all the nodes in all the datacenter but will wait only for the write in the current datacenter. 
> Example: We have 3 Datacenter A,B,C A has a replication factor of 3, B has 2 and C has 2. DC_Quorum write will make sure to write on 2 of 3 nodes in A.... B and C (total 4 +1) nodes will be eventually consistent.
> Changes will be in RackAware, storage, read and write classes.
> Thanks
> Vijay

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