[ 
https://issues.apache.org/jira/browse/CASSANDRA-18710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17779928#comment-17779928
 ] 

Brandon Williams commented on CASSANDRA-18710:
----------------------------------------------

Before CASSANDRA-17071 (and currently in 4.0) we also force recycled the 
commitlog, but sooner in 
[Schema.dropTable|https://github.com/apache/cassandra/blob/cassandra-4.0/src/java/org/apache/cassandra/schema/Schema.java#L803],
 and it didn't cause small flushes of the active CF.  After CASSANDRA-17071 
that has moved to CFS.onTableDropped and it seems the timing of this now does 
cause the small flushes.  I'm not super strong in this area of the code but it 
seems like maybe this could be massaged again to prevent this from happening as 
before?

Here's a reproduction with additional logging at ERROR showing the drop of 
table_00 causing the small flush of table_01 shortly after creation:
{noformat}
[junit-timeout] INFO  [main] 2023-10-25 20:12:32,442 ColumnFamilyStore.java:493 
- Initializing cql_test_keyspace_alt.table_01
[junit-timeout] DEBUG [main] 2023-10-25 20:12:32,443 
DiskBoundaryManager.java:54 - Refreshing disk boundary cache for 
cql_test_keyspace_alt.table_01
[junit-timeout] DEBUG [main] 2023-10-25 20:12:32,443 
DiskBoundaryManager.java:93 - Got local ranges [] (ringVersion = 0)
[junit-timeout] DEBUG [main] 2023-10-25 20:12:32,447 
DiskBoundaryManager.java:57 - Updating boundaries from null to 
DiskBoundaries{directories=[DataDirectory{location=build/test/cassandra/data}], 
positions=null, ringVersion=0, directoriesVersion=0} for 
cql_test_keyspace_alt.table_01
[junit-timeout] INFO  [main] 2023-10-25 20:12:32,453 ViewManager.java:127 - Not 
submitting build tasks for views in keyspace cql_test_keyspace_alt as storage 
service is not initialized
[junit-timeout] DEBUG [OptionalTasks:1] 2023-10-25 20:12:32,459 
DefaultSchemaUpdateHandler.java:259 - Schema updated: 
SchemaTransformationResult{e9de990e-f2fd-3f3e-97fb-e351f5dae8d3 --> 
111d2c16-fe3d-3fcf-9dc1-9cafe8d9b926, diff=KeyspacesDiff{created=[], 
dropped=[], 
altered=[KeyspaceDiff{before=KeyspaceMetadata{name=cql_test_keyspace, 
kind=REGULAR, params=KeyspaceParams{durable_writes=true, 
replication=ReplicationParams{class=org.apache.cassandra.locator.SimpleStrategy,
 replication_factor=1}}, tables=[cql_test_keyspace.table_00], views=[], 
functions=[], types=[]}, after=KeyspaceMetadata{name=cql_test_keyspace, 
kind=REGULAR, params=KeyspaceParams{durable_writes=true, 
replication=ReplicationParams{class=org.apache.cassandra.locator.SimpleStrategy,
 replication_factor=1}}, tables=[], views=[], functions=[], types=[]}, 
tables=Diff{created=[], dropped=[cql_test_keyspace.table_00], altered=[]}, 
views=Diff{created=[], dropped=[], altered=[]}, types=Diff{created=[], 
dropped=[], altered=[]}, udfs=Diff{created=[], dropped=[], altered=[]}, 
udas=Diff{created=[], dropped=[], altered=[]}}]}}
[junit-timeout] ERROR [OptionalTasks:1] 2023-10-25 20:12:32,571 
ColumnFamilyStore.java:1013 - Bad flush reason: COMMITLOG_DIRTY
[junit-timeout] ERROR [OptionalTasks:1] 2023-10-25 20:12:32,571 
ColumnFamilyStore.java:1014 - 
[org.apache.cassandra.db.ColumnFamilyStore.logFlush(ColumnFamilyStore.java:1012)
[junit-timeout]  
org.apache.cassandra.db.ColumnFamilyStore.switchMemtable(ColumnFamilyStore.java:999)
[junit-timeout]  
org.apache.cassandra.db.ColumnFamilyStore.switchMemtableIfCurrent(ColumnFamilyStore.java:981)
[junit-timeout]  
org.apache.cassandra.db.ColumnFamilyStore.flushMemtable(ColumnFamilyStore.java:1065)
[junit-timeout]  
org.apache.cassandra.db.ColumnFamilyStore.forceFlush(ColumnFamilyStore.java:1040)
[junit-timeout]  
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.flushDataFrom(AbstractCommitLogSegmentManager.java:457)
[junit-timeout]  
org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.forceRecycleAll(AbstractCommitLogSegmentManager.java:334)
[junit-timeout]  
org.apache.cassandra.db.commitlog.CommitLog.forceRecycleAllSegments(CommitLog.java:261)
[junit-timeout]  
org.apache.cassandra.db.ColumnFamilyStore.onTableDropped(ColumnFamilyStore.java:3382)
[junit-timeout]  org.apache.cassandra.db.Keyspace.dropCf(Keyspace.java:383)
[junit-timeout]  org.apache.cassandra.schema.Schema.dropTable(Schema.java:756)
[junit-timeout]  
org.apache.cassandra.schema.Schema.lambda$alterKeyspace$14(Schema.java:672)
[junit-timeout]  java.base/java.lang.Iterable.forEach(Iterable.java:75)
[junit-timeout]  
org.apache.cassandra.schema.Schema.alterKeyspace(Schema.java:672)
[junit-timeout]  
org.apache.cassandra.schema.Schema.lambda$merge$12(Schema.java:655)
[junit-timeout]  
com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422)
[junit-timeout]  org.apache.cassandra.schema.Schema.merge(Schema.java:655)
[junit-timeout]  
org.apache.cassandra.schema.Schema.mergeAndUpdateVersion(Schema.java:607)
[junit-timeout]  
org.apache.cassandra.schema.DefaultSchemaUpdateHandler.updateSchema(DefaultSchemaUpdateHandler.java:260)
[junit-timeout]  
org.apache.cassandra.schema.DefaultSchemaUpdateHandler.apply(DefaultSchemaUpdateHandler.java:242)
[junit-timeout]  org.apache.cassandra.schema.Schema.transform(Schema.java:620)
[junit-timeout]  
org.apache.cassandra.cql3.statements.schema.AlterSchemaStatement.execute(AlterSchemaStatement.java:114)
[junit-timeout]  
org.apache.cassandra.cql3.statements.schema.AlterSchemaStatement.executeLocally(AlterSchemaStatement.java:71)
[junit-timeout]  
org.apache.cassandra.cql3.CQLTester.schemaChange(CQLTester.java:1460)
[junit-timeout]  org.apache.cassandra.cql3.CQLTester$2.run(CQLTester.java:471)
[junit-timeout]  
org.apache.cassandra.concurrent.ExecutionFailure$1.run(ExecutionFailure.java:133)
[junit-timeout]  
org.apache.cassandra.concurrent.ExecutionFailure$1.run(ExecutionFailure.java:133)
[junit-timeout]  
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[junit-timeout]  
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[junit-timeout]  
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
{noformat}

> Test failure: 
> org.apache.cassandra.io.DiskSpaceMetricsTest.testFlushSize-.jdk17 (from 
> org.apache.cassandra.io.DiskSpaceMetricsTest-.jdk17)
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-18710
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18710
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Ekaterina Dimitrova
>            Assignee: Brandon Williams
>            Priority: Normal
>             Fix For: 5.0.x, 5.x
>
>         Attachments: org.apache.cassandra.io.DiskSpaceMetricsTest.txt
>
>
> Seen here:
> [https://ci-cassandra.apache.org/job/Cassandra-trunk/1644/testReport/org.apache.cassandra.io/DiskSpaceMetricsTest/testFlushSize__jdk17/]
> h3.  
> {code:java}
> Error Message
> expected:<7200.0> but was:<1367.83970468544>
> Stacktrace
> junit.framework.AssertionFailedError: expected:<7200.0> but 
> was:<1367.83970468544> at 
> org.apache.cassandra.io.DiskSpaceMetricsTest.testFlushSize(DiskSpaceMetricsTest.java:119)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> {code}
>  



--
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