Class MigrateWorker

java.lang.Object
de.bsvrz.ars.migration.MigrateWorker
All Implemented Interfaces:
de.bsvrz.ars.ars.persistence.ContainerCreator, de.bsvrz.ars.ars.persistence.DataIdentificationManager

public class MigrateWorker extends Object implements de.bsvrz.ars.ars.persistence.ContainerCreator
Diese Klasse führt die eigentliche Migration durch
  • Constructor Summary

    Constructors
    Constructor
    Description
    MigrateWorker(de.bsvrz.ars.ars.persistence.directories.PersistenceDirectory srcDir, Path target, int numThreads, com.google.common.collect.Range<Instant> archiveTimeRange, BackupImplementation backupImplementation)
    Erstellt einen neuen MigrateWorker.
  • Method Summary

    Modifier and Type
    Method
    Description
    de.bsvrz.ars.ars.mgmt.datatree.DataIdentTree
     
    boolean
    isEmpty(Path path)
    Prüft, ob ein Verzeichnis leer ist
    de.bsvrz.ars.ars.mgmt.datatree.synchronization.SyncKey<de.bsvrz.ars.ars.persistence.IdDataIdentification>
    lockIndex(de.bsvrz.ars.ars.persistence.IdDataIdentification dataIdentification)
     
    long
    Gibt die nächste freie Container-ID zurück
    void
    Führt die Migration durch.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface de.bsvrz.ars.ars.persistence.ContainerCreator

    getCloseThreadCount

    Methods inherited from interface de.bsvrz.ars.ars.persistence.DataIdentificationManager

    formatContainerDirectory, formatObj, getIndexCacheMaxSize, lockIndex, shouldDeleteBrokenContainers
  • Constructor Details

    • MigrateWorker

      public MigrateWorker(de.bsvrz.ars.ars.persistence.directories.PersistenceDirectory srcDir, Path target, int numThreads, com.google.common.collect.Range<Instant> archiveTimeRange, BackupImplementation backupImplementation)
      Erstellt einen neuen MigrateWorker.
      Parameters:
      srcDir - Altes Persistenzverzeichnis
      target - Zielverzeichnis
      numThreads - Anzahl Threads für Migration
      archiveTimeRange - Archivzeitbereich, der Migriert werden soll
      backupImplementation - Optionale Implementierung des Backup-Moduls, falls ausgelagerte Dateien während der Migration wieder eingelagert werden sollen.
  • Method Details

    • isEmpty

      public boolean isEmpty(Path path)
      Prüft, ob ein Verzeichnis leer ist
      Parameters:
      path - Verzeichnis
      Returns:
      true: leer, false: kein Verzeichnis oder nicht leer oder anderer Fehler
    • start

      public void start() throws de.bsvrz.ars.ars.persistence.PersistenceException
      Führt die Migration durch.
      Throws:
      de.bsvrz.ars.ars.persistence.PersistenceException - Fehler beim Lesen oder Schreiben
    • nextContainerID

      public long nextContainerID()
      Gibt die nächste freie Container-ID zurück
      Specified by:
      nextContainerID in interface de.bsvrz.ars.ars.persistence.ContainerCreator
      Returns:
      Container-ID
    • lockIndex

      public de.bsvrz.ars.ars.mgmt.datatree.synchronization.SyncKey<de.bsvrz.ars.ars.persistence.IdDataIdentification> lockIndex(de.bsvrz.ars.ars.persistence.IdDataIdentification dataIdentification)
      Specified by:
      lockIndex in interface de.bsvrz.ars.ars.persistence.DataIdentificationManager
    • getDataIdentTree

      public de.bsvrz.ars.ars.mgmt.datatree.DataIdentTree getDataIdentTree()
      Specified by:
      getDataIdentTree in interface de.bsvrz.ars.ars.persistence.ContainerCreator