Use Disruptor to implement our lightweight queue model #8323
Replies: 15 comments 35 replies
-
@CalvinKirs With months passed, any update? If not, it is better to close this issue, or we at least should convert this to discussion. |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
I did a simple test comparison and it looks like Disruptor does serve our purpose, I will provide the full JMH Test shortly. |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Surprising to see this update. Could you be clear about which cases are you using? |
Beta Was this translation helpful? Give feedback.
-
Sorry for the late reply. |
Beta Was this translation helpful? Give feedback.
-
Yes, batch-mode is important. But I remember disruptor has Also, you should notice, in the latest OAP side DataCarrier(right now, OAP and Agent DataCarrier are different) has a concept of |
Beta Was this translation helpful? Give feedback.
-
Thanks for your reply, am I missing something?
|
Beta Was this translation helpful? Give feedback.
-
Could you draw a graph to visualize how do you implement DataCarrier multiple consumers through Disruptor? |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Let's move to discussion panel and continue. In the case, you should set the benchmark in this way. If you have more than 8 core CPU
The measure way of this is checking
Then we have Please provide a github repo or gist to host the benchmark codes |
Beta Was this translation helpful? Give feedback.
-
I had experience with Disruptor several years ago, but I found it may not be suitable for a relatively small instances, e.g. 4 cores or less. See the discussion thread, LMAX-Exchange/disruptor#204 (comment) I am not sure whether they have a big progress in the recent years for the WaitStrategy. Probably we may also provide benchmark results with limited resources? PS. the current lightweight queue model is awesome! |
Beta Was this translation helpful? Give feedback.
-
@CalvinKirs Please be advised, I have finished an enhancement to OAP side DataCarrier through #8664. Please evaluate whether this potential change is still reasonable. With this kind of SkyWalking-native features, which do not exist in any other queue, I assume you would be hard to follow on this path. |
Beta Was this translation helpful? Give feedback.
-
Why do you submit this issue?
Question or discussion
Feature or performance improvement
Requirement or improvement
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
Beta Was this translation helpful? Give feedback.
All reactions