code: private void startBucketSavingThread(Map<String, String> config) {
          String delay = config.get("persistence.delay"); //$NON-NLS-1$
          if (delay == null) {
              delay = "30"; //$NON-NLS-1$
          }
          String period = config.get("persistence.period"); //$NON-NLS-1$
          if (period == null) {
              period = "60"; //$NON-NLS-1$
          }
          final long delayL = new Long(delay) * 1000L;
          final long periodL = new Long(period) * 1000L;
          
          Thread thread = new Thread(new Runnable() {
              @Override
              public void run() {
                  try { Thread.sleep(delayL); } catch (InterruptedException e) { }
                  boolean done = false;
                  while (!done) {
                      saveBuckets();
                      try { Thread.sleep(periodL); } catch (InterruptedException e) { }
                  }
              }
          });
          thread.start();
      }
docs: Save the buckets to file (persist them) from time to time.  This is done
  in a thread so that it does not impact performance of the rate limits.
  @param config