You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by "Hiller, Dean" <De...@nrel.gov> on 2012/09/12 13:59:25 UTC

thoughts on this feature request

Using wide rows for indexing is extremely common.  I was wondering if we could get some type of command like so for index rows

Remove <value1>.<pkX> AND Add <value2>.<pkX> such that if <value1>.<pkX> is NOT found, the whole row will be scanned for <ANYvalue>.<pkX> and remove that value instead.  This would rock for all those people using wide rows as indices on a RF=3 with QUOROM writes and reads as the index would always be consistent as well.

The above situation can occur frequently in some systems and it would just be nice for it not to happen with QUOROM and RF=3 is all.

Maybe I should just file a ticket and if it ever picks up enough votes, the community might consider implementing it?

Thoughts?

Dean

Re: thoughts on this feature request

Posted by aaron morton <aa...@thelastpickle.com>.
> Remove <value1>.<pkX> AND Add <value2>.<pkX> such that if <value1>.<pkX> is NOT found, the whole row will be scanned for <ANYvalue>.<pkX> and remove that value instead.  
Couple of thoughts:
* that sounds like something that would need a lock or transaction to stop changes when things were scanned. e.g. You would need the sort of key range lock you get from the SERIALIZABLE transaction isolation level in an ACID transaction. 
* it would make the write non idempotent
* If node 1 has <value1>.<pkX> and node 2 did not they would apply the change differently. And node 1 could still have <AnyValue>.<px_id> while node 2 did not. 

 
> as the index would always be consistent as well.
Can you embrace the inconsistency ?

Here is one approach cassandra will be taking https://issues.apache.org/jira/browse/CASSANDRA-2897 Discard the invalid entries on read and repair the problem.

Cheers


-----------------
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 12/09/2012, at 11:59 PM, "Hiller, Dean" <De...@nrel.gov> wrote:

> Using wide rows for indexing is extremely common.  I was wondering if we could get some type of command like so for index rows
> 
> Remove <value1>.<pkX> AND Add <value2>.<pkX> such that if <value1>.<pkX> is NOT found, the whole row will be scanned for <ANYvalue>.<pkX> and remove that value instead.  This would rock for all those people using wide rows as indices on a RF=3 with QUOROM writes and reads as the index would always be consistent as well.
> 
> The above situation can occur frequently in some systems and it would just be nice for it not to happen with QUOROM and RF=3 is all.
> 
> Maybe I should just file a ticket and if it ever picks up enough votes, the community might consider implementing it?
> 
> Thoughts?
> 
> Dean