package async
Monadic concurrency library
Install
Dune Dependency
Authors
Maintainers
Sources
async-v0.14.0.tar.gz
sha256=74f2b7b01ce3b92289cc7a68cd3ae53885c763cedd320d27949d585e5c13dc64
md5=9f80cfb72e3defcc9fca50f67e23e93c
doc/async.async_rpc/Async_rpc/Rpc/Low_latency_transport/Config/index.html
Module Low_latency_transport.Config
val create :
?max_message_size:int ->
?initial_buffer_size:int ->
?max_buffer_size:int ->
?write_timeout:Core.Time_ns.Span.t ->
?buffering_threshold_in_bytes:int ->
?start_batching_after_num_messages:int ->
unit ->
t
max_message_size
is the maximum message size a reader/writer will accept to receive/send.
max_buffer_size
is the maximum size the internal reader/writer's buffer will ever grow.
write_timeout
is the maximum time allowed for a write operation to complete before an error is reported.
- When the writer's internal buffer is filled at
buffering_threshold_in_bytes
or more, the writer will try to flush its buffer immediately. This is to get good latency and avoid buffering too much when sending big batches of messages.
- If the application hasn't sent any messages in the current Async job and nothing is buffered, the first
start_batching_after_num_messages
messages will be sent immediately. After that the writer will start buffering. This is to give good latency when the application sends a few messages occasionally but still get good throughput when sending a batch of messages.
Note that start_batching_after_num_messages
and buffering_threshold_in_bytes
have somewhat opposite meanings: the former determines when to start batching and the latter determines when to write data that has been batched.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>