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/11/13 21:56:39 UTC

[jira] Created: (CASSANDRA-553) Create copy method in thrift

Create copy method in thrift
----------------------------

                 Key: CASSANDRA-553
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
             Project: Cassandra
          Issue Type: New Feature
          Components: Core
    Affects Versions: 0.9
         Environment: Cassandra on Linux
            Reporter: Vijay
            Assignee: Vijay
            Priority: Minor
             Fix For: 0.9


Needed support to Copy method in Cassandra,

Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.

The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis commented on CASSANDRA-553:
------------------------------------------

Can you rebase to trunk, please?

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-CASS.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis updated CASSANDRA-553:
-------------------------------------

    Attachment: 0003-sketch-out-fixes.txt
                0002-style-fixes.txt
                0001-fix-conflicts.txt

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: 0001-fix-conflicts.txt, 0002-style-fixes.txt, 0003-sketch-out-fixes.txt, Copy-Command.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis commented on CASSANDRA-553:
------------------------------------------

Is there a way we can use sortByProximity instead of adding the similar getProximityMap?

storageproxy method should check to see if the destination nodes are alive and throw UnavailableException immediately if not enough are to satisfy the consistencylevel, as in insertBlocking

Style notes:

// comments should have a space after the // :)

when breaking method calls across multiple lines, please align parameters as in http://wiki.apache.org/cassandra/CodeStyle


> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-CASS.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Vijay updated CASSANDRA-553:
----------------------------

    Attachment:     (was: Copy-CASS.patch)

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-Command.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Vijay commented on CASSANDRA-553:
---------------------------------

In That case we dont need read and write consistency... we just need tow wait for N nodes to be updated and return back.... for example.... r1, r2 if the consistency level is Quorum and replicas are 3. If DC quorum we will wait untill the desired result is recived..... so only one consistency level.... Agree?

Regards
Vijay

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis commented on CASSANDRA-553:
------------------------------------------

01: I rebased again for you as penance for taking so long to review

02: cleaned up the style to match our guidelines better.  please follow these in future patches

03: sketched out some fixes the actual copy work.  basically, for each target you want to copy from the closest source to it, the closest source to the "command" node will not necessarily have the same order.  Then you tell each source node the list of target nodes to copy to.  standard WriteResponseHandler won't work as-is, since each source node is doing potentially multiple copies.  So you need to extend WRH or create a new CopyResponseHandler; probably the former is easier.

Other stuff:
- CopyVerbHandler needs to handle HH to nodes that are down


> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: 0001-fix-conflicts.txt, 0002-style-fixes.txt, 0003-sketch-out-fixes.txt, Copy-Command.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Resolved: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis resolved CASSANDRA-553.
--------------------------------------

    Resolution: Incomplete
      Assignee:     (was: Vijay)

It's been a month w/ no progress.  Closing as incomplete for now.

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 0001-fix-conflicts.txt, 0002-style-fixes.txt, 0003-sketch-out-fixes.txt, Copy-Command.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis commented on CASSANDRA-553:
------------------------------------------

Also, we can't assume that reading the entire row into memory is OK; we want to support larger rows than memory in 0.9, and even w/o that reading an entire row into memory will cause unwanted pressure on the rest of the system.

So I think thrift api needs to take a SliceRange to copy, and return a list of column names copied, so the caller can start the next range (if desired) where the first left off.

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: 0001-fix-conflicts.txt, 0002-style-fixes.txt, 0003-sketch-out-fixes.txt, Copy-Command.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Vijay updated CASSANDRA-553:
----------------------------


Sure will do.... 

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Vijay updated CASSANDRA-553:
----------------------------

    Attachment:     (was: Copy-CASS.patch)

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-CASS.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Vijay updated CASSANDRA-553:
----------------------------

    Attachment: Copy-CASS.patch

1) Get both the orignial Key and destination key
2) fetch all the nodes for Orignal key and send copy message to them
3) read the table from of the orignal key and send the write to the node which it will be responsible for the new key

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-CASS.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Vijay updated CASSANDRA-553:
----------------------------

    Attachment: Copy-CASS.patch

Updated according to the recommendations.

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-CASS.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis commented on CASSANDRA-553:
------------------------------------------

you actually need two consistency levels here: one to do the read, the other to do the write.

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Commented: (CASSANDRA-553) Create copy method in thrift

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

Jonathan Ellis commented on CASSANDRA-553:
------------------------------------------

I wonder if you could "cheat" though --

tell replica1 of key1 to send to replica1 of key2
r2 of k1 to r2 of k2
etc


> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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


[jira] Updated: (CASSANDRA-553) Create copy method in thrift

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

Vijay updated CASSANDRA-553:
----------------------------

    Attachment: Copy-Command.patch

Reported to Trunk.... Plz see if it works now....

Thanks
VJ

> Create copy method in thrift
> ----------------------------
>
>                 Key: CASSANDRA-553
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-553
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 0.9
>         Environment: Cassandra on Linux
>            Reporter: Vijay
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 0.9
>
>         Attachments: Copy-Command.patch
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Needed support to Copy method in Cassandra,
> Requirement: Currently users are not allowed to change the Row Key in the server side, they need to copy the data @ client. This patch will provide the functionality of copying the data using the new RowID (The values will not be changed it will be duplicated) @ Cassandra server time.
> The new copy will be using the consistency level.

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