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] Updated: (CASSANDRA-1) Remove support

     [ 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.