SesquipedalianDefenestrator opened a new pull request, #4437:
URL: https://github.com/apache/cassandra/pull/4437

   In Batch commit mode, if multiple writes arrive during a single commitlog 
flush it will release the haveWork semaphore more times than it's acquired.  If 
this happens often enough without an idle period, it will eventually overflow 
(several weeks, in our case). So, every time we acquire() the permit count 
should be reset to 0. This is similar to how it worked in 3.0, but with more 
places it's acquired. In theory this leaves a potential race, but only if 2 
billion writes arrive within a single commitlog flush interval.
   Without this change, I believe the flusher loop would also run without 
waiting for a while during idle periods after sustained high load.
   
   
   [junit-timeout] OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC 
was deprecated in version 9.0 and will likely be removed in a future release.
   [junit-timeout] Testsuite: 
org.apache.cassandra.db.commitlog.BatchCommitLogTest-_jdk11
   [junit-timeout] Testsuite: 
org.apache.cassandra.db.commitlog.BatchCommitLogTest-_jdk11 Tests run: 198, 
Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 5.254 sec
   
   patch by Elliott Sims ([email protected]); reviewed by TBD for 
CASSANDRA-20147
   
   https://issues.apache.org/jira/browse/CASSANDRA-20147
    
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to