public String statsPageLine(boolean isSSK, boolean isInsert, boolean realTime) {
   StringBuilder sb = new StringBuilder(100);
   sb.append(isSSK ? "SSK" : "CHK");
   sb.append(' ');
   sb.append(isInsert ? "Insert" : "Request");
   sb.append(' ');
   sb.append(realTime ? "RealTime" : "Bulk");
   sb.append(" RTT=");
   MyRequestThrottle throttle = getThrottle(isSSK, isInsert, realTime);
   sb.append(TimeUtil.formatTime((long) throttle.getRTT(), 2, true));
   sb.append(" delay=");
   sb.append(TimeUtil.formatTime(throttle.getDelay(), 2, true));
   sb.append(" bw=");
   sb.append(throttle.getRate());
   sb.append("B/sec");
   return sb.toString();
 }
 /** Persist the throttle data to a SimpleFieldSet. */
 SimpleFieldSet persistToFieldSet() {
   SimpleFieldSet fs = new SimpleFieldSet(false);
   fs.put("ThrottleWindow", throttleWindowBulk.exportFieldSet(false));
   fs.put("ThrottleWindowRT", throttleWindowRT.exportFieldSet(false));
   fs.put("ThrottleWindowCHK", throttleWindowCHK.exportFieldSet(false));
   fs.put("ThrottleWindowSSK", throttleWindowCHK.exportFieldSet(false));
   fs.put("CHKRequestThrottle", chkRequestThrottleBulk.exportFieldSet());
   fs.put("SSKRequestThrottle", sskRequestThrottleBulk.exportFieldSet());
   fs.put("CHKInsertThrottle", chkInsertThrottleBulk.exportFieldSet());
   fs.put("SSKInsertThrottle", sskInsertThrottleBulk.exportFieldSet());
   fs.put("CHKRequestThrottleRT", chkRequestThrottleRT.exportFieldSet());
   fs.put("SSKRequestThrottleRT", sskRequestThrottleRT.exportFieldSet());
   fs.put("CHKInsertThrottleRT", chkInsertThrottleRT.exportFieldSet());
   fs.put("SSKInsertThrottleRT", sskInsertThrottleRT.exportFieldSet());
   return fs;
 }