[ 
https://issues.apache.org/jira/browse/CASSANDRA-6870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13939892#comment-13939892
 ] 

Edward Capriolo commented on CASSANDRA-6870:
--------------------------------------------

To make this more effective it could be generalized

{quote}
update table set col1=increment(col1), col2=trim(col2) where rowkey = 5;
{quote}

Then instead of a function that can transform a ColumnFamily named source. You 
could supply a map of functions to apply to columns to happen inside the paxos 
transaction. This is where it starts getting 3rd dimensional, are the source 
columns simply columns in from the storage engine, or can the functions be 
nested? 

{quote}
trim(trim(column1)) trim (concat(col1,col2))  
{quote}



> Transform operation
> -------------------
>
>                 Key: CASSANDRA-6870
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6870
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Edward Capriolo
>            Assignee: Edward Capriolo
>            Priority: Minor
>
> Compare and swap uses paxos to only update a value only if some criteria is 
> met. If I understand correctly we should be able to use this feature to 
> provide a wider variety of server side operations. 
> For example inside a paxos transaction performing a slice and then using a 
> function to manipulate the slice. You could accomplish features like append 
> and increment this way without user needing to know the current value.
> I took a stab at doing this. I **think** I did it correctly. Comments welcome.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to