Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Later
    • Fix Version/s: None
    • Component/s: Core
    • Labels:
      None

      Description

      It would be nice to mimic how get_slice works for removing values.

        Issue Links

          Activity

          Dan Di Spaltro created issue -
          Hide
          Jonathan Ellis added a comment -

          CASSANDRA-336 will address this too.

          Show
          Jonathan Ellis added a comment - CASSANDRA-336 will address this too.
          Jonathan Ellis made changes -
          Field Original Value New Value
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Duplicate [ 3 ]
          Hide
          Jonathan Ellis added a comment - - edited

          reopened – CASSANDRA-336 punted on this because it was hard (requires updating commitlog format).

          Show
          Jonathan Ellis added a comment - - edited reopened – CASSANDRA-336 punted on this because it was hard (requires updating commitlog format).
          Jonathan Ellis made changes -
          Resolution Duplicate [ 3 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Gary Dusbabek made changes -
          Link This issue depends on CASSANDRA-293 [ CASSANDRA-293 ]
          Hide
          Gary Dusbabek added a comment -

          remove_slice is a subset of remove_range since a slice is a remove_range parameter.

          Show
          Gary Dusbabek added a comment - remove_slice is a subset of remove_range since a slice is a remove_range parameter.
          Gary Dusbabek made changes -
          Assignee Gary Dusbabek [ gdusbabek ]
          Hide
          Jonathan Ellis added a comment -

          going to be fixed in CASSANDRA-293

          Show
          Jonathan Ellis added a comment - going to be fixed in CASSANDRA-293
          Jonathan Ellis made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Duplicate [ 3 ]
          Jonathan Ellis made changes -
          Assignee Gary Dusbabek [ gdusbabek ]
          Hide
          Gary Dusbabek added a comment -

          CASSANDRA-293 isn't working out, so we're going to implement this instead.

          Show
          Gary Dusbabek added a comment - CASSANDRA-293 isn't working out, so we're going to implement this instead.
          Gary Dusbabek made changes -
          Resolution Duplicate [ 3 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Assignee Gary Dusbabek [ gdusbabek ]
          Hide
          Gary Dusbabek added a comment -

          I'm going to expand the scope of this to allow specifying Deletion in batch_mutate.

          Show
          Gary Dusbabek added a comment - I'm going to expand the scope of this to allow specifying Deletion in batch_mutate.
          Gary Dusbabek made changes -
          Status Reopened [ 4 ] In Progress [ 3 ]
          Hide
          Gary Dusbabek added a comment -

          On second thought, I think the best way to implement this will be to create mutate(key, mutation, cl).

          One problem is that this [cluster-level] operation does not translate into a [node-level] RowMutation that can be forwarded to other nodes to be applied. (A slice materialized on a node that is out of sync may not include the same columns as a a fully synced node.)

          The Right Way would be to change everything so that when a coordinating node receives a message, it goes down a local path where a RM is created and applied, and then a cluster path where the original message is forwarded to other nodes.

          Am I over-complicating this, or is materializing the RM into a list of column ops and sending it Good Enough?

          Show
          Gary Dusbabek added a comment - On second thought, I think the best way to implement this will be to create mutate(key, mutation, cl). One problem is that this [cluster-level] operation does not translate into a [node-level] RowMutation that can be forwarded to other nodes to be applied. (A slice materialized on a node that is out of sync may not include the same columns as a a fully synced node.) The Right Way would be to change everything so that when a coordinating node receives a message, it goes down a local path where a RM is created and applied, and then a cluster path where the original message is forwarded to other nodes. Am I over-complicating this, or is materializing the RM into a list of column ops and sending it Good Enough?
          Hide
          Jonathan Ellis added a comment -

          Well, the Right Way is to add a list of Bounds tombstones to CF / SC classes.

          Show
          Jonathan Ellis added a comment - Well, the Right Way is to add a list of Bounds tombstones to CF / SC classes.
          Gary Dusbabek made changes -
          Status In Progress [ 3 ] Open [ 1 ]
          Jonathan Ellis made changes -
          Priority Major [ 3 ] Minor [ 4 ]
          Assignee Gary Dusbabek [ gdusbabek ]
          Stu Hood made changes -
          Link This issue is blocked by CASSANDRA-674 [ CASSANDRA-674 ]
          Jonathan Ellis made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Later [ 7 ]
          Jim Newsham made changes -
          Link This issue is duplicated by CASSANDRA-3448 [ CASSANDRA-3448 ]
          Gavin made changes -
          Workflow no-reopen-closed, patch-avail [ 12479595 ] patch-available, re-open possible [ 12749096 ]
          Gavin made changes -
          Workflow patch-available, re-open possible [ 12749096 ] reopen-resolved, no closed status, patch-avail, testing [ 12754043 ]
          Gavin made changes -
          Link This issue depends on CASSANDRA-293 [ CASSANDRA-293 ]
          Gavin made changes -
          Link This issue depends upon CASSANDRA-293 [ CASSANDRA-293 ]
          Mikhail Mazurskiy made changes -
          Link This issue is duplicated by CASSANDRA-980 [ CASSANDRA-980 ]
          Mikhail Mazurskiy made changes -
          Link This issue is duplicated by CASSANDRA-3092 [ CASSANDRA-3092 ]
          Hide
          ZhongYu added a comment -

          Why not implement this feature?
          We are having trouble deleting columns like timestamp. There are too many columns to load to client. It is really slow to delete data by reading it first!
          We cost 10 days to delete 1,000,000,000 timestamp style data of about 1000 CF. Each CF have average 10000 rows.
          If we can delete columns by ranges, I think the above operation can finish in serval minutes.

          Show
          ZhongYu added a comment - Why not implement this feature? We are having trouble deleting columns like timestamp. There are too many columns to load to client. It is really slow to delete data by reading it first! We cost 10 days to delete 1,000,000,000 timestamp style data of about 1000 CF. Each CF have average 10000 rows. If we can delete columns by ranges, I think the above operation can finish in serval minutes.
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Reopened Reopened Resolved Resolved
          95d 12h 48m 1 Jonathan Ellis 21/Apr/10 04:50
          Resolved Resolved Reopened Reopened
          107d 8h 9m 2 Gary Dusbabek 10/May/10 15:43
          Reopened Reopened In Progress In Progress
          3m 28s 1 Gary Dusbabek 10/May/10 15:47
          In Progress In Progress Open Open
          1d 2h 3m 1 Gary Dusbabek 11/May/10 17:50
          Open Open Resolved Resolved
          339d 2h 53m 2 Jonathan Ellis 11/Apr/11 23:03

            People

            • Assignee:
              Unassigned
              Reporter:
              Dan Di Spaltro
            • Votes:
              2 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development