I'm able to use Cassandra Together with Ignite Persistence (see the example below) usingIgnite 2.8.1. However I could not change to another keyspace which has the same tables as the keyspace initially configurfed in the ignite config file. The data changes are still stored in the old keyspace instead of the new keyspace that are in ignite config file. It's seem to me that the keyspace are cached in the Ignite native persistence layer.
How do I change the keyspaces of Cassandra? The use case is that we use Ignite as cache initially with the data stored in Cassandra. With the data increase, caching all data is impractical. So we plan to flush the data into the disk when the memory reaches the limits. We still want to store the data into Cassandra at the same time. How do we load the the existing data from Cassandra Store to Native Persistence store when switching from Ignite Cache + Cassandra Store to Ignite Cache +Ignite persistence + Cassandra Store? Here is what I did - 1) duplicated the existing tables (no data) into the another keyspace in Cassandra 2) read the data from the original keyspace with Cassndra driver. This loaded the data into 2.1) ignite cache and native persistence 2.2) store the data into the new Cassandra keyspace. it's undesirable to the store the original data back to the original keyspace. 3) change the cassandra connection setting to switch to the original keyspace because Ignite Cache and Native Persistence layer have all data from the Cassandra. 3.1) switching to the original cassandra keyspace did not take any effect. The data changes were still stored into the new keyspace. Config files 1. cassandra-connection-settings.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="loadBalancingPolicy" class="com.datastax.driver.core.policies.TokenAwarePolicy"> <constructor-arg type="com.datastax.driver.core.policies.LoadBalancingPolicy"> <bean class="com.datastax.driver.core.policies.RoundRobinPolicy"/> </constructor-arg> </bean> <bean id="reconnectionPolicy" class="com.datastax.driver.core.policies.ExponentialReconnectionPolicy"> <constructor-arg name="baseDelayMs" value="100" /> <constructor-arg name="maxDelayMs" value="6000000" /> </bean> <bean id="retryPolicy" class="com.datastax.driver.core.policies.DefaultRetryPolicy"> </bean> <bean class="org.apache.ignite.cache.store.cassandra.datasource.DataSource" name="cassandra"> <property name="contactPoints" value="127.0.0.1:9042"/> <property name="user" value="cassandra"/> <property name="password" value="cassandra"/> <property name="readConsistency" value="ONE"/> <property name="writeConsistency" value="ONE"/> <property name="loadBalancingPolicy" ref="loadBalancingPolicy"/> <property name="reconnectionPolicy" ref="reconnectionPolicy"/> <property name="retryPolicy" ref="retryPolicy"/> </bean> </beans> 2. dim_store_key_persistence.xm <persistence keyspace="ignitetest" table="dim_store"> <keyPersistence class="com.procurant.model.IdKey" strategy="POJO"> <partitionKey> <field name="id" column="id" /> </partitionKey> </keyPersistence> <valuePersistence class="com.procurant.model.DimStore" strategy="POJO" > <field name="id" column="id" /> <field name="name" column="name" /> <field name="zip" column="zip" /> <field name="addr" column="addr" /> </valuePersistence> </persistence> 3. ignite config <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="classpath:cassandra-connection-settings.xml" /> <import resource="classpath:ignite-discoverySpi-settings.xml" /> <bean id="dim_store_persistence_settings" class="org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings"> <constructor-arg type="org.springframework.core.io.Resource" value="classpath:dim_store_key_persistence.xml" /> </bean> <bean class="org.apache.ignite.configuration.IgniteConfiguration"> <property name="igniteInstanceName" value="MyCluster"/> <property name="peerClassLoadingEnabled" value="true"/> <property name="workDirectory" value="/c:/apache/data/home/work-cassandra"/> <property name="dataStorageConfiguration"> <bean class="org.apache.ignite.configuration.DataStorageConfiguration"> <property name="defaultDataRegionConfiguration"> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="name" value="Default_Region"/> <property name="initialSize" value="#{10L * 1024 * 1024}"/> <property name="maxSize" value="#{4L * 1024 * 1024 * 1024}"/> <property name="persistenceEnabled" value="true"/> </bean> </property> <property name="storagePath" value="c:/apache/data/simple-cassandra/storage"/> <property name="walFlushFrequency" value="10000"/> <property name="walMode" value="LOG_ONLY"/> <property name="walPath" value="c:/apache/data/simple-cassandra/wal"/> <property name="walArchivePath" value="c:/apache/data/simple-cassandra/wal/archive"/> </bean> </property> <property name="cacheConfiguration"> <list> <bean class="org.apache.ignite.configuration.CacheConfiguration"> <property name="name" value="DimStore"/> <property name="cacheMode" value="REPLICATED"/> <property name="atomicityMode" value="TRANSACTIONAL"/> <property name="readThrough" value="true"/> <property name="writeThrough" value="true"/> <property name="sqlSchema" value="partition"/> <property name="indexedTypes"> <list> <value type="java.lang.Class">com.procurant.model.IdKey</value> <value type="java.lang.Class">com.procurant.model.DimStore</value> </list> </property> <property name="cacheStoreFactory"> <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory"> <property name="dataSource" ref="cassandra"/> <property name="persistenceSettingsBean" value="dim_store_persistence_settings"></property> </bean> </property> </bean> </list> </property> <property name="discoverySpi" > <ref bean="tcpDiscoverySpi"/> </property> </bean> </beans> -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
