Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support parallel parsing protocol data in the access log module #167

Merged
merged 2 commits into from
Dec 11, 2024

Conversation

mrproliu
Copy link
Contributor

@mrproliu mrproliu commented Dec 11, 2024

When the business system traffic is high, the Rover will convert its traffic between kernel mode and user mode through BPF Queue. Previously, there was only a single goroutine to receive, parse, and then send it to the routing analysis goroutine. This caused the parsing process to require waiting until the next receive.
Therefore, it now supports multiple goroutines to receive and parse events in the queue from being discarded due to waiting for parsing during high traffic.

This is similar to the concept of boss and worker groups in Netty, where boss and worker groups are two separate thread pools. The boss is responsible for receiving connections, while the worker handles processing them. In Rover, the boss (parse) group receives events, and the worker (analyze) group processes events.

@mrproliu mrproliu added the enhancement New feature or request label Dec 11, 2024
@mrproliu mrproliu added this to the 0.8.0 milestone Dec 11, 2024
@mrproliu mrproliu marked this pull request as draft December 11, 2024 01:21
@mrproliu mrproliu marked this pull request as ready for review December 11, 2024 02:58
@mrproliu mrproliu requested a review from wu-sheng December 11, 2024 02:58
@wu-sheng wu-sheng merged commit 67622c3 into main Dec 11, 2024
28 checks passed
@wu-sheng wu-sheng deleted the parse-parallels branch December 11, 2024 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants