-
Notifications
You must be signed in to change notification settings - Fork 25
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
Low performance observed in Python writer #438
Comments
Not sure how you benchmark the Python client. Default settings will create a writer that writes the next event only after it receives the acknowledgment from the server.
When compared with the same settings, the Python client should be slower no more than 10x. |
Thanks a lot @thekingofcity, I was not familiar with the
I wonder if it would be reasonable to set the |
I will close this issue, as the problem was related to the configuration. @thekingofcity @tkaitchuck just consider if it would be reasonable setting another default value for |
@tkaitchuck does have an issue improving |
Problem description
I have been testing the Python binding for Pravega. One of the things that caught my eye was the actual performance I could obtain of applications writing events when using standalone (in-memory) Pravega. After that, I decided to do an actual micro-benchmark for the Python writer consisting of writing as fast as possible the string "hello world" to a 1-segment stream:
As can be observed, the Python writer consistently gets around 2500 to 2600 events/second.
If we compare this result with a similar benchmark in Java, we can observe the following (using Pravega Benchmark):
While the Pravega standalone gets out of memory quick when inducing high throughput, the point of this issue is that we can get around half a million (or more if we increased the memory settings) events per second. This is a throughput difference of 200x comparing the Python and Java clients for Pravega.
Problem location
Python binding for Pravega.
Suggestions for an improvement
We need to understand if the problem lies in the Rust implementation of the client or if it is some intrinsic performance hit of language bindings.
The text was updated successfully, but these errors were encountered: