Hi Bowen,

Yes, there does seem to be a lot of rows, on one of the upgraded clusters there 
75,000 rows.

I have been experimenting on a test cluster, this has about a 5 minute pause, 
and around 15,000 rows. 

If I clear the system.repairs table ( by deleting the sstables ) then this does 
not pause at all, so seems to fix the problem. However I don’t really 
understand what the implications are of just removing that data.

Thanks 

Paul

> On 24 Jan 2022, at 18:50, Bowen Song <bo...@bso.ng> wrote:
> 
> Hmm, interesting... Try "select * from system.repairs;" in cqlsh on a slow 
> starting node, do you get a lots of rows? This is the most obvious loop run 
> (indirectly) by the ActiveRepairService.start(). 
> 
> On 24/01/2022 13:30, Romain Anselin wrote:
>> 
>> Hi everyone,
>> 
>> We generated a JFR profile of the startup phase of Cassandra with Paul, and 
>> it would appear that the time is spent in the ActiveRepairSession within the 
>> main thread (11mn of execution of the "main" thread in his environment, vs 
>> 15s in mine), which has been introduced in CASSANDRA-9143 based on a "view 
>> git blame" of the source code
>> https://github.com/apache/cassandra/blob/6709111ed007a54b3e42884853f89cabd38e4316/src/java/org/apache/cassandra/service/CassandraDaemon.java#L381
>>  
>> <https://github.com/apache/cassandra/blob/6709111ed007a54b3e42884853f89cabd38e4316/src/java/org/apache/cassandra/service/CassandraDaemon.java#L381>
>> 
>> That seem to match with the gap we see in the logs, where the time is spent 
>> just before the "Preloaded" statement in the logs which comes just after in 
>> the CassandraDaemon code.
>> 
>> INFO  [main] 2022-01-20 09:44:40,198  StorageService.java:830 - Token 
>> metadata: Normal Tokens:
>> ... <skipping non "main" thread logs> ...
>> WARN  [Messaging-EventLoop-3-1] 2022-01-20 09:45:13,243  
>> NoSpamLogger.java:95 - /IP1:7000->/IP1:7000-SMALL_MESSAGES-[no-channel] 
>> dropping message of type SCHEMA_VERSION_REQ whose timeout expired before 
>> reaching the network
>> INFO  [main] 2022-01-20 09:55:01,134  QueryProcessor.java:150 - Preloaded 0 
>> prepared statements
>> 
>> Remains to determine what that is doing more in details and why it's taking 
>> longer and longer on startup. 
>> 
>> We also exported the sstablemetadata from all sstables in one node, and at 
>> this stage, we can see we have 300 sstables out of 577 with "Repaired at:" 
>> set.
>> 
>> cd /var/lib/cassandra/data
>> find . -name '*Data*' | while read datf; do echo ++++ $datf ++++; sudo -u 
>> cassandra sstablemetadata $datf; done >> ~/sstablemetadata.txt
>> cqlsh -e "paging off; select * from system.repairs" >> ~/repairs.out
>> 
>> $ egrep 'Repaired at: 1' sstablemetadata.txt | wc -l
>> 300
>> $ egrep 'Repaired at:' sstablemetadata.txt | wc -l
>> 577
>> 
>> More info to come
>> 
>> Regards - Romain
>> 
>> On 19/01/2022 13:10, Paul Chandler wrote:
>>> Hi Bowen,
>>> 
>>> Thanks for the reply, these have been our normal shutdowns, so we do a 
>>> nodetool drain before restarting the service, so I would have thought there 
>>> should not be any commtlogs
>>> 
>>> However there is these messages for one commit log, But looks like it has 
>>> finished quickly and correctly:
>>> 
>>> INFO  [main] 2022-01-19 10:08:22,811  CommitLog.java:173 - Replaying 
>>> /var/lib/cassandra/commitlog/CommitLog-7-1642094921295.log
>>> WARN  [main] 2022-01-19 10:08:22,839  CommitLogReplayer.java:305 - Origin 
>>> of 2 sstables is unknown or doesn't match the local node; 
>>> commitLogIntervals for them were ignored
>>> Repeated about 10 times
>>> WARN  [main] 2022-01-19 10:08:22,842  CommitLogReplayer.java:305 - Origin 
>>> of 3 sstables is unknown or doesn't match the local node; 
>>> commitLogIntervals for them were ignored
>>> INFO  [main] 2022-01-19 10:08:22,853  CommitLogReader.java:256 - Finished 
>>> reading /var/lib/cassandra/commitlog/CommitLog-7-1642094921295.log
>>> INFO  [main] 2022-01-19 10:08:22,882  CommitLog.java:175 - Log replay 
>>> complete, 0 replayed mutations 
>>> 
>>> Thanks 
>>> 
>>> Paul
>>> 
>>>> On 19 Jan 2022, at 13:03, Bowen Song <bo...@bso.ng> <mailto:bo...@bso.ng> 
>>>> wrote:
>>>> 
>>>> Nothing obvious from the logs you posted.
>>>> 
>>>> Generally speaking, replaying commit log is often the culprit when a node 
>>>> takes a long time to start. I have seen many nodes with large memtable and 
>>>> commit log size limit spending over half an hour replaying the commit log. 
>>>> I usually do a "nodetool flush" before shutting down the node to help 
>>>> speed up the start time if the shutdown was planned. There isn't much you 
>>>> can do about unexpected shutdown, such as server crashes. When that 
>>>> happens, the only reasonable thing to do is wait for the commit log replay 
>>>> to finish. You should see log entries related to replaying commit logs if 
>>>> this is the case.
>>>> 
>>>> However, if you don't find any logs related to replaying commit logs, the 
>>>> cause may be completely different.
>>>> 
>>>> 
>>>> On 19/01/2022 11:54, Paul Chandler wrote:
>>>>> Hi all,
>>>>> 
>>>>> We have upgraded a couple of clusters from 3.11.6, now we are having 
>>>>> issues when we restart the nodes.
>>>>> 
>>>>> The node will either hang or take 10-30 minute to restart, these are the 
>>>>> last messages we have in the system.log:
>>>>> 
>>>>> INFO  [NonPeriodicTasks:1] 2022-01-19 10:08:23,267  FileUtils.java:545 - 
>>>>> Deleting file during startup: 
>>>>> /var/lib/cassandra/data/system/table_estimates-176c39cdb93d33a5a2188eb06a56f66e/nb-184-big-Summary.db
>>>>> INFO  [NonPeriodicTasks:1] 2022-01-19 10:08:23,268  
>>>>> LogTransaction.java:240 - Unfinished transaction log, deleting 
>>>>> /var/lib/cassandra/data/system/table_estimates-176c39cdb93d33a5a2188eb06a56f66e/nb-185-big-Data.db
>>>>> INFO  [NonPeriodicTasks:1] 2022-01-19 10:08:23,268  FileUtils.java:545 - 
>>>>> Deleting file during startup: 
>>>>> /var/lib/cassandra/data/system/table_estimates-176c39cdb93d33a5a2188eb06a56f66e/nb-185-big-Summary.db
>>>>> INFO  [NonPeriodicTasks:1] 2022-01-19 10:08:23,269  
>>>>> LogTransaction.java:240 - Unfinished transaction log, deleting 
>>>>> /var/lib/cassandra/data/system/table_estimates-176c39cdb93d33a5a2188eb06a56f66e/nb-186-big-Data.db
>>>>> INFO  [NonPeriodicTasks:1] 2022-01-19 10:08:23,270  FileUtils.java:545 - 
>>>>> Deleting file during startup: 
>>>>> /var/lib/cassandra/data/system/table_estimates-176c39cdb93d33a5a2188eb06a56f66e/nb-186-big-Summary.db
>>>>> INFO  [NonPeriodicTasks:1] 2022-01-19 10:08:23,272  
>>>>> LogTransaction.java:240 - Unfinished transaction log, deleting 
>>>>> /var/lib/cassandra/data/system/table_estimates-176c39cdb93d33a5a2188eb06a56f66e/nb_txn_unknowncompactiontype_bc501d00-790f-11ec-9f80-85
>>>>> 8854746758.log
>>>>> INFO  [MemtableFlushWriter:2] 2022-01-19 10:08:23,289  
>>>>> LogTransaction.java:240 - Unfinished transaction log, deleting 
>>>>> /var/lib/cassandra/data/system/local-7ad54392bcdd35a684174e047860b377/nb_txn_flush_bc52dc20-790f-11ec-9f80-858854746758.log
>>>>> 
>>>>> The debug log has messages from DiskBoundaryManager.java at the same 
>>>>> time, then it just has the following messages:||
>>>>> 
>>>>> DEBUG [ScheduledTasks:1] 2022-01-19 10:28:09,430  SSLFactory.java:354 - 
>>>>> Checking whether certificates have been updated []
>>>>> DEBUG [ScheduledTasks:1] 2022-01-19 10:38:09,431  SSLFactory.java:354 - 
>>>>> Checking whether certificates have been updated []
>>>>> DEBUG [ScheduledTasks:1] 2022-01-19 10:48:09,431  SSLFactory.java:354 - 
>>>>> Checking whether certificates have been updated []
>>>>> DEBUG [ScheduledTasks:1] 2022-01-19 10:58:09,431  SSLFactory.java:354 - 
>>>>> Checking whether certificates have been updated []
>>>>> 
>>>>> 
>>>>> It seems to get worse after each restart, and then it gets to the state 
>>>>> where it just hangs, then the only thing to do is to re bootstrap the 
>>>>> node.
>>>>> 
>>>>> Once I had re bootstrapped all the nodes in the cluster, I thought the 
>>>>> cluster was stable, but I have now got the case where the one of the 
>>>>> nodes is hanging again.
>>>>> 
>>>>> Does anyone have an ideas what is causing the problems ?
>>>>> 
>>>>> 
>>>>> Thanks
>>>>> 
>>>>> Paul Chandler
>>>>> 

Reply via email to