# File lib/taps/utils.rb, line 98
  def calculate_chunksize(old_chunksize)
    c = Taps::Chunksize.new(old_chunksize)

    begin
      c.start_time = Time.now
      c.time_in_db = yield c
    rescue Errno::EPIPE, RestClient::RequestFailed, RestClient::RequestTimeout
      c.retries += 1
      raise if c.retries > 2

      # we got disconnected, the chunksize could be too large
      # reset the chunksize based on the number of retries
      c.reset_chunksize
      retry
    end

    c.end_time = Time.now
    c.calc_new_chunksize
  end