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