Interface Importer

All Superinterfaces:
AutoCloseable, Closeable

@ThreadSafe public interface Importer extends Closeable
Allows to run an import. For performance reasons, imports are run without transactions.

Since import is multithreaded, implementations must be thread-safe.

  • Method Details

    • clearTree

      void clearTree(TreeName treeName) throws StorageException
      Clears the tree whose name is provided. Ensures that an empty tree with the given name exists. If the tree already exists, all the data it contains will be deleted. If not, an empty tree will be created.
      Parameters:
      treeName - name of the tree to clear
      Throws:
      StorageException - if a problem occurs with the underlying storage engine
    • put

      void put(TreeName treeName, ByteString key, ByteString value) throws StorageException
      Creates a record with the provided key and value in the tree identified by the provided name. At the end of this method, the record is visible by read(TreeName, ByteString) and openCursor(TreeName) methods of this instance. The record is guaranteed to be persisted only after close().
      Parameters:
      treeName - the tree name
      key - the new record's key
      value - the new record's value
      Throws:
      StorageException - if a problem occurs with the underlying storage engine
    • read

      ByteString read(TreeName treeName, ByteString key) throws StorageException
      Reads the record's value associated to the provided key, in the tree whose name is provided.
      Parameters:
      treeName - the tree name
      key - the record's key
      Returns:
      the record's value, or null if none exists
      Throws:
      StorageException - if a problem occurs with the underlying storage engine
    • openCursor

      Opens a cursor on the tree whose name is provided. Cursors are predictable only if there is no pending put(TreeName, ByteString, ByteString) operations. Indeed, once opened, cursors might not reflect changes.
      Parameters:
      treeName - the tree name
      Returns:
      a new cursor
      Throws:
      StorageException - if a problem occurs with the underlying storage engine
    • walk

      void walk(TreeName treeName, Executor executor, int parallelism, Importer.RecordProcessor entryProcessor) throws StorageException
      Walks the tree whose name is provided, and processes each entry with the provided entry processor. The iteration is optimized for speed. As such, the order at which entry are processed is undefined and might change between invocations.
      Parameters:
      treeName - the tree name
      executor - the executor to use for parallel processing
      parallelism - the number of parallel walker
      entryProcessor - the entry processor invoked for each entry
      Throws:
      StorageException - if a problem occurs with the underlying storage engine
    • getRequiredMemory

      long getRequiredMemory()
      Returns the memory required by this storage to run the import. This is an estimation of the memory required to run the import. Includes database cache, temporary buffers, etc.
      Returns:
      The memory required by this storage to run the import, in bytes.
    • close

      void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable