-
Notifications
You must be signed in to change notification settings - Fork 10
Reimplementation of the library #56
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
base: main
Are you sure you want to change the base?
Conversation
Using lazy sequences by default is too opinionated. They incur a lot of overhead and are tricky to manage. Rather, we can expose a mechanism similar to `ocaml-h2` that uses a `schedule_read` function expecting two callbacks.
(for already closed stream) anmonteiro/ocaml-h2#175
When multiple messages are batched and read into the buffer, only the first message was extracted. Remaining messages would not be extracted until the next invocation of `on_read`.
@wokalski if you use Edit, got confused with my compiler versions. |
statmemprof ftw!!! |
@tmcgilchrist will statmemprof be available in 5.2 or only in 5.3? |
Only in 5.3. Based on this libraries dependencies it should be possible to build against that version. |
just a little update - we are using this on production and we will probably push the final commits to this soon. |
another update, the situation escalated and we are reimplementing http 2 😅 |
Quite the escalation! Will it be a new HTTP2 library or improvements on an
existing one?
…On Thu, 13 Mar 2025 at 4:02 am, Wojtek Czekalski ***@***.***> wrote:
another update, the situation escalated and we are reimplementing http 2 😅
—
Reply to this email directly, view it on GitHub
<#56 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABJXOOPV7DM5UCAGKAYOND2UBSBPAVCNFSM6AAAAABY4DXZAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMJYGU2DIOBSGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
[image: wokalski]*wokalski* left a comment (dialohq/ocaml-grpc#56)
<#56 (comment)>
another update, the situation escalated and we are reimplementing http 2 😅
—
Reply to this email directly, view it on GitHub
<#56 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABJXOOPV7DM5UCAGKAYOND2UBSBPAVCNFSM6AAAAABY4DXZAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMJYGU2DIOBSGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Unfortunately since we launched a version of our app based on h2 in January we had many performance regressions. We tried to fix them but in the end we decided to reimplement it (leveraging Antonio's parsers). It follows the newer RFC so it's also less complex https://www.rfc-editor.org/rfc/rfc9113.html#name-table-of-contents We are aiming for max performance under a heavy load. |
we have a new impl of the http2 now that we are testing. I think we managed to solve the performance issues successfully but it requires more testing. OCaml->Go->OCaml has 0.3-0.7ms roundtrip. I didn't calculate yet but something around 0.450ms on average. |
I look forward to seeing the new h2 library and testing it out. |
This PR contains a reimplementation of the library. Only the
eio
variant works for now. The goal of the reimplementation is to make it more:Building an opinionated workflow is not a part of this library, I will implement it in a separate library.
TODO
Bigstringaf
directly to avoid copying. string variants can be put on top for those who need them simply in the userspace. The string variants impede the performance due to excessive copying.extra
part for example)'ctx
to server request handlers. Not sure if it's needed - maybe can be done in the user space, maybe has to be a part of the library - will experiment with it.