@IgniteSpiMultipleInstancesSupport(value=true) public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi, FileSwapSpaceSpiMBean
100 bytes, otherwise it will not
have any positive effect.
NOTE: This SPI does not support swap eviction currently, manual removes needed to reduce disk space consumption.
Every space has a name and when used in combination with in-memory data grid name and local node ID,
space name represents the actual cache name associated with this swap space. Default name is null
which is represented by DFLT_SPACE_NAME.
setBaseDirectory(String)).setMaximumSparsity(float)).setWriteBufferSize(int)).setMaxWriteQueueSize(int)).setReadStripesNumber(int)).
FileSwapSpaceSpi spi = new FileSwapSpaceSpi();
// Configure root folder path.
spi.setBaseDirectory("/path/to/swap/folder");
IgniteConfiguration cfg = new IgniteConfiguration();
// Override default swap space SPI.
cfg.setSwapSpaceSpi(spi);
// Starts grid.
G.start(cfg);
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" scope="singleton">
...
<property name="swapSpaceSpi">
<bean class="org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi">
<property name="baseDirectory" value="/path/to/swap/folder"/>
</bean>
</property>
...
</bean>
For information about Spring framework visit www.springframework.org
SwapSpaceSpi| Modifier and Type | Field and Description |
|---|---|
static String |
DFLT_BASE_DIR
Default base directory.
|
static int |
DFLT_BUF_SIZE
Default write buffer size in bytes.
|
static float |
DFLT_MAX_SPARSITY
Default maximum sparsity.
|
static int |
DFLT_QUE_SIZE
Default write queue size in bytes.
|
static String |
DFLT_SPACE_NAME
Name for
null space. |
gridName, ignite| Constructor and Description |
|---|
FileSwapSpaceSpi() |
| Modifier and Type | Method and Description |
|---|---|
void |
clear(String spaceName)
Entirely clears data space with given name, if any.
|
long |
count(String spaceName)
Gets number of stored entries (keys) in data space with given name.
|
long |
count(String spaceName,
Set<Integer> parts)
Gets number of stored entries (keys) in data space with given name.
|
String |
getBaseDirectory()
Gets base directory.
|
float |
getMaximumSparsity()
Gets maximum sparsity.
|
int |
getMaxWriteQueueSize()
Gets max write queue size in bytes.
|
int |
getReadStripesNumber()
Gets read pool size.
|
int |
getWriteBufferSize()
Gets write buffer size in bytes.
|
<K> IgniteSpiCloseableIterator<K> |
keyIterator(String spaceName,
SwapContext ctx)
Gets iterator over space keys.
|
Collection<Integer> |
partitions(String spaceName)
Gets partitions IDs that are stored in the passed in space.
|
IgniteSpiCloseableIterator<Map.Entry<byte[],byte[]>> |
rawIterator(String spaceName)
Gets raw iterator over space entries.
|
IgniteSpiCloseableIterator<Map.Entry<byte[],byte[]>> |
rawIterator(String spaceName,
int part)
Gets raw iterator over space entries.
|
byte[] |
read(String spaceName,
SwapKey key,
SwapContext ctx)
Reads stored value as array of bytes by key from data space with given name.
|
Map<SwapKey,byte[]> |
readAll(String spaceName,
Iterable<SwapKey> keys,
SwapContext ctx)
Reads stored values as array of bytes by all passed keys from data space with
given name.
|
void |
remove(String spaceName,
SwapKey key,
IgniteInClosure<byte[]> c,
SwapContext ctx)
Removes value stored in data space with given name corresponding to specified key.
|
void |
removeAll(String spaceName,
Collection<SwapKey> keys,
IgniteBiInClosure<SwapKey,byte[]> c,
SwapContext ctx)
Removes values stored in data space with given name corresponding to specified keys.
|
void |
setBaseDirectory(String baseDir)
Sets base directory.
|
void |
setListener(SwapSpaceSpiListener evictLsnr)
Sets eviction listener to receive notifications on evicted swap entries.
|
void |
setMaximumSparsity(float maxSparsity)
Sets maximum sparsity.
|
void |
setMaxWriteQueueSize(int maxWriteQueSize)
Sets max write queue size in bytes.
|
void |
setReadStripesNumber(int readStripesNum)
Sets read stripe size.
|
void |
setWriteBufferSize(int writeBufSize)
Sets write buffer size in bytes.
|
long |
size(String spaceName)
Gets size in bytes for data space with given name.
|
void |
spiStart(String gridName)
This method is called to start SPI.
|
void |
spiStop()
This method is called to stop SPI.
|
void |
store(String spaceName,
SwapKey key,
byte[] val,
SwapContext ctx)
Stores value as array of bytes with given key into data space with given name.
|
void |
storeAll(String spaceName,
Map<SwapKey,byte[]> pairs,
SwapContext ctx)
Stores key-value pairs (both keys and values are arrays of bytes) into data
space with given name.
|
String |
toString() |
addTimeoutObject, assertParameter, checkConfigurationConsistency0, configInfo, createSpiAttributeName, failureDetectionTimeout, failureDetectionTimeoutEnabled, failureDetectionTimeoutEnabled, getConsistentAttributeNames, getExceptionRegistry, getIgniteHome, getLocalNode, getLocalNodeId, getName, getNodeAttributes, getSpiContext, getStartTimestamp, getStartTimestampFormatted, getUpTime, getUpTimeFormatted, initFailureDetectionTimeout, injectables, injectResources, isNodeStopping, onClientDisconnected, onClientReconnected, onContextDestroyed, onContextDestroyed0, onContextInitialized, onContextInitialized0, registerMBean, removeTimeoutObject, setName, startInfo, startStopwatch, stopInfo, unregisterMBeanclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetName, getNodeAttributes, onClientDisconnected, onClientReconnected, onContextDestroyed, onContextInitializedgetIgniteHome, getLocalNodeId, getName, getStartTimestamp, getStartTimestampFormatted, getUpTime, getUpTimeFormattedpublic static final String DFLT_BASE_DIR
IGNITE_HOME/work folder
if IGNITE_HOME system or environment variable specified, otherwise it is relative to
work folder under system java.io.tmpdir folder.public static final float DFLT_MAX_SPARSITY
public static final int DFLT_BUF_SIZE
public static final int DFLT_QUE_SIZE
public static final String DFLT_SPACE_NAME
null space.public String getBaseDirectory()
getBaseDirectory in interface FileSwapSpaceSpiMBean@IgniteSpiConfiguration(optional=true) public void setBaseDirectory(String baseDir)
baseDir - Base directory.public float getMaximumSparsity()
getMaximumSparsity in interface FileSwapSpaceSpiMBeanpublic void setMaximumSparsity(float maxSparsity)
maxSparsity - Maximum sparsity. Must be between 0 and 1, default is DFLT_MAX_SPARSITY.public int getWriteBufferSize()
getWriteBufferSize in interface FileSwapSpaceSpiMBeanpublic void setWriteBufferSize(int writeBufSize)
DFLT_BUF_SIZE.writeBufSize - Write buffer size in bytes.public int getMaxWriteQueueSize()
getMaxWriteQueueSize in interface FileSwapSpaceSpiMBeanpublic void setMaxWriteQueueSize(int maxWriteQueSize)
store(String, org.apache.ignite.spi.swapspace.SwapKey, byte[], org.apache.ignite.spi.swapspace.SwapContext) operation. Default is
DFLT_QUE_SIZE.maxWriteQueSize - Max write queue size in bytes.public int getReadStripesNumber()
getReadStripesNumber in interface FileSwapSpaceSpiMBeanpublic void setReadStripesNumber(int readStripesNum)
readStripesNum - Read stripe number.public void spiStart(@Nullable
String gridName)
throws IgniteSpiException
spiStart in interface IgniteSpigridName - Name of grid instance this SPI is being started for
(null for default grid).IgniteSpiException - Throws in case of any error during SPI start.public void spiStop()
throws IgniteSpiException
Note that this method can be called at any point including during recovery of failed start. It should make no assumptions on what state SPI will be in when this method is called.
spiStop in interface IgniteSpiIgniteSpiException - Thrown in case of any error during SPI stop.public void clear(@Nullable
String spaceName)
throws IgniteSpiException
clear in interface SwapSpaceSpispaceName - Space name to clear.IgniteSpiException - In case of any errors.public long size(@Nullable
String spaceName)
throws IgniteSpiException
0.size in interface SwapSpaceSpispaceName - Space name to get size for.IgniteSpiException - In case of any errors.public long count(@Nullable
String spaceName)
throws IgniteSpiException
0.count in interface SwapSpaceSpispaceName - Space name to get number of entries for.IgniteSpiException - In case of any errors.public long count(@Nullable
String spaceName,
Set<Integer> parts)
throws IgniteSpiException
0.count in interface SwapSpaceSpispaceName - Space name to get number of entries for.parts - Partitions.IgniteSpiException - In case of any errors.@Nullable
public byte[] read(@Nullable
String spaceName,
SwapKey key,
SwapContext ctx)
throws IgniteSpiException
null.read in interface SwapSpaceSpispaceName - Name of the data space to read from.key - Key used to read value from data space.ctx - Swap context.IgniteSpiException - In case of any errors.public Map<SwapKey,byte[]> readAll(@Nullable String spaceName, Iterable<SwapKey> keys, SwapContext ctx) throws IgniteSpiException
readAll in interface SwapSpaceSpispaceName - Name of the data space to read from.keys - Keys used to read values from data space.ctx - Swap context.IgniteSpiException - In case of any errors.public void remove(@Nullable
String spaceName,
SwapKey key,
@Nullable
IgniteInClosure<byte[]> c,
SwapContext ctx)
throws IgniteSpiException
remove in interface SwapSpaceSpispaceName - Space name to remove value from.key - Key to remove value in the specified space for.c - Optional closure that takes removed value and executes after actual
removing. If there was no value in storage the closure is not executed.ctx - Swap context.IgniteSpiException - In case of any errors.public void removeAll(@Nullable
String spaceName,
Collection<SwapKey> keys,
@Nullable
IgniteBiInClosure<SwapKey,byte[]> c,
SwapContext ctx)
throws IgniteSpiException
removeAll in interface SwapSpaceSpispaceName - Space name to remove values from.keys - Keys to remove value in the specified space for.c - Optional closure that takes removed value and executes after actual
removing. If there was no value in storage the closure is not executed.ctx - Swap context.IgniteSpiException - In case of any errors.public void store(@Nullable
String spaceName,
SwapKey key,
@Nullable
byte[] val,
SwapContext ctx)
throws IgniteSpiException
store in interface SwapSpaceSpispaceName - Space name to store key-value pair into.key - Key to store given value for. This key can be used further to
read or remove stored value.val - Some value as array of bytes to store into specified data space.ctx - Swap context.IgniteSpiException - In case of any errors.public void storeAll(@Nullable
String spaceName,
Map<SwapKey,byte[]> pairs,
SwapContext ctx)
throws IgniteSpiException
storeAll in interface SwapSpaceSpispaceName - Space name to store key-value pairs into.pairs - Map of stored key-value pairs where each one is an array of bytes.ctx - Swap context.IgniteSpiException - In case of any errors.public void setListener(@Nullable
SwapSpaceSpiListener evictLsnr)
setListener in interface SwapSpaceSpievictLsnr - Eviction listener (null to stop receiving notifications).@Nullable public Collection<Integer> partitions(@Nullable String spaceName) throws IgniteSpiException
partitions in interface SwapSpaceSpispaceName - Space name.null if space is unknown.IgniteSpiException - If failed.@Nullable public <K> IgniteSpiCloseableIterator<K> keyIterator(@Nullable String spaceName, SwapContext ctx) throws IgniteSpiException
keyIterator in interface SwapSpaceSpispaceName - Space name.ctx - Swap context.null if space is unknown.IgniteSpiException - If failed.@Nullable public IgniteSpiCloseableIterator<Map.Entry<byte[],byte[]>> rawIterator(@Nullable String spaceName) throws IgniteSpiException
rawIterator in interface SwapSpaceSpispaceName - Space name.null if space is unknown.IgniteSpiException - If failed.@Nullable public IgniteSpiCloseableIterator<Map.Entry<byte[],byte[]>> rawIterator(@Nullable String spaceName, int part) throws IgniteSpiException
rawIterator in interface SwapSpaceSpispaceName - Space name.part - Partition.null if space is unknown.IgniteSpiException - If failed.
Follow @ApacheIgnite
Ignite Fabric : ver. 1.5.11 Release Date : April 8 2016