You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2021/04/13 13:13:29 UTC

[GitHub] [skywalking] CalvinKirs opened a new issue #6747: Use Disruptor to implement our lightweight queue model

CalvinKirs opened a new issue #6747:
URL: https://github.com/apache/skywalking/issues/6747


   - Why do you submit this issue?
   - [ ] Question or discussion
   
   - [ ] Feature or performance improvement
   
   ### Requirement or improvement
   - Please describe your requirements or improvement suggestions.
   Hi, guys, in #6744, the @wu-sheng teacher suggested that we can use Disruptor to implement our lightweight queue model, the project is widely used and the performance looks great.
   
   
   Everyone is very welcome to discuss
   If everyone agrees on , I would like to finish this work. ( I will provide JMH-Test after the implementation)
   
   
   disruptor
   GitHub: https://github.com/LMAX-Exchange/disruptor
   
   License: Apache-2.0
   


-- 
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] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998887641


   > Surprising to see this update. Could you be clear about which cases are you using?
   
   Thanks for your reply, am I missing something?
   
   ```
    public static AtomicInteger oldQueueConsumerIndex = new AtomicInteger(0);
       public static AtomicInteger disruptorConsumerIndex = new AtomicInteger(0);
       DataCarrier<String> dataCarrier = new DataCarrier<>(32, 4);
       DataCarrier<String> miniChannelDataCarrier = new DataCarrier<>(4, 32);
       DataCarrierDisruptor disruptor = new DataCarrierDisruptor("Message", TestWorkHandler.class, ProducerType.SINGLE);
       DataCarrierDisruptor multiProducerDisruptor = new DataCarrierDisruptor("Message", TestWorkHandler.class, ProducerType.MULTI);
   
   
       @Param(value = {"1", "10", "100", "1000"})
       private int dataSize;
   
   
       @Setup
       public void setUp() {
           dataCarrier.consume(TestOldConsumer.class, 2);
           miniChannelDataCarrier.consume(TestOldConsumer.class, 2);
       }
   
       @Benchmark
       public void testSingleThreadDataCarrier() {
           for (int i = 0; i < 100 * dataSize; i++) {
               dataCarrier.produce("Message:" + i);
           }
           while (oldQueueConsumerIndex.get() < 100 * dataSize) {
               Thread.yield();
           }
           oldQueueConsumerIndex.set(0);
       }
   
   ```
   
   ```
   public class TestOldConsumer implements IConsumer<String> {
   
   
       @Override
       public void init(Properties properties) {
   
       }
   
       @Override
       public void consume(List<String> data) {
           if (CollectionUtils.isEmpty(data)) {
               return;
           }
           data.forEach(d -> {
               DisruptorDataCarrierBenchmark.oldQueueConsumerIndex.getAndIncrement();
           });
       }
   }
   ```


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998873796


   Sorry for the late reply.
   I have some questions, our current consumption is to pull the list data in the queue, and the Disruptor is to process the data one by one.
   For some operations designed to DB, do we need to take some measures to do batch processing and consumption?


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] wu-sheng commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
wu-sheng commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998879035


   Yes, batch-mode is important. But I remember disruptor has `end-of-batch` concept to cover this case.
   
   Also, you should notice, in the latest OAP side DataCarrier(right now, OAP and Agent DataCarrier are different) has a concept of `IConsumer#nothingToConsume` event, which I think missed in Disruptor. It is important to build batch(not to database) as it is based on both duration and size.


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998912187


   ![image](https://user-images.githubusercontent.com/16631152/146962782-e8a2eb05-53dd-4a34-9b41-46e4057665db.png)
   I use this method to set up multiple consumers
   `com.lmax.disruptor.dsl.Disruptor#handleEventsWithWorkerPool`


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] wu-sheng commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
wu-sheng commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-999176812


   I think you should update the 


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs closed issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs closed issue #6747:
URL: https://github.com/apache/skywalking/issues/6747


   


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998869526


   ```
   testSingleThreadDataCarrier:
   Single-threaded message delivery
   2 threads consumption
   Data volume=100*dataSize
   channelSize=32 bufferSize=4
   
   testSingleThreadMiniDataCarrier:
   Single-threaded message delivery
   2 threads consumption
   Data volume=100*dataSize
   channelSize=4 bufferSize=32
   
   testSingleThreadDisruptor
   Single-threaded message delivery
   Single producer
   2 threads consumption
   Data volume=100*dataSize
   ringBufferSize=128
   
   testMultiThreadDataCarrier
   2 threads to deliver messages
   2 threads consumption
   Data volume=100*2*dataSize
   channelSize=32 bufferSize=4
   testMultiThreadMiniChannelDataCarrier
   
   2 threads to deliver messages
   2 threads consumption
   Data volume=100*2*dataSize
   channelSize=4 bufferSize=32
   
   testMultiThreadDisruptor
   Multi-producer mode (only one thread is used)
   2 threads to deliver messages
   2 threads consumption
   Data volume=100*2*dataSize
   ringBufferSize=128
   ```
   ```
   Benchmark                                                                                             (dataSize)   Mode  Cnt         Score   Error   Units
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier                                                       1  thrpt    2        21.587           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate                                        1  thrpt    2         0.026          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate.norm                                   1  thrpt    2      1331.032            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Eden_Space                               1  thrpt    2        27.020          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Eden_Space.norm                          1  thrpt    2   1378235.838            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Survivor_Space                           1  thrpt    2         0.162          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Survivor_Space.norm                      1  thrpt    2      8275.731            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.count                                             1  thrpt    2         4.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.time                                              1  thrpt    2         9.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier                                                      10  thrpt    2         2.616           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate                                       10  thrpt    2         0.003          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate.norm                                  10  thrpt    2      1363.219            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Eden_Space                              10  thrpt    2         6.106          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Eden_Space.norm                         10  thrpt    2   2591192.615            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Survivor_Space                          10  thrpt    2         0.170          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.churn.PS_Survivor_Space.norm                     10  thrpt    2     72070.769            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.count                                            10  thrpt    2         1.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.time                                             10  thrpt    2         3.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier                                                     100  thrpt    2         0.273           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate                                      100  thrpt    2        ≈ 10⁻³          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate.norm                                 100  thrpt    2      1632.000            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.count                                           100  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier                                                    1000  thrpt    2         0.027           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate                                     1000  thrpt    2        ≈ 10⁻⁴          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.alloc.rate.norm                                1000  thrpt    2      4300.000            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDataCarrier:·gc.count                                          1000  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor                                                         1  thrpt    2      8933.128           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate                                          1  thrpt    2        11.479          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate.norm                                     1  thrpt    2      1416.457            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space                                 1  thrpt    2     14422.861          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space.norm                            1  thrpt    2   1778182.066            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space                             1  thrpt    2         1.161          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                        1  thrpt    2       143.073            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.count                                               1  thrpt    2      1788.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.time                                                1  thrpt    2       604.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor                                                        10  thrpt    2      2444.081           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate                                         10  thrpt    2         4.281          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate.norm                                    10  thrpt    2      1928.139            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space                                10  thrpt    2      3154.202          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space.norm                           10  thrpt    2   1421635.320            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space                            10  thrpt    2         0.256          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                       10  thrpt    2       115.265            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.count                                              10  thrpt    2       391.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.time                                               10  thrpt    2       171.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor                                                       100  thrpt    2       320.904           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate                                        100  thrpt    2         2.078          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate.norm                                   100  thrpt    2      7115.277            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space                               100  thrpt    2       378.837          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space.norm                          100  thrpt    2   1300370.489            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space                           100  thrpt    2         0.024          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                      100  thrpt    2        81.640            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.count                                             100  thrpt    2        47.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.time                                              100  thrpt    2        21.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor                                                      1000  thrpt    2        32.394           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate                                       1000  thrpt    2         1.741          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.alloc.rate.norm                                  1000  thrpt    2     59387.583            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space                              1000  thrpt    2       387.073          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Eden_Space.norm                         1000  thrpt    2  13159086.907            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space                          1000  thrpt    2         0.031          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                     1000  thrpt    2      1061.780            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.count                                            1000  thrpt    2        48.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadDisruptor:·gc.time                                             1000  thrpt    2        23.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier                                            1  thrpt    2        19.972           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate                             1  thrpt    2         0.024          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate.norm                        1  thrpt    2      1331.280            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Eden_Space                    1  thrpt    2        25.725          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Eden_Space.norm               1  thrpt    2   1419509.760            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Survivor_Space                1  thrpt    2         0.162          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Survivor_Space.norm           1  thrpt    2      8937.580            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.count                                  1  thrpt    2         4.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.time                                   1  thrpt    2        11.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier                                           10  thrpt    2         2.499           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate                            10  thrpt    2         0.003          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate.norm                       10  thrpt    2      1358.763            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Eden_Space                   10  thrpt    2         5.905          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Eden_Space.norm              10  thrpt    2   2591192.615            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Survivor_Space               10  thrpt    2         0.162          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.churn.PS_Survivor_Space.norm          10  thrpt    2     70975.385            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.count                                 10  thrpt    2         1.000          counts
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.time                                  10  thrpt    2         3.000              ms
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier                                          100  thrpt    2         0.256           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate                           100  thrpt    2        ≈ 10⁻³          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate.norm                      100  thrpt    2      1557.333            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.count                                100  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier                                         1000  thrpt    2         0.028           ops/s
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate                          1000  thrpt    2        ≈ 10⁻⁴          MB/sec
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.alloc.rate.norm                     1000  thrpt    2      2092.000            B/op
   DisruptorDataCarrierBenchmark.testMultiThreadMiniChannelDataCarrier:·gc.count                               1000  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier                                                      1  thrpt    2        43.171           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate                                       1  thrpt    2         0.220          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate.norm                                  1  thrpt    2      5601.517            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.count                                            1  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier                                                     10  thrpt    2         5.243           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate                                      10  thrpt    2         0.268          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate.norm                                 10  thrpt    2     56349.585            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.count                                           10  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier                                                    100  thrpt    2         0.530           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate                                     100  thrpt    2         0.307          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate.norm                                100  thrpt    2    635533.333            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.count                                          100  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier                                                   1000  thrpt    2         0.053           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate                                    1000  thrpt    2         0.316          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.alloc.rate.norm                               1000  thrpt    2   6426032.000            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDataCarrier:·gc.count                                         1000  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor                                                        1  thrpt    2     23499.217           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate                                         1  thrpt    2       120.315          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate.norm                                    1  thrpt    2      5640.267            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space                                1  thrpt    2       122.342          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space.norm                           1  thrpt    2      5735.384            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space                            1  thrpt    2         0.015          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                       1  thrpt    2         0.694            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.count                                              1  thrpt    2        16.000          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.time                                               1  thrpt    2        11.000              ms
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor                                                       10  thrpt    2      5626.929           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate                                        10  thrpt    2       287.682          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate.norm                                   10  thrpt    2     56325.927            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space                               10  thrpt    2       289.150          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space.norm                          10  thrpt    2     56627.705            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space                           10  thrpt    2         0.012          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                      10  thrpt    2         2.343            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.count                                             10  thrpt    2        36.000          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.time                                              10  thrpt    2        16.000              ms
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor                                                      100  thrpt    2       750.957           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate                                       100  thrpt    2       383.967          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate.norm                                  100  thrpt    2    563272.376            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space                              100  thrpt    2       386.852          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space.norm                         100  thrpt    2    567547.589            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space                          100  thrpt    2         0.019          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                     100  thrpt    2        28.311            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.count                                            100  thrpt    2        48.000          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.time                                             100  thrpt    2        22.000              ms
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor                                                     1000  thrpt    2        82.218           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate                                      1000  thrpt    2       473.891          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.alloc.rate.norm                                 1000  thrpt    2   6348470.312            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space                             1000  thrpt    2       475.561          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Eden_Space.norm                        1000  thrpt    2   6371246.361            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space                         1000  thrpt    2         0.040          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.churn.PS_Survivor_Space.norm                    1000  thrpt    2       537.732            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.count                                           1000  thrpt    2        59.000          counts
   DisruptorDataCarrierBenchmark.testSingleThreadDisruptor:·gc.time                                            1000  thrpt    2        27.000              ms
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier                                                  1  thrpt    2        43.311           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate                                   1  thrpt    2         0.220          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate.norm                              1  thrpt    2      5601.513            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.count                                        1  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier                                                 10  thrpt    2         5.194           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate                                  10  thrpt    2         0.266          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate.norm                             10  thrpt    2     56316.615            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.count                                       10  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier                                                100  thrpt    2         0.527           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate                                 100  thrpt    2         0.306          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate.norm                            100  thrpt    2    635616.000            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.count                                      100  thrpt    2           ≈ 0          counts
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier                                               1000  thrpt    2         0.054           ops/s
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate                                1000  thrpt    2         0.325          MB/sec
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.alloc.rate.norm                           1000  thrpt    2   6426080.000            B/op
   DisruptorDataCarrierBenchmark.testSingleThreadMiniDataCarrier:·gc.count                                     1000  thrpt    2           ≈ 0          counts
   
   ```


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] wu-sheng commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
wu-sheng commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998896254


   Could you draw a graph to visualize how do you implement DataCarrier multiple consumers through Disruptor?


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] wu-sheng commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
wu-sheng commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-998873079


   Surprising to see this update. Could you be clear about which cases are you using?


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-940609528


   I did a simple test comparison and it looks like Disruptor does serve our purpose, I will provide the full JMH Test shortly.


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-912211053


   > @CalvinKirs With months passed, any update? If not, it is better to close this issue, or we at least should convert this to discussion.
   
   I'm sorry I've been so busy lately, I'll close it for now and I'll sync here when I've made progress.


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] CalvinKirs commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
CalvinKirs commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-940640480


   > > I did a simple test comparison and it looks like Disruptor does serve our purpose, I will provide the full JMH Test shortly.
   > 
   > Disruptor has better performance for sure. We have tested years ago. The challenge is thread-model. We are not using one thread per logic queue, because we created one logic queue per metrics, which could be changed and keep increasing.
   
   Yes, this is a clever design by Channel,
   
   For Disruptor, at present, I can only think of providing a more flexible configuration to achieve an ideal effect.


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] wu-sheng commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
wu-sheng commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-940612264


   > I did a simple test comparison and it looks like Disruptor does serve our purpose, I will provide the full JMH Test shortly.
   
   Disruptor has better performance for sure. We have tested years ago. The challenge is thread-model. We are not using one thread per logic queue, because we created one logic queue per metrics, which could be changed and keep increasing.


-- 
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: notifications-unsubscribe@skywalking.apache.org

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



[GitHub] [skywalking] wu-sheng commented on issue #6747: Use Disruptor to implement our lightweight queue model

Posted by GitBox <gi...@apache.org>.
wu-sheng commented on issue #6747:
URL: https://github.com/apache/skywalking/issues/6747#issuecomment-912201208


   @CalvinKirs With months passed, any update? If not, it is better to close this issue, or we at least should convert this to discussion.


-- 
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: notifications-unsubscribe@skywalking.apache.org

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