> 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" <dean.hil...@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

Reply via email to