code: public void run() {
          AbstractKVStorable[] linkData = bucket.getBackend(); // get all LinkData
  
          long startTime = System.nanoTime(); // remember the, time when synchronizing is started (for logging)
  
          log.debug("Start to synchronize {} objects.", linkData.length);
          try {
              String filename = buffer.bucketContainer.getHashFunction().getFilename(bucket.getBucketId());
              String directoryName = buffer.getPathToDbFiles();
              Synchronizer<Data> synchronizer = synchronizerFactory
                      .createSynchronizer(directoryName + "/" + filename, gp);
              synchronizer.upsert(linkData); // start synchronizing
  
              actualProcessingBuckets.remove(bucket);
              freeMemory(bucket);
              synchronizer.close();
              log.debug("Synchronized {} objects in {} ms.", linkData.length, ((System.nanoTime() - startTime) / 1e6));
              /* update messages */
              buffer.sumUpInserted(synchronizer.getNumberOfInsertedEntries());
              buffer.sumUpUpdated(synchronizer.getNumberOfUpdatedEntries());
          } catch (Exception ex) {
              log.error("An error occurred during synchronizing. Synchronizing thread stopped! Some data was lost", ex);
              freeMemory(bucket);
              actualProcessingBuckets.remove(bucket);
  
          }
      }
docs: runs synchronization of a particular {@link Bucket}