Comments (8)
I volunteer to work on this, because the ioctl
in libevent is surprisingly time-consuming.
from envoy.
@brian-pane great, will assign this over to you. I would love to see this fixed also but have never had the time. A couple of thoughts as there are solutions that I think don't involve rewriting the entire buffer implementation if you are interested in a shortcut:
- We could try for a patch to libevent itself to have an option to not do the ioctl call. Not sure if they would accept it or not, though seems reasonable to me.
- We could just remove the read() and write() calls from Envoy's buffer interface. Then, we can allocate space directly using reservation, and just call readv()/writev() directly. This has the large added benefit of untangling the FD from the buffer implementation which is needed anyway from some of the FD abstraction work that is happening via the Cisco/VPP folks.
So I guess in writing this I wonder if maybe it would be a better use of your time to just do my second suggestion above? (If you completely rewrite the buffer implementation I would ask for that to be done anyway).
from envoy.
+1 for removing the read and write calls from the buffer API. That will enable the buffer implementation and the I/O implementation to evolve separately.
from envoy.
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.
from envoy.
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted". Thank you for your contributions.
from envoy.
I was able to remove the ioctl
call, but it may be a while before I have time to work on a complete replacement of evbuffer. It may make sense to return this issue to "help wanted" state, in case anybody else has time to work on it.
from envoy.
TBH with the ioctol gone I'm not sure how much it matters anymore and maybe we should just close this. But I marked "help wanted" for now.
from envoy.
Going to go ahead and close this as I don't think it's a priority anymore. We can revisit if it comes up again.
from envoy.
Related Issues (20)
- Is there some way to figure out why Envoy can't send a request to upstream?
- Envoy making more retries than configured HOT 6
- opentelemetrytracer: Add Dynatrace sampler HOT 1
- Document zipkin tracing reporting knobs HOT 1
- Attempt to use opentelemetry_api headers cause envoy build fails HOT 3
- Newer release available `rules_proto_grpc`: 4.6.0 (current: 4.4.0)
- Option to update overload_manager stop_accepting_requests_scale_percent manually HOT 3
- Modify ext_authz to correctly encode non-utf-8 header values HOT 6
- Default response compression not working (potential documentation issue) HOT 2
- Update to oghttp2=true causes cookie-related failures HOT 17
- Newer release available `aspect_bazel_lib`: v2.5.0 (current: v2.4.2) HOT 1
- Newer release available `io_opentelemetry_cpp`: v1.14.2 (current: v1.14.0)
- Window CI job queue can hang and become completely blocked
- Add error handling support to decompressors
- Newer release available `com_github_wasmtime`: v18.0.2 (current: v9.0.3)
- [BUILD] contrib build fails HOT 1
- DestinationRule httpCookie support Envoy Attributes HOT 2
- ssl: flake in ssl_integration_test under tsan HOT 2
- Can Envoyproxy support the VIP(virtual IP) or IP failover directly? HOT 2
- Redis endpoints success/error/timeout stats are zero HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from envoy.