Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-6328

Allow deleting records with a secondary index lookup

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Low
    • Resolution: Won't Fix
    • Fix Version/s: None
    • Component/s: Feature/2i Index
    • Labels:
      None

      Description

      Currently, clients must query for row keys from a specific secondary index and delete the results. This incurs network traffic whereas a single server operation would be enough.

      ==== Example ====

      In C* we would have to query for all playlist_id for user "JohnSmith" and issue deletes for each key. Deleting by secondary index would allow the entire operation to occur within C* without the client needing to issue multiple statements.

      Delete By Secondary Index

      CREATE TABLE playlist (
      playlist_id text,
      user_id text,
      song_name set<text>,
      PRIMARY_KEY (playlist_id)
      );

      CREATE INDEX on playlist (user_id);
      DELETE FROM playlist WHERE user_id = "JohnSmith";

      Delete By Client

      // Schema
      CREATE TABLE playlist (
      playlist_id text,
      user_id text,
      song_name set<text>,
      PRIMARY_KEY (playlist_id)
      );

      CREATE INDEX on playlist (user_id);

      // Client
      ResultSet resultSet = session.execute("select playlist_id from playlist where userid = "JohnSmith"");
      PreparedStatement delete = session.prepare("DELETE FROM playlist WHERE playlist_id = ?");
      for(Row row : resultSet){
      session.execute(delete.bind(row.getString("playlist_id")));
      }

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              sirdavidhuang David Huang
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: