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

[jira] Created: (CASSANDRA-1) Remove support

Remove support
--------------

                 Key: CASSANDRA-1
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
             Project: Cassandra
          Issue Type: New Feature
            Reporter: Jonathan Ellis
         Attachments: remove-prep.patch

These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment:     (was: remove-prep.patch)

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment:     (was: remove.patch)

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment: remove-2.patch

This fixes the CF deserialization in SequenceFile to know about the format change (boolean -> long).

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove-2.patch, remove-prep.patch, remove.patch
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Commented: (CASSANDRA-1) Remove support

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

Avinash Lakshman commented on CASSANDRA-1:
------------------------------------------

No. You cannot free up memory. It will be get garbage collected once they are no longer actively referenced which will be the case. Setting it to NULL (which is what the clear() does) is not going to force any GC anyways. Hence it is moot.

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment:     (was: remove-2.patch)

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment: remove-prep.patch

This patch makes changes that make remove support easier or possible:

Column:
 - add boolean isMarkedForDelete.  If true, the timestamp field represents the deletion time
 - all fields are final (immutable).  This avoids the need for Atomic* variables and makes whole classes of bugs impossible

SuperColumn:
 - removed boolean isMarkedForDelete
 - long markedForDeleteAt added.  If greater than MIN_VALUE, it is considered deleted at the given time
 - putColumn() and repair() combined; renamed to integrate()

ColumnFamily:
 - long markedForDeleteAt added, as in SuperColumn
 - isSuper() convenience method added
 - addColumn and createColumn methods combined; all are now overloads of addColumn.  Note that addColumn(name, column) was removed in favor of simply addColumn(column) since the column already knows its name, and allowing a different one to be specified could result in hard-to-find bugs
 - serializer always dumps + loads the Columns; trying to optimize by leaving them out causes bugs with remove
 - renamed serializer2 to serializerWithIndexes
 - renamed getColumnFamilies to getColumnFamilyMap.  Added getColumnFamilies method returning only the CF collection (the map values).

Memtable:
 - added SuperColumn support to forceFlush.  Refactored flush methods slightly so that the only one who cares about fRecovery is Table.  [everyone else just passed False.]

NamesFilter:
 - makes a copy of the List it is passed.  This fixes a bug that may not be specific to remove support.

Row:
 - merge() removed (duplicate of Repair)

RowMutation:
 - added makeRowMutationMessage()
 - added sanity checks to add()
 - added delete(columnFamilyColumn, timestamp) method
 - cleaned up duplicate code in apply() overloads

Message:
 - Changed constructor from Object[] body to Object... body.  This allows (but does not require) single Objects to be passed without explicitly wrapping in a new Object[] {}.

General:
 - old-style remove/delete support removed, since it's going to be rewritten in the next patch

The other changes are just dealing with the consequences of the above, particularly the getColumnFamilyMap rename and the CF.addColumn parameter change.

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove-prep.patch
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment: remove.zip

I've updated my patches to apply against current trunk and split into bite-sized pieces.  Each piece corresponds to one of the steps in the larger patches described above.  (Full description is in a Subject: line in the header for each patch.)

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Assigned: (CASSANDRA-1) Remove support

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

Jonathan Ellis reassigned CASSANDRA-1:
--------------------------------------

    Assignee: Jonathan Ellis

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Updated: (CASSANDRA-1) Remove support

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

Jonathan Ellis updated CASSANDRA-1:
-----------------------------------

    Attachment: remove.patch

This patch provides the actual remove support internally.  Thrift API support is not yet included.

ColumnComparatorFactory:
 - fix exception when comparing two SuperColumns with the same name

ColumnFamilyStore:
 - Split resolve() into resolve(), which combines ColumnFamilies, and removeDeleted(), which takes a single ColumnFamily and returns a new one with deleted IColumns removed.  Keep deletion information around until removeDeleted is called so that deletion information can properly supress older IColumns.

RowMutationVerbHandler:
 - send response back so blocking calls can work

WriteResponseMessage: 
 - Renamed to WriteResponse to avoid confusion with Message class

StorageProxy:
 - added insertBlocking method for use by batch_insert_blocking, batch_insert_superColumn_blocking, and remove in blocking mode.

CassandraServer:
 - added remove(String, String, String, long, int).  Thrift needs to be modified to expose this and not the old remove (which is left in as a stub to keep the build happy).


> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove-prep.patch, remove.patch
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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


[jira] Resolved: (CASSANDRA-1) Remove support

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

Jonathan Ellis resolved CASSANDRA-1.
------------------------------------

    Resolution: Fixed

Committed in r758965 - r758983

> Remove support
> --------------
>
>                 Key: CASSANDRA-1
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>         Attachments: remove.zip
>
>
> These patches implement removing columns, supercolumns, or columnfamilies for a given key.

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