You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Alain RODRIGUEZ <ar...@gmail.com> on 2013/04/25 11:48:16 UTC

Deletes, null values

Hi, I tried to delete some columns using cql2 as well as thrift on C*1.2.2
and instead of being unreachable, deleted columns have a null value.

I am using no value in this CF, the only information I use is the existence
of the column. So when I select all the column for a given key I have the
following returned:

 1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
-------------------+------------------+------------------+-------------------+------------------
             null |              null |             null |
    |


This is quite annoying since my app thinks that I have 5 columns there when
I should have 2 only.

I first thought that this was a visible marker of tombstones but they
didn't vanish after a major compaction.

How can I get rid of these null/ghost columns and why does it happen ?

Re: Deletes, null values

Posted by Alain RODRIGUEZ <ar...@gmail.com>.
I copied the wrong query:

In CQL 2 it was:

delete '1228#16857','1228#16866','1228#16875' from myCF where key = 'all';

Sorry about the mistake.


2013/4/26 Alain RODRIGUEZ <ar...@gmail.com>

> Of course:
>
> From CQL 2 (cqlsh -2):
>
> delete '183#16684','183#16714','183#16717' from myCF where key = 'all';
>
> And selecting this data as follow gives me the result above:
>
> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
> from myCF where key = 'all';
>
> From thrift (phpCassa client):
>
> $pool = new ConnectionPool('myKeyspace', array('192.168.100.201'), 6, 0,
> 30000, 30000);
> $my_cf= new ColumnFamily($pool, 'myCF', true, true,
> ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
> $my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));
>
>
>
> 2013/4/25 Sorin Manolache <so...@gmail.com>
>
>> On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
>>
>>> Hi, I tried to delete some columns using cql2 as well as thrift on
>>> C*1.2.2 and instead of being unreachable, deleted columns have a null
>>> value.
>>>
>>> I am using no value in this CF, the only information I use is the
>>> existence of the column. So when I select all the column for a given key
>>> I have the following returned:
>>>
>>>   1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
>>> -------------------+----------**--------+------------------+--**
>>> -----------------+------------**------
>>>               null |              null |             null |
>>>          |
>>>
>>>
>>> This is quite annoying since my app thinks that I have 5 columns there
>>> when I should have 2 only.
>>>
>>> I first thought that this was a visible marker of tombstones but they
>>> didn't vanish after a major compaction.
>>>
>>> How can I get rid of these null/ghost columns and why does it happen ?
>>>
>>
>> I do something similar but I don't see null values. Could you please post
>> the code where you delete the columns?
>>
>> Sorin
>>
>>
>

Re: Deletes, null values

Posted by aaron morton <aa...@thelastpickle.com>.
> I thought that C* had no null values... I use a lot of CF in which only the columns name are filled up and I request a range of column to see which references (like 1228#16866) exists. So I would like those column to simply disappear from the table.
Cassandra does not store null values. 

The output form cqlsh is showing you the values for the columns you requests and using null to indicate there was no value. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 30/04/2013, at 3:52 AM, Alain RODRIGUEZ <ar...@gmail.com> wrote:

> I created it almost a year ago with cassandra-cli. Now show_schema returns:
> 
> create column family myCF
>   with column_type = 'Standard'
>   and comparator = 'UTF8Type'
>   and default_validation_class = 'UTF8Type'
>   and key_validation_class = 'UTF8Type'
>   and read_repair_chance = 0.1
>   and dclocal_read_repair_chance = 0.0
>   and populate_io_cache_on_flush = false
>   and gc_grace = 864000
>   and min_compaction_threshold = 4
>   and max_compaction_threshold = 12
>   and replicate_on_write = true
>   and compaction_strategy = 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
>   and caching = 'KEYS_ONLY'
>   and bloom_filter_fp_chance = 0.01
>   and compression_options = {'sstable_compression' : 'org.apache.cassandra.io.compress.SnappyCompressor'};
> 
> "The output looks correct to me. CQL table return values, including null, for all of the selected columns."
> 
> I thought that C* had no null values... I use a lot of CF in which only the columns name are filled up and I request a range of column to see which references (like 1228#16866) exists. So I would like those column to simply disappear from the table.
> 
> Alain
> 
> 
> 
> 2013/4/28 aaron morton <aa...@thelastpickle.com>
> What's your table definition ? 
> 
>>> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
>>> from myCF where key = 'all';
> 
> The output looks correct to me. CQL table return values, including null, for all of the selected columns.
> 
> Cheers
> 
> -----------------
> Aaron Morton
> Freelance Cassandra Consultant
> New Zealand
> 
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 27/04/2013, at 12:48 AM, Sorin Manolache <so...@gmail.com> wrote:
> 
>> On 2013-04-26 11:55, Alain RODRIGUEZ wrote:
>>> Of course:
>>> 
>>> From CQL 2 (cqlsh -2):
>>> 
>>> delete '183#16684','183#16714','183#16717' from myCF where key = 'all';
>>> 
>>> And selecting this data as follow gives me the result above:
>>> 
>>> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
>>> from myCF where key = 'all';
>>> 
>>> From thrift (phpCassa client):
>>> 
>>> $pool = new
>>> ConnectionPool('myKeyspace',array('192.168.100.201'),6,0,30000,30000);
>>> $my_cf= new ColumnFamily($pool, 'myCF', true, true,
>>> ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
>>> $my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));
>>> 
>> 
>> I see. I'm sorry, I know nothing about phpCassa. I use batch_mutation with deletions and it works. But I guess phpCassa must use the same thrift primitives.
>> 
>> Sorin
>> 
>> 
>>> 
>>> 
>>> 2013/4/25 Sorin Manolache <sorinm@gmail.com <ma...@gmail.com>>
>>> 
>>>    On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
>>> 
>>>        Hi, I tried to delete some columns using cql2 as well as thrift on
>>>        C*1.2.2 and instead of being unreachable, deleted columns have a
>>>        null value.
>>> 
>>>        I am using no value in this CF, the only information I use is the
>>>        existence of the column. So when I select all the column for a
>>>        given key
>>>        I have the following returned:
>>> 
>>>           1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
>>>        -------------------+----------__--------+------------------+--__-----------------+------------__------
>>>                       null |              null |             null |
>>>                  |
>>> 
>>> 
>>>        This is quite annoying since my app thinks that I have 5 columns
>>>        there
>>>        when I should have 2 only.
>>> 
>>>        I first thought that this was a visible marker of tombstones but
>>>        they
>>>        didn't vanish after a major compaction.
>>> 
>>>        How can I get rid of these null/ghost columns and why does it
>>>        happen ?
>>> 
>>> 
>>>    I do something similar but I don't see null values. Could you please
>>>    post the code where you delete the columns?
>>> 
>>>    Sorin
>>> 
>>> 
>> 
> 
> 


Re: Deletes, null values

Posted by Alain RODRIGUEZ <ar...@gmail.com>.
I created it almost a year ago with cassandra-cli. Now show_schema returns:

create column family myCF
  with column_type = 'Standard'
  and comparator = 'UTF8Type'
  and default_validation_class = 'UTF8Type'
  and key_validation_class = 'UTF8Type'
  and read_repair_chance = 0.1
  and dclocal_read_repair_chance = 0.0
  and populate_io_cache_on_flush = false
  and gc_grace = 864000
  and min_compaction_threshold = 4
  and max_compaction_threshold = 12
  and replicate_on_write = true
  and compaction_strategy =
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
  and caching = 'KEYS_ONLY'
  and bloom_filter_fp_chance = 0.01
  and compression_options = {'sstable_compression' :
'org.apache.cassandra.io.compress.SnappyCompressor'};

"The output looks correct to me. CQL table return values, including null,
for all of the selected columns."

I thought that C* had no null values... I use a lot of CF in which only the
columns name are filled up and I request a range of column to see which
references (like 1228#**16866) exists. So I would like those column to
simply disappear from the table.

Alain



2013/4/28 aaron morton <aa...@thelastpickle.com>

> What's your table definition ?
>
> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
> from myCF where key = 'all';
>
>
> The output looks correct to me. CQL table return values, including null,
> for all of the selected columns.
>
> Cheers
>
>    -----------------
> Aaron Morton
> Freelance Cassandra Consultant
> New Zealand
>
> @aaronmorton
> http://www.thelastpickle.com
>
> On 27/04/2013, at 12:48 AM, Sorin Manolache <so...@gmail.com> wrote:
>
> On 2013-04-26 11:55, Alain RODRIGUEZ wrote:
>
> Of course:
>
> From CQL 2 (cqlsh -2):
>
> delete '183#16684','183#16714','183#16717' from myCF where key = 'all';
>
> And selecting this data as follow gives me the result above:
>
> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
> from myCF where key = 'all';
>
> From thrift (phpCassa client):
>
> $pool = new
> ConnectionPool('myKeyspace',array('192.168.100.201'),6,0,30000,30000);
> $my_cf= new ColumnFamily($pool, 'myCF', true, true,
> ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
> $my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));
>
>
> I see. I'm sorry, I know nothing about phpCassa. I use batch_mutation with
> deletions and it works. But I guess phpCassa must use the same thrift
> primitives.
>
> Sorin
>
>
>
>
> 2013/4/25 Sorin Manolache <sorinm@gmail.com <ma...@gmail.com>
> >>
>
>    On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
>
>        Hi, I tried to delete some columns using cql2 as well as thrift on
>        C*1.2.2 and instead of being unreachable, deleted columns have a
>        null value.
>
>        I am using no value in this CF, the only information I use is the
>        existence of the column. So when I select all the column for a
>        given key
>        I have the following returned:
>
>           1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
>
>        -------------------+----------__--------+------------------+--__-----------------+------------__------
>                       null |              null |             null |
>                  |
>
>
>        This is quite annoying since my app thinks that I have 5 columns
>        there
>        when I should have 2 only.
>
>        I first thought that this was a visible marker of tombstones but
>        they
>        didn't vanish after a major compaction.
>
>        How can I get rid of these null/ghost columns and why does it
>        happen ?
>
>
>    I do something similar but I don't see null values. Could you please
>    post the code where you delete the columns?
>
>    Sorin
>
>
>
>
>

Re: Deletes, null values

Posted by aaron morton <aa...@thelastpickle.com>.
What's your table definition ? 

>> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
>> from myCF where key = 'all';

The output looks correct to me. CQL table return values, including null, for all of the selected columns.

Cheers

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 27/04/2013, at 12:48 AM, Sorin Manolache <so...@gmail.com> wrote:

> On 2013-04-26 11:55, Alain RODRIGUEZ wrote:
>> Of course:
>> 
>> From CQL 2 (cqlsh -2):
>> 
>> delete '183#16684','183#16714','183#16717' from myCF where key = 'all';
>> 
>> And selecting this data as follow gives me the result above:
>> 
>> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
>> from myCF where key = 'all';
>> 
>> From thrift (phpCassa client):
>> 
>> $pool = new
>> ConnectionPool('myKeyspace',array('192.168.100.201'),6,0,30000,30000);
>> $my_cf= new ColumnFamily($pool, 'myCF', true, true,
>> ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
>> $my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));
>> 
> 
> I see. I'm sorry, I know nothing about phpCassa. I use batch_mutation with deletions and it works. But I guess phpCassa must use the same thrift primitives.
> 
> Sorin
> 
> 
>> 
>> 
>> 2013/4/25 Sorin Manolache <sorinm@gmail.com <ma...@gmail.com>>
>> 
>>    On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
>> 
>>        Hi, I tried to delete some columns using cql2 as well as thrift on
>>        C*1.2.2 and instead of being unreachable, deleted columns have a
>>        null value.
>> 
>>        I am using no value in this CF, the only information I use is the
>>        existence of the column. So when I select all the column for a
>>        given key
>>        I have the following returned:
>> 
>>           1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
>>        -------------------+----------__--------+------------------+--__-----------------+------------__------
>>                       null |              null |             null |
>>                  |
>> 
>> 
>>        This is quite annoying since my app thinks that I have 5 columns
>>        there
>>        when I should have 2 only.
>> 
>>        I first thought that this was a visible marker of tombstones but
>>        they
>>        didn't vanish after a major compaction.
>> 
>>        How can I get rid of these null/ghost columns and why does it
>>        happen ?
>> 
>> 
>>    I do something similar but I don't see null values. Could you please
>>    post the code where you delete the columns?
>> 
>>    Sorin
>> 
>> 
> 


Re: Deletes, null values

Posted by Sorin Manolache <so...@gmail.com>.
On 2013-04-26 11:55, Alain RODRIGUEZ wrote:
> Of course:
>
>  From CQL 2 (cqlsh -2):
>
> delete '183#16684','183#16714','183#16717' from myCF where key = 'all';
>
> And selecting this data as follow gives me the result above:
>
> select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
> from myCF where key = 'all';
>
>  From thrift (phpCassa client):
>
> $pool = new
> ConnectionPool('myKeyspace',array('192.168.100.201'),6,0,30000,30000);
> $my_cf= new ColumnFamily($pool, 'myCF', true, true,
> ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
> $my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));
>

I see. I'm sorry, I know nothing about phpCassa. I use batch_mutation 
with deletions and it works. But I guess phpCassa must use the same 
thrift primitives.

Sorin


>
>
> 2013/4/25 Sorin Manolache <sorinm@gmail.com <ma...@gmail.com>>
>
>     On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
>
>         Hi, I tried to delete some columns using cql2 as well as thrift on
>         C*1.2.2 and instead of being unreachable, deleted columns have a
>         null value.
>
>         I am using no value in this CF, the only information I use is the
>         existence of the column. So when I select all the column for a
>         given key
>         I have the following returned:
>
>            1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
>         -------------------+----------__--------+------------------+--__-----------------+------------__------
>                        null |              null |             null |
>                   |
>
>
>         This is quite annoying since my app thinks that I have 5 columns
>         there
>         when I should have 2 only.
>
>         I first thought that this was a visible marker of tombstones but
>         they
>         didn't vanish after a major compaction.
>
>         How can I get rid of these null/ghost columns and why does it
>         happen ?
>
>
>     I do something similar but I don't see null values. Could you please
>     post the code where you delete the columns?
>
>     Sorin
>
>


Re: Deletes, null values

Posted by Alain RODRIGUEZ <ar...@gmail.com>.
Of course:

>From CQL 2 (cqlsh -2):

delete '183#16684','183#16714','183#16717' from myCF where key = 'all';

And selecting this data as follow gives me the result above:

select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
from myCF where key = 'all';

>From thrift (phpCassa client):

$pool = new ConnectionPool('myKeyspace', array('192.168.100.201'), 6, 0,
30000, 30000);
$my_cf= new ColumnFamily($pool, 'myCF', true, true,
ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
$my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));



2013/4/25 Sorin Manolache <so...@gmail.com>

> On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
>
>> Hi, I tried to delete some columns using cql2 as well as thrift on
>> C*1.2.2 and instead of being unreachable, deleted columns have a null
>> value.
>>
>> I am using no value in this CF, the only information I use is the
>> existence of the column. So when I select all the column for a given key
>> I have the following returned:
>>
>>   1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
>> -------------------+----------**--------+------------------+--**
>> -----------------+------------**------
>>               null |              null |             null |
>>          |
>>
>>
>> This is quite annoying since my app thinks that I have 5 columns there
>> when I should have 2 only.
>>
>> I first thought that this was a visible marker of tombstones but they
>> didn't vanish after a major compaction.
>>
>> How can I get rid of these null/ghost columns and why does it happen ?
>>
>
> I do something similar but I don't see null values. Could you please post
> the code where you delete the columns?
>
> Sorin
>
>

Re: Deletes, null values

Posted by Sorin Manolache <so...@gmail.com>.
On 2013-04-25 11:48, Alain RODRIGUEZ wrote:
> Hi, I tried to delete some columns using cql2 as well as thrift on
> C*1.2.2 and instead of being unreachable, deleted columns have a null value.
>
> I am using no value in this CF, the only information I use is the
> existence of the column. So when I select all the column for a given key
> I have the following returned:
>
>   1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
> -------------------+------------------+------------------+-------------------+------------------
>               null |              null |             null |
>          |
>
>
> This is quite annoying since my app thinks that I have 5 columns there
> when I should have 2 only.
>
> I first thought that this was a visible marker of tombstones but they
> didn't vanish after a major compaction.
>
> How can I get rid of these null/ghost columns and why does it happen ?

I do something similar but I don't see null values. Could you please 
post the code where you delete the columns?

Sorin