[
https://issues.apache.org/jira/browse/CASSANDRA-18153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17700237#comment-17700237
]
Jacek Lewandowski edited comment on CASSANDRA-18153 at 3/14/23 2:53 PM:
------------------------------------------------------------------------
I don't know exactly how to reproduce this, but assuming this is a possible
scenario, I want to propose a mix of something brought by all of us. In
particular:
- in all the places where we try to get host id, we try first from token
metadata and then from system.local
- if we start a fresh instance (that is, there is no commit log files to
replay), we conditionally create a host id in the system.local table and flush
that table; we do that along with storing other local node metadata, before
touching schema or the commit log
With that, we are guaranteed that host id is stored in sstable and not as a
mutation in the commit log before we actually start to replay anything.
https://github.com/apache/cassandra/pull/2215 (3.11)
was (Author: jlewandowski):
I don't know exactly how to reproduce this, but assuming this is a possible
scenario, I want to propose a mix of something brought by all of us. In
particular:
- in all the places where we try to get host id, we try first from token
metadata and then from system.local
- if we start a fresh instance (that is, there is no commit log files to
replay), we conditionally create a host id in the system.local table and flush
that table; we do that along with storing other local node metadata, before
touching schema or the commit log
https://issues.apache.org/jira/browse/CASSANDRA-18153 (3.11)
With that, we are guaranteed that host id is stored in sstable and not as a
mutation in the commit log before we actually start to replay anything.
> Memtable being flushed without hostId in version "me" and newer during
> CommitLogReplay
> --------------------------------------------------------------------------------------
>
> Key: CASSANDRA-18153
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18153
> Project: Cassandra
> Issue Type: Bug
> Components: Local/SSTable
> Reporter: Adriano Bonacin
> Assignee: Adriano Bonacin
> Priority: Normal
> Time Spent: 50m
> Remaining Estimate: 0h
>
> On ticket CASSANDRA-16619 some files were changed to allow Cassandra to store
> HostID in the new "me" SSTable version.
> But SSTables flushed during CommitLogReplay miss this HostID info.
>
> In the next Cassandra startup, if these SSTables were still present,
> system.log will show:
> {{WARN Origin of 3 sstables is unknown or doesn't match the local node;
> commitLogIntervals for them were ignored}}
> {{WARN }}{{{}Origin of 3 sstables is unknown or doesn't match the local node;
> commitLogIntervals for them were ignored{}}}{{{}{}}}{{ }}
>
> And debug.log will show a list of SSTables, witch can include "md" and "me"
> version (before upgradesstables):
>
> {{Ignored commitLogIntervals from the following sstables:
> [/var/lib/cassandra/data/system/compaction_history-b4dbb7b4dc493fb5b3bfce6e434832ca/me-3-big-Data.db,
>
> /var/lib/cassandra/data/system/compaction_history-b4dbb7b4dc493fb5b3bfce6e434832ca/md-1-big-Data.db,
>
> /var/lib/cassandra/data/system/compaction_history-b4dbb7b4dc493fb5b3bfce6e434832ca/md-2-big-Data.db]}}
>
> https://issues.apache.org/jira/browse/CASSANDRA-16619
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]