You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Previously shotover's design did not allow for a true implementation of flush_when_millis_since_last_flush.
There was no way for the transform to trigger a flush all on its own, it had to wait for a new request to come in before the flush could be triggered.
This results in easily triggered poor behavior, for example:
flush_when_millis_since_last_flush set to 1000 (1 second)
client sends 1 request
1 hour passes and no more requests are sent
flush never occurs and request is just stuck in shotover.
However shotover now supports this kind of functionality via force_run_chain.
So we should reimplement the flush_when_millis_since_last_flush logic of Coalesce to setup a tokio task in the background that will trigger a flush after the time has passed.
This should be done by:
setting up the task in CoalesceConfig::get_builder
the task runs a tokio::sleep(Duration::from_millis(flush_when_millis_since_last_flush)).await in a loop.
whenever the sleep elapses: trigger force_run_chain and send a message to the transform instance to let it know it needs to flush.
every time a flush occurs send the task a message to tell it to restart its timer
The text was updated successfully, but these errors were encountered:
Previously shotover's design did not allow for a true implementation of flush_when_millis_since_last_flush.
There was no way for the transform to trigger a flush all on its own, it had to wait for a new request to come in before the flush could be triggered.
This results in easily triggered poor behavior, for example:
However shotover now supports this kind of functionality via
force_run_chain
.So we should reimplement the
flush_when_millis_since_last_flush
logic of Coalesce to setup a tokio task in the background that will trigger a flush after the time has passed.This should be done by:
CoalesceConfig::get_builder
tokio::sleep(Duration::from_millis(flush_when_millis_since_last_flush)).await
in a loop.force_run_chain
and send a message to the transform instance to let it know it needs to flush.The text was updated successfully, but these errors were encountered: