You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@activemq.apache.org by GitBox <gi...@apache.org> on 2021/05/11 15:07:36 UTC

[GitHub] [activemq-artemis] franz1981 opened a new pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

franz1981 opened a new pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573


   https://issues.apache.org/jira/browse/ARTEMIS-3292


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

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



[GitHub] [activemq-artemis] franz1981 commented on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 commented on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-914053249


   TLDR on this change (still need to run CI on this): 
   
   - lock-free sync requests (no interference with background sync):  it affects `PagingStoreImpl::page`, that's performing `sync` on
   ```java
               if (tx == null && syncNonTransactional && message.isDurable()) {
                  sync();
               }
   ```
   - performing background sync no longer allocate ` OperationContext[]`: it affects paging with fast disks ie with a very short page sync timeout
   
   No hurry to get it but I think is a nice improvement @clebertsuconic @michaelandrepearce wdyt?


-- 
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: gitbox-unsubscribe@activemq.apache.org

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



[GitHub] [activemq-artemis] franz1981 closed pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 closed pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573


   


-- 
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: gitbox-unsubscribe@activemq.apache.org

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



[GitHub] [activemq-artemis] franz1981 commented on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 commented on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-921526618


   Still waiting approval so I can move on with CI test round (after rebase) and can brought in


-- 
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: gitbox-unsubscribe@activemq.apache.org

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-838656005


   Would be better to use a batching strategy that won't cause tick to copy (an unbounded number of) N pending syncs ie O(N) cost, but just a O(1) cost using a "double buffering" mechanism a-la video game computer graphic rasterization rendering, used in other prj with success eg https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/SingleWriterRecorder.java#L134
   is using a `WriterReaderPhaser` to switch active histogram in order to save the producer threads from being blocked while flushing.


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

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-921526618


   Still waiting approval so I can move on with CI test round (after rebase) and brought it in


-- 
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: gitbox-unsubscribe@activemq.apache.org

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-914053249


   TLDR on this change (still need to run CI on this): 
   
   - lock-free sync requests (no interference with background sync):  it affects `PagingStoreImpl::page`, that's performing `sync` on
   ```java
               if (tx == null && syncNonTransactional && message.isDurable()) {
                  sync();
               }
   ```
   - performing background sync no longer allocate ` OperationContext[]`: it affects paging with fast disks ie with a very short page sync timeout
   
   No hurry to get it in, but I think is a nice improvement on paging @clebertsuconic @michaelandrepearce wdyt?


-- 
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: gitbox-unsubscribe@activemq.apache.org

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-838656005


   Would be better to use a batching strategy that won't cause tick to copy (an unbounded number of) N pending syncs ie O(N) cost, but just a O(1) cost using a "double buffering" mechanism a-la video game computer graphic rasterization rendering, used in other prj with success eg https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/SingleWriterRecorder.java#L134
   is using a `WriterReaderPhaser` to switch active histograms in order to save the producer threads from being blocked while flushing.


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

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-838656005


   Would be better to use a batching strategy that won't cause tick to copy (an unbounded number of) N pending syncs ie O(N) cost, but just a O(1) cost using a "double buffering" mechanism a-la video game computer graphic, used in order prj eg https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/SingleWriterRecorder.java#L134
   is using a `WriterReaderPhaser` to switch active histograms in order to save the producer threads from being blocked while flushing.


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

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-838656005


   Would be better to use a batching strategy that won't cause tick to copy (an unbounded number of) N pending syncs ie O(N) cost, but just a O(1) cost using a "double buffering" mechanism a-la video game computer graphic rasterization rendering, used in other prj with success eg https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/SingleWriterRecorder.java#L134
   is using a `WriterReaderPhaser` to switch active histogram in order to save the producer threads from being blocked while flushing the previously active one.


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

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



[GitHub] [activemq-artemis] franz1981 edited a comment on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 edited a comment on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-838656005


   Would be better to use a batching strategy that won't cause tick to copy (an unbounded number of) N pending syncs ie O(N) cost, but just a O(1) cost using a "double buffering" mechanism a-la video game computer graphic rasterization rendering, used in order prj eg https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/SingleWriterRecorder.java#L134
   is using a `WriterReaderPhaser` to switch active histograms in order to save the producer threads from being blocked while flushing.


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

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



[GitHub] [activemq-artemis] franz1981 commented on pull request #3573: ARTEMIS-3292 PageSyncTimer can reduce garbage and sync while batching syncs

Posted by GitBox <gi...@apache.org>.
franz1981 commented on pull request #3573:
URL: https://github.com/apache/activemq-artemis/pull/3573#issuecomment-838656005


   Would be better to use a batching strategy that won't cause tick to copy N pending syncs ie O(N) cost, but just a O(1) cost using a "double buffering" mechanism a-la video game computer graphic, used in order prj eg https://github.com/HdrHistogram/HdrHistogram/blob/master/src/main/java/org/HdrHistogram/SingleWriterRecorder.java#L134
   is using a `WriterReaderPhaser` to switch active histograms in order to save the producer threads from being blocked while flushing.


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

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