[ 
https://issues.apache.org/jira/browse/CASSANDRA-19190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-19190:
----------------------------------------
    Description: Per its inline comments, ForceSnapshot is a synthetic 
transformation whose purpose it to enable the local log to jump missing epochs. 
A common use for this is when replaying persisted events from the metadata log 
at startup. The log is initialised with {{Epoch.EMPTY}} but rather that 
replaying every single entry since the beginning of history, we select the most 
recent snapshot held locally and start the replay from that point. Likewise, 
when catching up from a peer, a node may receive a snapshot plus subsequent log 
entries. In order to bring local metadata to the same state as the snapshot, a 
{{ForceSnapshot}} with the same epoch as the snapshot is inserted into the 
{{LocalLog}} and enacted like any other other transformation. These synthetic 
transformations should not be persisted in the `system.local_metadata_log`, as 
they do not exist in the distributed metadata log. We _should_ persist the 
snapshot itself in {{system.metadata_snapshots}} so that we can avoid having to 
re-fetch remote snapshots (i.e. if a node were to restart shortly after 
receiving a catchup from a peer).  (was: Per its inline comments, ForceSnapshot 
is a synthetic transformation whose purpose it to enable the local log to jump 
missing epochs. A common use for this is when replaying persisted events from 
the metadata log at startup. The log is initialised with {{Epoch.EMPTY}} but 
rather that replaying every single entry since the beginning of history, we 
select the most recent snapshot held locally and start the replay from that 
point. Likewise, when catching up from a peer, a node may receive a snapshot 
plus subsequent log entries. In order to bring local metadata to the same state 
as the snapshot, a {{ForceSnapshot}} with the same epoch as the snapshot is 
inserted into the {{LocalLog}} and enacted like any other other transformation. 
These synthetic transformations should not be persisted in the 
`system.local_metadata_log`, as they do not exist in the distributed metadata 
log. We _should_ persist the snapshot itself in `system.metadata_snapshots` so 
that we can avoid having to re-fetch remote snapshots (i.e. if a node were to 
restart shortly after receiving a catchup from a peer).)

> ForceSnapshot transformations should not be persisted in the local log table
> ----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19190
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19190
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Transactional Cluster Metadata
>            Reporter: Marcus Eriksson
>            Priority: Normal
>             Fix For: 5.1-alpha1
>
>
> Per its inline comments, ForceSnapshot is a synthetic transformation whose 
> purpose it to enable the local log to jump missing epochs. A common use for 
> this is when replaying persisted events from the metadata log at startup. The 
> log is initialised with {{Epoch.EMPTY}} but rather that replaying every 
> single entry since the beginning of history, we select the most recent 
> snapshot held locally and start the replay from that point. Likewise, when 
> catching up from a peer, a node may receive a snapshot plus subsequent log 
> entries. In order to bring local metadata to the same state as the snapshot, 
> a {{ForceSnapshot}} with the same epoch as the snapshot is inserted into the 
> {{LocalLog}} and enacted like any other other transformation. These synthetic 
> transformations should not be persisted in the `system.local_metadata_log`, 
> as they do not exist in the distributed metadata log. We _should_ persist the 
> snapshot itself in {{system.metadata_snapshots}} so that we can avoid having 
> to re-fetch remote snapshots (i.e. if a node were to restart shortly after 
> receiving a catchup from a peer).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to