code: public long clean(final int currentRevisionIndex, final int revisionIndex)
  	{
  
  		if (first == null) {
  			return 0;
  		}
  		else if (this.set.isEmpty()) {
  			this.first = null;
  			this.size = 0;
  			return 0;
  		}
  
  		ChronoStorageBlock next, prev, current = first;
  		boolean remove;
  
  		do {
  			remove = false;
  
  			if (current.isDelivered()) {
  
  				next = current.getCounterNext();
  
  				if (next != null) {
  					if (current.getRevisionCounter() + 1 == next
  							.getRevisionCounter()) {
  						remove = true;
  					}
  				}
  
  			}
  			else if (current.getIndexNext() == null
  					&& current.getIndexPrev() == null) {
  
  				remove = (current.getRevisionIndex() < currentRevisionIndex)
  						|| (current.getRevisionIndex() == revisionIndex);
  			}
  
  			if (remove) {
  				// System.out.println("Clearn CFR : " +
  				// current.getRevisionCounter());
  
  				prev = current.getCounterPrev();
  				next = current.getCounterNext();
  
  				current.setCounterNext(null);
  				current.setCounterPrev(null);
  
  				if (prev != null) {
  					prev.setCounterNext(next);
  				}
  				if (next != null) {
  					next.setCounterPrev(prev);
  				}
  				if (current == first) {
  					this.first = next;
  				}
  
  				this.size -= current.length();
  				current = next;
  			}
  
  			if (current != null) {
  				current = current.getCounterNext();
  			}
  
  		}
  		while (current != null);
  
  		return this.size;
  	}
docs: Reduces the storage space.
  
  @param currentRevisionIndex
  index of the current revision
  @param revisionIndex
  index of the revision
  @return size of used storage