[
https://issues.apache.org/jira/browse/CASSANDRA-16619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17450284#comment-17450284
]
Stefan Miklosovic edited comment on CASSANDRA-16619 at 11/29/21, 9:11 AM:
--------------------------------------------------------------------------
I think this feature is broken on the scenario when I have a commit log I want
to replay for a completely diffent / new node which has UUID not matching the
one in the commit log. The way how to workaround this will be in 4.1 as done in
https://issues.apache.org/jira/browse/CASSANDRA-14582 however I am afraid that
point in time restoration of all other Cassandra versions, since this patch was
introduced, is broken.
was (Author: smiklosovic):
I think this feature is broken on the scenario when I have a commit log I want
to replay for a completely diffent / new node which has UUID not matching the
one in the commit log. There is a way how to workaround this will be in 4.1 as
done in https://issues.apache.org/jira/browse/CASSANDRA-14582 however I am
afraid that point in time restoration of all other Cassandra versions, since
this patch was introduced, is broken.
> Loss of commit log data possible after sstable ingest
> -----------------------------------------------------
>
> Key: CASSANDRA-16619
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16619
> Project: Cassandra
> Issue Type: Bug
> Components: Local/Commit Log
> Reporter: Jacek Lewandowski
> Assignee: Jacek Lewandowski
> Priority: Normal
> Fix For: 3.0.25, 3.11.11, 4.0-rc2, 4.0
>
> Time Spent: 2h
> Remaining Estimate: 0h
>
> SSTable metadata contains commit log positions of the sstable. These
> positions are used to filter out mutations from the commit log on restart and
> only make sense for the node on which the data was flushed.
> If an SSTable is moved between nodes they may cover regions that the
> receiving node has not yet flushed, and result in valid data being lost
> should these sections of the commit log need to be replayed.
> Solution:
> The chosen solution introduces a new sstable metadata (StatsMetadata) -
> originatingHostId (UUID), which is the local host id of the node on which the
> sstable was created, or null if not known. Commit log intervals from an
> sstable are taken into account during Commit Log replay only when the
> originatingHostId of the sstable matches the local node's hostId.
> For new sstables the originatingHostId is set according to StorageService's
> local hostId.
> For compacted sstables the originatingHostId set according to
> StorageService's local hostId, and only commit log intervals from local
> sstables is preserved in the resulting sstable.
> discovered by [~jakubzytka]
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]