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

CompatibleFieldSerializer use OutputChunked to warp the output project may cause nesting flush problem #837

Closed
jackjoesh opened this issue Jun 25, 2021 · 1 comment

Comments

@jackjoesh
Copy link
Contributor

Describe the bug
I think the CompatibleFieldSerializer use OutputChunked to warp the output project may cause nesting flush problem, it will cost lots of cpu usage.
kryo-wrap

For example:
If I have an object A, and A contains an object B, and B contains an object C.
These three objects all use the CompatibleFieldSerializer, because we can't avoid dependent micro-services modify these objects.
In the end, if the object c starts flushing, then the order of execution is as follow: flush to the buffer array of C -> flush to the buffer array of B -> flush to the buffer array of A -> flush to the java io
Why we can't flush to the buffer array of C -> flush to the java io directly?

Proved by our performance test,the long flush chain costs lots of cpu usage.
The following screenshot is our jmc analysis:

kryo

Is there any way to avoid this problem? Thank you!

@theigl
Copy link
Collaborator

theigl commented Jun 29, 2021

@jackjoesh: Can we close this issue in favour of #838?

@theigl theigl closed this as completed Jul 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants