[ 
https://issues.apache.org/jira/browse/CASSANDRA-4542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434248#comment-13434248
 ] 

Jonathan Ellis commented on CASSANDRA-4542:
-------------------------------------------

Summary of discussion from CASSANDRA-4285:

{code}
CREATE TABLE batchlog (
  coordinator inet,
  id          uuid,
  data        blob,
  PRIMARY KEY ((coordinator, shard))
) WITH gc_grace_seconds=0;
{code}

abm adds extra steps before and after writing a batch.

Before writing the batch (but *after* doing availability check against the FD 
for the row replicas): write the entire batch to a batchlog elsewhere in the 
cluster.

After: remove the batchlog entry (after writing hints for the batch rows, if 
necessary).

The batchlog itself should be defined with LocalStrategy.  Replay will be 
handled locally (CASSANDRA-4543).  Thus, we can't use the defined 
ReplicationStrategy when writing to the BL from StorageProxy; we should pick 
replicas manually:

- replicas should be in the local datacenter
- replicas should be alive according to the failure detector
- write to min(2, number of qualifying candiates above) batchlog nodes

Other notes:

- need to add an optimization to flush that if the memtable is older than 
gc_g_s, we should do an extra removeDeleted pass to avoid writing tombstones 
that are already obsolete.  this is crucial to keeping batchlog from becoming a 
new source of compaction pain.
- need acknowledged_by_batchlog boolean for TimedOutException; if we timeout 
during the BL write (which is always effective CL.ONE) then we should return 
acknowledged_by_batchlog=false, acknowledged_by=0; if we timeout *after* the BL 
write, we should return acknowledged_by_batchlog=true, acknowledged_by=-1
                
> add atomic_batch_mutate method
> ------------------------------
>
>                 Key: CASSANDRA-4542
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4542
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: API, Core
>            Reporter: Jonathan Ellis
>            Assignee: Aleksey Yeschenko
>             Fix For: 1.2
>
>
> atomic_batch_mutate will have the same parameters as batch_mutate, but will 
> write to the batchlog before attempting distribution to the batch rows' 
> replicas.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to