You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2021/11/26 03:06:42 UTC

[GitHub] [rocketmq] zhongxiongzeng opened a new pull request #3538: replace jdk Timer with netty HashedWheelTimer

zhongxiongzeng opened a new pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538


   **Make sure set the target branch to `develop`**
   
   ## What is the purpose of the change
   
   Replace JDK timer with netty hashedWheelTimer
   
   ## Brief changelog
   
   XX
   
   ## Verifying this change
   
   XXXX
   
   Follow this checklist to help us incorporate your contribution quickly and easily. Notice, `it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR`.
   
   - [x] Make sure there is a [Github issue](https://github.com/apache/rocketmq/issues) filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue. 
   - [x] Format the pull request title like `[ISSUE #123] Fix UnknownException when host config not exist`. Each commit in the pull request should have a meaningful subject line and body.
   - [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
   - [x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in [test module](https://github.com/apache/rocketmq/tree/master/test).
   - [x] Run `mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle` to make sure basic checks pass. Run `mvn clean install -DskipITs` to make sure unit-test pass. Run `mvn clean test-compile failsafe:integration-test`  to make sure integration-test pass.
   - [ ] If this contribution is large, please file an [Apache Individual Contributor License Agreement](http://www.apache.org/licenses/#clas).
   


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] Git-Yang commented on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
Git-Yang commented on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-979737331


   Can you create an ISSUE for this PR?


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] vongosling commented on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
vongosling commented on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-1001838095


   The real effect is ? do you have any test results for your case?


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] zhongxiongzeng commented on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
zhongxiongzeng commented on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-1013652359


   most effect is that improve the time to insert tasks, for example:
   HashedWheelTimer and Timer both insert 1000000 task at the same time:
   `
          // HashedWheelTimer 
           for (int i = 0; i < 1000000; i++) {
               hashedWheelTimer.newTimeout(timerTask, random.nextInt(1000), TimeUnit.MILLISECONDS);
           }
   `
   
   `
          // Timer 
           for (int i = 0; i < 1000000; i++) {
               timer.schedule(task, random.nextInt(1000));
           }
   `
   HashedWheelTimer  cost 129 ms, but Timer cost 325 ms(My computer configuration is win10 + i5-8500 CPU + 16G ram)
   because the implement  of timer base on minHeap, The time complexity of each insert or delete is O(log(n)), but HashedWheelTimer  is O(1);


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] coveralls edited a comment on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
coveralls edited a comment on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-979657040


   
   [![Coverage Status](https://coveralls.io/builds/44555984/badge)](https://coveralls.io/builds/44555984)
   
   Coverage decreased (-0.03%) to 55.069% when pulling **c16d8b8d38dd96d6a1bde80465fd262b408be368 on zhongxiongzeng:replace_timer** into **87b0be00012dff86727766081d4243eeee280699 on apache:develop**.
   


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] coveralls commented on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
coveralls commented on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-979657040


   
   [![Coverage Status](https://coveralls.io/builds/44555909/badge)](https://coveralls.io/builds/44555909)
   
   Coverage decreased (-0.1%) to 54.958% when pulling **c16d8b8d38dd96d6a1bde80465fd262b408be368 on zhongxiongzeng:replace_timer** into **87b0be00012dff86727766081d4243eeee280699 on apache:develop**.
   


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] zhongxiongzeng commented on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
zhongxiongzeng commented on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-979738147


   > Can you create an ISSUE for this PR?
   
   ok


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [rocketmq] duhenglucky commented on pull request #3538: replace jdk Timer with netty HashedWheelTimer

Posted by GitBox <gi...@apache.org>.
duhenglucky commented on pull request #3538:
URL: https://github.com/apache/rocketmq/pull/3538#issuecomment-1012676019


   @zhongxiongzeng ping


-- 
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: dev-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org