Class AzureLogStore


public class AzureLogStore extends HadoopFileSystemLogStore
LogStore implementation for Azure.

We assume the following from Azure's [[FileSystem]] implementations:

  • Rename without overwrite is atomic.
  • List-after-write is consistent.

Regarding file creation, this implementation:

  • Uses atomic rename when overwrite is false; if the destination file exists or the rename fails, throws an exception.
  • Uses create-with-overwrite when overwrite is true. This does not make the file atomically visible and therefore the caller must handle partial files.
  • Constructor Details

    • AzureLogStore

      public AzureLogStore(org.apache.hadoop.conf.Configuration hadoopConf)
  • Method Details

    • write

      public void write(org.apache.hadoop.fs.Path path, Iterator<String> actions, Boolean overwrite, org.apache.hadoop.conf.Configuration hadoopConf) throws IOException
      Description copied from class: LogStore
      :: DeveloperApi :: Write the given `actions` to the given `path` with or without overwrite as indicated. Implementation must throw FileAlreadyExistsException exception if the file already exists and overwrite = false. Furthermore, if isPartialWriteVisible returns false, implementation must ensure that the entire file is made visible atomically, that is, it should not generate partial files.
      Specified by:
      write in class LogStore
      Throws:
      IOException - if there's an issue resolving the FileSystem
      FileAlreadyExistsException - if the file already exists and overwrite is false
    • isPartialWriteVisible

      public Boolean isPartialWriteVisible(org.apache.hadoop.fs.Path path, org.apache.hadoop.conf.Configuration hadoopConf)
      Description copied from class: LogStore
      :: DeveloperApi :: Whether a partial write is visible for the underlying file system of `path`.
      Specified by:
      isPartialWriteVisible in class LogStore