[ https://issues.apache.org/jira/browse/CASSANDRA-11070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
fujian updated CASSANDRA-11070: ------------------------------- Description: org.apache.cassandra.transport.Message.Dispatcher.Flusher remove duplicated control for flush message control … Motivation: the !doneWork's control is duplicated and confused with runsSinceFlush > 2 if on the first run:the queue size is 20 donework will be set to true and not do flush due to the size<50 and runsSinceFlush<2. if on the second run. the queue size is 0, donework will be reset to false and not set to true due to no new items in queue, but the flush will be triggered due to: if (!doneWork || runsSinceFlush > 2 || flushed.size() > 50) now the runsSinceFlush is 2. so in actual, its function is similar with runsSinceFlush>1. so it is no need to keep it so that the code is confused and duplicated. Modifications: remove it Result: after remove it, it will more clear and no confused. was: org.apache.cassandra.transport.Message.Dispatcher.Flusher remove duplicated control for flush message control … Motivation: the !doneWork's control is duplicated and confused with runsSinceFlush > 2 if on the first run:the queue size is 20 donework will be set to true and not do flush due to the size<50 and runsSinceFlush<2. if on the second run. the queue size is 0, donework will be reset to false and not set to true due to no new items in queue, but the flush will be triggered due to: if (!doneWork || runsSinceFlush > 2 || flushed.size() > 50) now the runsSinceFlush is 2. so in actual, its function is similar with runsSinceFlush>1. so it is no need to keep it so that the code is confused and duplicated. Modifications: remove it Result: after remove it, it will more clear and no confused. check the link: https://github.com/jiafu1115/cassandra/commit/5279884e6a392d36b4adc5e29f9ca5d0666cb275 > Dispatcher.Flusher's control has duplicated/conflict control > ------------------------------------------------------------ > > Key: CASSANDRA-11070 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11070 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging > Reporter: fujian > Labels: performance > Attachments: 0001-fix-CASSANDRA-11070.patch > > > org.apache.cassandra.transport.Message.Dispatcher.Flusher > remove duplicated control for flush message control … > Motivation: > the !doneWork's control is duplicated and confused with runsSinceFlush > 2 > if on the first run:the queue size is 20 > donework will be set to true and not do flush due to the size<50 and > runsSinceFlush<2. > if on the second run. the queue size is 0, > donework will be reset to false and not set to true due to no new items in > queue, but the flush will be triggered due to: > if (!doneWork || runsSinceFlush > 2 || flushed.size() > 50) > now the runsSinceFlush is 2. so in actual, its function is similar with > runsSinceFlush>1. > so it is no need to keep it so that the code is confused and duplicated. > > Modifications: > remove it > Result: > after remove it, it will more clear and no confused. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)