@IgniteSpiMultipleInstancesSupport(value=true) public class S3CheckpointSpi extends IgniteSpiAdapter implements CheckpointSpi, S3CheckpointSpiMBean
For information about Amazon S3 visit aws.amazon.com.
S3CheckpointSpi
can be configured as follows:
GridConfiguration cfg = new GridConfiguration(); S3CheckpointSpi spi = new S3CheckpointSpi(); AWSCredentials cred = new BasicAWSCredentials(YOUR_ACCESS_KEY_ID, YOUR_SECRET_ACCESS_KEY); spi.setAwsCredentials(cred); spi.setBucketNameSuffix("checkpoints"); // Override default checkpoint SPI. cfg.setCheckpointSpi(cpSpi); // Start grid. G.start(cfg);
S3CheckpointSpi
can be configured from Spring XML configuration file:
<bean id="grid.custom.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" singleton="true"> ... <property name="checkpointSpi"> <bean class="org.apache.ignite.spi.checkpoint.s3.S3CheckpointSpi"> <property name="awsCredentials"> <bean class="com.amazonaws.auth.BasicAWSCredentials"> <constructor-arg value="YOUR_ACCESS_KEY_ID" /> <constructor-arg value="YOUR_SECRET_ACCESS_KEY" /> </bean> </property> </bean> </property> ... </bean>
Note that storing data in AWS S3 service will result in charges to your AWS account.
Choose another implementation of CheckpointSpi
for local or
home network tests.
For information about Spring framework visit www.springframework.org
CheckpointSpi
Modifier and Type | Field and Description |
---|---|
static String |
BUCKET_NAME_PREFIX
Prefix to use in bucket name generation.
|
static String |
DFLT_BUCKET_NAME_SUFFIX
Suffix to use in bucket name generation.
|
Constructor and Description |
---|
S3CheckpointSpi() |
Modifier and Type | Method and Description |
---|---|
String |
getAccessKey()
Gets S3 access key.
|
String |
getBucketName()
Gets S3 bucket name to use.
|
String |
getProxyHost()
Gets HTTP proxy host.
|
String |
getProxyPassword()
Gets HTTP proxy password.
|
int |
getProxyPort()
Gets HTTP proxy port.
|
String |
getProxyUsername()
Gets HTTP proxy user name.
|
String |
getSecretAccessKey()
Gets S3 secret key.
|
byte[] |
loadCheckpoint(String key)
Loads checkpoint from storage by its unique key.
|
boolean |
removeCheckpoint(String key)
This method instructs the checkpoint provider to clean saved data for a
given
key . |
boolean |
saveCheckpoint(String key,
byte[] state,
long timeout,
boolean overwrite)
Saves checkpoint to the storage.
|
void |
setAwsCredentials(com.amazonaws.auth.AWSCredentials cred)
Sets AWS credentials.
|
void |
setBucketNameSuffix(String bucketNameSuffix)
Sets bucket name suffix.
|
void |
setCheckpointListener(CheckpointListener lsnr)
Sets the checkpoint listener.
|
void |
setClientConfiguration(com.amazonaws.ClientConfiguration cfg)
Sets Amazon client configuration.
|
void |
spiStart(String gridName)
This method is called to start SPI.
|
void |
spiStop()
This method is called to stop SPI.
|
String |
toString() |
assertParameter, checkConfigurationConsistency0, configInfo, createSpiAttributeName, getConsistentAttributeNames, getIgniteHome, getLocalNodeId, getName, getNodeAttributes, getSpiContext, getStartTimestamp, getStartTimestampFormatted, getUpTime, getUpTimeFormatted, injectables, onContextDestroyed, onContextDestroyed0, onContextInitialized, onContextInitialized0, registerMBean, setName, startInfo, startStopwatch, stopInfo, unregisterMBean
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getName, getNodeAttributes, onContextDestroyed, onContextInitialized
getIgniteHome, getLocalNodeId, getName, getStartTimestamp, getStartTimestampFormatted, getUpTime, getUpTimeFormatted
public static final String BUCKET_NAME_PREFIX
public static final String DFLT_BUCKET_NAME_SUFFIX
public String getBucketName()
getBucketName
in interface S3CheckpointSpiMBean
public String getAccessKey()
getAccessKey
in interface S3CheckpointSpiMBean
public String getSecretAccessKey()
public String getProxyHost()
getProxyHost
in interface S3CheckpointSpiMBean
public int getProxyPort()
getProxyPort
in interface S3CheckpointSpiMBean
public String getProxyUsername()
getProxyUsername
in interface S3CheckpointSpiMBean
public String getProxyPassword()
@IgniteSpiConfiguration(optional=true) public void setBucketNameSuffix(String bucketNameSuffix)
bucketNameSuffix
- Bucket name suffix.@IgniteSpiConfiguration(optional=true) public void setClientConfiguration(com.amazonaws.ClientConfiguration cfg)
For details refer to Amazon S3 API reference.
cfg
- Amazon client configuration.@IgniteSpiConfiguration(optional=false) public void setAwsCredentials(com.amazonaws.auth.AWSCredentials cred)
For details refer to Amazon S3 API reference.
cred
- AWS credentials.public void spiStart(String gridName) throws IgniteSpiException
spiStart
in interface IgniteSpi
gridName
- 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 IgniteSpi
IgniteSpiException
- Thrown in case of any error during SPI stop.public byte[] loadCheckpoint(String key) throws IgniteSpiException
loadCheckpoint
in interface CheckpointSpi
key
- Checkpoint key.null
if there is no data for a given
key.IgniteSpiException
- Thrown in case of any error while loading
checkpoint data. Note that in case when given key
is not
found this method will return null
.public boolean saveCheckpoint(String key, byte[] state, long timeout, boolean overwrite) throws IgniteSpiException
saveCheckpoint
in interface CheckpointSpi
key
- Checkpoint unique key.state
- Saved data.timeout
- Every intermediate data stored by checkpoint provider
should have a timeout. Timeout allows for effective resource
management by checkpoint provider by cleaning saved data that are not
needed anymore. Generally, the user should choose the minimum
possible timeout to avoid long-term resource acquisition by checkpoint
provider. Value 0
means that timeout will never expire.overwrite
- Whether or not overwrite checkpoint if it already exists.true
if checkpoint has been actually saved, false
otherwise.IgniteSpiException
- Thrown in case of any error while saving
checkpoint data.public boolean removeCheckpoint(String key)
key
.removeCheckpoint
in interface CheckpointSpi
key
- Key for the checkpoint to remove.true
if data has been actually removed, false
otherwise.public void setCheckpointListener(CheckpointListener lsnr)
setCheckpointListener
in interface CheckpointSpi
lsnr
- The listener to set or null
.
Follow @ApacheIgnite
Apache Ignite Fabric : ver. 1.0.0-RC1 Release Date : February 16 2015