org.apache.ignite.configuration

## Class FileSystemConfiguration

- java.lang.Object
- - org.apache.ignite.configuration.FileSystemConfiguration

    public class FileSystemConfiguration
    extends Object

`IGFS` configuration. More than one file system can be configured within grid. `IGFS` configuration is provided via `IgniteConfiguration.getFileSystemConfiguration()` method.

### Field Summary

Fields
`static int` `DFLT_BLOCK_SIZE` Default file's data block size (bytes).
`static int` `DFLT_BUF_SIZE` Default read/write buffers size (bytes).
`static int` `DFLT_FRAGMENTIZER_CONCURRENT_FILES` Default fragmentizer concurrent files.
`static boolean` `DFLT_FRAGMENTIZER_ENABLED` Fragmentizer enabled property.
`static float` `DFLT_FRAGMENTIZER_LOCAL_WRITES_RATIO` Default fragmentizer local writes ratio.
`static long` `DFLT_FRAGMENTIZER_THROTTLING_BLOCK_LENGTH` Default fragmentizer throttling block length.
`static long` `DFLT_FRAGMENTIZER_THROTTLING_DELAY` Default fragmentizer throttling delay.
`static int` `DFLT_IGFS_LOG_BATCH_SIZE` Default batch size for logging.
`static String` `DFLT_IGFS_LOG_DIR` Default `IGFS` log directory.
`static boolean` `DFLT_IPC_ENDPOINT_ENABLED` Default IPC endpoint enabled flag.
`static int` `DFLT_MGMT_PORT` Default management port.
`static IgfsMode` `DFLT_MODE` Default IGFS mode.
`static int` `DFLT_PER_NODE_BATCH_SIZE` Default per node buffer size.
`static int` `DFLT_PER_NODE_PARALLEL_BATCH_CNT` Default number of per node parallel operations.
`static long` `DFLT_TRASH_PURGE_TIMEOUT` Default trash directory purge await timeout in case data cache oversize is detected.
`static String` `DFLT_USER_NAME` Default file system user name.

### Constructor Summary

Constructors
Constructor and Description
`FileSystemConfiguration()` Constructs default configuration.
`FileSystemConfiguration(FileSystemConfiguration cfg)` Constructs the copy of the configuration.

### Method Summary

Methods
`int` `getBlockSize()` Get file's data block size.
`String` `getDataCacheName()` Cache name to store IGFS data.
`IgfsMode` `getDefaultMode()` Gets mode to specify how `IGFS` interacts with Hadoop file system, like `HDFS`.
`long` `getDualModeMaxPendingPutsSize()` Get maximum amount of pending data read from the secondary file system and waiting to be written to data cache.
`ExecutorService` `getDualModePutExecutorService()` Get DUAL mode put operation executor service.
`boolean` `getDualModePutExecutorServiceShutdown()` Get DUAL mode put operation executor service shutdown flag.
`int` `getFragmentizerConcurrentFiles()` Gets number of files that can be processed by fragmentizer concurrently.
`float` `getFragmentizerLocalWritesRatio()` Gets amount of local memory (in % of local IGFS max space size) available for local writes during file creation.
`long` `getFragmentizerThrottlingBlockLength()` Gets the length of file chunk to send before delaying the fragmentizer.
`long` `getFragmentizerThrottlingDelay()` Gets throttle delay for fragmentizer.
`IgfsIpcEndpointConfiguration` `getIpcEndpointConfiguration()` Gets IPC endpoint configuration.
`int` `getManagementPort()` Gets port number for management endpoint.
`long` `getMaximumTaskRangeLength()` Get maximum default range size of a file being split during IGFS task execution.
`long` `getMaxSpaceSize()` Get maximum space available for data cache to store file system entries.
`String` `getMetaCacheName()` Cache name to store IGFS meta information.
`String` `getName()` Gets IGFS instance name.
`Map<String,IgfsMode>` `getPathModes()` Gets map of path prefixes to `IGFS` modes used for them.
`int` `getPerNodeBatchSize()` Gets number of file blocks buffered on local node before sending batch to remote node.
`int` `getPerNodeParallelBatchCount()` Gets number of batches that can be concurrently sent to remote node.
`int` `getPrefetchBlocks()` Get number of pre-fetched blocks if specific file's chunk is requested.
`IgfsSecondaryFileSystem` `getSecondaryFileSystem()` Gets the secondary file system.
`int` `getSequentialReadsBeforePrefetch()` Get amount of sequential block reads before prefetch is triggered.
`int` `getStreamBufferSize()` Get read/write buffer size for `IGFS` stream operations in bytes.
`long` `getTrashPurgeTimeout()` Gets maximum timeout awaiting for trash purging in case data cache oversize is detected.
`boolean` `isFragmentizerEnabled()` Gets flag indicating whether IGFS fragmentizer is enabled.
`boolean` `isIpcEndpointEnabled()` Get IPC endpoint enabled flag.
`void` `setBlockSize(int blockSize)` Sets file's data block size.
`void` `setDataCacheName(String dataCacheName)` Sets cache name to store IGFS data.
`void` `setDefaultMode(IgfsMode dfltMode)` Sets `IGFS` mode to specify how it should interact with secondary Hadoop file system, like `HDFS`.
`void` `setDualModeMaxPendingPutsSize(long dualModeMaxPendingPutsSize)` Set maximum amount of data in pending put operations.
`void` `setDualModePutExecutorService(ExecutorService dualModePutExec)` Set DUAL mode put operations executor service.
`void` `setDualModePutExecutorServiceShutdown(boolean dualModePutExecShutdown)` Set DUAL mode put operations executor service shutdown flag.
`void` `setFragmentizerConcurrentFiles(int fragmentizerConcurrentFiles)` Sets number of files to process concurrently by fragmentizer.
`void` `setFragmentizerEnabled(boolean fragmentizerEnabled)` Sets property indicating whether fragmentizer is enabled.
`void` `setFragmentizerLocalWritesRatio(float fragmentizerLocWritesRatio)` Sets ratio for space available for local file writes.
`void` `setFragmentizerThrottlingBlockLength(long fragmentizerThrottlingBlockLen)` Sets length of file chunk to transmit before throttling is delayed.
`void` `setFragmentizerThrottlingDelay(long fragmentizerThrottlingDelay)` Sets delay in milliseconds for which fragmentizer is paused.
`void` `setIpcEndpointConfiguration(IgfsIpcEndpointConfiguration ipcEndpointCfg)` Sets IPC endpoint configuration.
`void` `setIpcEndpointEnabled(boolean ipcEndpointEnabled)` Set IPC endpoint enabled flag.
`void` `setManagementPort(int mgmtPort)` Sets management endpoint port.
`void` `setMaximumTaskRangeLength(long maxTaskRangeLen)` Set maximum default range size of a file being split during IGFS task execution.
`void` `setMaxSpaceSize(long maxSpace)` Set maximum space in bytes available in data cache.
`void` `setMetaCacheName(String metaCacheName)` Sets cache name to store IGFS meta information.
`void` `setName(String name)` Sets IGFS instance name.
`void` `setPathModes(Map<String,IgfsMode> pathModes)` Sets map of path prefixes to `IGFS` modes used for them.
`void` `setPerNodeBatchSize(int perNodeBatchSize)` Sets number of file blocks collected on local node before sending batch to remote node.
`void` `setPerNodeParallelBatchCount(int perNodeParallelBatchCnt)` Sets number of file block batches that can be concurrently sent to remote node.
`void` `setPrefetchBlocks(int prefetchBlocks)` Sets the number of pre-fetched blocks if specific file's chunk is requested.
`void` `setSecondaryFileSystem(IgfsSecondaryFileSystem fileSystem)` Sets the secondary file system.
`void` `setSequentialReadsBeforePrefetch(int seqReadsBeforePrefetch)` Sets amount of sequential block reads before prefetch is triggered.
`void` `setStreamBufferSize(int bufSize)` Sets read/write buffers size for `IGFS` stream operations (bytes).
`void` `setTrashPurgeTimeout(long trashPurgeTimeout)` Sets maximum timeout awaiting for trash purging in case data cache oversize is detected.
`String` `toString()`

### Methods inherited from class java.lang.Object

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

### Field Detail

#### DFLT_USER_NAME

    public static final String DFLT_USER_NAME

Default file system user name.

#### DFLT_FRAGMENTIZER_THROTTLING_BLOCK_LENGTH

    public static final long DFLT_FRAGMENTIZER_THROTTLING_BLOCK_LENGTH

Default fragmentizer throttling block length.

See Also:
  Constant Field Values

#### DFLT_FRAGMENTIZER_THROTTLING_DELAY

    public static final long DFLT_FRAGMENTIZER_THROTTLING_DELAY

Default fragmentizer throttling delay.

See Also:
  Constant Field Values

#### DFLT_FRAGMENTIZER_CONCURRENT_FILES

    public static final int DFLT_FRAGMENTIZER_CONCURRENT_FILES

Default fragmentizer concurrent files.

See Also:
  Constant Field Values

#### DFLT_FRAGMENTIZER_LOCAL_WRITES_RATIO

    public static final float DFLT_FRAGMENTIZER_LOCAL_WRITES_RATIO

Default fragmentizer local writes ratio.

See Also:
  Constant Field Values

#### DFLT_FRAGMENTIZER_ENABLED

    public static final boolean DFLT_FRAGMENTIZER_ENABLED

Fragmentizer enabled property.

See Also:
  Constant Field Values

#### DFLT_IGFS_LOG_BATCH_SIZE

    public static final int DFLT_IGFS_LOG_BATCH_SIZE

Default batch size for logging.

See Also:
  Constant Field Values

#### DFLT_IGFS_LOG_DIR

    public static final String DFLT_IGFS_LOG_DIR

Default `IGFS` log directory.

See Also:
  Constant Field Values

#### DFLT_PER_NODE_BATCH_SIZE

    public static final int DFLT_PER_NODE_BATCH_SIZE

Default per node buffer size.

See Also:
  Constant Field Values

#### DFLT_PER_NODE_PARALLEL_BATCH_CNT

    public static final int DFLT_PER_NODE_PARALLEL_BATCH_CNT

Default number of per node parallel operations.

See Also:
  Constant Field Values

#### DFLT_MODE

    public static final IgfsMode DFLT_MODE

Default IGFS mode.

#### DFLT_BLOCK_SIZE

    public static final int DFLT_BLOCK_SIZE

Default file's data block size (bytes).

See Also:
  Constant Field Values

#### DFLT_BUF_SIZE

    public static final int DFLT_BUF_SIZE

Default read/write buffers size (bytes).

See Also:
  Constant Field Values

#### DFLT_TRASH_PURGE_TIMEOUT

    public static final long DFLT_TRASH_PURGE_TIMEOUT

Default trash directory purge await timeout in case data cache oversize is detected.

See Also:
  Constant Field Values

#### DFLT_MGMT_PORT

    public static final int DFLT_MGMT_PORT

Default management port.

See Also:
  Constant Field Values

#### DFLT_IPC_ENDPOINT_ENABLED

    public static final boolean DFLT_IPC_ENDPOINT_ENABLED

Default IPC endpoint enabled flag.

See Also:
  Constant Field Values

### Constructor Detail

#### FileSystemConfiguration

    public FileSystemConfiguration()

Constructs default configuration.

#### FileSystemConfiguration

    public FileSystemConfiguration(FileSystemConfiguration cfg)

Constructs the copy of the configuration.

Parameters:
  `cfg` - Configuration to copy.

### Method Detail

#### getName

    @Nullable
    public String getName()

Gets IGFS instance name. If `null`, then instance with default name will be used.

Returns:
  IGFS instance name.

#### setName

    public void setName(String name)

Sets IGFS instance name.

Parameters:
  `name` - IGFS instance name.

#### getMetaCacheName

    @Nullable
    public String getMetaCacheName()

Cache name to store IGFS meta information. If `null`, then instance with default meta-cache name will be used.

Returns:
  Cache name to store IGFS meta information.

#### setMetaCacheName

    public void setMetaCacheName(String metaCacheName)

Sets cache name to store IGFS meta information.

Parameters:
  `metaCacheName` - Cache name to store IGFS meta information.

#### getDataCacheName

    @Nullable
    public String getDataCacheName()

Cache name to store IGFS data.

Returns:
  Cache name to store IGFS data.

#### setDataCacheName

    public void setDataCacheName(String dataCacheName)

Sets cache name to store IGFS data.

Parameters:
  `dataCacheName` - Cache name to store IGFS data.

#### getBlockSize

    public int getBlockSize()

Get file's data block size.

Returns:
  File's data block size.

#### setBlockSize

    public void setBlockSize(int blockSize)

Sets file's data block size.

Parameters:
  `blockSize` - File's data block size (bytes) or `0` to reset default value.

#### getPrefetchBlocks

    public int getPrefetchBlocks()

Get number of pre-fetched blocks if specific file's chunk is requested.

Returns:
  The number of pre-fetched blocks.

#### setPrefetchBlocks

    public void setPrefetchBlocks(int prefetchBlocks)

Sets the number of pre-fetched blocks if specific file's chunk is requested.

Parameters:
  `prefetchBlocks` - New number of pre-fetched blocks.

#### getSequentialReadsBeforePrefetch

    public int getSequentialReadsBeforePrefetch()

Get amount of sequential block reads before prefetch is triggered. The higher this value, the longer IGFS will wait before starting to prefetch values ahead of time. Depending on the use case, this can either help or hurt performance.

Default is `0` which means that pre-fetching will start right away.

# Integration With Hadoop

This parameter can be also overridden for individual Hadoop MapReduce tasks by passing `fs.igfs.[name].open.sequential_reads_before_prefetch` configuration property directly to Hadoop MapReduce task.

NOTE: Integration with Hadoop is available only in `In-Memory Accelerator For Hadoop` edition.

Returns:
  Amount of sequential block reads.

#### setSequentialReadsBeforePrefetch

    public void setSequentialReadsBeforePrefetch(int seqReadsBeforePrefetch)

Sets amount of sequential block reads before prefetch is triggered. The higher this value, the longer IGFS will wait before starting to prefetch values ahead of time. Depending on the use case, this can either help or hurt performance.

Default is `0` which means that pre-fetching will start right away.

# Integration With Hadoop

This parameter can be also overridden for individual Hadoop MapReduce tasks by passing `fs.igfs.[name].open.sequential_reads_before_prefetch` configuration property directly to Hadoop MapReduce task.

NOTE: Integration with Hadoop is available only in `In-Memory Accelerator For Hadoop` edition.

Parameters:
  `seqReadsBeforePrefetch` - Amount of sequential block reads before prefetch is triggered.

#### getStreamBufferSize

    public int getStreamBufferSize()

Get read/write buffer size for `IGFS` stream operations in bytes.

Returns:
  Read/write buffers size (bytes).

#### setStreamBufferSize

    public void setStreamBufferSize(int bufSize)

Sets read/write buffers size for `IGFS` stream operations (bytes).

Parameters:
  `bufSize` - Read/write buffers size for stream operations (bytes) or `0` to reset default value.

#### getPerNodeBatchSize

    public int getPerNodeBatchSize()

Gets number of file blocks buffered on local node before sending batch to remote node.

Returns:
  Per node buffer size.

#### setPerNodeBatchSize

    public void setPerNodeBatchSize(int perNodeBatchSize)

Sets number of file blocks collected on local node before sending batch to remote node.

Parameters:
  `perNodeBatchSize` - Per node buffer size.

#### getPerNodeParallelBatchCount

    public int getPerNodeParallelBatchCount()

Gets number of batches that can be concurrently sent to remote node.

Returns:
  Number of batches for each node.

#### setPerNodeParallelBatchCount

    public void setPerNodeParallelBatchCount(int perNodeParallelBatchCnt)

Sets number of file block batches that can be concurrently sent to remote node.

Parameters:
  `perNodeParallelBatchCnt` - Per node parallel load operations.

#### getIpcEndpointConfiguration

    @Nullable
    public IgfsIpcEndpointConfiguration getIpcEndpointConfiguration()

Gets IPC endpoint configuration.

Endpoint is needed for communication between IGFS and `IgniteHadoopFileSystem` shipped with Ignite Hadoop Accelerator.

Returns:
  IPC endpoint configuration.

#### setIpcEndpointConfiguration

    public void setIpcEndpointConfiguration(@Nullable
                                   IgfsIpcEndpointConfiguration ipcEndpointCfg)

Sets IPC endpoint configuration.

Endpoint is needed for communication between IGFS and `IgniteHadoopFileSystem` shipped with Ignite Hadoop Accelerator.

Parameters:
  `ipcEndpointCfg` - IPC endpoint configuration.

#### isIpcEndpointEnabled

    public boolean isIpcEndpointEnabled()

Get IPC endpoint enabled flag. In case it is set to `true` endpoint will be created and bound to specific port. Otherwise endpoint will not be created. Default value is `DFLT_IPC_ENDPOINT_ENABLED`.

Endpoint is needed for communication between IGFS and `IgniteHadoopFileSystem` shipped with Ignite Hadoop Accelerator.

Returns:
  `True` in case endpoint is enabled.

#### setIpcEndpointEnabled

    public void setIpcEndpointEnabled(boolean ipcEndpointEnabled)

Set IPC endpoint enabled flag. See `isIpcEndpointEnabled()`.

Endpoint is needed for communication between IGFS and `IgniteHadoopFileSystem` shipped with Ignite Hadoop Accelerator.

Parameters:
  `ipcEndpointEnabled` - IPC endpoint enabled flag.

#### getManagementPort

    public int getManagementPort()

Gets port number for management endpoint. All IGFS nodes should have this port open for Visor Management Console to work with IGFS.

Default value is `DFLT_MGMT_PORT`

Returns:
  Port number or `-1` if management endpoint should be disabled.

#### setManagementPort

    public void setManagementPort(int mgmtPort)

Sets management endpoint port.

Parameters:
  `mgmtPort` - port number or `-1` to disable management endpoint.

#### getDefaultMode

    public IgfsMode getDefaultMode()

Gets mode to specify how `IGFS` interacts with Hadoop file system, like `HDFS`. Secondary Hadoop file system is provided for pass-through, write-through, and read-through purposes.

Default mode is `IgfsMode.DUAL_ASYNC`. If secondary Hadoop file system is not configured, this mode will work just like `IgfsMode.PRIMARY` mode.

Returns:
  Mode to specify how IGFS interacts with secondary HDFS file system.

#### setDefaultMode

    public void setDefaultMode(IgfsMode dfltMode)

Sets `IGFS` mode to specify how it should interact with secondary Hadoop file system, like `HDFS`. Secondary Hadoop file system is provided for pass-through, write-through, and read-through purposes.

Parameters:
  `dfltMode` - `IGFS` mode.

#### getSecondaryFileSystem

    public IgfsSecondaryFileSystem getSecondaryFileSystem()

Gets the secondary file system. Secondary file system is provided for pass-through, write-through, and read-through purposes.

Returns:
  Secondary file system.

#### setSecondaryFileSystem

    public void setSecondaryFileSystem(IgfsSecondaryFileSystem fileSystem)

Sets the secondary file system. Secondary file system is provided for pass-through, write-through, and read-through purposes.

Parameters:
  `fileSystem` -

#### getPathModes

    @Nullable
    public Map<String,IgfsMode> getPathModes()

Gets map of path prefixes to `IGFS` modes used for them.

If path doesn't correspond to any specified prefix or mappings are not provided, then `getDefaultMode()` is used.

Several folders under `'/apache/ignite'` folder have predefined mappings which cannot be overridden.

`/apache/ignite/primary` and all it's sub-folders will always work in `PRIMARY` mode.

And in case secondary file system URI is provided:

`/apache/ignite/proxy` and all it's sub-folders will always work in `PROXY` mode.
`/apache/ignite/sync` and all it's sub-folders will always work in `DUAL_SYNC` mode.
`/apache/ignite/async` and all it's sub-folders will always work in `DUAL_ASYNC` mode.

Returns:
  Map of paths to `IGFS` modes.

#### setPathModes

    public void setPathModes(Map<String,IgfsMode> pathModes)

Sets map of path prefixes to `IGFS` modes used for them.

If path doesn't correspond to any specified prefix or mappings are not provided, then `getDefaultMode()` is used.

Parameters:
  `pathModes` - Map of paths to `IGFS` modes.

#### getFragmentizerThrottlingBlockLength

    public long getFragmentizerThrottlingBlockLength()

Gets the length of file chunk to send before delaying the fragmentizer.

Returns:
  File chunk length in bytes.

#### setFragmentizerThrottlingBlockLength

    public void setFragmentizerThrottlingBlockLength(long fragmentizerThrottlingBlockLen)

Sets length of file chunk to transmit before throttling is delayed.

Parameters:
  `fragmentizerThrottlingBlockLen` - Block length in bytes.

#### getFragmentizerThrottlingDelay

    public long getFragmentizerThrottlingDelay()

Gets throttle delay for fragmentizer.

Returns:
  Throttle delay in milliseconds.

#### setFragmentizerThrottlingDelay

    public void setFragmentizerThrottlingDelay(long fragmentizerThrottlingDelay)

Sets delay in milliseconds for which fragmentizer is paused.

Parameters:
  `fragmentizerThrottlingDelay` - Delay in milliseconds.

#### getFragmentizerConcurrentFiles

    public int getFragmentizerConcurrentFiles()

Gets number of files that can be processed by fragmentizer concurrently.

Returns:
  Number of files to process concurrently.

#### setFragmentizerConcurrentFiles

    public void setFragmentizerConcurrentFiles(int fragmentizerConcurrentFiles)

Sets number of files to process concurrently by fragmentizer.

Parameters:
  `fragmentizerConcurrentFiles` - Number of files to process concurrently.

#### getFragmentizerLocalWritesRatio

    public float getFragmentizerLocalWritesRatio()

Gets amount of local memory (in % of local IGFS max space size) available for local writes during file creation.

If current IGFS space size is less than `fragmentizerLocalWritesRatio * maxSpaceSize`, then file blocks will be written to the local node first and then asynchronously distributed among cluster nodes (fragmentized).

Default value is `DFLT_FRAGMENTIZER_LOCAL_WRITES_RATIO`.

Returns:
  Ratio for local writes space.

#### setFragmentizerLocalWritesRatio

    public void setFragmentizerLocalWritesRatio(float fragmentizerLocWritesRatio)

Sets ratio for space available for local file writes.

Parameters:
  `fragmentizerLocWritesRatio` - Ratio for local file writes.
See Also:
  `getFragmentizerLocalWritesRatio()`

#### isFragmentizerEnabled

    public boolean isFragmentizerEnabled()

Gets flag indicating whether IGFS fragmentizer is enabled. If fragmentizer is disabled, files will be written in distributed fashion.

Returns:
  Flag indicating whether fragmentizer is enabled.

#### setFragmentizerEnabled

    public void setFragmentizerEnabled(boolean fragmentizerEnabled)

Sets property indicating whether fragmentizer is enabled.

Parameters:
  `fragmentizerEnabled` - `True` if fragmentizer is enabled.

#### getMaxSpaceSize

    public long getMaxSpaceSize()

Get maximum space available for data cache to store file system entries.

Returns:
  Maximum space available for data cache.

#### setMaxSpaceSize

    public void setMaxSpaceSize(long maxSpace)

Set maximum space in bytes available in data cache.

Parameters:
  `maxSpace` - Maximum space available in data cache.

#### getTrashPurgeTimeout

    public long getTrashPurgeTimeout()

Gets maximum timeout awaiting for trash purging in case data cache oversize is detected.

Returns:
  Maximum timeout awaiting for trash purging in case data cache oversize is detected.

#### setTrashPurgeTimeout

    public void setTrashPurgeTimeout(long trashPurgeTimeout)

Sets maximum timeout awaiting for trash purging in case data cache oversize is detected.

Parameters:
  `trashPurgeTimeout` - Maximum timeout awaiting for trash purging in case data cache oversize is detected.

#### getDualModePutExecutorService

    @Nullable
    public ExecutorService getDualModePutExecutorService()

Get DUAL mode put operation executor service. This executor service will process cache PUT requests for data which came from the secondary file system and about to be written to IGFS data cache. In case no executor service is provided, default one will be created with maximum amount of threads equals to amount of processor cores.

Returns:
  Get DUAL mode put operation executor service

#### setDualModePutExecutorService

    public void setDualModePutExecutorService(ExecutorService dualModePutExec)

Set DUAL mode put operations executor service.

Parameters:
  `dualModePutExec` - Dual mode put operations executor service.

#### getDualModePutExecutorServiceShutdown

    public boolean getDualModePutExecutorServiceShutdown()

Get DUAL mode put operation executor service shutdown flag.

Returns:
  DUAL mode put operation executor service shutdown flag.

#### setDualModePutExecutorServiceShutdown

    public void setDualModePutExecutorServiceShutdown(boolean dualModePutExecShutdown)

Set DUAL mode put operations executor service shutdown flag.

Parameters:
  `dualModePutExecShutdown` - Dual mode put operations executor service shutdown flag.

#### getDualModeMaxPendingPutsSize

    public long getDualModeMaxPendingPutsSize()

Get maximum amount of pending data read from the secondary file system and waiting to be written to data cache. `0` or negative value stands for unlimited size.

By default this value is set to `0`. It is recommended to set positive value in case your application performs frequent reads of large amount of data from the secondary file system in order to avoid issues with increasing GC pauses or out-of-memory error.

Returns:
  Maximum amount of pending data read from the secondary file system

#### setDualModeMaxPendingPutsSize

    public void setDualModeMaxPendingPutsSize(long dualModeMaxPendingPutsSize)

Set maximum amount of data in pending put operations.

Parameters:
  `dualModeMaxPendingPutsSize` - Maximum amount of data in pending put operations.

#### getMaximumTaskRangeLength

    public long getMaximumTaskRangeLength()

Get maximum default range size of a file being split during IGFS task execution. When IGFS task is about to be executed, it requests file block locations first. Each location is defined as `IgfsFileRange` which has length. In case this parameter is set to positive value, then IGFS will split single file range into smaller ranges with length not greater that this parameter. The only exception to this case is when maximum task range length is smaller than file block size. In this case maximum task range size will be overridden and set to file block size.

Note that this parameter is applied when task is split into jobs before `IgfsRecordResolver` is applied. Therefore, final file ranges being assigned to particular jobs could be greater than value of this parameter depending on file data layout and selected resolver type.

Setting this parameter might be useful when file is highly colocated and have very long consequent data chunks so that task execution suffers from insufficient parallelism. E.g., in case you have one IGFS node in topology and want to process 1Gb file, then only single range of length 1Gb will be returned. This will result in a single job which will be processed in one thread. But in case you provide this configuration parameter and set maximum range length to 16Mb, then 64 ranges will be returned resulting in 64 jobs which could be executed in parallel.

Note that some `IgniteFs.execute()` methods can override value of this parameter.

In case value of this parameter is set to `0` or negative value, it is simply ignored. Default value is `0`.

Returns:
  Maximum range size of a file being split during IGFS task execution.

#### setMaximumTaskRangeLength

    public void setMaximumTaskRangeLength(long maxTaskRangeLen)

Set maximum default range size of a file being split during IGFS task execution. See `getMaximumTaskRangeLength()` for more details.

Parameters:
  `maxTaskRangeLen` - Set maximum default range size of a file being split during IGFS task execution.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

2015 Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Fabric | : ver. 1.0.0
Release Date | : March 31 2015