[
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