… for large writes
This main idea here is to allow async incremental clearing of the outbound queue even when large writes are performed.
Previously, when using the MinFlushStrategy, if a large write was performed (larger than maxPendingBytes) a single `flush: true state_lookup: true` would be sent to GCS, thereby making it so that no new writes could be accepted until the full `maxPendingBytes` where ack'd. This change updates so that if a write is larger than `minFlushSize` a message will be annotated `flush: true state_lookup: true`. This doesn't necessarily mean that a flush will be done every `minFlushSize` as the message packed can be up to 2MiB, this will simply annotate a message as `flush: true state_lookup: true` if it has been at least `minFlushSize` bytes since we sent a flush.
The main idea here is to allow async incremental clearing of the outbound queue even when large writes are performed.
Previously, when using the MinFlushStrategy, if a large write was performed (larger than maxPendingBytes) a single flush: true state_lookup: true would be sent to GCS, thereby making it so that no new writes could be accepted until the full maxPendingBytes where ack'd. This change updates so that if a write is larger than minFlushSize a message will be annotated flush: true state_lookup: true. This doesn't necessarily mean that a flush will be done every minFlushSize as the message packed can be up to 2MiB, this will simply annotate a message as flush: true state_lookup: true if it has been at least minFlushSize bytes since we sent a flush.