docs: public int writeAuxiliaryDepTables() {
          final String methodName = "writeAuxiliaryDepTables()";
          this.numDepIdsInAuxTable = 0;
          this.numTemplatesInAuxTable = 0;
          this.numCacheIdsInDepIdAuxTable = 0;
          this.numCacheIdsInTemplateAuxTable = 0;
          this.numExplicitBufferLimitOnStop = 0;
          int returnCode = NO_EXCEPTION;
          if (this.cod.valueSet == null) {
              this.cod.valueSet = new ValueSet(16);
          }
          if (delayOffload) {
              long start = System.nanoTime();
              if (!this.disableDependencyId) {
                  if (!auxDataDependencyTable.isEmpty()) {
                      Enumeration e = auxDataDependencyTable.getKeys();
                      while (e.hasMoreElements()) {
                          Object id = e.nextElement();
                          if (auxDataDependencyTable.isUpdated(id)) {
                              ValueSet valueSet = auxDataDependencyTable.getEntries(id);
                              if (valueSet != null && valueSet.size() > 0) {
                                  this.numCacheIdsInDepIdAuxTable += valueSet.size();
                              }
                              returnCode = writeValueSet(DEP_ID_DATA, id, valueSet, ALL); // valueSet may be empty after writeValueSet
                              this.cache.getCacheStatisticsListener().depIdsOffloadedToDisk(id);
                              if (returnCode == DISK_EXCEPTION) {
                                  return returnCode;
                              }
                              if (returnCode == DISK_SIZE_OVER_LIMIT_EXCEPTION) {
                                  int size = valueSet.size();
                                  if (tc.isDebugEnabled())
                                      Tr.debug(tc, methodName, "cacheName=" + this.cacheName + " depid=" + id + " disk overflow size=" + size);
                                  if (size > 0) {
                                      this.cod.valueSet.union(valueSet);
                                  }
                              }
                              this.numDepIdsInAuxTable++;
                          }
                      }
                      auxDataDependencyTable.clear();
                  }
              }
              if (!this.disableTemplatesSupport) {
                  if (!auxTemplateDependencyTable.isEmpty()) {
                      Enumeration e = auxTemplateDependencyTable.getKeys();
                      while (e.hasMoreElements()) {
                          Object template = e.nextElement();
                          if (auxTemplateDependencyTable.isUpdated(template)) {
                              ValueSet valueSet = auxTemplateDependencyTable.getEntries(template);
                              if (valueSet != null && valueSet.size() > 0) {
                                  this.numCacheIdsInTemplateAuxTable += valueSet.size();
                              }
                              returnCode = writeValueSet(TEMPLATE_ID_DATA, template, valueSet, ALL); // valueSet may be empty after writeValueSet
                              this.cache.getCacheStatisticsListener().templatesOffloadedToDisk(template);
                              if (returnCode == DISK_EXCEPTION) {
                                  return returnCode;
                              }
                              if (returnCode == DISK_SIZE_OVER_LIMIT_EXCEPTION) {
                                  int size = valueSet.size();
                                  if (tc.isDebugEnabled())
                                      Tr.debug(tc, methodName, "cacheName=" + this.cacheName + " template=" + template + " disk overflow size=" + size);
                                  if (size > 0) {
                                      this.cod.valueSet.union(valueSet);
                                  }
                              }
                              this.numTemplatesInAuxTable++;
                          }
                      }
                      auxTemplateDependencyTable.clear();
                  }
              }
              this.timeElapsedWriteAuxTables = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
  
              if (this.cod.valueSet != null && this.cod.valueSet.size() > 0) {
                  this.numExplicitBufferLimitOnStop = this.cod.valueSet.size();
                  if (this.cod.explicitBufferLimitOnStop > 0 && this.cod.valueSet.size() > this.cod.explicitBufferLimitOnStop) {
                      this.deleteDiskFiles = true;
                  } else {
                      this.cod.createInvalidationFile();
                  }
                  this.cod.valueSet.clear();
                  this.cod.valueSet = null;
              }
          }
          return returnCode;
      }