GigaSpaces XAP 9.1 API

org.openspaces.persistency.cassandra
Class CassandraSpaceDataSource

java.lang.Object
  extended by com.gigaspaces.datasource.SpaceDataSource
      extended by org.openspaces.persistency.cassandra.CassandraSpaceDataSource

public class CassandraSpaceDataSource
extends SpaceDataSource

A Cassandra implementation of SpaceDataSource.

Since:
9.1.1
Author:
Dan Kilman

Constructor Summary
CassandraSpaceDataSource(PropertyValueSerializer fixedPropertyValueSerializer, PropertyValueSerializer dynamicPropertyValueSerializer, org.apache.cassandra.cql.jdbc.CassandraDataSource cassandraDataSource, HectorCassandraClient hectorClient, int minimumNumberOfConnections, int maximumNumberOfConnections, int batchLimit)
           
 
Method Summary
 void close()
          Closes open jdbc connections and the hector client connection pool.
 Object getById(DataSourceIdQuery idQuery)
          This method is invoked whenever the space needs to read an entry from the data source according to its Id.
 DataIterator<Object> getDataIterator(DataSourceQuery query)
          This method is invoked whenever the space needs to read data which matches the provided DataSourceQuery from the space data source.
 DataIterator<Object> initialDataLoad()
          This method is invoked after SpaceDataSource.initialMetadataLoad() and is used for pre fetching data from the data source on space initialization.
 DataIterator<SpaceTypeDescriptor> initialMetadataLoad()
          This method is invoked on space initialization (before SpaceDataSource.initialDataLoad() is invoked) and is used for introducing data types kept in the data source to the space.
 boolean supportsInheritance()
          Returns false, inheritance is not supported.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CassandraSpaceDataSource

public CassandraSpaceDataSource(PropertyValueSerializer fixedPropertyValueSerializer,
                                PropertyValueSerializer dynamicPropertyValueSerializer,
                                org.apache.cassandra.cql.jdbc.CassandraDataSource cassandraDataSource,
                                HectorCassandraClient hectorClient,
                                int minimumNumberOfConnections,
                                int maximumNumberOfConnections,
                                int batchLimit)
Method Detail

close

public void close()
Closes open jdbc connections and the hector client connection pool.


getDataIterator

public DataIterator<Object> getDataIterator(DataSourceQuery query)
Description copied from class: SpaceDataSource
This method is invoked whenever the space needs to read data which matches the provided DataSourceQuery from the space data source.

If this implementation doesn't supports types inheritance this method will be invoked for each type in the inheritance tree of the queried type.

The implementation's type inheritance support can be determined by overriding the SpaceDataSource.supportsInheritance() method.

Overrides:
getDataIterator in class SpaceDataSource
Parameters:
query - The DataSourceQuery to get results for.
Returns:
A DataIterator instance contains results for the provided DataSourceQuery.

getById

public Object getById(DataSourceIdQuery idQuery)
Description copied from class: SpaceDataSource
This method is invoked whenever the space needs to read an entry from the data source according to its Id.

The returned value can be either a POJO or a SpaceDocument instance.

The default implementation of this method is delegated to the SpaceDataSource.getDataIterator(DataSourceQuery) method so if the data source does not have an optimized way of reading an entity by its Id - the default implementation may suffice.

Overrides:
getById in class SpaceDataSource
Parameters:
idQuery - The DataSourceIdQuery to get a result for.
Returns:
A result from the SpaceDataSource which matches the provided DataSourceIdQuery.

initialMetadataLoad

public DataIterator<SpaceTypeDescriptor> initialMetadataLoad()
Description copied from class: SpaceDataSource
This method is invoked on space initialization (before SpaceDataSource.initialDataLoad() is invoked) and is used for introducing data types kept in the data source to the space.

Please note that derived types should be returned after their super types from the iterator.

It is possible to create a SpaceTypeDescriptor using SpaceTypeDescriptorBuilder.

Overrides:
initialMetadataLoad in class SpaceDataSource
Returns:
A DataIterator instance which contains all SpaceTypeDescriptor instances to be introduced to the Space upon its initialization - null is treated as an empty iterator.

initialDataLoad

public DataIterator<Object> initialDataLoad()
Description copied from class: SpaceDataSource
This method is invoked after SpaceDataSource.initialMetadataLoad() and is used for pre fetching data from the data source on space initialization.

The returned DataIterator instance should contain POJOs or SpaceDocuments which their type was previously introduced to the space on SpaceDataSource.initialMetadataLoad() invocation.

Overrides:
initialDataLoad in class SpaceDataSource
Returns:
A DataIterator instance which contains all data to be written to Space upon its initialization - null is treated as an empty iterator.

supportsInheritance

public boolean supportsInheritance()
Returns false, inheritance is not supported.

Overrides:
supportsInheritance in class SpaceDataSource
Returns:
false.

GigaSpaces XAP 9.1 API

Copyright © GigaSpaces.