cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jaydeep Chovatia <>
Subject Cassandra 0.7 C++ Thrift delete problem
Date Sun, 12 Dec 2010 07:42:33 GMT

I am facing some issues with delete operation in Cassandra-0.7.0 using C++ Thrift API. Please
find details here:
C++ Thrift Machine: Linux 64-bit

 1.  I am using remove  thrift API to delete either column or column family. Problem in this
is when I call remove then it hangs forever (never returns back). Please find my code details


        ColumnPath clnPath;
        clnPath.column_family = columnFamily;
        if(columnOrSuperColumnName.size() > 0){
            if(isSuperColumn) {
                clnPath.__isset.super_column = true;
                clnPath.super_column = columnOrSuperColumnName;
            } else {
                clnPath.__isset.column = true;
                clnPath.column = columnOrSuperColumnName;
        //DIAGC("mssRME",  1,  "About to run remove...");
        cassClient->remove(key, clnPath, delTimeStamp, consisLevel);
        //DIAGC("mssRME",  1,  "Success! remove...");

 1.  I have tried with batch_mutate thrift API. With this operations goes smoothly but I end
up getting deleted column/columnfamily/key back when I perform get operation after delete.
Looks like delete operation did not work. Please find sample code here:

        map<string, vector<Column> >::iterator iter = SCNameAndCols.begin(); //SuperColumn
name as key - Vector containing columns in each super column
        std::vector<Mutation> mv;
        while(iter != SCNameAndCols.end()) {  //Iterate through each SuperColumn one after
            SuperColumn sc;
            ColumnOrSuperColumn cs;

            Mutation mu;
`                                           mu.__isset.deletion = true;

                mu.deletion.timestamp = delTimeStamp;  //This is latest timestamp in miliseconds
                mu.deletion.__isset.predicate = true;
                mu.deletion.super_column = (*iter).first;
                mu.deletion.predicate.__isset.column_names = true;
                for(int  i = 0; i < (*iter).second.size(); i++) {

        }//End of While loop
        std::map<std::string, std::vector<Mutation> > innMap;
        innMap[CFName] = mv;

        std::map<std::string, std::map<std::string, std::vector<Mutation> >
> outMap;
        outMap[Key] = innMap;

        //DIAGC("mssRME",  1,  "About to run batch_mutate...");
        cassClient->batch_mutate(outMap, consisLevel);
        //DIAGC("mssRME",  1,  "Success! batch_mutate...");

Any help would be appreciated.

Thank you,

View raw message