public interface SwapSpaceSpi extends IgniteSpi
Ignite
API swap-related methods. Logically storage is organized into
independent 'spaces' in which data is stored.
All swap space implementations can be configured to prevent infinite growth and evict oldest entries.
The default swap space SPI is FileSwapSpaceSpi
which stores values on disk in files and keeps keys in
memory.
Ignite provides the following GridSwapSpaceSpi
implementations:
FileSwapSpaceSpi
- pure Java implementation with in-memory keys. This SPI is used by default.
NoopSwapSpaceSpi
- no-op SPI mainly for testing.
NOTE: this SPI (i.e. methods in this interface) should never be used directly. SPIs provide
internal view on the subsystem and is used internally by Ignite kernal. In rare use cases when
access to a specific implementation of this SPI is required - an instance of this SPI can be obtained
via Ignite.configuration()
method to check its configuration properties or call other non-SPI
methods. Note again that calling methods from this interface on the obtained instance can lead
to undefined behavior and explicitly not supported.
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.
|
<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 |
setListener(SwapSpaceSpiListener evictLsnr)
Sets eviction listener to receive notifications on evicted swap entries.
|
long |
size(String spaceName)
Gets size in bytes for data space with given name.
|
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.
|
getName, getNodeAttributes, onContextDestroyed, onContextInitialized, spiStart, spiStop
void clear(@Nullable String spaceName) throws IgniteSpiException
spaceName
- Space name to clear.IgniteSpiException
- In case of any errors.long size(@Nullable String spaceName) throws IgniteSpiException
0
.spaceName
- Space name to get size for.IgniteSpiException
- In case of any errors.long count(@Nullable String spaceName) throws IgniteSpiException
0
.spaceName
- Space name to get number of entries for.IgniteSpiException
- In case of any errors.long count(@Nullable String spaceName, Set<Integer> parts) throws IgniteSpiException
0
.spaceName
- Space name to get number of entries for.parts
- Partitions.IgniteSpiException
- In case of any errors.@Nullable byte[] read(@Nullable String spaceName, SwapKey key, SwapContext ctx) throws IgniteSpiException
null
.spaceName
- 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.Map<SwapKey,byte[]> readAll(@Nullable String spaceName, Iterable<SwapKey> keys, SwapContext ctx) throws IgniteSpiException
spaceName
- 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.void remove(@Nullable String spaceName, SwapKey key, @Nullable IgniteInClosure<byte[]> c, SwapContext ctx) throws IgniteSpiException
spaceName
- 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.void removeAll(@Nullable String spaceName, Collection<SwapKey> keys, @Nullable IgniteBiInClosure<SwapKey,byte[]> c, SwapContext ctx) throws IgniteSpiException
spaceName
- 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.void store(@Nullable String spaceName, SwapKey key, @Nullable byte[] val, SwapContext ctx) throws IgniteSpiException
spaceName
- 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.void storeAll(@Nullable String spaceName, Map<SwapKey,byte[]> pairs, SwapContext ctx) throws IgniteSpiException
spaceName
- 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.void setListener(@Nullable SwapSpaceSpiListener evictLsnr)
evictLsnr
- Eviction listener (null
to stop receiving notifications).@Nullable Collection<Integer> partitions(@Nullable String spaceName) throws IgniteSpiException
spaceName
- Space name.null
if space is unknown.IgniteSpiException
- If failed.@Nullable <K> IgniteSpiCloseableIterator<K> keyIterator(@Nullable String spaceName, SwapContext ctx) throws IgniteSpiException
spaceName
- Space name.ctx
- Swap context.null
if space is unknown.IgniteSpiException
- If failed.@Nullable IgniteSpiCloseableIterator<Map.Entry<byte[],byte[]>> rawIterator(@Nullable String spaceName) throws IgniteSpiException
spaceName
- Space name.null
if space is unknown.IgniteSpiException
- If failed.@Nullable IgniteSpiCloseableIterator<Map.Entry<byte[],byte[]>> rawIterator(@Nullable String spaceName, int part) throws IgniteSpiException
spaceName
- Space name.part
- Partition.null
if space is unknown.IgniteSpiException
- If failed.
Follow @ApacheIgnite
Ignite Fabric : ver. 1.1.0-incubating Release Date : May 20 2015