class Lumberjack::Beats::AckingProtocolV2
Allow lumberjack to send partial ack back to the producer only V2 client support partial Acks
Send Ack on every 20% of the data, so with default settings every 200 events This should reduce the congestion on retransmit.
Constants
- ACK_RATIO
Public Class Methods
new(window_size)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 458 def initialize(window_size) @window_size = window_size @every = (window_size / ACK_RATIO).round end
Public Instance Methods
ack?(sequence)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 463 def ack?(sequence) if @window_size == sequence true elsif @every != 0 && sequence % @every == 0 true else false end end
ack_frame(sequence)
click to toggle source
# File lib/lumberjack/beats/server.rb, line 473 def ack_frame(sequence) ["2A", sequence].pack("A*N") end