Esempio n. 1
0
void SSPAggrServerThread::ServerPushRow() {
  //LOG(INFO) << __func__;
  if (!msg_tracker_.CheckSendAll()) {
    //LOG(INFO) << "server has to wait";
    STATS_SERVER_ACCUM_WAITS_ON_ACK_CLOCK();
    pending_clock_push_row_ = true;
    return;
  }

  STATS_SERVER_ACCUM_PUSH_ROW_BEGIN();
  size_t sent_bytes
      = server_obj_.CreateSendServerPushRowMsgs(SendServerPushRowMsg);
  STATS_SERVER_ACCUM_PUSH_ROW_END();

  double left_over_send_milli_sec = 0;

  if (row_send_milli_sec_ > 1) {
    double send_elapsed_milli = msg_send_timer_.elapsed() * kOneThousand;
    left_over_send_milli_sec = std::max<double>(0, row_send_milli_sec_ - send_elapsed_milli);
  }

  row_send_milli_sec_ = TransTimeEstimate::EstimateTransMillisec(
      sent_bytes, GlobalContext::get_server_bandwidth_mbps())
                        + left_over_send_milli_sec;
  msg_send_timer_.restart();

  //LOG(INFO) << "Server clock sent_size = " << sent_bytes
  //        << " row_send_milli_sec = " << row_send_milli_sec_
  //        << " left_over_send_milli_sec = " << left_over_send_milli_sec;
}
void SSPAggrServerThread::ServerPushRow(bool clock_changed) {
  STATS_SERVER_ACCUM_PUSH_ROW_BEGIN();
  size_t sent_bytes
      = server_obj_.CreateSendServerPushRowMsgs(SendServerPushRowMsg);
  STATS_SERVER_ACCUM_PUSH_ROW_END();

  row_send_milli_sec_ = TransTimeEstimate::EstimateTransMillisec(sent_bytes);
  msg_send_timer_.restart();
}